[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ dalej ]
Ten dokument próbuje opisać proces budowania pakietów systemu Debian. Jest on przeznaczony dla zwykłych użytkowników Debiana i tych, którzy chcą zostać deweloperami. Używa zwykłego języka i daje dużo działających przykładów. Stare rzymskie przysłowie mówi Longum iter est per preaecepta, breve et efficax per exempla (Długa jest droga przez nakazy, krótka i skuteczna przez przykłady).
Jedną z rzeczy sprawiających, że Debian jest wyjątkową dystrybucją Linuksa, jest jego system pakietów. Mimo że istnieje ogromna ilość oprogramowania już spakowanego do formatu Debiana, to czasami zachodzi konieczność zainstalowania programu, który nie posiada swojej paczki. Pewnie się dziwisz, że możesz sam zbudować własne pakiety i myślisz, że to bardzo trudne zadanie. No cóż, jeśli jesteś zupełnym nowicjuszem w Linuksie, to rzeczywiście będziesz miał kłopoty, ale czy gdybyś był żółtodziobem, to czytałbyś teraz ten dokument? :-) Musisz trochę wiedzieć na temat programowania pod Unix'em, ale nie musisz od razu być ekspertem.
Jedna rzecz jest pewna: aby odpowiednio tworzyć i zarządzać pakietami Debiana konieczne są osobogodziny. Staraj się nie popełniać błędów, gdyż nasz system, aby działać, wymaga od opiekunów zarówno kompetencji technicznych jak i rzetelności.
Ten dokument wyjaśni wszystkie kroki potrzebne do zbudowania pakietu (choć niektóre z nich mogą na początku wydać się nieistotne) i pomoże Ci stworzyć Twój pierwszy pakiet. Dzięki niemu nabierzesz trochę doświadczenia, które przyda Ci się w trakcie budowania następnych wydań pakietu, a później może również do tworzenia innych paczek.
Najnowsza wersja tego dokumentu powinna być zawsze dostępna bezpośrednio na
stronie http://www.debian.org/doc/maint-guide/
oraz w pakiecie `maint-guide
'. Polskie tłumaczenie jest również
dostępne w pakiecie `maint-guide-pl
'.
Zanim zaczniesz cokolwiek robić, powinieneś upewnić się, że masz zainstalowanych kilka dodatkowych pakietów niezbędnych do dewelopmentu. Zwróć uwagę, że na poniższej liście nie ma żadnych pakietów oznaczonych jako `niezbędne' (essential) lub `wymagane' (required). Po prostu zakładamy, że masz już je zainstalowane.
Ta wersja podręcznika została uaktualniona z myślą o pakietach wchodzących w skład Debiana 2.2 (`potato') oraz 3.0 (`woody').
Następujące pakiety wchodzą w skład standardowej instalacji Debiana, więc prawdopodobnie masz je (i dodatkowe pakiety, od których one zależą) już zainstalowane. Mimo to powinieneś sprawdzić ich status za pomocą polecenia `dpkg -s <pakiet>`.
dpkg-dev
- pakiet zawierający narzędzia niezbędne do
rozpakowywania, budowania i wysyłania pakietów źródłowych Debiana (więcej
informacji znajdziesz na stronie podręcznika dpkg-source(1)
).
file
- przydatny program do określania typu pliku (zobacz
file(1)
).
gcc
- kompilator GNU języka C, niezbędny gdy Twój program, tak jak
większość programów, został napisany w języku C (zobacz gcc(1)
).
Pakiet ten jest powiązany z kilkoma innymi pakietami, takimi jak
binutils
, który zawiera zestaw programów służących do asemblacji i
konsolidacji plików wynikowych (zobacz `info binutils` w pakiecie
binutils-doc
) i cpp
, zawierający preprocesor języka C
(zobacz cpp(1)
).
g++
- kompilator GNU języka C++, niezbędny gdy Twój program został
napisany w języku C++ (zobacz g++(1)
).
libc6-dev
- biblioteki języka C i pliki nagłówkowe kompilatora gcc
niezbędne do konsolidacji plików wynikowych (zobacz `info libc` w pakiecie
glibc-doc
).
make
- na ogół proces tworzenia programu składa się z szeregu
kroków. Zamiast ciągłego powtarzania w kółko tych samych komend, możesz
posłużyć się programem, który automatyzuje cały proces. Jedyne co musisz
zrobić, to stworzyć plik(i) `Makefile' (zobacz `info make`).
patch
- bardzo użyteczne narzędzie służące do tworzenia łat, czyli
utworzonych przez program diff plików z różnicami pomiędzy plikami źródłowymi,
i tworzenia w ten sposób "załatanych" (poprawionych) wersji programów
(zobacz patch(1)
).
perl
- Perl jest jednym z najczęściej stosowanych interpretowanych
języków skryptowych w systemach kompatybilnych z systemem Unix. Często
określany jest jako "Uniksowy scyzoryk z piłą łańcuchową" (po
angielsku znacznie zabawniej: Unix's Swiss Army Chainsaw) - zobacz
perl(1)
.
Najprawdopodobniej przydadzą się również następujące pakiety:
autoconf
i automake
- wiele nowszych programów używa
skryptów konfiguracyjnych i plików Makefile przetworzonych za pomocą takich
narzędzi (zobacz `info autoconf` i `info automake`).
dh-make
i debhelper
- pakiet dh-make jest niezbędny
do stworzenia szablonu naszego przykładowego pakietu. Używa on do tworzenia
pakietów niektórych narzędzi z pakietu debhelper. Pakiety te nie są niezbędne
do budowania paczek, ale są bardzo zalecane, szczególnie nowym
opiekunom. Dzięki nim o wiele łatwiej rozpocząć proces budowania pakietu i
kontrolować go później (zobacz dh_make(1)
,
debhelper(1)
i plik /usr/share/doc/debhelper/README).
devscripts
- pakiet zawierający parę użytecznych i pomocnych dla
opiekuna skryptów, które nie są jednakże niezbędne do budowania pakietów
(więcej informacji znajdziesz w pliku /usr/share/doc/devscripts/README.gz).
fakeroot
- narzędzie, które pozwala "udawać" bycie
administratorem systemu (rootem). Uprawnienia administratora są niezbędne w
niektórych etapach procesu budowania pakietu (zobacz fakeroot(1)
).
gnupg
- narzędzie umożliwiające cyfrowe podpisanie
pakietów. Jest to szczególnie ważne, gdy zamierzasz rozpowszechniać swój
pakiet, a na pewno będziesz musiał to zrobić, gdyby Twój pakiet miał być
włączony do dystrybucji Debiana (zobacz gpg(1)
).
g77
- kompilator GNU języka Fortran 77, niezbędny gdy Twój program
został napisany w języku Fortran (zobacz g77(1)
).
gpc
- kompilator GNU języka Pascal, niezbędny gdy Twój program
został napisany w języku Pascal. Warty odnotowania w tym miejscu jest również
pakiet fp-compiler
(Free Pascal Compiler), który także nadaje się
do tego celu (zobacz gpc(1)
i ppc386(1)
).
xutils
- niektóre programy, głównie dla X11, używają tych narzędzi
do wygenerowania plików Makefile z zestawu makro-funkcji (zobacz
imake(1)
i xmkmf(1)
).
lintian
- program służący do sprawdzania poprawności pakietów
Debiana. Poinformuje Cię, gdy w zbudowanej paczce znajdzie błędy i wyjaśni ich
przyczynę (zobacz lintian(1)
oraz
/usr/share/doc/lintian/lintian.html/index.html).
pbuilder
- ten pakiet zawiera programy, które są używane do
tworzenia i zarządzania środowiskiem chroot. Budowanie pakietów Debiana w tym
środowisku weryfikuje poprawność zależności i zapobiega powstawaniu błędów
FTBFS (zobacz pbuilder(8)
i pdebuild(1)
).
Poniżej wymieniamy bardzo ważną dokumentację, która powinna być przeczytana razem z tym podręcznikiem:
debian-policy
- Polityka Debiana opisuje strukturę i zawartość
archiwum Debiana, sprawy dotyczące sposobu projektowania systemu operacyjnego,
FHS (Standard Hierarchii Systemu Plików - Filesystem Hierarchy Standard), który
mówi, gdzie powinny się znajdować pliki i katalogi itd. Dla Ciebie
najważniejszy jest opis wymagań, które musi spełnić każdy pakiet, aby mógł być
włączony do dystrybucji (zobacz
/usr/share/doc/debian-policy/policy.html/index.html).
developers-reference
- opisuje wszystkie zagadnienia nie związane
z technicznymi szczegółami procesu tworzenia pakietów, a więc strukturę
archiwum, sposób zmian nazw pakietów, procedurę ich osierocania i adopcji,
umieszczania pakietów w archiwum Debiana, również nie będąc opiekunem danego
pakietu (Non-Maintainer Upload - NMU), jak zarządzać błędami, najlepsze
praktyki dotyczące pakowania, kiedy i gdzie umieszczać pakiet itd. (zobacz
/usr/share/doc/developers-reference/index.en-us.iso-8859-1.html).
Powyższe krótkie opisy służą jedynie jako wprowadzenie do opisu każdego z pakietów. Zanim przejdziesz dalej, prosimy gruntownie zapoznać się z dokumentacją do każdego z programów, a przynajmniej z ich standardowym użyciem. Być może wydaje Ci się to teraz trudne, ale później będziesz bardzo zadowolony z przeczytania tej dokumentacji.
Uwaga: pakiet debmake
zawiera niektóre programy zbliżone
funkcjonalnie do dh-make, ale ten dokument nie omawia jego
użycia, ponieważ jest on przestarzały.
Po zbudowaniu swojego pierwszego pakietu (albo w czasie budowania) być może zechcesz zostać oficjalnym Deweloperem Debiana, aby wprowadzić swój pakiet do kolejnej dystrybucji (jeśli program jest użyteczny, to czemu nie?).
Nie możesz zostać oficjalnym Deweloperem Debiana w ciągu jednej nocy, gdyż do
tego potrzebne jest coś więcej, niż umiejętności techniczne. Niech Cię to
jednak nie zniechęca. Możesz wysłać swój pakiet, jeśli jest użyteczny dla
innych, jako opiekun sponsorowany przez zapisanie się na stronie Nowych Opiekunów
. Sponsor jest
oficjalnym Deweloperem Debiana, który pomaga opiekunom włączać pakiety do
archiwum Debiana. Więcej o procedurze przyjmowania nowych opiekunów jest na
stronie debian-mentors
FAQ
.
Zwracamy uwagę, że nie ma potrzeby tworzenia nowego pakietu, aby stać się oficjalnym Deweloperem Debiana. Rozwój istniejących pakietów jest również drogą mogącą prowadzić do zostania oficjalnym Deweloperem.
Istnieją dwa rodzaje pakietów, jakie możesz stworzyć: źródłowe i binarne. Pakiet źródłowy zawiera kod, który możesz skompilować, aby otrzymać binarną postać programu. Pakiet binarny zawiera natomiast już gotowy do użycia program. Prosimy nie mylić takich pojęć, jak źródło programu i pakiet źródłowy! Więcej szczegółów na temat terminologii jest w innych podręcznikach.
W Debianie termin `opiekun' (maintainer) oznacza osobę, która tworzy pakiety (pakuje programy), `autor' (upstream author) - osobę, która tworzy program, a `zewnętrzny opiekun' (upstream maintainer) - osobę, która aktualnie opiekuje się programem, pozostając poza projektem Debian. Zwykle autor i zewnętrzny opiekun są tą samą osobą - czasem nawet tą samą osobą jest opiekun. Jeśli napisałeś jakiś program i chcesz, żeby wszedł w skład Debiana, przyślij swoje zgłoszenie i zostań opiekunem.
[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ dalej ]
Podręcznik dla nowych opiekunów pakietów Debiana
wersja oryginału: 1.2.11, 12-01-2007, wersja tłumaczenia: 1.2.5, 27-09-2007joy-mg@debian.org
ptecza@debianusers.pl
porridge@debian.org
wojtekz@comp.waw.pl