Gentoo Linux x86 Handbook Робота з Portage - Gentoo Wiki

Файли Portage

Конфігураційні директиви

Portage поставляється з стандартними налаштуваннями, які зберігаються в /usr/share/portage/config/make.globals . Усі параметри Portage обробляються за допомогою змінних. Які змінні використовує Portage і для чого вони потрібні буде описано пізніше.

Оскільки багато конфігураційних директив відрізняються в різних архітектурах, у Portage є конфігураційні файли за замовчуванням, які є частиною системного профілю. Цей профіль вказується за допомогою символьного посилання /etc/portage/make.profile; конфігурації Portage знаходиться у файлах make.defaults системного профілю та всіх вищих профілів. Ми більш детально розповімо про профілі та каталог /etc/portage/make.profile пізніше.

Якщо потрібно змінити конфігураційні змінні, не змінюйте /usr/share/portage/config/make.globals або make.defaults . Натомість використовуйте файл /etc/portage/make.conf , який має більший пріоритет над попередніми файлами. Для отримання додаткової інформації прочитайте /usr/share/portage/config/make.conf.example. Як випливає з назви, це просто приклад – Portage не використовує цей файл.

Інформація з певного профілю

Профіль містить інформацію про конкретну архітектуру для Portage, наприклад, список пакетів, які належать до цього системного профілю, список пакетів, які не працюють (або замасковані) у цьому системному профілі, і так далі.

Конфігурація користувача

Якщо потрібно змінити поведінку Portage щодо того, як встановлюється програмне забезпечення, то буде правильно налаштувати файли /etc/portage/ . Рекомендовано використовувати файли в /etc/portage/ і дуже не рекомендуєтьсяперевизначати поведінку Portage у змінному оточенні!

Користувачі можуть створити в /etc/portage/ такі файли:

  • package.mask список пакетів, які Portage ніколи не буде встановлювати
  • package.unmask список пакетів, які Portage буде встановлювати, навіть якщо розробник Gentoo відмовляє користувачів від їх встановлення
  • package.accept_keywords список пакетів, які Portage буде встановлювати, навіть якщо вони не підходять для використовуваної системи або архітектури (поки що)
  • package.use Список пакетів, для яких необхідно використовувати специфічні USE-прапори, а не брати системні USE-прапори

Не обов'язково вони мають бути файлами; це можуть бути каталоги, що містять один файл для пакета. Більше інформації про каталог /etc/portage/ та весь список можливих файлів, які можна створити там, можна знайти у man-сторінці Portage:

Зміна файлів Portage та розташування каталогів

Раніше згадані конфігураційні файли не можна зберігати будь-де; Portage завжди шукатиме ці файли в строго визначених місцях. Однак, Portage використовує багато інших каталогів для різних цілей: каталог для складання, зберігання вихідного коду, розташування Gentoo репозиторію, .

Для цих цілей за промовчанням є добре відомі каталоги, які можна перевизначити в /etc/portage/make.conf . Решта цього розділу пояснити які спеціальні каталоги використовує Portage і як змінити їх розташування у файловій системі.

Зберігання файлів

Gentoo репозиторій ebuild-файлів

Gentoo репозиторій ebuild-файлів за умовчанням знаходиться у /usr/portage . Місце розташування визначається файлом repos.conf, приклад якого можна знайти в /usr/share/portage/config/repos.conf.Щоб змінити значення за промовчанням, скопіюйте цей файл у /etc/portage/repos.conf/gentoo.conf та змініть location . Не забудьте змінити символьне посилання на /etc/portage/make.profile , якщо хочете зберігати (змінюючи змінну) Gentoo репозиторій ebuild-файлів в іншому місці.

Після зміни налаштування location у /etc/portage/repos.conf/gentoo.conf рекомендується змінити наступні змінні /etc/portage/make.conf, оскільки вони не помітять змін у location. Portage так працює зі змінними: PKGDIR, DISTDIR, RPMDIR.

Двійкові пакети

Хоча за замовчуванням Portage не використовує двійкові пакети, в ньому є широка їх підтримка. Коли Portage просять встановити бінарний пакет, він шукатиме їх у каталозі /usr/portage/packages . Цей каталог визначається змінною PKGDIR.

Вихідний код

За промовчанням вихідний код для програм зберігається в каталозі /usr/portage/distfiles . Цей каталог визначається змінною DISTDIR.

База Portage

Portage зберігає стан системи (які пакети встановлені, які файли якому пакету належать, .) у каталозі /var/db/pkg.

Кеш Portage

Кеш Portage (з часом змін, віртуальними пакетами, інформації про залежність у дереві, . ) зберігається в /var/cache/edb . Там розміщується просто кеш: користувачі спокійно можуть відчистити цей каталог, якщо на даний момент не запущено жодних програм Portage.

Складання програмного забезпечення

Тимчасові файли Portage

Тимчасові файли Portage зберігаються в /var/tmp/ . Цей каталог визначається за допомогою змінної PORTAGE_TMPDIR.

Каталог компіляції

Portage створює спеціальні каталоги /var/tmp/portage/ для всіх компілюваних пакетів. Цей каталог визначається змінноюPORTAGE_TMPDIR і додано portage/ .

Розташування реальної системи

За промовчанням Portage встановлює всі файли на поточну файлову систему ( / ), але це можна змінити, якщо настроїти змінну оточення ROOT . Що дуже зручно, у разі створення нових складальних образів.

Можливості журналування

Журнальоване для ebuild

Portage може створювати фали журналів для кожного ebuild, але тільки в тому випадку, коли змінна PORT_LOGDIR вказує на каталог, доступний для запису Portage (користувачеві portage). За умовчанням, ця змінна не задана. Якщо змінна PORT_LOGDIR не задана, то в поточній системі журналування не буде журналів, хоча користувачі можуть отримати деякі журнали за допомогою нової підтримки elog .

Якщо змінна PORT_LOGDIR не визначена і використовується elog, тоді можна отримати журнали збірки та будь-які інші журнали, які зберігаються програмою elog, як показано нижче.

Portage пропонує гнучку систему контролю над журналуванням за допомогою програми elog: