Boost to złożony przykład, najpierw spójrzmy na prostszy.
Dokładnie, pakiet źródłowy openssl zapewnia 5 pakietów binarnych:
libssl1.0.0
zawiera bibliotekę dynamiczną OpenSSL, wersja 1.0.0. Właśnie to muszą uruchamiać programy powiązane z tą biblioteką. Nazwa pakietu zawiera numer wersji, ponieważ w tym samym czasie mogą być zainstalowane inne wersje biblioteki, jeśli masz inne programy połączone z inną wersją, która nie jest binarnie zgodna z wersją 1.0.0.
openssl
zawiera narzędzia wiersza poleceń korzystające z biblioteki OpenSSL. Nawet jeśli masz wiele wersji biblioteki, nie potrzebujesz wielu wersji tych narzędzi: jest tylko jedna /usr/bin/openssl
i powiązane narzędzia, dane i dokumentacja.
libssl-dev
zawiera pliki potrzebne do skompilowania programu łączącego się z OpenSSL. Istnieją pliki nagłówkowe C ( *.h
), biblioteki do łączenia ( *.a
, *.so
) i kilka innych plików.
libssl-doc
zawiera dokumentację biblioteki OpenSSL. Potrzebujesz tego pakietu tylko wtedy, gdy zamierzasz pisać programy korzystające z biblioteki.
libssl1.0.0-dbg
zawiera symbole debugowania. Jest przydatny tylko dla osób, które debugują bibliotekę OpenSSL lub programy, które z niej korzystają. Odpowiedź andrewsomething zawiera więcej informacji na temat tych -dbg
pakietów.
Ponadto precyzja zawiera starszą wersję biblioteki libssl0.9.8
, ponieważ istnieją programy, które są nadal powiązane ze starszą wersją.
Inne pakiety, które możesz zobaczyć, są powiązaniami dla języków innych niż C. OpenSSL nie jest dostarczany z żadnym (istnieją powiązania z OpenSSL dla innych języków, ale nie pochodzą z tego samego źródła). Przykładem jest sqlite3 , który jest dostarczany z powiązaniami TCL .
Głównym powodem podziału takich pakietów jest to, że różne pakiety mają różnych odbiorców docelowych. System, w którym nikt nigdy niczego nie kompiluje, potrzebuje jedynie lib
pakietu podstawowego i być może narzędzi wiersza poleceń; w razie potrzeby zostaną automatycznie zainstalowane z zależności. Jeśli ktoś chce skompilować program korzystający z biblioteki, potrzebuje -dev
pakietu. Jeśli ktoś chce napisać program korzystający z biblioteki, potrzebuje -doc
pakietu.
A co z Boostem? Ma tę samą strukturę, ale ponieważ Boost jest ogromną biblioteką, jest podzielony na wiele mniejszych pakietów: libboost-*1.46.1
i libboost-*1.46-dev
. Dokładnie, istnieje tylko jedna wersja Boost, 1.46 , ale oneiric miał zarówno 1.42, jak i 1.46 . Istnieje również domyślna wartość domyślna zwiększenia metapakietu, która pobiera wersję pakietu jako zależność.
Patrząc na libhangul , oprócz pakietu biblioteki dynamicznej libhangul1
i pakietu programistycznego libhangul-dev
, istnieje pakiet libhangul-data
. Ten pakiet zawiera dodatkowe dane wymagane przez bibliotekę. Nawet jeśli masz wiele wersji biblioteki, mogą one udostępniać -data
pakiet. Ponadto pakiet jest niezależny od architektury. Oprogramowanie zawierające dużą ilość danych niezależnych od architektury jest dzielone na pakiety zależne od architektury i niezależne od architektury, aby zaoszczędzić miejsce w witrynach dystrybucji. Innym sufiksem o podobnym znaczeniu jest -common
.
Zasady pakowania Ubuntu i Debiana są bardzo podobne, więc materiały dotyczące tworzenia pakietów Debiana dotyczą także Ubuntu. W rzeczywistości możesz mieć ten sam pakiet źródłowy dla Debiana i Ubuntu; jedyną rzeczą, która wyróżnia pakiety Debian i Ubuntu, jest ich kompilacja z różnymi wersjami bibliotek m, a to tylko różnica między różnymi wydaniami Ubuntu. Przygotuj dokumentację dewelopera Debiana , zwłaszcza Podręcznik Polityki Debiana i Dokumentację dla programistów ; zapoznaj się ze wstępem do Przewodnika nowego administratora. Zignoruj części dotyczące pracy z projektem Debian i tak dalej, po prostu przeczytaj części dotyczące tworzenia pakietu.dh_make
to dobry sposób na rozpoczęcie pracy z pakietem deb (wybierz „Biblioteka”).