Home Dokumentacje APT HOWTO (Obsolete Documentation) - Część 3 - Zarządzanie pakietami
22 | 08 | 2019
APT HOWTO (Obsolete Documentation) - Część 3 - Zarządzanie pakietami Drukuj


[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ dalej ]


APT HOWTO (Obsolete Documentation)
Część 3 - Zarządzanie pakietami


3.1 Aktualizacja listy dostępnych pakietów

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.


3.2 Instalacja pakietów

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]

3.3 Usuwanie pakietów

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).


3.4 Aktualizacja pakietów

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.


3.5 Aktualizacja do nowego wydania

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.


3.6 Usuwanie niepotrzebnych plików z pakietami: apt-get clean i autoclean

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.


3.7 Używanie APT-a razem z programem dselect

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.


3.8 Jak utrzymywać "wymieszany" system

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'.


3.9 Jak uaktualniać pakiety do nowszej wersji z określonej wersji Debiana

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`

3.10 Jak zachować określone wersje zainstalowanych pakietów

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 (Obsolete Documentation)

1.8.5 - lipiec 2003

Gustavo Noronha Silva Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
polskie tłumaczenie: Paweł Tęcza Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.


 
Linki sponsorowane

W celu realizacji usług i funkcji na witrynach internetowych ZUI "ELPRO" stosujemy pliki cookies. Korzystanie z witryny bez zmiany ustawień dotyczących plików cookies oznacza, że będą one zapisywane w urządzeniu wyświetlającym stronę internetową. Więcej szczegółów w Polityce plików cookies.

Akceptuję pliki cookies z tej witryny.