Влезте в основната директория на програмата и изпълнете тази команда:
dpkg-buildpackage -rfakeroot
Това ще свъши всичката работа като трябва да въведете два пъти вашият PGP секретен ключ. След като всичко приключи ще намерите четири нови файла в предишната директория (~/debian/):
Това е пълният бинарен пакет. Може да използвате dpkg или dselect за да го инсталирате или премахнете както всеки друг пакет
Това е оригиналният изходен код на програмата, така че ако някой иска да изгради наново вашия пакет да има с какво да работи. Или пък ако не използват пакетиращата система на Debian но имат нужда да изтеглят изходния код и да го компилират.
Това е кратко резюме на съдържанието на изходния код. Файлът е генериран от
файла gentoo-0.9.12/debian/control и се използва от dpkg-source(1)
когато се разпакетира изходния код. Този файл е подписан с PGP така че хората
да са сигурни че файла е наистина ваш.
Този компресиран файл съдържа всички промени и добавки които сте направили към
оригиналния код във формат известен като "унифициран diff". Файлът е
създаден и се използва от dpkg-source(1).
Този файл описва всички промени в текущата версия на пакета и се използва от програмите по поддръжка на Debian FTP архива за да инсталират бинарните и пакетите с изходния код в него. Той е генериран от части от gentoo-0.9.12/debian/changelog и от .dsc файла.
С течение на времето, докато работите с пакета нови възможности ще бъдат
добавяни. Хората които изтеглят вашия пакет могат бързо да проверят в този
файл какви са били промените. Дългите низове от числа са MD5 checksum-и за
споменатите файлове. Лицето което свали вашите файлове може да ги тества с
md5sum(1) и ако номерата не съвпадат ще разбере че или файла е
повреден или е бил хакнат. Този файл е и подписан с PGP за да може хората да
са още по сигурни че е наистина ваш.
Когато работите с голям пакет може да искате да не изграждате наново целия пакет всеки път когато направите някоя малка промяна в debian/rules. С цел тестване можете да направите .deb файл без да изграждате наново целия изходен код ето така:
fakeroot debian/rules binary
Само се уверете че правилото `install' не съдържа `install-stamp' подправило (това е понастоящем по подразбиране) за да не се стартира `dh_clean -k` всеки път. И веднъж приключили с настройките запомнете че трябва да го изградите наново пакета правилно за да можете да "качите" файловете коректно.
Стартирайте lintian(1) въху вашия .changes файл; тази програма ще
провери за много основни проблеми при пакетиране. Командата е:
lintian -i gentoo_0.9.12-1_i386.changes
Разбира се заместете името на файла с този генериран за вашата програма. Ако се появят грешки (редовете започващи с Е:) прочетете разясненията (редовете започващи с N:), поправете грешките и го изградете наново както е описано в Изграждане на пакета, Section 6.1. Има редове които започват с W: които са само предупреждения така че можете да бъдете сигурен че пакета е добре (но най-вероятно изисква леки настройки).
Можете да изградите пакета с dpkg-buildpackage и да стартирате lintian само с
една команда и тя е debuild(1).
Погледнете вътре в пакета като използвате файлов мениджър като
mc(1), или го разпакетирате в някоя временна директория като
използвате dpkg-deb(1). Огледаите за ненужни файлове в бинарния и
пакета с изходния код в случай че нещо се е объркало и са останали непочистени
файлове. Съвет: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz` ще ви покаже списък с
промените/добавките към изходния код, а `dpkg-deb -c gentoo_0.9.12-1_i386.deb`
ще покаже списък с файловете от пакета.
Инсталирайте пакета за да го тествате, тоест използвайте командата
debi(1) като root. Пробвайте да я инсталирате на машини различни
от вашата и наблюдавайте внимателно за всякакви предупреждения или грешки при
инсталацията и при работата на праграмата.
В послесдствие когато изграждате нова версия трябва да направите следното за да се уверите че обновяването на пакета работи:
След като напълно сте тествали вашия пакет, ще трябва да "качите"
файловете на master.debian.org, като използвате dupload(1). Първо
трябва да настроите конфигурационния файл на dupload - ~/.dupload.conf .
Поставете нещо такова в него:
package config;
$default_host = "master";
$cfg{"master"}{"method"} = "scpb";
$cfg{"master"}{"login"} = "joy";
$cfg{"master"}{"visibleuser"} = "jrodin";
$cfg{"master"}{"visiblename"} = "jagor.srce.hr";
$cfg{"master"}{"fullname"} = "Josip Rodin";
$cfg{"non-us"}{"method"} = "scpb";
$cfg{"non-us"}{"login"} = "joy";
$cfg{"non-us"}{"visibleuser"} = "jrodin";
$cfg{"non-us"}{"visiblename"} = "jagor.srce.hr";
$cfg{"non-us"}{"fullname"} = "Josip Rodin";
1;
Разбира се сменете моите персонални настройки с вашите и прочетете
dupload.conf(5) man-страницата за да разберете какво означава
всяка от тези опции.
После се свържете към интернет и изпълнете тази команда:
dupload --to master gentoo_0.9.12-1_i386.changes
Dupload проверява дали md5 сумите на файловете съвпадат с тези от .changes файла така че ако се разминават че ви предупреди за изградите наново пакета както е описано в Изграждане на пакета, Section 6.1 за да може да бъде правилно "качен" пакета.
Dupload ще ви поиска паролата за master.debian.org, ще "качи"
пакетите и ще анонсира кратко описание на пакета в debian-devel-changes@lists.debian.org
Ако живеете в Европа може да ползвате други сървъри вместо master. За повече
детайли погледнете в dupload(1), dupload.conf(5) и в
Developer's Reference.
Да предположим че е попълнен бъг рапорт за вашия пакет, #54321, и в него е описан проблем с който може да се справите. За да създадете нова Debian преработка на пакета се нуждаете от:
Нека разгледаме малко по сложна ситуация - нова версия на оригиналния изходен код е публикувана и разбира се вие искате да я пакетирате. Нужно е да направите следното:
uupdate -u gentoo-0.9.13.tar.gz
Разбира се заменете името на файла с това на вашата програма.
uupdate(1) правилно ще преименува архива, ще се опита да приложи
всички промени от предишния ви .diff.gz файл, и ще обнови новия
debian/changelog файл.
Ако сте конфигурирали `debian/watch' файла както е описано в watch.ex, Section 5.6 може да стартирате
uscan(1) което автоматично ще провери за нови версии, ще ги
изтегли и ще стартира uupdate.
Преди да решите да зададете вашият въпрос на някое публично място просто RTFM.
Това включва /usr/share/doc/dpkg, /usr/share/doc/debian,
/usr/share/doc/package/* файловете и man/info страниците за всички програми
споменати в този документ. Когато получите бъг рапорт (да, истински бъг
рапорт!) ще разберете че е време да поровите в Debian Bug Tracking System и да
прочетете документацията за да можете ефикасно да се справите с рапортите.
С присъединяването си към debian-mentors@lists.debian.org
mailing list-ата може да се обедините с опитни разработчици на Debian които ще
ви помогнат да разрешите възникналите проблеми. Можете да се запишете като
изпратите e-mail до debian-mentors-request@lists.debian.org
с думата `subscribe' в полето subject на съобщението.
Ако все още имате въпроси, питайте на Разработчици на Debian mailing list на
debian-devel@lists.debian.org.
Можете да се запишете като изпратите e-mail до debian-devel-request@lists.debian.org
с думата `subscribe' в полето subject на съобщението. Ако сте разработчик на
Debian трябва вече да сте записани кам нея.
Дори ако всичко работи добре, време е да започнете да се молите. Защо? Защото след няколко часа (или дни) потребители от цял свят ще започнат да използват вашия пакет, и ако сте направили някоя критична грешка пощата ви ще бъде бомбандирана от голям брой гневни Debian потребители ... Шегичка :-)
Отпуснете се и бъдете готов за бъг рапорти, защото има още много работа докато бъде в крак с Debian политиката (още веднъж, за повече детайли прочетете истинската документация). Успех!
jrodin@jagor.srce.hrgeroy@stemo.bg