Докато документацията в Developers
corner не е пределно ясна относно къде и как новите отговорници по
поддръжка могат да започнат работата си, този документ ще обясни всяка малка (и
може би на пръв поглед ненужна) стъпка и ще ви помогне да създадете първия си
пакет и да придобиете някакъв опит за да моежете да изграждате следващи версии
или може би други пакети по-късно.
Вероятно вече сте избрали пакет който искате да изградите, но има някои указания за вас като начинаещ:
package search
page. Ако ползвате текущата `нестабилна'
дистрибуция проверете с тези команди:
dpkg -s програма
dpkg -l '*програма*'
WNPP page
и с debian-devel mailing list архивите за да се уверите че никой не се занимава
с поддръжката на същия пакет. Ако има вече отговорник по поддръжката пишете му
ако смятате че е нужно. Ако не - намерете друга интересна програма която никой
не поддържа.
Debian Free
Software Guidelines. Ако не съответства на някое от тези условия
все още може да бъде включена в секциите `contrib' или `non-free'. Ако не сте
сигурни в коя секция трябва да бъде включена, задайте въпрос на debian-legal@lists.debian.org.
Разбира се, тези неща са просто предпазни мерки и са с цел да ви спаси от ядосани потребители ако нещо сте объркали при setuid демон... Когато придобиете повече опит в пакетирането, ще имате възможностите да направите такъв пакет, но дори и най-опитните разработчици се консултират в debian-devel mailing list когато не са сигурни. И хората там с удоволствие ще ви помогнат.
За повече информация относно това, проверете в "Developer's Reference".
Първото нещо което трябва да направите е да намерите и изтеглите оригиналния пакет. Предполагам че вече сте изтеглили изходния код на програмата. Изходния код на Linux програмите обикновенно са в tar/gzip формат, с разширение .tar.gz, и обикновенно съдържа поддиректория с име програма-версия с изходния код на програмата в нея. Ако изходният код е в някакъв друг тип архив (примерно името на файла завършва с Z" или".zip"), разархивирайте я със съответната програма или попитайте на debian-mentors ако не сте сигурни как да я разархивирате правилно (съвет: изпълнете `file archive.extension`).
За примера ще ползвам програмата наречена `gentoo' която е X11 GTK+ файлов мениджър. Забележете че програмата е вече пакетирана, и се е изменила от версията когато този документ е писан.
Създайте поддиректория във вашата потребителска директория именувана 'debian' или 'deb' или каквото име намирате за подходящо (например просто ~/gentoo/ ще свърши работа в този случай). Поставете изтегления архив в нея и го разархивирайте (ето така `tar xzf gentoo-0.9.12.tar.gz`). Уверете се че няма грешки, дори и такива които не се отнасят за този случай, защото най вероятно ще се появят проблеми при разархивирането на други системи чиито инструменти за разархивиране може или да пренебрегнат тези аномалии или не.
Вече имате друга поддиректория, наречена 'gentoo-0.9.12'. Влезте в нея и внимателно прочетете документацията. Обикновенно трябва да има файл наречен README*, INSTALL*, *.lsm или *.html. Трябва да намерите инструкции как правилно да компилирате и инсталирате програмата (най-вероятно ще прочетете че трябва да инсталирате програмата в директория /usr/local/bin; няма да правите точно това, но повече по въпроса ще разгледаме по-късно в Инсталиране в поддиректория, Section 3.1).
Процесът варира от програма до програма, но повечето модерни програми идват с `configure' скрипт който конфигурира изходния код в съответсвие с вашата система и се уверява че може да бъде компилиран на нея. След като бъдат конфигурирани (с `./configure`), програмите обикновенно се компилират с `make`. Някои от тях поддържат `make check`, което изпълнява включените в програмата самопроверки. Инсталацията в определените директории обикновенно става с `make install`.
Сега пробвайте да компилирате и стартирате вашата програма за да се уверите че тя работи добре и не разваля нещо друго при инсталирането си или при стартирането.
Също така обикновенно е включена поддръжката на `make uninstall` което премахва инсталираните файлове, изпълнете го и `make clean` (или по-добре `make distclean`) за да почистите директорията с изходния код.
Трябва да започнете пакетирането с напълно чиста (недокосвана) директория с изходен код, или по друг начин казано с току що разархивиран изходен код.
За да бъде изграден пакета правилно трябва да направите оригиналното име на програмата с малки букви (ако вече не е) и трябва да преместите директорията с изходния код в <име_на_пакет>-<версия>.
Ако името на програмата се състои от повече от една дума, съберете ги в една дума или направете съкращение. Примерно, програмата "John's little editor for X" като пакет може да се именува johnledx, или jle4x, или каквото вие решите стига да е в разумни граници, примерно 20 символа.
Също така проверете за точната версия на програмата (да бъде включена във версията на пакета). Ако тази програма не е номерирана с версия от сорта X.Y.Z, ами е с някакъв тип дата спокойно може да ползвате датата като номер на версия, като сложите пред нея "0.0." (за всеки случай ако разработчиците един ден решът да пуснат версия примерно 1.0). Значи, ако датата е 19ти Декември, 1998, версията ще стане 0.0.19981219. Някой програми нямат версия и в този случай най-добре е да се свържете с разработчиците за да се разбере дали има някакъв друг метод за номериране на версиите.
Уверете се че сте в директорията на изходния код и напишете това:
dh_make -e your.maintainer@address -f ../gentoo-0.9.12.tar.gz
Разбира се, заместете "your.maintainer@address" с вашия e-mail адрес
за да бъде включен в changelog и в други файлове и името на файла на
оригиналния архив. Виж dh_make(1) за повече информация.
Ще излезе известна информация. Ще бъдете попитан какъв тип пакет искате да създадете. Gentoo е пакет с един бинарен файл, също така и един .deb файл - така че избираме първата опция - `s' клавиша, проверете информацията на екрана и потвърдете като натиснете <enter>. Като нов maintainer препоръчително е да не създавате многобинарни пакети, или библиотеки, както е обяснено по-късно. Не е толкова трудно, наистина, но се изисква малко повече знания, така че няма да ги описваме всичките тук.
Забележете че dh_make трябва да бъде стартиран само веднъж , и няма да се държи коректно ако бъде стартиран отново във вече " дебианизирана" директория. Това означава че ще използвате друг метод за пакетиране на нови версии на вашия пакет за в бъдеще. Прочетете за това по-късно в Обновяване на пакета, Section 6.4
jrodin@jagor.srce.hrgeroy@stemo.bg