Czasami użytkownicy Debiana chcą używać specyficznej wersji jakiegoś programu, który nie posiada pakietu .deb i jest dostępny tylko w postaci kodu źródłowego. Instalacja takich programów może jednak spowodować problemy w działaniu systemu pakietów. Wyobraźmy sobie na przykład, że chcemy skompilować nową wersję naszego serwera pocztowego. Wszystko poszło świetnie, tylko że zapomnieliśmy o małym szczególe: w Debianie wiele pakietów zależy od agenta pocztowego MTA (ang. Mail Transport Agent), a system pakietów niestety nic nie wie o programie, który sami skompilowaliśmy ze źródeł i zainstalowaliśmy!
W takich właśnie przypadkach z pomocą przychodzi nam pakiet
equivs
. Aby móc z niego skorzystać, należy zainstalować pakiet o
takiej samej nazwie. Cóż on takiego robi? Tworzy pusty pakiet, który potrafi
w pełni spełnić zależności i sprawia, że system pakietów jest przekonany o tym,
iż zależności są spełnione.
Zanim pokażemy jak używać tego pakietu, należy jeszcze przypomnieć, że istnieją
bezpieczniejsze sposoby kompilacji programu, który posiada już pakiet Debiana i
że nie należy używać pakietu equivs
do zastępowania zależności,
gdy nie wiemy jak to zrobić. Więcej informacji na ten temat można znaleźć w
sekcji Praca z pakietami źródłowymi, Część
6.
Kontynuujmy nasz przykład z agentem pocztowym MTA. Powiedzmy, że właśnie
skompilowałeś i zainstalowałeś nową wersję serwera postfix
, a
teraz zamierzasz zainstalować pakiet mutt
. Nagle okazuje się, że
mutt
chce zainstalować innego agenta MTA, a Ty już masz przecież
swój.
Przejdź wtedy do jakiegoś katalogu (np. do /tmp
) i wydaj komendę:
# equivs-control nazwa
gdzie nazwa to nazwa pliku kontrolnego, który chcesz stworzyć. Plik ten będzie miał następującą zawartość:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: <enter package name; defaults to equivs-dummy> Version: <enter version here; defaults to 1.0> Maintainer: <your name and email address; defaults to username> Pre-Depends: <packages> Depends: <packages> Recommends: <packages> Suggests: <package> Provides: <(virtual)package> Architecture: all Copyright: <copyright file; defaults to GPL2> Changelog: <changelog file; defaults to a generic changelog> Readme: <README.Debian file; defaults to a generic one> Extra-Files: <additional files for the doc directory, commaseperated> Description: <short description; defaults to some wise words> long description and info . second paragraph
Teraz musimy tak go zmodyfikować, żeby robił to, co chcemy. Spójrzmy na format pól i ich opisy. Nie ma oczywiście potrzeby objaśniać każdego z nich. Zróbmy tylko to, co jest niezbędne:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: mta-local Provides: mail-transport-agent
Tak, to naprawdę wszystko, czego nam potrzeba! Pakiet mutt
zależy
od pakietu wirtualnego mail-transport-agent, którego dostarczają
wszystkie agenty MTA. Mogłem też nazwać pakiet po prostu
mail-transport-agent, ale wolę używać schematu pakietów
wirtualnych, który wykorzystuje pole `Provides'.
Teraz tylko musimy zbudować pakiet:
# equivs-build nazwa dh_testdir touch build-stamp dh_testdir dh_testroot dh_clean -k # Add here commands to install the package into debian/tmp. touch install-stamp dh_testdir dh_testroot dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package `nazwa' in `../nazwa_1.0_all.deb'. The package has been created. Attention, the package has been created in the current directory,
i zainstalować powstały pakiet .deb.
Jak widać, pakietu equivs
można używać na różne sposoby. Za jego
pomocą można nawet stworzyć pakiet moje-ulubione
, który zależy od
programów, które zwykle instalujesz. To jak go wykorzystasz zależy tylko od
Twojej wyobraźni, ale bądź ostrożny!
Na koniec jeszcze jedna ważna uwaga: przykłady plików kontrolnych znajdują się
w katalogu /usr/share/doc/equivs/examples
. Przyjrzyj się im.
Wielu użytkowników Debiana korzysta tylko z jednych plików lokalizacyjnych. Dla przykładu, brazylijscy użytkownicy Debiana przez cały czas korzystają z plików pt_BR i do niczego im nie są potrzebne pliki es.
Pakiet localepurge
jest bardzo użytecznym narzędziem dla takich
właśnie użytkowników. Pozwala on zaoszczędzić wiele miejsca na dysku, dzięki
zachowaniu tylko tych plików lokalizacyjnych, których naprawdę używasz. Aby go
zainstalować, po prostu wydaj komendę apt-get install localepurge.
Pakiet ten jest bardzo łatwy w konfiguracji, debconf przeprowadzi Cię przez ten proces krok po kroku. Bądź jednak bardzo ostrożny w czasie odpowiadania na zadawane Ci pytania, gdyż zła odpowiedź może usunąć wszystkie pliki lokalizacyjne, nawet te, których używasz! Jedynym sposobem na odzyskanie ich wtedy jest powtórna instalacja wszystkich pakietów, które dostarczają tych plików.
Programem, który potrafi wskazać pakiety mogące być uaktualnione do nowszej
wersji oraz dostarczyć wielu innych użytecznych informacji jest program
apt-show-versions
. Do wyświetlenia listy pakietów, które mogą być
uaktualnione służy opcja -u:
$ apt-show-versions -u libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
APT HOWTO
1.8.5 - lipiec 2003kov@debian.org
ptecza@debianusers.pl