Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

8.3.2. Управління пріоритетами пакетів


Одним з найважливіших аспектів конфігурації APT є управління пріоритетами, пов'язаними з кожним джерелом пакетів. Наприклад, ви можете розширити свою систему Kali Rolling одним або двома новішими пакетами від Debian Unstable або Debian Experimental. Кожному доступному пакету можна призначити пріоритет (один пакет може мати декілька пріоритетів залежно від його версії або дистрибутива, який його надає). Ці пріоритети впливатимуть на поведінку APT: для кожного пакета він завжди вибирає версію з найвищим пріоритетом (за винятком випадків, коли ця версія старіша за встановлену та її пріоритет менший за 1000).

APT визначає кілька пріоритетів за замовчуванням. Кожна встановлена ​​версія пакета має пріоритет 100. Неінстальована версія має пріоритет 500 за замовчуванням, але вона може перейти до 990, якщо вона є частиною цільового випуску (визначається за допомогою -t параметр командного рядка або APT::Default-Release директиву з конфігурації).

Ви можете змінити пріоритети, додавши записи в / etc / apt / preferences файл з іменами уражених пакетів, їх версією, походженням і новим пріоритетом.

APT ніколи не встановить старішу версію пакунка (тобто пакунок, номер версії якого нижчий за номер версії поточного пакета), за винятком випадків, коли його пріоритет вище 1000. APT завжди встановлюватиме пакет з найвищим пріоритетом, який слідує за цим обмеження. Якщо два пакети мають однаковий пріоритет, APT встановлює найновіший (номер версії якого є найвищим). Якщо два пакети однієї версії мають однаковий пріоритет, але різняться за своїм вмістом, APT встановлює версію, яка не встановлена ​​(це правило було створено, щоб охопити випадок оновлення пакета без збільшення номера версії, яке зазвичай потрібно ).

Точніше кажучи, пакунок, пріоритет якого менше 0, ніколи не буде встановлено. Пакет із пріоритетом від 0 до 100 буде встановлено лише в тому випадку, якщо жодна інша версія пакунка вже не встановлена. З пріоритетом від 100 до 500 пакунок буде встановлений лише за наявності

немає іншої новішої версії, встановленої або доступної в іншому дистрибутиві. Пакет з пріоритетом між 501 і 990 буде встановлено лише в тому випадку, якщо в цільовому дистрибутиві немає новішої версії. З пріоритетом від 990 до 1000 пакунок буде встановлено, за винятком випадків, коли встановлена ​​версія є новішою. Пріоритет більше 1000 завжди призведе до встановлення пакунка, навіть якщо це змусить APT повернутися до старішої версії.

Коли APT перевіряє / etc / apt / preferences, спочатку враховується найбільш специфічні записи (часто ті, що вказують відповідний пакет), потім більш загальні (включаючи, наприклад, усі пакети дистрибутива). Якщо існує кілька загальних записів, використовується перша відповідність. Доступні критерії вибору включають назву пакета та джерело, що його надає. Кожне джерело пакета ідентифікується за інформацією, що міститься в а Відпустіть файл, який APT завантажує разом із файлом Пакети файли. Ці файли вказують походження, зазвичай «Kali» для пакунок з офіційних дзеркал Kali і «Debian» для пакетів з офіційних дзеркал Debian, але джерелом також може бути ім’я особи або організації для сторонніх сховищ. The Відпустіть файл також містить назву дистрибутива разом з його версією. Давайте подивимося на його синтаксис через деякі реалістичні дослідження цього механізму.



Пріоритет Якщо ви вказали kali-bleeding-edge або експериментальний Debian у своєму списку sources.list файл, Kali-Bleeding-Edge і відповідні пакунки майже ніколи не будуть встановлені, оскільки їх APT за замовчуванням Експериментальний Debian пріоритет — 1. Звичайно, це специфічний випадок, призначений для того, щоб утримати користувачів від помилкової інсталяції аварійних пакетів. Пакети можна встановити, лише ввівши схильний

встановлювати пакет/kali-bleeding-edge, припускаючи, звичайно, що ви усвідомлюєте ризики та потенційні головні болі життя на межі. Все ще можливо (хоча НЕ рекомендовано) розглядати пакети kali-bleeding-edge/experimental як пакети інших дистрибутивів, надавши їм пріоритет 500. Це робиться за допомогою спеціального запису в

/ etc / apt / preferences:

Пакет: *

Шпилька: звільнення a=kali-bleeding-edge Pin-Priority: 500


Припустимо, що ви бажаєте використовувати лише пакунки від Kali і хочете, щоб пакунки Debian встановлювалися лише за наявності явного запиту. Ви можете написати наступні записи в /etc/apt/ параметри файл (або в будь-якому файлі в /etc/apt/preferences.d/):


Пакет: *

Шпилька: відпустка o=Пріоритет Pin-Kali: 900


Пакет: *

Pin: випуск o=Пріоритет PIN-коду Debian: -10

Пакет: *

Шпилька: відпустка o=Пріоритет Pin-Kali: 900


Пакет: *

Pin: випуск o=Пріоритет PIN-коду Debian: -10

У двох останніх прикладах ви бачили a=kali-кровотечачий край, що визначає назву вибраного дистрибутива та o=Калі та o=Debian, які обмежують область застосування пакунками, походженням яких є Kali та Debian відповідно.

Тепер припустимо, що у вас є сервер із кількома локальними програмами залежно від версії Perl 5.22, і ви хочете переконатися, що оновлення не встановлять іншу його версію. Ви можете використовувати цей запис:


Пакет: perl

Pin: версія 5.22* Pin-Priority: 1001

Пакет: perl

Pin: версія 5.22* Pin-Priority: 1001


Довідкова документація для цього файлу конфігурації доступна на сторінці посібника apt_preferences(5), яку можна відобразити за допомогою людина apt_preferences.


Додавання коментарів у Немає офіційного синтаксису для коментарів / etc / apt / preferences, але деякі текстові

/ etc / apt / preferences описи можна надати, додавши один або кілька Пояснення поля в кожному записі:

Пояснення: надано пакет xserver-xorg-video-intel Пояснення: в експериментальному можна безпечно використовувати

Пакет: xserver-xorg-video-intel Pin: release a=experimental

Пріоритет PIN-коду: 500


Найпопулярніші хмарні обчислення ОС на OnWorks: