Дебиан

Како направити Дебиан пакет

Како направити Дебиан пакет

1. Предговор

Бити одговоран за машину значи водити рачуна о хардверу као и о софтверским компонентама. Као што се види у свакодневном животу системског администратора, много је боље инсталирати софтвер као софтверски пакет, а не гомилу изворних датотека. Ово смањује трошкове за правилно одржавање система.

Пакете који су доступни од вашег жељеног дистрибутера валидира и надгледа одржавање пакета. Тестирао је софтвер и уверава да одговара осталим програмским пакетима доступним у дистрибуцији. Даље, пакет је потписан ГПГ кључем одржавача пакета. Ово гарантује интегритет пакета и показује вам да је пакет из поузданог извора.

Формат пакета зависи од ваше Линук дистрибуције. Одабрани формати су следећи:

деб

Пакети који се користе у: Дебиан ГНУ / Линук, Убунту, Армбиан, Линук Минт, Кноппик

рпм

Пакети који се користе у: РедХат, Федора, ЦентОС, ОпенСусе

тгз и ткз

Пакети који се користе у: Слацкваре-у

катран.кз

Пакети који се користе у: Арцх Линук

Овај документ укратко објашњава како направити пакет за Дебиан ГНУ / Линук. За детаљне информације о формату Дебиан пакета и алатима за одржавање Линук система заснованог на 'деб', можда ћете погледати Дебиан Пацкаге Манагемент Боок [дпмб] За изградњу пакета за Дебиан ГНУ / Линук ови су документи од суштинске важности:

Пакет са којим ћемо радити зове се 'хелловорлд' и има верзију број 0.1. У демонстрацијске сврхе садржи само једну Питхон скрипту која избацује чувену поруку „Здраво, свете!”:

#!/ уср / бин / питхон принт („Здраво, свете!") 

2. Захтеви

2.1. ГПГ кључ

Као корак 1, ставите свој ГПГ кључ на располагање. Касније ће за потписивање пакета бити потребан кључ. Имајте на уму да непотписани пакети нису поуздани и не могу бити дио Дебиан свемира.

У случају да још увек немате ГПГ кључ, креирајте га. Можете следити три доленаведена корака. Прва команда генерише нови кључ, друга извози ваш нови кључ у засебну датотеку, а трећа додаје кључ вашем личном привезу за кључеве.

$ гпг --ген-кеи $ гпг -а --оутпут ~ /.гнупг / ИОУР_НАМЕ.гпг --екпорт 'ТВОЈЕ ИМЕ' $ гпг --импорт ~ /.гнупг / ИОУР_НАМЕ.гпг 

Током креирања уверите се да је дато име _ПОЗНАТО_тачно. Уобичајено је да се користи комбинација имена и презимена. Тада ће ово име морати бити потпуно исто у пакету, приликом креирања 'контролне' датотеке Дебиан пакета. За више информација о ГПГ-у погледајте ГНУ Приручник о приватности [гпх].

2.2. Ланац алата за паковање

За изградњу Дебиан пакета с изворним кодом на вашем систему су потребни сљедећи софтверски пакети:

Као кориснички 'роот' можете их инсталирати помоћу следеће наредбе:

# апт-гет инсталл буилд-битно аутоцонф аутомаке аутотоолс-дев дх-маке дебхелпер девсцриптс факероот кутилс линтиан пбуилдер 

2.3. Припремите софтвер за паковање

Морамо припремити директоријум за изградњу пакета. Направите директоријум за припрему окружења у којем ћемо градити пакет:

$ мкдир -п ~./ буилд / хелловорлд / 0.1 

Копирајте 'тар.гз 'компримована архива у директоријуму:

$ цп хелловорлд-0.1.катран.гз ~./ буилд / хелловорлд / 0.1 

Промените се у директоријум и извуците пакет:

$ цд ~./ буилд / хелловорлд / 0.1 ~ / буилд / хелловорлд / 0.1 $ тар -кзф хелловорлд-0.1.катран.гз 

Сада директоријум садржи и изворни код у засебном директоријуму и компримовану архиву:

~ / буилд / хелловорлд / 0.1 $ лс хелловорлд-0.1 хелловорлд-0.1.катран.гз 

3. Дебијанизација

У овом тренутку ћемо додати датотеке специфичне за Дебиан пакет. Због тога се овај корак назива _дебианизација_ софтвера. То се ради у неколико појединачних корака.

3.1 Припремите структуру пакета

Промените се у директоријум који чува целокупан изворни код пакета. У нашем примеру пакет садржи датотеку 'хелловорлд.пи ', само:

~ $ цд буилд / хелловорлд / 0.1 / хелловорлд-0.1 ~ / буилд / хелловорлд / 0.1 / хелловорлд-0.1 $ лс хелловорлд.пи 

Додајмо датотеке специфичне за Дебиан пакет. Алат 'дх_маке' улази у игру. Прекидач '-е' користи дату адресу као адресу е-поште у пољу 'Одржавање' датотеке 'дебиан / цонтрол' датотека. Уместо тога, за прављење пакета користите своју адресу е-поште. Имајте на уму да користите исту адресу е-поште која одговара вашем ГПГ кључу.

Прекидач '-ф' користи дату датотеку као изворну архиву и прескаче копирање тренутног стабла програма у 'програм.ориг '.

~ / буилд / хелловорлд / 0.1 / хелловорлд-0.1 $ дх_маке -е [е-маил заштићен] -ф… / хелловорлд-0.1.катран.гз 

На упит се тражи да одаберете врсту пакета који треба створити. Да бисте изабрали _један бинарни_ тип 'с'.

Тип пакета: појединачни бинарни, индеп бинарни, вишеструки бинарни, библиотека, модул језгра, закрпа језгра? [с / и / м / л / к / н] с Име одржаватеља: Франк Хофманн Адреса е-поште: [заштићена е-поштом] Датум: Суб, 04 Нов 2017 21:16:13 +0100 Назив пакета: хелловорлд Верзија: 0.1 Лиценца: празно Тип пакета: Једнократно  за потврду: Тренутно не постоји Макефиле највишег нивоа. Ово може захтевати додатно подешавање. Готово. Молимо вас да сада уредите датотеке у дебиан / поддиректоријуму. Такође би требало да проверите да ли се хелловорлд Макефилес инсталира у $ ДЕСТДИР, а не у / . 

Резултат је директоријум назван 'дебиан':

~ / буилд / хелловорлд / 0.1 / хелловорлд-0.1 $ лс дебиан хелловорлд.пи 

Овај директоријум садржи све датотеке специфичне за пакет.

3.2. Подесите контролну датотеку

Датотека 'дебиан / цонтрол' задржава зависности потребне за изградњу_пакета. Коришћењем наредбе 'дпкг-депцхецк -д ./ цонфигуре 'добићете листу са свим потребним пакетима. У нашем случају није потребан додатни пакет, јер је Питхон протумачени језик.

Даље, морамо уредити датотеку 'дебиан / цонтрол' и додати вредности специфичне за пакет. За наш пример изгледа овако:

Извор: хелловорлд Одељак: питхон Приоритет: опционално Одржавач: Франк Хофманн <[email protected]> Изграђује-зависи: дебхелпер (> = 9) Верзије стандарда: 3.9.5 Почетна страница: хттп: // ввв.ефхо.де / # Вцс-Гит: гит: // анонсцм.дебиан.орг / цоллаб-маинт / хелловорлд.гит # Вцс-Бровсер: хттп: // анонсцм.дебиан.орг /?п = цоллаб-маинт / хелловорлд.гит; а = резиме Пакет: хелловорлд Архитектура: било који Зависи: $ схлибс: Зависи, $ разни: Зависи, питхон Опис: Штампа Хелло Ворлд на Питхону Принтес Хелло Ворлд на Питхону 

3.3. Прилагодите датотеку са ауторским правима

Датотека 'дебиан / цопиригхт' садржи информације о лиценци за софтверски пакет. Припремљен је за издање путем ГНУ Публиц Лиценсе 2 (ГПЛв2). За наш пример изгледа овако:

Формат: хттп: // ввв.дебиан.орг / доц / приручници за паковање / цопиригхт-формат / 1.0 / Упстреам-Наме: хелловорлд Извор: хттп: // ввв.ефхо.де / Датотеке: дебиан / * Ауторска права: 2017 Франк Хофманн <[email protected]> Лиценца: ГПЛ-2 + Овај пакет је бесплатан софтвер; можете га дистрибуирати и / или модификовати под условима ГНУ Генерал Публиц Лиценсе коју је објавила Фондација за слободни софтвер; или верзија 2 лиценце, или (по вашој жељи) било која каснија верзија ... Овај пакет се дистрибуира у нади да ће бити користан, али БЕЗ БИЛО КОЈЕ ГАРАНЦИЈЕ; без чак и подразумеване гаранције ПРОДАЈНОСТИ или ПРИЛОЖНОСТИ ЗА ОДРЕЂЕНУ СВРХУ. Погледајте ГНУ Генерал Публиц Лиценсе за више детаља ... Требали сте добити примерак ГНУ Генерал Публиц Лиценце заједно са овим програмом. Ако не, видите  . На Дебиан системима, комплетан текст ГНУ Генерал Публиц Лиценсе верзије 2 налази се у „/ уср / схаре / цоммон-лиценце / ГПЛ-2“. 

3.4. Прилагодите датотеку дневника промена

Након података о ауторским правима датотека „дебиан / цхангелог“ мора бити прилагођена. У наш пример додајемо информацију „Прво издање“.

хелловорлд (0.1-1) нестабилан; хитност = ниска * Прво пуштање - Франк Хофманн <[email protected]> Суб, 04. новембра 2017. 21:16:13 +0100 

То је све што нам је потребно до сада - сада коначно можемо да направимо пакет.


4. Направите пакет

Да бисмо изградили пакет, морамо се померити за један директоријум горе и покренути следећу команду:

~ / буилд / хелловорлд / 0.1 / хелловорлд-0.1 $ дпкг-буилдпацкаге -рфакероот

Опција '-рфакероот' омогућава 'дпкг-буилдпацкаге' да покреће команде као привилеговани корисник уз помоћ наредбе 'факероот'. Ово је неопходно за припрему пакета и стварање датотека и директорија.
Горња команда резултира дужом листом излазних порука (приказаних овде у немачком језичком окружењу):

дпкг-буилдпацкаге: Куеллпакет хелловорлд дпкг-буилдпацкаге: Куеллпакет хелловорлд дпкг-буилдпацкаге: Куеллверсион 0.1-1 дпкг-буилдпацкаге: Куеллдистрибутион нестабилан дпкг-буилдпацкаге: Куеллен геандерт дурцх Франк Хофманн <[email protected]> дпкг-буилдпацкаге: Хост-Арцхитектур амд64 дпкг-соурце --бефоре-буилд хелловорлд-0.1 факероот дебиан / рулес цлеан дх цлеан дх_тестдир дх_ауто_цлеан дх_цлеан дпкг-соурце -б хелловорлд-0.1 дпкг-извор: Информације: Куеллформат "3.0 (јорган) "вирд вервендет дпкг-извор: Информације: хелловорлд вирд унтер Бенутзунг дес екистиеренден ./ хелловорлд_0.1.ориг.катран.гз гебаут дпкг-соурце: Информације: хелловорлд вирд у хелловорлд_0.1-1.дебиан.катран.кз гебаут дпкг-соурце: Информације: хелловорлд вирд у хелловорлд_0.1-1.дсц гебаут дебиан / рулес направљена ДХ буилд дх_тестдир дх_ауто_цонфигуре дх_ауто_буилд дх_ауто_тест факероот дебиан / рулес бинари дх бинарни дх_тестроот дх_преп дх_ауто_инсталл дх_инсталлдоцс дх_инсталлцхангелогс дх_перл дх_линк дх_цомпресс дх_фикпермс дх_стрип дх_макесхлибс дх_схлибдепс дх_инсталлдеб дх_генцонтрол: дпкг-генцонтрол: Упозорење: Фелд зависи од Пакет хелловорлд: Унбеканнте Субститутионсвариабле $ схлибс : Зависи дх_мд5сумс дх_буилддеб дпкг-деб: Пакет "хелловорлд" вирд ин "… / хелловорлд_0.1-1_амд64.деб "гебаут. дпкг-генцхангес <… /helloworld_0.1-1_amd64.changes dpkg-genchanges: kompletter Quellcode beim Hochladen hinzufügen dpkg-source --after-build helloworld-0.1 dpkg-buildpackage: Alles hochzuladen (Originalquellen enthalten) signfile helloworld_0.1-1.dsc Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. Benutzer: "Frank Hofmann (Hofmann EDV) <[email protected]> „4096-Бит РСА Сцхлуссел, ИД Д431АЦ07, ерзеугт 05.09.2014 

4.1. Провера ваљаности пакета

Честитам - успели сте да направите Дебиан пакет - да! Сада, хајде да детаљније погледамо пакет. Овде на сцену ступа „линтиан“. Овај алат потврђује ваш пакет како би пронашао кршења строгих правила која Дебиан пакети морају испунити.

Да бисте покренули тестове, у следећој наредби:

линтиан хелловорлд_0.1-1_амд64.деб 

Алат не проналази кршења правила, али такође и правописне грешке и погрешне знакове. Прекидач '-пендант' тражи да 'линтиан' буде много критичнији него обично. Као што можете видети доле, „линтиан“ је помало мрзовољан и открио је три упозорења и једну грешку.

Осим првог упозорења, лако можемо усрећити 'линтиан' и прилагодити садржај пакета у складу са постављеним правилима. Упозорење 'нев-пацкаге-схоулд-цлосе-итп-буг' значи да не постоји извештај о грешци против ИТП пакета (ИТП значи _намерно за пацкаге_). За редовни Дебиан пакет мора се послати извештај о грешци тражилици грешака за пакет ИТП како би се обавестили други да намеравате да започнете паковање овог софтвера.

4.2. Упозорење: 'реадме-дебиан-цонтаинс-дебмаке-темплате

Датотека „РЕАДМЕ.Дебиан 'је намијењен да води додатне напомене у вези с овим пакетом. 'дх_маке' је креирао ову датотеку за нас:

хелловорлд за Дебиан ---------------------  -- Франк Хофманн <[email protected]> Суб, 04. новембра 2017. 21:16:13 +0100 

У нашем примеру немамо додатне информације, па можемо избрисати датотеку.

4.3. Упозорење: 'опис-започиње-водећим-размацима'

Ово упозорење је покренуто јер дужи опис нашег пакета у датотеци 'дебиан / цонтрол' започиње с више од једног размака. Чим уклонимо један простор, упозорење ће нестати.

4.4. Грешка: 'десцриптион-синопсис-ис-дуплицатед'

Сваки пакет захтева и кратки и дужи опис у 'дебиан / цонтрол'. Ова грешка је покренута јер су оба описа идентична. Чим смо продужили дужи опис, грешка је нестала.


5. Везе и референце

- [ддр] Андреас Бартх, Адам Ди Царло, Рапхаел Хертзог, Луцас Нуссбаум, Цхристиан Сцхварз, Иан Јацксон: Дебиан Девелопер'с Референце
- [днмг] Јосип Родин, Осаму Аоки: Дебианов водич за ново одржавање
- [дпмб] Акел Бецкерт, Франк Хофманн: Књига о управљању пакетима Дебиан
- [дпм] Приручник за Дебиан политике
- [дпт] Водич за паковање пакета Дебиан
- [гпх] Приручник за приватност ГНУ
- [лусхпаиПацкаге] Алек Лусхпаи: Како створити дебиан пакет из извора


6. Захвалнице

Аутор се захваљује Акел Бецкерт-у и Геролду Руппрецхту на подршци и критичарима током припреме овог чланка.

Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...
Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...
ХД Ремастеред игре за Линук које никада раније нису имале Линук издање
Многи програмери и издавачи игара долазе са ХД ремастером старих игара како би продужили живот франшизе, молимо обожаваоце да захтевају компатибилност...