[ 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/).
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