Нотатки розсіяного адміністратора - portage use прапори

Portage: USE прапори

Сенс використання USE прапорів

При установці Gentoo (або будь-якого іншого дистрибутива, або навіть операційної системи) користувачі роблять вибір, яка робоче середовище їм потрібно. Робоче середовище сервера відрізняється від робочої станції. Ігровий станції відрізняється від станції 3D-рендеринга.

Робоче середовище залежить не тільки від того, які пакунки встановлено, але і які функції певних пакетів підтримуються. Якщо немає необхідності в OpenGL, то і витрачати час і ресурси комп'ютера на установку і підтримку OpenGL в більшості пакетів не потрібно.

Якщо комусь не хочеться, працювати в середовищі KDE, то і компілювати пакети з підтримкою KDE не має сенсу.
Саме для цього і потрібні USE прапори. З їх допомогою формується робоче середовище в Gentoo Linux.

Установка USE прапорів

Кожен USE прапор - це ключове слово, яке включать підтримку певних пакетів і інформацію про з залежностях. Якщо встановлений якийсь USE прапор, Portage знає, що саме потрібно встановити і з якими опціями збирати пакети по вибраному ключовому слову. Встановлений USE прапор також впливає на залежності пакета.

Розглянемо вплив прапора kde на поведінку Portage. Якщо цей прапор не вказано у змінній USE, пакети, які мають опциональную підтримку kde будуть зібрані без підтримки kde. А пакети, що мають опциональную залежність kde, будуть встановлені без установки бібліотек kde (як залежності). Коли прапор kde визначено, всі ці пакети будуть скомпільовані з підтримкою kde, а бібліотеки kde будуть встановлені в якості залежності.

Правильно визначаючи USE прапори можна адаптувати систему під потреби користувача.

Типи USE прапорів

Є два типи USE прапорів: глобальні та локальні USE прапори.

  • Глобальні USE прапори використовується всіма пакетами, загальносистемних. Це те, що більшість бачить в якості USE прапорів.
  • Локальні USE прапори використовується одним пакетом для його специфічної настройки.

Список доступних глобальних USE прапорів можна знайти в Інтернеті або локально в /usr/portage/profiles/use.desc.
Список доступних локальних USE прапорів можна знайти в Інтернеті або локально в /usr/portage/profiles/use.local.desc.

Використання USE прапорів

Як згадувалося раніше, все USE прапори оголошуються в змінної USE. Щоб полегшити пошук і підбір USE прапорів для користувачів, ми передбачили набори USE прапорів за замовчуванням. Це добірка USE прапорів які, як нам здається, найбільш часто використовуються користувачами Gentoo. Ці настройки за замовчуванням визначаються у файлі make.defaults, який є частиною обраного профілю.

Як бачимо, ця змінна вже містить досить багато ключових слів. Не міняйте файл make.defaults для зміни змінної USE: зміни в цих файлів будуть скасовані при оновленні дерева портежей!

Для зміна налаштувань за замовчуванням змінної USE - додайте або видаліть з неї ключові слова. Це робиться глобально, визначенням змінної USE у файлі /etc/portage/make.conf. У цієї змінної можна додати необхідні додаткові USE прапори або видалити використання прапорів, які більше не потрібні. Останнє робиться за допомогою префікса ключове слово з знаком мінус (-).
Наприклад, щоб відключити підтримку KDE і QT і додати підтримку для LDAP, такі USE прапори повинні бути визначені в /etc/portage/make.conf:

USE = "- kde -qt4 ldap"

Іноді потрібно оголосити певний USE прапор для одного (або кількох) додатків, але не для всієї системи. Щоб зробити це - потрібно відредагувати файл /etc/portage/package.use. Зазвичай це файл, але також може бути каталогом; см man portage для отримання додаткової інформації. У цьому прикладі передбачається, що package.use це файл.

Наприклад, включимо в mysql підтримку тільки berkdb:

Іноді потрібно встановити тимчасові USE прапори. Замість подвійного редагування /etc/portage/make.conf (для зміни і скасування змін USE прапорів) можна оголосити змінну USE як змінну середовища. Пам'ятайте, що ці налаштування діють тільки для введеної команди; повторна збірка або оновлення додатка (явна або як частина оновлення системи) скасують зміни, зроблені з використанням визначення тимчасового USE прапора.

У наступному прикладі, при установці seamonkey, java тимчасово втечуть з змінної USE:

Пріоритет використання USE прапорів визначаться в залежності від того де вони визначені. Нижче наведені способи визначення USE прапорів відсортовані за пріоритетністю (перший має найнижчий пріоритет):

  1. Налаштування за замовчуванням змінної USE, оголошеної в файлі make.defaults (частина використовуваного профілю)
  2. Певне користувачем значення USE в /etc/portage/make.conf
  3. Певне користувачем значення USE в /etc/portage/package.use
  4. Певне користувачем значення USE в якості змінної оточення

Адаптація всієї системи під нові USE прапори

Після зміни USE прапорів, система повинна бути оновлена, щоб застосувати необхідні зміни. Це перш за скористайтеся командою emerge з опцією --newuse:

Потім, запустіть emerge з опцією --depclean щоб видалити залежності, зібрані під "старі" налаштування USE прапорів, і паче не актуальні.

Увага.
Запуск emerge --depclean це небезпечна операція і повинна виконуватися з обережністю. Двічі перевірте надані списки «застарілих» пакетів і переконайтеся, що не вилучені необхідні пакети. У наступному прикладі доданий ключ -p. щоб depclean тільки перерахував "непотрібні" пакети, не видаляючи їх.

Після завершення роботи depclean, запустіть revdep-rebuild для відновлення додатків, які динамічно слінковани з загальними бібліотеками, що входять до складу потенційно віддалених пакетів. Програма revdep-rebuild є частиною пакета app-portage / gentoolkit; не забудьте спочатку встановити його.

Після цього, система буде приведена у відповідність з новими настройки USE прапорів.

USE прапори пакетів

Давайте візьмемо, наприклад, пакет seamonkey: які USE прапори він може використовувати? Щоб дізнатися, використовуємо emerge з --pretend і --verbose:

Подивитися цю інформацію можна не тільки за допомогою emerge. Насправді, для цього є спеціалізований інструмент - equery. який є частиною пакета app-portage / gentoolkit.

Задоволення умови REQUIRED_USE

Деякі ебілди вимагають дозволити або заборонити певні комбінації USE прапорів для того, щоб працювати належним чином. Це виражається за допомогою умови REQUIRED_USE. Ця умова гарантує, що всі функції та залежності є повними, збірка вдасться, працювати буде як і очікувалося. Якщо будь-яка з них не виконується, emerge попередить вас і попросить виправити проблему.
Деякі приклади умов, наведені нижче.

Gentoo - Source-based дистрибутив Linux. Що це означає? Це означає що все доведеться збирати з.

HTTPS (HyperText Transfer Protocol Secure) - це не самостійний протокол, а розвиток HTTP.

У попередній частині статті розглянуто процес установки Gentoo Linux до моменту зміни кореня файлової.

Способи запуску vim, його аргументи, ініціалізація, збереження налаштувань, сеанси та види, файл viminfo.