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.orgptecza@debianusers.pl