Provided by: apt_2.0.11_amd64 

NAZWA
apt_preferences - Plik kontrolny preferencji APT
OPIS
Plik preferencji APT /etc/apt/preferences i pliki częściowe w katalogu /etc/apt/preferences.d/ są używane
do określania wersji pakietów wybieranych do instalacji.
Jeżeli plik sources.list(5) zawiera odniesienia do więcej niż jednej dystrybucji (na przykład stable i
testing), to do zainstalowania może być dostępnych kilka wersji tego samego pakietu. APT nadaje priorytet
każdej z dostępnych wersji. apt-get wybiera do zainstalowania wersję o najwyższym priorytecie (jeśli
zależności pakietu pozwalają na jego zainstalowanie). Preferencje APT nadpisują domyślne priorytety
ustawiane wersjom pakietów, pozwalając użytkownikowi kontrolować, które wersje pakietów są wybierane do
zainstalowania.
Może być dostępnych kilka instancji tej samej wersji pakietu, jeśli plik sources.list(5) zawiera
odwołania do więcej niż jednego źródła. W takim wypadku apt-get pobierze instancję ze źródła wymienionego
najwcześniej w pliku sources.list(5). Preferencje APT nie mają wpływu na wybór instancji, ale na wybór
wersji.
Preferencje są mocnym narzędziem w rękach administratora systemu, ale mogą stać się też jego największym
koszmarem, jeśli zostaną nieostrożnie użyte! APT nie podważa preferencji, tak więc błędne ustawienia
spowodują pojawienie się nieinstalowalnych pakietów lub podejmowanie przez APT niepoprawnych decyzji
podczas aktualizacji pakietów. Mogą wystąpić jeszcze większe problemy, gdy w pliku preferencji APT
zostanie skonfigurowanych wiele wydań dystrybucji bez zrozumienia zawartości kolejnych rozdziałów tej
strony. Pakiety dołączone do określonego wydania nie są testowane w połączeniu z pakietami z innych
(starszych lub nowszych) wydań, więc w takich sytuacjach nie zawsze działają, tak jakby się tego od nich
oczekiwało. Ostrzegamy!
Proszę zauważyć, że pliki w katalogu /etc/apt/preferences.d są przetwarzane w rosnącym porządku
alfanumerycznym. Należy również przestrzegać następującej konwencji: pliki albo nie powinny mieć żadnego
rozszerzenia, albo rozszerzeniem powinno być "pref", a ich nazwy powinny zawierać tylko i wyłącznie znaki
alfanumeryczne oraz myślniki ("-"), podkreślenia ("_") i kropki ("."). W przeciwnym wypadku APT zignoruje
plik o niepoprawnej nazwie i jeśli nazwa pliku nie pasuje do wzorca podanego w liście zmiennych
konfiguracji Dir::Ignore-Files-Silently, to wypisze odpowiedni komunikat.
Domyślne przypisania priorytetów APT
Jeśli plik preferencji nie istnieje lub nie zawiera wpisu pasującego do pewnej wersji, to priorytetem
przypisanym do tej wersji jest priorytet dystrybucji, do której wersja należy. Jest możliwe wybranie
jednej dystrybucji, tak zwanego "wydania docelowego", która otrzyma priorytet wyższy niż priorytet
domyślnie przypisywany innym dystrybucjom. To wydanie docelowe można ustawić w linii poleceń apt-get lub
w pliku konfiguracyjnym APT /etc/apt/apt.conf. Proszę zauważyć, że wydanie docelowe nadpisuje jakikolwiek
ogólny priorytet ustawiony w opisanym poniżej pliku /etc/apt/preferences, ale nie nadpisuje priorytetów
szczegółowych przypisanych do poszczególnych pakietów. Na przykład
apt-get install -t testing jakiś-pakiet
APT::Default-Release "stable";
Jeśli wydanie docelowe zostało podane, to APT używa następującego algorytmu do ustawiania priorytetów
wersjom pakietu. Przypisuje:
priorytet 1
wersjom pochodzącym z archiwów, których pliki Release mają wpis "NotAutomatic: yes" i nie mają wpisu
"ButAutomaticUpgrades: yes". Przykładem takiego archiwum jest archiwum experimental Debiana.
priorytet 100
wersji, która jest już zainstalowana (o ile jakaś jest) i wersjom pochodzącym z archiwów, które w
swoich plikach Release mają wpisy "NotAutomatic: yes" i "ButAutomaticUpgrades: yes", tak jak to robią
archiwa backport-ów Debiana począwszy od squeeze-backports.
priorytet 500
to the versions that do not belong to the target release.
priorytet 990
to the versions that belong to the target release.
The highest of those priorities whose description matches the version is assigned to the version.
Jeśli nie określono wydania docelowego, to APT przypisuje priorytet 100 wszystkim zainstalowanym wersjom
pakietów oraz priorytet 500 wszystkim niezainstalowanym wersjom pakietów, z wyjątkiem wersji pochodzących
z archiwów, których pliki Release są oznaczone jako "NotAutomatic: yes" - takie wersje otrzymują
priorytet 1 lub priorytet 100, jeśli dodatkowo są oznaczone jako "ButAutomaticUpgrades: yes".
APT, do określenia, którą wersję pakietu należy zainstalować, stosuje wtedy następujące reguły wymienione
w kolejności, w jakiej są stosowane.
• Nigdy nie zastępuje pakietu jego wcześniejszą wersją (tzw. "downgrading"), chyba że priorytet tej
wcześniejszej, dostępnej wersji przekracza 1000. (Należy zauważyć, że żaden z domyślnych priorytetów
APT nie przekracza 1000; tak wysokie priorytety mogą być ustawiane tylko w pliku konfiguracyjnym.
Instalowanie wcześniejszych wersji pakietów może być ryzykowną operacją).
• Instaluje wersję o najwyższym priorytecie.
• Jeśli dwie lub więcej wersji ma ten sam priorytet, to zainstalowana zostanie wersja nowsza (czyli z
większym numerem wersji).
• Jeśli dwie lub więcej wersji ma ten sam priorytet i numer wersji ale albo pakiety różnią się
niektórymi metadanymi, albo użyto opcji --reinstall, to zainstalowany zostanie pakiet jeszcze
niezainstalowany.
W typowej sytuacji zainstalowana wersja pakietu (priorytet 100) jest starsza od którejś z wersji
dostępnych ze źródeł wymienionych w pliku sources.list(5) (priorytet 500 lub 999). W takim wypadku
polecenia apt-get install jakiś-pakiet lub apt-get upgrade zaktualizują ten pakiet.
Rzadziej, ale się zdarza, że zainstalowana wersja pakietu jest nowsza niż jakakolwiek inna dostępna
wersja. Polecenia apt-get install jakiś-pakiet i apt-get upgrade nie zastąpią takiego pakietu
wcześniejszą wersją.
Czasami zainstalowana wersja pakietu jest nowsza niż wersja należąca do wydania docelowego, ale nie tak
nowa jak wersja należąca do innej dystrybucji. Polecenia apt-get install jakiś-pakiet oraz apt-get
upgrade zaktualizują taki pakiet, ponieważ przynajmniej jedna z dostępnych wersji ma większy priorytet
niż wersja zainstalowana.
Efekt stosowania preferencji APT
Plik preferencji APT pozwala administratorowi systemu na kontrolowanie przypisań priorytetów. Plik składa
się z jednego lub większej liczby wieloliniowych rekordów rozdzielonych pustymi liniami. Rekordy mogą
przyjmować jedną z dwóch postaci: szczegółową i ogólną.
• Postać szczegółowa przypisuje priorytet ("Pin-Priority") do jednego lub większej liczby podanych
pakietów i podanych wersji lub zakresów wersji. Na przykład następujący rekord ustawia wysoki
priorytet wszystkim wersjom pakietu perl, których numer wersji zaczyna się od "5.20". Można podać
wiele nazw pakietów, rozdzielając je od siebie spacjami.
Package: perl
Pin: version 5.20*
Pin-Priority: 1001
• Postać ogólna przypisuje priorytet wszystkim wersjom pakietów w podanej dystrybucji (to jest
wszystkim wersjom pakietów wymienionych w pewnym pliku Release) lub wszystkim wersjom pakietów
pochodzących ze strony internetowej identyfikowanej przez pełną nazwę domenową strony.
Ten wpis w postaci ogólnej w pliku preferencji APT ma zastosowanie tylko do grup pakietów. Na
przykład następujący rekord przypisuje wysoki priorytet wszystkim wersjom pakietów dostępnych na
lokalnym komputerze.
Package: *
Pin: origin ""
Pin-Priority: 999
Uwaga: słowem kluczowym używanym tutaj jest "origin", które może zostać użyte do dopasowania nazwy
komputera. Następujący rekord ustawi wysoki priorytet wszystkim wersjom dostępnym na serwerze
identyfikowanym przez nazwę komputera "ftp.de.debian.org".
Package: *
Pin: origin "ftp.de.debian.org"
Pin-Priority: 999
Nie należy tego mylić z polem Origin podanym w pliku Release. Wartością pola Origin w pliku Release
jest nie adres internetowy, ale nazwa autora lub dystrybutora, taka jak "Debian" lub "Ximian".
Następujący rekord przypisuje niski priorytet wszystkim wersjom pakietów należących do jakiejkolwiek
dystrybucji, której nazwą archiwum jest "unstable".
Package: *
Pin: release a=unstable
Pin-Priority: 50
Następujący rekord przypisuje niski priorytet wszystkim wersjom pakietów należących do jakiejkolwiek
dystrybucji, której nazwą kodową jest "bullseye".
Package: *
Pin: release n=bullseye
Pin-Priority: 900
Następujący rekord przypisuje wysoki priorytet wszystkim wersjom pakietów należącym do jakiegokolwiek
wydania, którego pole Archive (zawierające nazwę archiwum) jest równe "stable", a pole Version (numer
wersji wydania) wynosi "10".
Package: *
Pin: release a=stable, v=10
Pin-Priority: 500
The effect of the comma operator is similar to an "and" in logic: All conditions must be satisfied for
the pin to match. There is one exception: For any type of condition (such as two "a" conditions), only
the last such condition is checked.
Składnia wyrażeń regularnych i glob(7)
APT także wspiera dopasowywanie przy użyciu wzorców glob(7) i wyrażeń regularnych otoczonych znakami /.
Następujący przykład ustawia priorytet 500 wszystkim pakietom z dystrybucji experimental, których nazwa
zaczyna się od gnome (jako wzorzec glob(7)) lub zawiera słowo kde (jako rozszerzone wyrażenie regularne
POSIX otoczone ukośnikami).
Package: gnome* /kde/
Pin: release a=experimental
Pin-Priority: 500
Wyrażenia te mogą wystąpić wszędzie, gdzie tylko może wystąpić łańcuch znaków. Dlatego następujący
przykład przypisuje priorytet 990 wszystkim pakietom z wydania o nazwie zaczynającej się od focal.
Package: *
Pin: release n=focal*
Pin-Priority: 990
Jeśli wyrażenie regularne występuje w polu Package, to zachowanie jest takie samo, jakby to wyrażenie
regularne zostało zastąpione listą wszystkich pakietów, których nazwy pasują do tego wyrażenia
regularnego. Nie wiadomo jeszcze, czy to się nie zmieni w przyszłości, dlatego powinno się zawsze
umieszczać preferencje zawierające wzorce pakietów na początku, tak żeby mogły zostać nadpisane przez
preferencje dotyczące specyficznych pakietów. Wzorzec "*" w polu Package nie jest uznawany za wyrażenie
glob(7).
Pinning by source package
APT supports pinning by source packages. To pin by a source package, prepend "src:" to the package name.
For example, to pin all binaries produced by the apt source package of this APT's version to 990, you can
do:
Package: src:apt
Pin: version 2.0.11
Pin-Priority: 990
Source package pinning can be combined with regular expressions and glob patterns, and can also take a
binary architecture.
For example, let's pin all binaries for all architectures produced by any source package containing apt
in its name to 990:
Package: src:*apt*:any
Pin: version *
Pin-Priority: 990
Jak APT interpretuje priorytety
Priorytety (P) przypisane w pliku preferencji APT muszą być liczbami całkowitymi dodatnimi lub ujemnymi.
Są interpretowane następująco (ogólnie rzecz biorąc):
P >= 1000
powoduje, że wersja zostanie zainstalowana, nawet jeśli oznacza to zastąpienie pakietu jego
wcześniejszą wersją.
990 <= P < 1000
powoduje, że wersja zostanie zainstalowana, nawet jeśli nie pochodzi z wydania docelowego, chyba że
zainstalowana wersja jest nowsza.
500 <= P < 990
powoduje, że wersja zostanie zainstalowana, jeśli nie ma żadnej dostępnej wersji należącej do wydania
docelowego lub gdy nowsza wersja już jest zainstalowana.
100 <= P < 500
powoduje, że wersja zostanie zainstalowana, o ile nie jest dostępna wersja należąca do innej
dystrybucji lub nowsza wersja jest zainstalowana
0 < P < 100
powoduje, że wersja zostanie zainstalowana tylko wtedy, jeżeli żadna wersja pakietu nie jest jeszcze
zainstalowana
P < 0
zapobiega instalowaniu wersji
P = 0
has undefined behaviour, do not use it.
The first specific-form record matching an available package version determines the priority of the
package version. Failing that, the priority of the package is defined as the maximum of all priorities
defined by generic-form records matching the version. Records defined using patterns in the Pin field
other than "*" are treated like specific-form records.
Na przykład, załóżmy, że plik preferencji APT zawiera trzy pokazane wcześniej rekordy:
Package: perl
Pin: version 5.20*
Pin-Priority: 1001
Package: *
Pin: origin ""
Pin-Priority: 999
Package: *
Pin: release unstable
Pin-Priority: 50
Wtedy:
• Zostanie zainstalowana najnowsza dostępna wersja pakietu perl, jeśli tylko numer tej wersji zaczyna
się od "5.20". Jeśli jakakolwiek wersja 5.20* jest dostępna, ale zainstalowana jest już wersja 5.24*,
to pakiet perl zostanie zastąpiony tą dostępną wcześniejszą wersją 5.20*.
• Wersja jakiegokolwiek pakietu innego niż perl dostępna na lokalnym systemie ma wyższy priorytet niż
jakakolwiek inna wersja tego pakietu, włączając w to wersję należącą do wydania docelowego.
• Wersja pakietu pochodząca nie z lokalnego systemu, ale z jakiegoś innego źródła wymienionego w
sources.list(5) i należąca do dystrybucji unstable będzie zainstalowana tylko wtedy, gdy zostanie
wybrana (przez użytkownika) do instalacji i żadna inna wersja tego pakietu nie jest jeszcze
zainstalowana.
Określanie wersji pakietu i właściwości dystrybucji
Lokalizacje wymienione w pliku sources.list(5) powinny zawierać pliki Packages i Release opisujące
pakiety dostępne w danej lokalizacji.
Plik Packages zazwyczaj znajduje się w katalogu.../dists/nazwa-dystrybucji/komponent/architektura: na
przykład .../dists/stable/main/binary-i386/Packages. Składa się z serii wieloliniowych rekordów, po
jednym na każdy pakiet dostępny w tym katalogu. Podczas ustawiania priorytetów APT bierze pod uwagę tylko
dwie linie z każdego rekordu:
linia Package:
podaje nazwę pakietu
linia Version:
podaje numer wersji danego pakietu
Plik Release znajduje się zazwyczaj w katalogu.../dists/nazwa-dystrybucji: na przykład
.../dists/stable/Release lub .../dists/buster/Release. Składa się z jednego wieloliniowego rekordu, który
odnosi się do wszystkich pakietów znajdujących się w drzewie katalogów o korzeniu w katalogu, w którym
znajduje się opisywany plik. W przeciwieństwie do pliku Packages, prawie wszystkie linie z pliku Release
są brane pod uwagę podczas ustawiania priorytetów APT:
linia Archive: lub Suite:
nazywa archiwum, do którego należą wszystkie pakiety znajdujące się w drzewie katalogów. Na przykład
linia "Archive: stable" lub "Suite: stable" mówi, że wszystkie pakiety w drzewie katalogów poniżej
katalogu nadrzędnego pliku Release należą do archiwum stable. Wartość tę można podać w pliku
preferencji APT w następujący sposób:
Pin: release a=stable
linia Codename:
nazwa kodowa dystrybucji, do której należą wszystkie pakiety w drzewie katalogów. Na przykład linia
"Codename: bullseye" mówi, że wszystkie pakiety w drzewie katalogów poniżej katalogu nadrzędnego
pliku Release należą do wersji nazwanej bullseye. Wartość tę można podać w pliku preferencji APT w
następujący sposób:
Pin: release n=bullseye
linia Version:
określa wersję wydania. Na przykład pakiety w drzewie katalogów mogłyby należeć do wersji 10
dystrybucji Debiana. Proszę zauważyć, że zazwyczaj dystrybucje testing i unstable nie mają
przypisanego numeru wersji, ponieważ nie są one oficjalnie wydawane. Wersję wydania można podać w
pliku preferencji APT w następujący sposób:
Pin: release v=10
Pin: release a=stable, v=10
Pin: release 10
linia Component:
określa komponent licencji powiązany z pakietami w drzewie katalogów pliku Release. Na przykład linia
"Component: main" mówi, że wszystkie pakiety w drzewie katalogów pochodzą z komponentu main, co
oznacza, że wszystkie są licencjonowane w 100% zgodnie z "Wytycznymi Debiana dotyczącymi Wolnego
Oprogramowania" ("Debian Free Software Guidelines"). Komponent można podać w pliku preferencji APT w
następujący sposób:
Pin: release c=main
linia Origin:
określa twórcę pakietów w drzewie katalogów pliku Release. Najczęściej jest to Debian. Twórcę
pakietów można podać w pliku preferencji APT w następujący sposób:
Pin: release o=Debian
linia Label:
określa etykietę pakietów w drzewie katalogów pliku Release. Najczęściej jest to Debian. Etykietę tę
można podać w pliku preferencji APT w następujący sposób:
Pin: release l=Debian
Wszystkie pliki Packages i Release pobierane z lokalizacji podanych w pliku sources.list(5) są
przechowywane w katalogu /var/lib/apt/lists lub w pliku o nazwie będącej wartością zmiennej
Dir::State::Lists z pliku apt.conf. Na przykład plik o nazwie
debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release zawiera plik Release pobrany z
komputera debian.lcs.mit.edu dla plików komponentu contrib architektury binary-i386 dystrybucji unstable
.
Opcjonalne linie w rekordzie preferencji APT
Każdy rekord w pliku preferencji APT może opcjonalnie zaczynać się od jednej lub większej liczby linii
zaczynających się od wyrazu Explanation: (tj. objaśnienie). Pozwala to na dodawanie komentarzy do
rekordów.
PRZYKŁADY
Śledzenie dystrybucji stabilnej
Następujący plik preferencji APT spowoduje przypisanie priorytetu większego niż domyślny (500) wszystkim
wersjom pakietu należącym do dystrybucji stable i zakazująco niskiego priorytetu wersjom pakietów
należącym do innych dystrybucji Debiana.
Explanation: Odinstaluj lub nie instaluj wersji pakietów pochodzących z Debiana
Explanation: innych niż te w dystrybucji stabilnej
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
Z odpowiednim plikiem sources.list(5) i z powyższym plikiem preferencji, każde z następujących poleceń
spowoduje, że APT zaktualizuje pakiety do najnowszych wersji z dystrybucji stable.
apt-get install nazwa-pakietu
apt-get upgrade
apt-get dist-upgrade
Następujące polecenie spowoduje, że APT zaktualizuje podany pakiet do najnowszej wersji z dystrybucji
testing. Pakiet nie będzie aktualizowany do czasu ponownego wydania tego samego polecenia.
apt-get install pakiet/testing
Śledzenie dystrybucji testowej lub niestabilnej
Następujący plik preferencji APT spowoduje przypisanie wysokiego priorytetu wersjom pakietów z
dystrybucji testing, niskiego priorytetu wersjom pakietów z dystrybucji unstable oraz zakazująco niskiego
priorytetu wersjom pakietów należącym do innych dystrybucji Debiana.
Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: release a=unstable
Pin-Priority: 800
Package: *
Pin: release o=Debian
Pin-Priority: -10
Z odpowiednim plikiem sources.list(5) i z powyższym plikiem preferencji, każde z następujących poleceń
spowoduje, że APT zaktualizuje pakiety do najnowszych wersji z dystrybucji testing.
apt-get install nazwa-pakietu
apt-get upgrade
apt-get dist-upgrade
Następujące polecenie spowoduje, że APT zaktualizuje podany pakiet do najnowszej wersji z dystrybucji
unstable. Od tej pory apt-get upgrade będzie aktualizował pakiet do najnowszej wersji z dystrybucji
testing, jeśli ta wersja będzie nowsza od wersji zainstalowanej, lub w przeciwnym wypadku - do najnowszej
wersji z dystrybucji unstable, jeśli ta wersja będzie nowsza od wersji zainstalowanej.
apt-get install pakiet/unstable
Śledzenie ewolucji wydania o danej nazwie kodowej
Następujący plik preferencji APT spowoduje przypisanie priorytetu większego niż domyślny (500) wszystkim
wersjom pakietu należącym do dystrybucji o podanej nazwie kodowej oraz zakazująco niskiego priorytetu
wersjom pakietów należącym do innych dystrybucji Debiana, nazw kodowych i archiwów. Proszę zauważyć, że z
tym plikiem preferencji APT będzie śledziło migrację wydania z archiwum testing przez stable aż do
oldstable. Aby śledzić postępy na przykład w dystrybucji testing niezależnie od nazwy kodowej tej
dystrybucji, należy użyć jednej z zaprezentowanych powyżej przykładowych konfiguracji.
Explanation: Odinstaluj lub nie instaluj wersji pakietów pochodzących z Debiana
Explanation: innych niż te w dystrybucji bullseye lub sid
Package: *
Pin: release n=bullseye
Pin-Priority: 900
Explanation: Debian unstable jest zawsze nazwany sid
Package: *
Pin: release n=sid
Pin-Priority: 800
Package: *
Pin: release o=Debian
Pin-Priority: -10
Z odpowiednim plikiem sources.list(5) i z powyższym plikiem preferencji, każde z następujących poleceń
spowoduje, że APT zaktualizuje pakiety do najnowszych wersji z wydania nazwanego bullseye.
apt-get install nazwa-pakietu
apt-get upgrade
apt-get dist-upgrade
Następujące polecenie spowoduje, że APT zaktualizuje podany pakiet do najnowszej wersji z dystrybucji
sid. Od tej pory apt-get upgrade będzie aktualizował pakiet do najnowszej wersji z dystrybucji bullseye,
jeśli ta wersja będzie nowsza od wersji zainstalowanej, lub w przeciwnym wypadku - do najnowszej wersji z
dystrybucji sid, jeśli ta wersja będzie nowsza od wersji zainstalowanej.
apt-get install pakiet/sid
PLIKI
/etc/apt/preferences
Plik zawierający preferencje wyboru wersji. Jest to miejsce, w którym określa się tzw. "pinning", tj.
preferencje, skąd brać pewne pakiety - z innego źródła, z innej dystrybucji lub o innej wersji.
Pozycja w pliku konfiguracyjnym:Dir::Etc::Preferences.
/etc/apt/preferences.d/
Części pliku preferencji wyboru wersji. Pozycja w pliku konfiguracyjnym: Dir::Etc::PreferencesParts.
ZOBACZ TAKŻE
apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)
BUGS
Strona błędów APT[1]. Aby zgłosić błąd w APT, proszę przeczytać /usr/share/doc/debian/bug-reporting.txt
lub opis polecenia reportbug(1).
TŁUMACZENIE
Tłumaczenie stron podręcznika: Robert Luberda <robert@debian.org>, 2000-2012. Tłumaczenie przewodnika
offline: Krzysztof Fiertek <akfedux@megapolis.pl>, 2004
Proszę zauważyć, że przetłumaczony dokument może zawierać fragmenty nieprzetłumaczone. Ma to na celu
uniknięcie utracenia istotnych informacji, w przypadkach gdy oryginał zostanie zaktualizowany, a
tłumaczenie - nie.
AUTOR
zespół APT
PRZYPISY
1. Strona błędów APT
http://bugs.debian.org/src:apt
APT 2.0.11 17 styczeń 2020 APT_PREFERENCES(5)