NAZWA
apt_preferences - Plik kontrolny preferencji APTOPIS
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ładapt-get install -t testing jakiś-pakiet
APT::Default-Release "stable";
to the versions coming from archives which in
their Release files are marked as "NotAutomatic: yes" but not
as "ButAutomaticUpgrades: yes" like the Debian experimental archive,
as well as versions that are not phased on this systems.
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.
Phased Updates
APT understands a field called Phased-Update-Percentage which can be used to control the rollout of a new version. It is an integer between 0 and 100. A system's eligibility to a phased update is determined by seeding random number generator with the package source name, the version number, and /etc/machine-id, and then calculating an integer in the range [0, 100]. If this integer is larger than the Phased-Update-Percentage, the version is pinned to 1, and thus held back. Otherwise, normal policy rules apply. In case you have multiple systems that you want to receive the same set of updates, you can set APT::Machine-ID to a UUID such that they all phase the same, or set APT::Get::Never-Include-Phased-Updates or APT::Get::Always-Include-Phased-Updates to true such that APT will never/always consider phased updates.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.32". Można podać
wiele nazw pakietów, rozdzielając je od siebie spacjami.
Package: perl Pin: version 5.32* 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.
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".
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".
Następujący rekord przypisuje niski priorytet wszystkim wersjom
pakietów należących do jakiejkolwiek dystrybucji,
której nazwą kodową jest "trixie".
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
"12".
Package: * Pin: origin "" Pin-Priority: 999
Package: * Pin: origin "ftp.de.debian.org" Pin-Priority: 999
Package: * Pin: release a=unstable Pin-Priority: 50
Package: * Pin: release n=trixie Pin-Priority: 900
Package: * Pin: release a=stable, v=12 Pin-Priority: 500
Matching packages in the Package field
The Package field specifies the package that a pinning priority is applied to. The field can either contain a binary package name, a source package name (prefixed with "src:"), a glob(7) expression or a regular expression (surrounded by slashes). Multiple package names, glob(7) expressions and regular expressions can be listed separated by whitespace in which case the record will match any of the matched packages. By default, only packages of the native architecture are matched. To match binary packages of any architecture, add the :any suffix to the package name. You can also limit matching to a specific architecture by appending the architecture name to the package name, separated by a colon character. For example, the following example uses a glob expression and a regular expression to assign the priority 500 to all packages from experimental where the name starts with gnome (as a glob(7)-like expression) or contains the word kde (as a POSIX extended regular expression surrounded by slashes).Package: gnome* /kde/ Pin: release a=experimental Pin-Priority: 500
Package: * Pin: release n=lunar* Pin-Priority: 990
Package: src:apt Pin: version 2.6.1 Pin-Priority: 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 >= 1000powoduje, ż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.32* Pin-Priority: 1001 Package: * Pin: origin "" Pin-Priority: 999 Package: * Pin: release unstable Pin-Priority: 50
•Zostanie zainstalowana najnowsza
dostępna wersja pakietu perl, jeśli tylko numer tej wersji
zaczyna się od "5.32". Jeśli jakakolwiek wersja
5.32* jest dostępna, ale zainstalowana jest już wersja 5.36*, to
pakiet perl zostanie zastąpiony tą dostępną
wcześniejszą wersją 5.32*.
•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/bookworm/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:
linia Codename:
Pin: release a=stable
nazwa kodowa dystrybucji, do której
należą wszystkie pakiety w drzewie katalogów. Na
przykład linia "Codename: trixie" mówi, że
wszystkie pakiety w drzewie katalogów poniżej katalogu
nadrzędnego pliku Release należą do wersji nazwanej
trixie. Wartość tę można podać w pliku
preferencji APT w następujący sposób:
linia Version:
Pin: release n=trixie
określa wersję wydania. Na
przykład pakiety w drzewie katalogów mogłyby
należeć do wersji 12 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:
linia Component:
Pin: release v=12 Pin: release a=stable, v=12 Pin: release 12
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:
linia Origin:
Pin: release c=main
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:
linia Label:
Pin: release o=Debian
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:
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 .
Pin: release l=Debian
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
apt-get install nazwa-pakietu apt-get upgrade apt-get dist-upgrade
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
apt-get install nazwa-pakietu apt-get upgrade apt-get dist-upgrade
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 trixie lub sid Package: * Pin: release n=trixie 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
apt-get install nazwa-pakietu apt-get upgrade apt-get dist-upgrade
apt-get install pakiet/sid
PLIKI
/etc/apt/preferencesPlik 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 <[email protected]>, 2000-2012. Tłumaczenie przewodnika offline: Krzysztof Fiertek <[email protected]>, 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ół APTPRZYPISY
- 1.
- Strona błędów APT
03 styczeń 2022 | APT 2.6.1 |