Ім'я

emerge - інтерфейс командного рядку до системи портадж (Portage system)

Синтаксис

{{Codeline|emerge [опції] [дію] [ebuild | файлtbz2 | клас | залежність]...}}
{{Codeline|emerge [опції] [дію] файл
ebuild}}
{{Codeline|emerge sync | rsync}}
{{Codeline|emerge --help -h [system | config | sync]}}
{{Codeline|emerge --version}}

Опис

emerge - це повний інтерфейс командного рядку до системи портадж. Використовується, переважно, для установки пакетів, причому, emerge може автоматично обробляти будь-які залежності, задані у вказаному пакеті. Утиліта emerge може також оновлювати дерево портадж, надаючи доступ до нових і поновлених пакетів. Утиліта emerge також забезпечує безпроблемне відновлення версій встановлених пакетів. Дозволяє працювати з пакетами як у вигляді вихідних кодів, і у двійковому вигляді, вона може використовуватися для створення двійкових пакетів з подальшого поширення. Пакети EBUILD, файли TBZ2, класи і залежності Основне призначення утиліти emerge - установка пакетів. Встановлювані пакети можна поставити одним з чотирьох основних способів: як пакет ebuild, як файл tbz2, як клас, або як залежність.

ebuild

ebuild необхідно ставити, принаймні, як припустимого імені цього у каталозі пакетів портадж (valid Portage package directory name) без вказівки версії чи категорії, наприклад, portage чи python. Можна додати також категорію і номер версії, наприклад, {{Filename|sys-apps/portage}} чи {{Filename|python-2.2.1-r2}}. Утиліта emerge ігнорує завершальну косу риску, отже, можна використовувати автоматичне завершення для імен файлів. Як значення ebuild можна також ознайомитися ставити реальне ім'я файла, наприклад, {{Filename|/usr/portage/app-admin/python/python-2.2.1-r2.ebuild.}}

Файл_tbz2

Файл_tbz2 може бути коректним файлом .tbz2, створеним з допомогою команди {{Codeline|ebuild <пакет>-<версия>.ebuild пакет}} чи {{Codeline|emerge --buildpkg [категория/]<пакет>}}, чи {{Codeline|quickpkg /var/db/pkg/<категория>/<пакет>}}.

Клас

Класи пакетів - зручний спосіб позначити велику групу пакетів. Нині підтримується два класу: system і world. Клас system містить набір пакетів, вважаються необхідні правильної роботи системи. Клас world містить все пакети у системі плюс все пакети, перелічені в файлі {{Filename|/var/cache/edb/world}} чи {{Filename|/var/lib/portage/world}} (=>portage-2.0.51). Докладніше див. далі розділ Файли Врахуйте, що це команди зазвичай використовуються разом із --update.

Залежність

Залежність описує обмеження на пакет, який встановлено. Наприклад, >=dev-lang/python-2.2.1-r2 що він відповідає останньої доступною версії мови Python, більшої чи рівної 2.2.1-r2. Аналогічно, <dev-lang/python-2.0 відповідає останньої доступною версії мови Python до 2.0. Врахуйте, що в багатьох командних интерпретаторах знадобиться замаскувати символи на кшталт '<' і '=' ; щоб уникнути проблеми з маскуванням, беріть залежність в одиночні чи подвійні лапки.

Дії

Ні дії

Якщо дію немає, до системи додаються зазначені пакети і вони задовольняються всі ці залежності. Як аргументів можна вказувати пакети ebuild, файли tbz2, класи чи залежності. Врахуйте, що з установки файла tbz2 необхідно вказати опцію --usrpkg. Пакети додаються наприкінці файла world, отже вони беруться до наступних оновленнях.

clean

-з Очищає систему, видаляючи пакети, які впливають на функціональність системи. Як аргументів можна вказувати пакети build, класи чи залежності. Наприклад, {{Codeline|emerge clean binutils}} видаляє старі версії binutils; {{Codeline|emerge clean net-www/mozilla-0.9.9-r2}} видаляє зазначену версію Mozilla. Використовувати цю команду, у випадку, безпечно. Врахуйте, що пакети в єдиному примірнику (unslotted packages) команда clean не видаляє.

depclean

--depclean

Виявляє все пакети, встановлених у системі без видимої причини. Утиліта emerge генерує список пакетів, що їх встановлено, з урахуванням списку системних пакетів і файла world. Потім вона порівнює цей перелік з переліком фактично встановлених пакетів; знайдені відмінності видаються як непотрібні пакети, які пропонують видалити. {{Box Warning|Видалення деяких пакетів можуть призвести до того що, що пакети, пов'язані з віддаленими, перестануть працюватимете, і почнуть повідомляти про саме ті бібліотеках. Знову встановіть з допомогою emerge пакет, який працювати, і це проблема буде остаточно вирішена. Врахуйте, що прапорів USE можуть на результат, видають і під час дії depclean.}}

help

-h Видає довідкову інформацію з утиліті emerge. Додавання однієї з інших перелічених додаткових аргументів призводить до видачі більш детальної довідкової інформації з відповідному дії. Вбудована довідкова документація утиліти emerge оновлюється частіше, чим зумовлена ця сторінка довідкового керівництва; зверніться до неї у разі виникнення проблем, які допоможе вирішити цю сторінку довідкового керівництва.

info

Видає інформацію для включення до звіти помилки. Цю інформацію допомагає розробникам під час вирішення проблем, про які ви повідомляєте. Вмикайте, будь ласка, цю інформацію при посилці звіту про помилку. Розширену інформацію можна отримати роботу при вказуванні опції --verbose.

inject

-і застарів (???) При "вприску" пакета йому вставляється "заглушка" отже система портадж вважали його встановленим. Це зручно якщо потрібно, наприклад, встановити двійкову версію XFree86 для нетривіальною відеокарти чи навіть додати власні пакети. Необхідно зазначити категорію і конкретну версію вставляемого пакета. Наприклад, {{Codeline|emerge inject sys-kernel/gentoo-sources-2.4.19}}

prune

-P Попередження: Це може видалити важливі пакети! Видаляються все, крім останніх, версій відповідних пакетів. Якщо пакета кілька слотів, залишається тільки остання версія у кожному слоте. У цьому немає перевірки залежностей, тому може бути віддалені пакети, необхідних нормальної роботи системи. Використовуйте дію clean, а то й впевнені геть у тому, робите. Як аргуменгтов можна вказувати пакети ebuild, класи чи залежності -- приклади див. описання дії clean.

regen

Викликає перевірку і відновлення кеша залежностей всім пакетів ebuild в дереві портадж. Кеш використовується з метою прискорення пошуку миру і побудови дерев залежностей. У цю команду категорично не рекомендується для користувачів rsync, оскільки rsync оновлює кеші, використовуючи кеши на сервері. Якщо ви і не знаєте, чим відрізняється "користувач rsync" з інших користувачів, отже, ви - "користувач rsync" :). Користувачі rsync повинні просто виконати команду {{Codeline|emerge sync}} для регенерації кеша.

search

-p.s Шукає відповідності переданої рядку в дереві портадж. Бажана рядок є регулярне вираз. Наприклад, команда {{Codeline|emerge search "^kde"}} шукає будь-який пакет, ім'я якого починається з "kde"; {{Codeline|emerge search "gcc$"}} шукає будь-який пакет, ім'я якого закінчується на "gcc"; {{Codeline|emerge search "office"}} шукає будь-який пакет, ім'я якого містить слово "office". Якщо пошук слід виконувати й у описі пакета, використовуйте опцію --searchdesc чи -P.S.

sync

Ініціює відновлення дерева портадж з однієї з дзеркал rsync.gentoo.org. Врахуйте, що зміни, виконані дереві портадж, у своїй будуть стерті. За винятком спеціальних випадків, для відновлення використовується rsync. Щоб дізнатися, як уникнути видалення зміни, див. опис PORTDIR_OVERLAY сторінка довідкового керівництва make.conf(5).

unmerge

-C {{Box Warning|При цьому може бути віддалені важливі пакети! Видаляються все відповідні пакети. Перевірка залежностей не виконується, тому може бути віддалені пакети, необхідних нормальної роботи системи. Як аргументів можна ставити пакети ebuild, класи чи залежності - приклади див. вище описання clean.}}

Опції

--ask

-a

--buildpkg

-b Каже emerge необхідність побудувати двійкові пакети всім відповідних пакетів ebuild, крім їх звичайного додавання в дерево. Корисно тим, хто займається підтримкою пакетів або за адмініструванні кількох систем Gentoo Linux (будуємо одного разу, встановлюємо пакети tbz2 з допомогою emerge скрізь). Пакет буде створений каталозі {{Filename|${PKGDIR}/All}}. Як альтернативу для вже включених в дерево пакетів можна використовувати опцію quickpkq, що створює пакети tbz2 з "живої" файлової системи.

--buildpkgonly

-B Створює двійкові пакети всім опрацьованих пакетів ebuild, не включаючи їх чи фактично на дерево пакетів. Проблема в тому, що це залежності часу побудови вже мають бути включені у систему з допомогою emerge.

--changelog

-l Використовуйте цю опцію разом із дією --pretend. Через війну, постануть записи ChangeLog всім пакетів, які оновлюватися.

--columns

З використанням що з --pretend видає імена пакетів, нову і стару версію вирівняну по стовбцям для простоти вирізання і копіювання.

--debug

-d Потребує від emerge працювати у отладочном режимі. У цьому вся режимі середовище побудови bash працюватиме з опцією -x, видаючи детальну отладочную інформацію в стандартних вихідний потік. Опція --debug чудово підходить на допомогу пошуку синтаксичних помилок bash.

--deep

-D З використанням що з опцією --update, цей прапор жадає від emerge враховувати всі дерево залежностей пакетів, а чи не просто перевіряти безпосередні залежності пакетів. Це, наприклад, дозволяє врахувати відновлення в бібліотеках, не перелічених явно в залежностях пакета.

--emptytree

-e Створює видимість те, що дерево встановлених пакетів містить лише glibc; цю опцію стоїть використовувати що з --pretend. Вона дозволяє розробникам отримати повне уявлення про дереві всіх залежностей пакета і перебудовувати дерева загалом із використанням новітніх версій бібліотек.

--fetchonly

-f Замість создания(установки) пакета, просто вибирає(скачує, завантажує) (fetches) в ../distfiles все пакети (головний пакет і всі його залежності).

--fetch-all-uri

-F

--getbinpkg

-g

--getbinpkg

-G

--help

-h

--newuse

-N використовуючи що з опцією --update, дозволяє проверить(и перевстановити) все пакети, прапори яких цей час було змінено в /etc/make.conf

--noconfmem

Потребує від портадж нехтувати записи злиття, що складає, що файл конфігурації в каталозі CONFIG_PROTECT вже було входить у дерево. Система портадж зазвичай включатиме такі файли тільки одного разу, ніж змушувати користувача морочитися з одному й тому ж конфігурацією кілька разів. Цей прапор призведе до включення файла конфгиурации щоразу.

--nodeps

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

--noreplace

-n Пропускає один вказаних у командної рядку пакети, якщо вони вже було встановлено. Без цієї опції будь-які вказаних у командної рядку пакети, пакети ebuild чи залежності призводитимуть до повторному включенню відповідного пакета системою Portage, навіть коли він вже встановлено. Врахуйте, що залежності система Portage за умовчанням повторно не включає.

--nospinner

Відключає для сеансу "крутилку" (spinner). "Крутилка" активується, якщо команда подано з термінала (TTY). Цей прапор відключає її, незалежно від устрою.

--oneshot

Включає пакети звісно ж, але з додає вигляд збоку world з подальшого відновлення.

--onlydeps

-o Включає (чи вдає, що включає) залежності зазначених пакетів, а чи не самі пакети.

--pretend

-p Замість реального включення просто показує, що має встановлюватися, а то й вказати --pretend. Використання опції --pretend настійно рекомендується перед установкою будь-якого незнайомого пакета. У виданому результаті:

  • N = новий
  • U = відновлення
  • R = заміна
  • B = блокується вже встановленим пакетом.

--quiet

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

--resume

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

--searchdesc

-P.S Зіставляє рядок пошуку з полем описи і ім'ям пакета. Врахуйте, що порівняння з регулярним вираженням ведеться, і описання пакета.

--skipfirst

Це припустиме лише що з --resume. Воно видаляє першу чергу у списку кандидатів поновлення установки, те щоб включення могло тривати навіть за наявності невиправною чи несуттєвою помилки. Цю опцію треба використовувати лише у випадках, коли перепустку пакета не порушує залежності.

--tree

-t

--update

-u Оновлює пакети аж до нової з доступних версій. Врахуйте, що --update ще має усіма необхідними можливостями. Він також автоматично оновлювати залежності пакетів в файлі world, якщо вони самі ще немає.

--upgradeonly

-U Оновлює пакети, виключаючи відновлення, що призводять до зниження версії установлюваного пакета. Слоти (SLOTs) враховуються на найпростішому рівні.

--usepkg

-k Потребує від emerge використовувати двійкові пакети (з каталогу $PKGDIR), якщо що є, уникаючи цим, наскільки можна, тривалих компіляцій. Ця опція корисна для установок з компакт-дисків; можна виконати export PKGDIR=/mnt/cdrom/packages, та був використати цю опцію, щоб emerge "витягувала" пакети з CD задоволення залежностей.

--usepkgonly

-K Працює як і, як і --usepkg, але включає тільки двійкові пакети. Усі необхідні двійкові пакети мають бути доступні на даний момент перевірки залежностей чи emerge просто припинить роботу.

--verbose

-v Потребує від emerge працювати у багатослівному (verbose) режимі. Нині цей прапор призводить до того, що emerge видає повідомлення помилки GNU info, якщо вони.

--version

-V Видає номер версії emerge. Цю опцію не можна поєднувати коїться з іншими; ім'я і формат дії у своїй важливі.

Видані результати

З використанням emerge з прапорами pretend/verbose, результати здавалося б можуть складними розуміння. Цей поділ пояснює, що означає всі ці "стенографическая" інформація.

[blocks B ]

Пакет Dos2unix блокує включення до дерево пакета hd2u. Блокування виявляється, коли два пакета перекриваються по файлам чи можуть викликати ті чи інші ушкодження у системі. Проте зазвичай включати одночасно блокуючі одне одного пакети непотрібно, що зазвичай вони забезпечують однакові можливості.

[ebuild N ]

Пакет Qstat - новий у вашому системи та буде входитимуть у дерево з допомогою emerge вперше.

[ebuild R ]

Пакет sed 4.0.5 вже було включений, якщо виконати команду вкотре, система портадж повторно включить цей пакет (у разі, sed).

[ebuild F ]

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

[ebuild U ]

Пакет Samba 2.2.7a вже було включений і то, можливо оновлено до версії 2.2.8_pre1.

[ebuild UD]

Пакет Libgd 2.0.11 вже було включений, якщо виконати команду, система портадж автоматично знизить (Downgrade) версію пакета до 1.8.4. Це може відбутися, якщо більш нова версія пакета була замаксирована, оскільки виявилася пошкодженій чи створює загрозу захисту системи, а виправлення ще випущено. Ще це може відбутися оскільки пакет, що ви намагаєтеся включити з допомогою emerge вимагає для успішного включення більш стару версію пакета. У разі, бібліотека libgd 2.x несумісна з libgd 1.x. Це означає, що пакети, створені з допомогою libgd 1.x, не скомпилируются версією 2.x, і треба понизити, як вдасться ці пакети успішно встановити.

[ebuild U-]

Дефіс (-) представляє відсутність інформації про слоте (SLOT information) пакета Xfree. Це відбувається, що коли попередня версія і була просто "отримали" (докладніше див. опис дії inject, чи виявилася настільки старої, що відповідний слот немає. У кожному разі, більш нова версія Xfree проста до відновлення.

[ebuild U ]

Значення -gtk і -gnome відбивають статус USE-змінних включення пакета nmap. Тут бачимо, що nmap може використовувати USE-змінні gtk і gnome, але у поточних установках змінні gtk і gnome відключено. Тому додаткова підтримка gtk і gnome нічого очікувати включено до nmap за його установці.

Примітка

Статус USE видається лише коли використовуються опції --pretend і --verbose.

ПРИМІТКИ

Практично треба перед будь-який спробою установки чи відновлення виконувати його ж, але з опцією --pretend. Це дає можливість прозирнути, що зроблено, і навіть виявити блокуючі пакети, що треба буде попередньо видалити. Це особливо важливо задля класів system і world, які можуть викликати відновлення великої кількості пакетів, якщо дерево портадж було чимало активно. Зазвичай також можна буде використовувати опцію --update, що дозволяє ігнорувати вже цілком оновлені пакети, але оновлювати у своїй й інші. При установці пакета з невстановленими залежностями, якщо залежності ці вказані явно у списку параметрів, вона буде додаватися в файл world. Якщо потрібно внести залежності у файл world задля її подальшого відновлення, не забудьте явно вказати їх як параметрів emerge. У командної рядку можна вказувати USE-змінні, переопределяющие значення, вказаних у стандартних місцях, що дозволяє уникнути використання низки небажаних залежностей. Прапори USE, задані в командної рядку, НЕ запам'ятовуються. Наприклад, команда {{Codeline|USE="-x -gnome" emerge mc}} встановить пакет mc з зазначеними установками USE. Якщо команда {{Codeline|emerge --update system}} чи {{Codeline|emerge --update world}} не спрацює із видачею повідомлень помилки, причина можливо, у тому, що пакет ebuild використовує нову можливість, якого немає у цій версії утиліти emerge. Можна спочатку виконати {{Codeline|emerge --update portage}} для відновлення до останньої версії, які мають підтримуватимемо необхідні нові можливості.

ЗАМАСКОВАНІ ПАКЕТЫ

Маски у системі портадж забезпечують три основні функції: вказують поставити період тестування, протягом якого пакети можна використовувати машинами; вони запобігають використання пакета, який почав давати збої, й дозволяють маскувати існуючі пакети, поламані чи загрозливі захисту. Маскування можна зробити двома шляхами: з допомогою файла package.mask і з допомогою ключових слів. Як демаскувати пакет під час використання цих способів описано нижче. Слід врахувати, що й утиліті emerge передається пакет ebuild, то ми все види максировки ігноруються і emerge намагатиметься включити пакет до системи.

package.mask

Файл {{Filename|package.mask}}, переважно, блокує використання пакетів, викликають проблеми, чи відомих, як що призводять до проблемах що на деяких машинах. Він перебуває у каталозі {{Filename|/usr/portage/profiles}}. Пакети можна демаскувати в файлі шляхом додавання символу коментарю (#) на початку рядки, маскирующей пакет.

Ключове слово

Ключове слово (KEYWORDS) також йдуть на маскування пакетів, що є на стадії тестування. Є що визначають архітектуру ключове слово кожному за пакета, дозволяють системі портадж визначити, з якими системами сумісний пакет. Пакети, компилирующиеся на деякою архітектурі, але з вважаються "стабільними", маскуються шляхом вказівки тильди (~) перед назвою архітектури. Утиліта emerge перевіряє значення перемінної середовища ACCEPT_KEYWORDS, як дозволити чи заборонити включення пакета, замаскованого з допомогою КЛЮЧОВИХ СЛІВ. Щоб проінформувати утиліту emerge, що необхідно побудувати ці "тестові" версії пакетів, можна встановити перемінної ACCEPT_KEYWORDS значення "~arch", де arch - одна з значень: x86, ppc, sparc, mips, alpha, arm, hppa. Наприклад, команда {{Codeline|ACCEPT_KEYWORDS="~x86" emerge xfree}} призведе до того що, що emerge враховуватиме замасковані ключовими словами версії XFree як потенційних кандидатів відновлення.

Як повідомляти помилки

Будь ласка, повідомляйте про будь-яких виявлених помилках через bugs.gentoo.org web-сайт Будь ласка, вмикайте до звіту про помилку результат, який видає утиліта emerge.

Посилання

Ряд допоміжних додатків перебуває у каталозі {{Filename|/usr/lib/portage/bin}}. Пакет {{Filename|app-admin/gentoolkit}} містить корисні сценарії, наприклад, {{Filename|qpkg}} (засіб запитів до пакетів).

Файли

/var/cache/edb/world (/var/lib/portage/world в версіях >=portage-2.0.51)

Містить список всіх зазначених користувачем пакетів. Можна без побоювання редагувати цей файл, додаючи пакети, які треба враховувати при відновленні класу world, і видаляючи ті, які оновлювати у своїй непотрібно.

/etc/make.conf

Містить змінні для поступу пакетів, переопределяя значення, задані в make.globals. Саме це файл треба редагувати замість перелічених далі.

/etc/make.globals

Містить стандартні змінні для поступу. Не редактируйте цей файл.

/etc/portage/mirrors

{{Box Code|# cat /etc/portage/mirrors| local http://192.168.0.10 http://192.168.0.1:8080
http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo

}}

Містить список дзеркал, у яких буде виробляється пошук пакетів, запитаних emerge. Слід зазначити, що це список має пріоритет вище, ніж GENTOO_MIRRORS в файлі /etc/make.conf, отже, даний перелік оброблятися першим, причому дзеркала, прописані слово local, опрацьовуватимуть найпершими.

/etc/portage/package.keywords

{{Box Code|# cat /etc/portage/package.keywords| x11-misc/xcompmgr ~x86
x11-misc/transset ~x86
app-portage/getdelta ~x86
app-portage/deltup ~x86
dev-util/bdelta ~x86
net-im/jabberd ~x86
net-wireless/wifiscanner ~x86
net-wireless/wlassistant ~x86}} Дозволяє встановити ACCESS_KEYWORDS для конкретних пакетів. Цей файл обробляється пізніше ніж /etc/make.conf, отже його параметри будуть актуальніша...

[blocks B ] app-text/dos2unix (from pkg app-text/hd2u-0.8.0)

[ebuild N ] app-games/qstat-25c

[ebuild R ] sys-apps/sed-4.0.5

[ebuild F ] media-video/realplayer-8-r6

[ebuild U ] net-fs/samba-2.2.8_pre1 [2.2.7a]

[ebuild UD] media-libs/libgd-1.8.4 [2.0.11]

[ebuild U-] x11-base/xfree-4.3.0 [4.2.99.902]

[ebuild U ] net-analyzer/nmap-3.15_beta2 [3.15_beta1] -gtk -gnome

: Примітка: Будьте обережні під час використання пакетів, що у стадії розробки. Проблеми та помилки, що у результаті неправильної використання замаскованих пакетів, призводять до марне витрачання часу розробників Gentoo. Подумайте заздалегідь, зможете чи подолати проблеми, які можуть виникнути.

: Попередження: Не установлюйте цієї перемінної значення, відмінне від відповідного вашої архітектурі.

emerge --help, ebuild(1), ebuild(5), make.conf(5)

/etc/portage/package.use

{{Box Code|# cat /etc/portage/package.use| x11-wm/fluxbox kde
app-misc/mc -X}} Дозволяє встановити USE прапори для конкретних пакетів. Цей файл обробляється пізніше ніж /etc/make.conf, отже його параметри будуть актуальніша...

/etc/make.profile/package

Містить список пакетів, що використовуються базової системи. Класи system і world враховують вміст цього файла. Не редактируйте його.

/etc/make.profile/make.defaults

Містить специфічні для профілю змінні для поступу пакетів. Не редактируйте цей файл.

/etc/make.profile/use.defaults

Містить список пакетів, які, у разі установки, призводять до установці за умовчанням відповідного прапора використання (use flag). Не редактируйте цей файл.

/etc/make.profile/virtuals

Містить список стандартних пакетів, що використовуються дозволу віртуальних залежностей. Не редактируйте цей файл.

/var/cache/edb/virtuals

Містить список пакетів, що використовуються дозволу віртуальних залежностей. Що стосується, коли пошук віртуальних залежностей закінчується невдало, можна переупорядочить записи відповідних віртуальних залежностей у тому файлі. Перший пакет, зазначений після virtual, використовується для порівняння з virtual.

/usr/portage/profiles/use.desc

Містить основний список прапорів USE з описами своїх функцій. Не редактируйте цей файл.

Автори