[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ dalej ]
System zarządzania pakietami używa własnej bazy danych, w której przechowuje
informacje o tym, które pakiety są zainstalowane, które nie i które są dostępne
do instalacji. Program apt-get
używa właśnie tej bazy danych, aby
dowiedzieć się jak zainstalować pakiety na życzenie użytkownika i jakie
dodatkowe pakiety są potrzebne, aby te wybrane przez użytkownika działały
prawidłowo.
Aby uaktualnić tą bazę danych należy użyć komendy apt-get update
.
Przeszuka ona archiwa umieszczone w pliku /etc/apt/sources.list;
zobacz sekcję Plik
/etc/apt/sources.list, Rozdział 2.1, aby uzyskać więcej informacji na temat
tego pliku.
Dobrym nawykiem jest uruchamiać tą komendę dosyć regularnie, aby stale informować swój system o możliwych uaktualnieniach pakietów, zwłaszcza tych związanych z jego bezpieczeństwem.
W końcu proces, na który wszyscy czekaliśmy! Gdy już mamy plik sources.list z listą źródeł pakietów i wiemy jakie pakiety chcemy uaktualnić, to wszystko co musimy zrobić, to uruchomić program apt-get, który pobierze pakiety, które zamierzamy zainstalować. Dla przykładu możesz go wywołać następująco:
# apt-get install xchat
APT poszuka w swojej bazie danych najnowszej wersji pakietu i pobierze go z odpowiedniego archiwum, które podano w pliku sources.list. Gdyby okazało się, że pakiet ten zależy od innego, tak jak w powyższym przykładzie, to APT sprawdzi zależności i zainstaluje potrzebne pakiety. Spójrz na ten przykład:
# apt-get install nautilus Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 17.2MB will be used. Do you want to continue? [Y/n]
Pakiet nautilus
zależy od kilku wymienionych bibliotek
współdzielonych, dlatego APT pobierze je z archiwum. Gdybyś podał nazwy tych
bibliotek jako parametr wywołania programu apt-get, to APT nie
zapytałby Cię czy chcesz kontynuować, gdyż automatycznie założyłby, że chciałeś
je zainstalować.
Oznacza to, że APT tylko wtedy pyta Cię o potwierdzenie, gdy z powodu zależności między pakietami konieczne jest zainstalowanie także innych pakietów niż te podane przez Ciebie w linii komend.
Użyteczne mogą być następujące opcje programu apt-get:
-h Pomoc ekranowa do programu -d Tylko pobranie pakietu, BEZ instalacji lub rozpakowania archiwum -f Próba kontynuowania, nawet jeśli sprawdzenie integralności kończy się niepowodzeniem -s Bez akcji. Wykonuje symulację polecenia -y Zakłada odpowiedź `Tak' na wszystkie zapytania i nie pyta o potwierdzenie -u Wyświetla również listę uaktualnionych pakietów
W jednej linii można podać wiele pakietów do instalacji. Pliki pobrane z sieci są umieszczane do późniejszej instalacji w katalogu /var/cache/apt/archives.
Możesz także w tej samej linii wymienić pakiety, które chcesz usunąć. Po prostu umieść znak '-' bezpośrednio za nazwą pakietu do usunięcia, tak jak pokazano poniżej:
# apt-get install nautilus gnome-panel- Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n]
Aby dowiedzieć się więcej na temat usuwania pakietów, zobacz sekcję Usuwanie pakietów, Rozdział 3.3.
Gdybyś w jakiś sposób uszkodził zainstalowany pakiet, albo po prostu chciał ponownie zainstalować jego najnowszą dostępną wersję, to możesz użyć opcji --reinstall, jak pokazano poniżej:
# apt-get --reinstall install gdm Reading Package Lists... Done Building Dependency Tree... Done 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded. Need to get 0B/182kB of archives. After unpacking 0B will be used. Do you want to continue? [Y/n]
Jeśli nie chcesz już dłużej używać jakiegoś pakietu, możesz go usunąć ze swojego systemu za pomocą APT-a. Aby to zrobić, po prostu wpisz: apt-get remove pakiet. Na przykład:
# apt-get remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded. Need to get 0B of archives. After unpacking 14.6MB will be freed. Do you want to continue? [Y/n]
Jak widać na powyższym przykładzie, APT troszczy się także o usunięcie pakietów, które zależą od pakietu, który chcesz odinstalować. Za pomocą APT-a nie można usunąć pakietu bez usunięcia tych pakietów, które zależą od niego.
Uruchamiając program apt-get
w taki sposób jaki pokazano powyżej
spowodujemy usunięcie pakietów, ale jeśli posiadały one pliki konfiguracyjne,
to pozostaną one nadal w systemie. Aby całkowicie usunąć pakiet uruchom
apt-get
w następujący sposób:
# apt-get --purge remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded. Need to get 0B of archives. After unpacking 14.6MB will be freed. Do you want to continue? [Y/n]
Zwróć uwagę na znak '*' na końcu nazwy pakietów. Sygnalizuje on, że pliki konfiguracyjne każdego z pakietów także zostały usunięte.
Analogicznie jak dla metody install, możesz z opcją remove użyć symbolu, który odwróci jej znaczenie. W przypadku usuwania pakietów, jeśli za nazwą pakietu umieścisz znak '+', to zostanie on zainstalowany, a nie usunięty.
# apt-get --purge remove gnome-panel nautilus+ Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 nautilus The following packages will be REMOVED: gnome-applets* gnome-panel* gnome-panel-data* gnome-session* The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n]
Zauważ, że program apt-get
wyświetla dodatkowe pakiety, które
zostaną zainstalowane (tzn. te pakiety, których instalacja jest potrzebna do
poprawnego działania pakietów, które chce zainstalować użytkownik), pakiety
które zostaną usunięte i te, które zostaną zainstalowane (ponownie włączając
dodatkowe pakiety).
Możliwość aktualizacji pakietów to wielkie osiągnięcie systemu APT. Odbywa się to za pomocą pojedynczej komendy: apt-get upgrade. Możesz jej użyć zarówno do aktualizacji pakietów z tej samej dystrybucji, jak i by zaktualizować całą dystrybucję, chociaż do tego celu jest raczej preferowana komenda apt-get dist-upgrade; zobacz sekcję Aktualizacja do nowego wydania, Rozdział 3.5, jeśli chcesz się więcej dowiedzieć na ten temat.
Warto uruchomić tą komendę z opcją -u. Spowoduje ona, że APT wyświetli kompletną listę pakietów, które zostaną zaktualizowane. Bez niej nie będziesz wiedział jakie pakiety aktualizujesz. APT pobierze najnowsze wersje każdego pakietu i zainstaluje je w odpowiedniej kolejności. Bardzo ważne jest uruchamianie apt-get update zawsze przed wydaniem polecenia apt-get upgrade. Zobacz sekcję Aktualizacja listy dostępnych pakietów, Rozdział 3.1, aby dowiedzieć się więcej szczegółów na jego temat. Spójrz także na poniższy przykład:
# apt-get -u upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages have been kept back cpp gcc lilo The following packages will be upgraded adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded. Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used. Do you want to continue? [Y/n]
Proces uaktualniania pakietów jest bardzo prosty. Zauważ, że w pierwszych kilku liniach APT informuje, które pakiety zostaną pozostawione nietknięte. Oznacza to, że istnieją nowsze wersje tych pakietów, ale z jakichś powodów nie zostaną zainstalowane. Przyczynami takiego stanu mogą być zepsute zależności (pakiet, od którego zależy nie ma dostępnej wersji do pobrania) lub nowe zależności (pakiet w ostatniej wersji zależy od nowego pakietu).
W pierwszym przypadku nie ma prostego rozwiązania. W drugim wystarczy uruchomić komendę apt-get install, aby zainstalować specyficzny pakiet wraz z zależnościami. Jeszcze prostszym rozwiązaniem jest użycie komendy dist-upgrade. Zobacz sekcję Aktualizacja do nowego wydania, Rozdział 3.5, aby dowiedzieć się więcej na ten temat.
Ta zdolność APT-a pozwala Ci uaktualnić cały system Debian za jednym razem, zarówno poprzez sieć Internet jaki i z nowej płyty CD (nabytej lub pobranej w postaci obrazu ISO).
Jest ona również używana, gdy ulegają zmianie relacje pomiędzy zainstalowanymi pakietami. Dzięki poleceniu apt-get upgrade, pakiety te pozostaną w spokoju (pozostawione nietknięte).
Dla przykładu, przypuśćmy że używamy wydania nr 0 stabilnej wersji Debiana i
kupujemy płytę CD z wydaniem nr 3. Możemy użyć APT-a do aktualizacji systemu z
tej nowej płyty CD. W tym celu najpierw użyj programu apt-cdrom
(więcej szczegółów w sekcji Dodawanie
CD-ROM-u do pliku sources.list, Rozdział 2.4), aby dodać tą płytę do pliku
/etc/apt/sources.list, a następnie uruchom program apt-get
dist-upgrade.
Jest ważną rzeczą zauważenie, że APT zawsze szuka najnowszych wersji pakietów. Dlatego, jeśli Twój plik /etc/apt/sources.list zawiera listę archiwów z nowszymi wersjami pakietów niż na płycie CD, to APT nie pobierze ich z płyty, lecz właśnie stamtąd.
W przykładzie pokazanym w sekcji Aktualizacja pakietów, Rozdział 3.4 widzieliśmy, że część pakietów została pozostawiona nietknięta. Teraz możemy rozwiązać ten problem właśnie za pomocą metody dist-upgrade:
# apt-get -u dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following NEW packages will be installed: cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1 libpcre2 logrotate mailx The following packages have been kept back lilo The following packages will be upgraded adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded. Need to get 0B/7098kB of archives. After unpacking 3118kB will be used. Do you want to continue? [Y/n]
Zauważ teraz, że pakiety zostaną zaktualizowane i że zostaną też zainstalowane nowe pakiety (nowe zależności tych pakietów). Zauważ również, iż lilo wciąż pozostaje nietknięte. Przyczyną tego problemu jest zapewne coś więcej niż nowa zależność. Odnajdziemy ją uruchamiając:
# apt-get -u install lilo Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2 logrotate mailx The following packages will be REMOVED: debconf-tiny The following NEW packages will be installed: cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2 logrotate mailx The following packages will be upgraded lilo 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded. Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used. Do you want to continue? [Y/n]
Jak widać powyżej, lilo ma nowy konflikt z pakietem debconf-tiny
,
który uniemożliwia jego instalację (lub uaktualnienienie) bez usunięcia pakietu
debconf-tiny
.
Aby przekonać się, co było przyczyną pozostawienia pakietu nietkniętym lub usunięcia pakietu możemy użyć poniższego polecenia:
# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Starting Starting 2 Investigating python1.5 Package python1.5 has broken dep on python1.5-base Considering python1.5-base 0 as a solution to python1.5 0 Holding Back python1.5 rather than change python1.5-base Investigating python1.5-dev Package python1.5-dev has broken dep on python1.5 Considering python1.5 0 as a solution to python1.5-dev 0 Holding Back python1.5-dev rather than change python1.5 Try to Re-Instate python1.5-dev Done Done The following packages have been kept back gs python1.5-dev 0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
W ten sposób można łatwo sprawdzić, że pakiet python1.5-dev nie może zostać zainstalowany z powodu niespełnienia zależności przez pakiet python1.5.
W czasie instalowania pakietu APT pobiera niezbędne pliki z serwera wskazanego
w pliku /etc/apt/sources.list
, umieszcza je w lokalnym
repozytorium (/var/cache/apt/archives/
), a następnie instaluje w
sposób opisany w sekcji Instalacja pakietów, Rozdział
3.2.
Z czasem lokalne repozytorium może się rozrosnąć i zająć dużą ilość przestrzeni
dysku. Na szczęście APT jest wyposażony w narzędzia, które umożliwiają
zarządzanie lokalnym repozytorium. Należą do nich metody clean i
autoclean programu apt-get
.
apt-get clean
usuwa wszystkie pliki z wyjątkiem plików
"blokujących" (ang. lock files) z katalogów
/var/cache/apt/archives/
i
/var/cache/apt/archives/partial/
. Jednakże, jeśli będziesz chciał
ponownie zainstalować pakiet, to APT jeszcze raz pobierze niezbędne pliki.
apt-get autoclean
usuwa tylko te pliki, które nie będą mogły być
później pobrane z Sieci.
Poniższy przykład pokazuje w jaki sposób działa metoda autoclean:
# ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm* logrotate_3.5.9-7_i386.deb logrotate_3.5.9-8_i386.deb gpm_1.19.6-11_i386.deb
W katalogu /var/cache/apt/archives
znajdują się dwa pliki z
pakietem logrotate
i jeden z pakietem gpm
.
# apt-show-versions -p logrotate logrotate/stable uptodate 3.5.9-8 # apt-show-versions -p gpm gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12
Program apt-show-versions
informuje, że plik
logrotate_3.5.9-8_i386.deb
zawiera najnowszą wersję pakietu
logrotate
, a zatem plik logrotate_3.5.9-7_i386.deb
jest już bezużyteczny. Także plik gpm_1.19.6-11_i386.deb
nie
będzie dłużej potrzebny, gdyż dostępna jest już nowsza wersja pakietu
gpm
.
# apt-get autoclean Reading Package Lists... Done Building Dependency Tree... Done Del gpm 1.19.6-11 [145kB] Del logrotate 3.5.9-7 [26.5kB]
Jak widać powyżej, apt-get autoclean usuwa tylko stare pliki.
Więcej informacji na temat programu apt-show-versions
można
znaleźć w sekcji Jak uaktualniać pakiety do
nowszej wersji z określonej wersji Debiana, Rozdział 3.9.
dselect
jest programem, który pomaga użytkownikom Debiana wybrać
pakiety, które chcą zainstalować. Jest uważany za nieco skomplikowany i dość
nieciekawy, ale jeśli nabierzesz wprawy, to będziesz się swobodnie posługiwał
jego konsolowym interfejsem.
Jedną z cech programu dselect jest to, że informuje o tym, które jeszcze pakiety Debiana są "zalecane" i "proponowane" do zainstalowania. Aby użyć tego programu, jako root uruchom `dselect'. Wybierz 'apt' jako metodę dostępu. Nie jest to w rzeczywistości niezbędne, ale jeśli nie używasz CD-ROM-u i chcesz pobierać pakiety z Internetu, to jest to najlepszy sposób używania dselecta.
Aby jeszcze lepiej zrozumieć w jaki sposób używać dselecta, przeczytaj
dokumentacje do niego, którą można znaleźć na stronie http://www.debian.org/doc/ddp
.
Po wybraniu pakietów przy pomocy dselecta, użyj:
# apt-get -u dselect-upgrade
tak, jak to pokazano na przykładzie poniżej:
# apt-get -u dselect-upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: lbxproxy The following NEW packages will be installed: bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0 gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy util-linux-locales vacation xbill xplanet-images The following packages will be upgraded debian-policy 1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded. Need to get 7140kB of archives. After unpacking 16.3MB will be used. Do you want to continue? [Y/n]
Porównaj to z tym, co widzisz, gdy uruchamiasz apt-get dist-upgrade w tym samym systemie.
# apt-get -u dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following packages will be upgraded debian-policy 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 421kB of archives. After unpacking 25.6kB will be freed. Do you want to continue? [Y/n]
Zwróć uwagę, iż wiele z powyższych pakietów będzie instalowana, ponieważ są "zalecane" lub "proponowane" przez inne. Pozostałe pakiety będą instalowane lub usunięte (np. w przypadku pakietu lbxproxy) zgodnie z naszym wyborem, którego dokonaliśmy przy użyciu dselecta. Dselect może być naprawdę potężnym narzędziem, gdy jest używany razem z APT-em.
Czasami ludzie chcą używać jednej z wersji Debiana jako ich głównego systemu i jednego lub kilku pakietów z innej wersji.
Aby określić, która wersja Debiana jest Twoją wersją główną, w pliku
/etc/apt/apt.conf
powinieneś umieścić linię:
APT::Default-Release "wersja";
gdzie wersja jest wersją Debiana, którą chcesz używać jako swojej głównej dystrybucji. Wersjami, których możesz używać są stable (`stabilna'), testing (`testowa') i unstable (`niestabilna'). Aby zainstalować pakiet z innej wersji musisz użyć APT-a w następujący sposób:
# apt-get -t dystrybucja install pakiet
Aby polecenie zadziałało, potrzebujesz przynajmniej jednej linii w pliku
/etc/apt/sources.list
ze źródłem pakietów dla dystrybucji, z
której pakiet chcesz zainstalować i źródło te musi zawierać ten pakiet.
Możesz również dokładnie określić wersję instalowanego pakietu używając składni:
# apt-get install pakiet=wersja
Dla przykładu, poniższa linia zainstaluje wersję 2.2.4-1 pakietu
nautilus
:
# apt-get install nautilus=2.2.4-1
WAŻNE: `niestabilna' wersja Debiana to wersja, do której w pierwszej kolejności trafiają najnowsze wersje pakietów .deb. W tej dystrybucji widoczne są wszystkie zmiany pakietów, od tych drobnych do tych bardzo poważnych, które wpływają na wiele innych pakietów, a nawet cały system. Z tego powodu ta wersja dystrybucji nie powinna być używana przez niedoświadczonych użytkowników oraz tych, którzy potrzebują stabilnego systemu.
Wersja `testowa' dystrybucji jest trochę lepsza od `niestabilnej' pod względem stabilności, ale systemy produkcyjne powinny używać wersji `stabilnej'.
Program apt-show-versions
umożliwia użytkownikom
"wymieszanych" dystrybucji bezpieczne uaktualnienie swoich systemów
bez ryzyka obniżenia ich dotychczasowej stabilności. Dla przykładu, istnieje
możliwość uaktualnienia do nowszej wersji Twoich niestabilnych pakietów po
zainstalowaniu pakietu apt-show-versions
:
# apt-get install `apt-show-versions -u -b | grep unstable`
Możesz mieć okazję modyfikować coś w pakiecie i nie mieć czasu lub chęci, aby dokonywać tych zmian w nowych wersjach programów. Możesz też dla przykładu uaktualnić swoją dystrybucję Debiana do wersji 3.0, ale chcieć wciąż używać pewnych wersji pakietów z Debiana 2.2. Możesz "przyszpilić" wersję pakietu, którą zainstalowałeś i która nie będzie uaktualniona.
Używanie tego sposobu jest proste. Po prostu musisz wyedytować plik /etc/apt/preferences.
Jego format jest także prosty:
Package: <pakiet> Pin: <definicja "przyszpilenia"> Pin-Priority: <priorytet "przyszpilenia">
Na przykład, aby zachować pakiet sylpheed
, który zmodyfikowałem,
po to by móc używać opcji "reply-to-list" w wersji 0.4.99, dodałem:
Package: sylpheed Pin: version 0.4.99*
Zauważ, że użyłem znaku * (gwiazdka). To jest tzw. "znak zastępczy", który mówi, że chcę "przyszpilić" wszystkie wersje pakietów rozpoczynające się od numeru 0.4.99. Tak jest z powodu wersji tych pakietów Debiana i "debianowych korekt" i nie chcę uniknąć instalacji tych korekt. Zatem, dla przykładu, wersje 0.4.99-1 i 0.4.99-10 zostaną zainstalowane, gdy tylko będą dostępne. Zwróć uwagę, że jeśli zmodyfikowałeś pakiet, nie będziesz chciał robić tych rzeczy w ten sposób.
Pole Pin-Priority jest opcjonalne; jeśli nie zostało określone, to domyślnie przyjmuje wartość 989.
Przyjrzyjmy się jak działa priorytet "przyszpilenia". Priorytet mniejszy niż 0 wskazuje, że pakiet nigdy nie powinien być zainstalowany. Priorytety o wartościach od 0 do 100 wskazują pakiety, które nie są zainstalowane i które nie mają dostępnych wersji. Nie będą one brać udziału w procesie wyboru wersji. Priorytet równy 100 jest priorytetem przypisanym do zainstalowanego pakietu, aby zainstalowana wersja pakietu została zastąpiona przez inną wersję, wersja ta musi mieć priorytet większy niż 100.
Priorytety powyżej 100 wskazują, że pakiet powinien być zainstalowany. Zwykle zainstalowana wersja pakietu jest zmieniana tylko w czasie aktualizacji do nowszej wersji. Priorytety o wartościach pomiędzy 100 i 1000 (włącznie) wskazują te typowe zachowanie. Pakiet z takim priorytetem nie zostanie umniejszony do dostępnej wersji o mniejszym numerze. Na przykład jeśli mam zainstalowaną wersję 0.5.3 pakietu sylpheed i zdefiniuję "przyszpilenie" wersji 0.4.99 tego pakietu z priorytetem 999, to wersja 0.4.99 nie zostanie zainstalowana, aby spełnić "przyszpilenie". Aby uczynić pakiet "zmniejszonym" i spełnić "przyszpilenie" musisz ustawić priorytet na wartość większą niż 1000.
Przyszpilenie można określić na wersji, wydaniu lub pochodzeniu pakietu.
Przyszpilenie wersji, tak jak widzieliśmy, wspiera dosłowne numery wersji, jak i znaki zastępcze w celu określenia kilku wersji jednocześnie.
Opcja wydanie zależy od pliku Release z repozytorium APT-a lub z płyty CD. Opcja ta może nie być użyteczna zawsze jeśli używasz repozytoriów pakietów, które nie dostarczają tego pliku. Możesz zobaczyć zawartość plików Release, które masz w pliku /var/lib/apt/lists/. Parametrami dla wydania są a (archiwum), c (komponenty), v (wersja), o (pochodzenie) and l (etykieta).
Przykład:
Package: * Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian Pin-Priority: 1001
W tym przykładzie wybraliśmy wersję Debiana 2.2* (którą może być dla przykładu korekta 2.2r2 albo 2.2r3 - określa ona tzw. "punkt wydania", który zwykle zawiera nowe poprawki bezpieczeństwa i inne bardzo ważne uaktualnienia), repozytorium stable, sekcję main (w przeciwieństwie do sekcji contrib lub non-free) oraz pochodzenie i etykietę Debian. Pochodzenie (o=) definiuje kto stworzył plik Release, a etykieta (l=) - nazwę dystrybucji, na przykład Debian dla Debiana, Progeny dla Progeny. Oto przykładowy plik Release:
$ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release Archive: stable Version: 2.2r3 Component: main Origin: Debian Label: Debian Architecture: i386
[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ dalej ]
APT HOWTO
1.8.5 - lipiec 2003kov@debian.org
ptecza@debianusers.pl