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.0zawiera 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.
opensslzawiera 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/openssli powiązane narzędzia, dane i dokumentacja.
libssl-devzawiera 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-doczawiera dokumentację biblioteki OpenSSL. Potrzebujesz tego pakietu tylko wtedy, gdy zamierzasz pisać programy korzystające z biblioteki.
libssl1.0.0-dbgzawiera 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 -dbgpakietó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 libpakietu 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 -devpakietu. Jeśli ktoś chce napisać program korzystający z biblioteki, potrzebuje -docpakietu.
A co z Boostem? Ma tę samą strukturę, ale ponieważ Boost jest ogromną biblioteką, jest podzielony na wiele mniejszych pakietów: libboost-*1.46.1i 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 libhangul1i 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ć -datapakiet. 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”).