Gentoo Logo

[ << ] [ < ] [ В начало ] [ > ] [ >> ]


1. Введение в Portage

Содержание:

1.a. Добро пожаловать в Portage

Система Portage — вероятно, самое известное нововведение Gentoo в управлении программным обеспечением. Благодаря высокой гибкости и чрезвычайно богатым возможностям, она зачастую считается лучшим средством управления программным обеспечением из существующих в Linux.

Portage полностью написана на Python и Bash, и в результате полностью прозрачна для пользователей, поскольку оба — языки сценариев.

Большинство пользователей взаимодействует с Portage с помощью команды emerge. Эта глава не призвана заменить страницу справки emerge. Для просмотра всех возможных параметров команды emerge, обращайтесь к странице справки:

Листинг 1.1: Чтение страницы справки emerge

$ man emerge

1.b. Дерево Portage

Сборочные файлы ebuild

Говоря о пакетах, мы часто имеем в виду программы, доступные пользователям Gentoo через дерево Portage. Дерево Portage — это набор сборочных файлов ebuild, содержащих всю информацию, необходимую Portage для управления программным обеспечением (установки, поиска, извлечения и т.п.) По умолчанию сборочные файлы находятся в /usr/portage.

Когда Portage по вашему поручению выполняет любые действия над пакетами программ, эти действия опираются на сборочные файлы, имеющиеся в системе. Поэтому необходимо регулярно обновлять сборочные файлы, чтобы Portage знала о новых программах, обновлениях, связанных с безопасностью и т.д.

Обновление дерева Portage

Дерево Portage обычно обновляется с помощью rsync (англ.), средства быстрой разностной передачи файлов. Обновление выполнить довольно просто, так как запуск rsync обеспечивается командой emerge :

Листинг 2.1: Обновление дерева Portage

# emerge --sync

Если rsync выполнить невозможно из-за ограничений межсетевого экрана, дерево Portage все-таки можно обновить из ежедневных «снимков», создаваемых нами. Для автоматического извлечения и установки в системе новейшего снимка служит утилита emerge-webrsync:

Листинг 2.2: Запуск emerge-webrsync

# emerge-webrsync

Дополнительным преимуществом использования emerge-webrsync является то, что эта утилита позволяет администратору загружать только те снимки дерева Portage, которые подписаны ключом GPG команды Gentoo. Более подробная информация по этому вопросу может быть найдена в разделе Возможности Portage в подразделе Загрузка проверенных образов дерева Portage.

1.c. Обслуживание программного обеспечения

Поиск программ

Для поиска программ в дереве Portage по названию можно использовать встроенные возможности команды emerge. По умолчанию команда emerge --search выдает названия пакетов, соответствующих (как полностью, так и частично) заданному условию поиска.

Например, чтобы найти все пакеты, содержащие «pdf» в названии:

Листинг 3.1: Поиск пакетов с pdf в названии

$ emerge --search pdf

Для поиска пакетов еще и по тексту описания можно использовать параметр --searchdesc (или -S):

Листинг 3.2: Поиск пакетов, связанных с pdf

$ emerge --searchdesc pdf

Посмотрев на сообщения команды, вы отметите, что вам дается множество информации. Поля четко обозначены, поэтому мы не будем вдаваться в подробности их значения:

Листинг 3.3: Пример вывода emerge --search

*  net-print/cups-pdf
      Latest version available: 1.5.2
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 15 kB
      Homepage:    http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
      Description: Provides a virtual printer for CUPS to produce PDF files.
      License:     GPL-2

(
*  net-print/cups-pdf
      Последняя доступная версия: 1.5.2
      Последняя установленная версия: [ не установлен ]
      Размер загружаемых файлов: 15 kB
      Веб-страница:  http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
      Описание:      Снабжает CUPS виртуальным принтером для печати PDF-файлов.
      Лицензия:      GPL-2 )

Установка программ

После того, как вы нашли нужное программное обеспечение, его можно легко установить с помощью команды emerge. Вот пример установки пакета gnumeric:

Листинг 3.4: Установка gnumeric

# emerge gnumeric

Так как множество приложений зависит друг от друга, любая попытка установить какой-либо пакет программ может повлечь за собой также установку дополнительных пакетов. Не беспокойтесь, Portage справится и с этим. Если вы захотите выяснить, что именно Portage собирается установить вместе с нужным вам пакетом, добавьте параметр --pretend. Например:

Листинг 3.5: Проверка зависимостей пакета gnumeric

# emerge --pretend gnumeric

После команды на установку пакета, Portage загружает из интернета необходимый исходный код (при необходимости), и по умолчанию сохраняет его в каталоге /usr/portage/distfiles. После этого пакет распаковывается, компилируется и устанавливается. Если вы хотите, чтобы Portage только загрузила исходный код без его установки, добавьте к команде emerge параметр --fetchonly:

Листинг 3.6: Загрузка исходного кода пакета gnumeric

# emerge --fetchonly gnumeric

Обнаружение документации к пакету

Многие пакеты содержат собственную документацию. Иногда USE-флаг doc определяет, следует ли устанавливать документацию к пакету. Проверить наличие USE-флага doc можно командой emerge -vp <название пакета>.

Листинг 3.7: Проверка наличия USE-флага doc

(alsa-lib - это всего лишь пример)
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.14_rc1 -debug +doc 698 kB

Лучшим способом включения USE-флага doc будет работа с ним для каждого пакета отдельно, через /etc/portage/package.use, так, что вы получите документацию только для интересующих вас пакетов. Включение этого флага глобально иногда вызывает проблемы с циклическими зависимостями. Для большего количества информации, пожалуйста, прочитайте главу USE-флаги.

Документация от вновь установленного пакета обычно находится в подкаталоге каталога /usr/share/doc, соответствующем названию пакета. Кроме того, можно вывести список всех установленных файлов утилитой equery, которая входит в пакет gentoolkit (app-portage/gentoolkit).

Листинг 3.8: Обнаружение документации пакета

# ls -l /usr/share/doc/alsa-lib-1.0.14_rc1
total 28
-rw-r--r--  1 root root  669 May 17 21:54 ChangeLog.gz
-rw-r--r--  1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x  2 root root 8560 May 17 21:54 html
-rw-r--r--  1 root root  196 May 17 21:54 TODO.gz

(или используйте для поиска интересных файлов команду equery :)
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.14_rc1
* Contents of media-libs/alsa-lib-1.0.14_rc1:
/usr
/usr/bin
/usr/bin/alsalisp
(выдача обрезана)

Удаление пакета

Когда вы захотите удалить пакет из системы, используйте команду emerge --unmerge. Это приведет к удалению из системы всех файлов, установленных пакетом, кроме конфигурационных файлов приложения, изменявшихся после установки. Сохранение конфигурационных файлов позволяет вернуться к работе с пакетом, если вы когда-нибудь решите снова его установить.

Внимание: Portage не проверяет, зависят ли другие пакеты от удаляемого! Однако вы получите предупреждение, если удаление пакета приведет к неработоспособности системы.

Листинг 3.9: Удаление пакета gnumeric из системы

# emerge --unmerge gnumeric

После удаления пакета из системы, пакеты, установленные автоматически, потому что от них зависел удаленный пакет, остаются. Чтобы Portage выявила все когда-то нужные пакеты, которые теперь можно удалить, используйте команду emerge --depclean. Мы вернемся к этому ниже.

Обновление системы

Чтобы система сохранялась в отличной форме (не говоря уже об установке свежайших обновлений, связанных с безопасностью), ее нужно регулярно обновлять. Так как Portage просматривает сборочные файлы только в локальном дереве Portage, сперва потребуется обновить его. Обновив дерево Portage, вы сможете обновить систему командой emerge --update @world. В следующем примере мы также пользуемся параметром --ask, который поручает Portage вывести список пакетов, которые она собирается обновить, и спросить вас, можно ли продолжать:

Листинг 3.10: Обновление системы

# emerge --update --ask @world

Portage будет искать более новые версии установленных приложений. Однако проверяются только версии приложений, явно установленных вами (то есть, тех, которые находятся в /var/lib/portage/world - Portage не будет тщательно проверять их зависимости. Если вы хотите обновить и их зависимости тоже, добавьте аргумент --deep:

Листинг 3.11: Обновляем вашу систему с зависимостями

# emerge --update --deep @world

Но это все еще не означает все пакеты. Некоторые пакеты на вашей системе были нужны в течении процесса компиляции и сборки пакетов, но как только пакет установлен, эти зависимости больше не нужны. Portage называет такие зависимости build-зависимости. Чтобы включить и их в цикл обновления, добавьте --with-bdeps=y:

Листинг 3.12: Обновление всей системы

# emerge --update --deep --with-bdeps=y @world

Поскольку обновления, относящиеся к безопасности, случаются и в пакетах, явным образом не устанавливались (но были «подтянуты» из-за того, что он них зависят другие программы), рекомендуется изредка запускать эту команду.

Если вы меняли какие-либо из USE-флагов, возможно, потом вы также захотите добавить параметр --newuse. Тогда Portage проверит, требует ли изменение установки новых пакетов или перекомпиляции существующих:

Листинг 3.13: Выполнение полного обновления

# emerge --update --deep --with-bdeps=y --newuse @world

Метапакеты

У некоторых пакетов в дереве Portage нет содержимого как такового, и они используются для установки набора других пакетов. Например, пакет kde полностью устанавливает среду KDE в вашей системе, привлекая различные KDE-пакетов в качестве зависимостей.

Если вы когда-либо захотите удалить из системы такой пакет, запуск emerge--unmerge не возымеет должного эффекта, так как пакеты, от которых он зависит, останутся в системе.

В Portage существует возможность удаления остаточных зависимосей, но так как зависимости программ меняются со временем, доступность программного обеспечения, прежде всего требуется полностью обновить всю систему, включая реализацию изменений, произведенных путем модификации USE-флагов. После этого можно запустить emerge --depclean, чтобы удалить остаточные зависимости. Когда это сделано, вам потребуется пересобрать приложения, ранее динамически связанные с удаленными пакетами, в которых они теперь не нуждаются.

Со всем этим управляются следующие три команды:

Листинг 3.14: Удаление ненужных зависимостей

# emerge --update --deep --newuse @world
# emerge --depclean
# revdep-rebuild

revdep-rebuild входит в пакет gentoolkit; не забудьте сначала его установить:

Листинг 3.15: Установка пакета gentoolkit

# emerge gentoolkit

1.d. Лицензии

Начиная с Portage версии 2.1.7, вы можете принять или отклонить приложения, в зависимости от его лицензии. Все пакеты в дереве содержат запись LICENSE в своих файлах ebuild. Запуск команды emerge --search имя_пакета покажет вам лицензию пакета.

По умолчанию, Portage разрешает все лицензии, кроме Соглашения с Конечным Пользователем (EULA), потому что она требует прочтения и соглашения с ней.

Переменная, которая контролирует разрешенные лицензии, называется ACCEPT_LICENSE, и ее можно установить в /etc/portage/make.conf. В следующем примере показано это значение по умолчанию:

Листинг 4.1: Установка ACCEPT_LICENSE в /etc/portage/make.conf

ACCEPT_LICENSE="* -@EULA"

С данной конфигурацией пакеты, которые требуют взаимодействия в процессе установки, чтобы согласиться с их EULA, не будут устанавливаемыми. Пакеты без EULA будут устанавливаемыми.

Вы можете установить ACCEPT_LICENSE глобально, в /etc/portage/make.conf, либо можете указать ее для каждого пакета в /etc/portage/package.license.

Например, если вы хотите позволить лицензию truecrypt-2.7 для app-crypt/truecrypt, добавьте следующее в /etc/portage/package.license:

Листинг 4.2: Определяем лицензию truecrypt в package.license

app-crypt/truecrypt truecrypt-2.7

Это разрешит установку версий truecrypt, имеющих лицензию truecrypt-2.7, но не версий с лицензией truecrypt-2.8.

Важно: Лицензии сохраняются в /usr/portage/licenses, а группы лицензий находятся в /usr/portage/profiles/license_groups. Первая запись на каждой строке (ЗАГЛАВНЫМИ буквами) это имя группы лицензий, а затем каждая запись это индивидуальная лицензия.

Группы лицензий, определенные в ACCEPT_LICENSE, предваряются знаком @. Часто требуемая настройка заключается в разрешении установки только свободного программного обеспечения и документации. Чтобы достичь этого, мы можем удалить все принимаемые в настоящий момент лицензии (используя -*) и, затем, разрешить только лицензии в группе FREE, как показано ниже:

Листинг 4.3: Разрешаем только свободные лицензии для программ и документации в /etc/portage/make.conf

ACCEPT_LICENSE="-* @FREE"

В данном случае "свободная" по определению FSF и OSI. Любой пакет, чья лицензия не отвечает этим требованиям, не будет устанавливаемой на вашей системе.

1.e. Когда Portage жалуется...

Слоты, виртуалы, ветви, архитектуры и профили

Как уже сказано, Portage — чрезвычайно мощная система, поддерживающая множество возможностей, не хватающих другим системам управления программами. Чтобы это стало понятно, разберем несколько аспектов Portage, не вникая в подробности.

С помощью Portage разные версии отдельного пакета могут сосуществовать в одной системе. В то время, как другие системы управления стремятся называть пакеты в соответствии с версией (например freetype и freetype2), в Portage используется технология слотов (SLOT), или областей. Пакет присваивает определенный слот своей версии. Пакеты с разными слотами способны сосуществовать в одной системе. Например, у пакета freetype есть ebuild как со SLOT="1", так и со SLOT="2".

Существуют также пакеты, выполняющие одни и те же функции, но отличающиеся в реализации. Например metalogd, sysklogd и syslog-ng являются системными службами журналирования. Приложения, использующие «системный журнал», не могут зависеть от одной конкретной программы, например от metalogd, так как остальные программы ничем не хуже. В Portage предусмотрены виртуальные пакеты: каждая служба журналирования описана как провайдер сервиса логгирования в виртуальном пакете logger в категории virtual, поэтому все приложения могут зависеть от пакета virtual/logger. При установке, приложения загрузит первый пакет логгирования, который описан в пакете, если только какой-нибудь из таких пакетов уже не установлен (в случае чего зависимость от виртуального пакета считается удовлетворенной).

Программное обеспечение может располагаться в различных ветвях дерева Portage. По умолчанию в системе разрешено только использование стабильных пакетов. Большинство новых программ при поступлении включаются в тестовую ветвь, что указывает на необходимость дополнительного тестирования перед тем, как включить их в стабильные. Хотя в дереве Portage и видны сборочные файлы для таких программ, Portage не станет обновлять их до тех пор, пока они не будут помещены в стабильную ветвь.

Некоторые программы имеются не для всех архитектур. Либо они не работают в определенных архитектурах, либо требуют дополнительного тестирования, или у разработчика нет возможности проверить, работает ли пакет в различных архитектурах.

Каждая установка Gentoo придерживается определенного профиля, который содержит, помимо прочего, список пакетов, необходимых для работоспособности системы.

Блокировка пакетов

Листинг 5.1: Предупреждение о заблокированных пакетах (с --pretend)

[blocks B     ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)

Листинг 5.2: Предупреждение о заблокированных пакетах (без --pretend)

!!! Error: the mail-mta/postfix package conflicts with another package.
!!!        both can't be installed on the same system together.
!!!        Please use 'emerge --pretend' to determine blockers.

( !!! Ошибка: пакет mail-mta/postfix конфликтует с другим пакетом.
  !!! оба не могут находиться в системе одновременно. Пожалуйста,
  !!! запустите 'emerge --pretend' для выявления блокирующих пакетов. )

В файлах ebuild есть специальные поля, сообщающие Portage о зависимостях. Возможны два вида зависимости: зависимость сборки, объявленная в DEPEND, и зависимость выполнения, объявленная в RDEPEND. Когда одна из этих зависимостей явно указывает на несовместимость пакета или виртуального пакета, это вызывает блокировку.

Хотя новые версии Portage достаточно умны, чтобы обойти маленькие блокировки без вмешательства пользователя, может случиться, что вам нужно будет починить их самим, как объяснено ниже.

Для разблокировки можно отказаться от установки пакета или предварительно удалить конфликтующего пакета. В данном примере можно отказаться от установки postfix или сначала удалить ssmtp.

Вы также можете увидеть блокирующие пакеты с определенной версией, например <media-video/mplayer-1.0_rc1-r2. В данном случае, обновление до более новой версии блокирующего пакета уберет блокировку.

Также возможно, что два пакета, подлежащие установке, блокируют друг друга. В этом редчайшем случае следует определить, зачем вам устанавливать оба пакета. В большинстве случаев можно обойтись одним. Если это окажется не так, то, пожалуйста, заведите отчет об ошибке в системе распределения запросов Gentoo.

Маскировка пакетов

Листинг 5.3: Предупреждение о замаскированных пакетах

!!! all ebuilds that could satisfy "bootsplash" have been masked.

(!!! все сборки, удовлетворяющие "bootsplash", замаскированы.)

Листинг 5.4: Предупреждение о замаскированных пакетах с указанием причины

!!! possible candidates are:

- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- games-fps/unreal-tournament-451 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
- net-im/skype-2.1.0.81 (masked by: skype-eula license(s))

( !!! возможные кандидаты:

- gnome-base/gnome-2.8.0_pre1 (маскировка: ключ ~x86)
- lm-sensors/lm-sensors-2.8.7 (маскировка: ключ -sparc)
- sys-libs/glibc-2.3.4.20040808 (маскировка: ключ -*)
- dev-util/cvsd-1.0.2 (маскировка: ключ отсутствует)
- games-fps/unreal-tournament-451 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (маскировка: profile) 
- net-im/skype-2.1.0.81 (маскировка: skype-eula лицензия))

Когда вы собираетесь установить пакет, не предназначенный для вашей системы, выдается ошибка маскировки. Нужно попытаться установить другую программу, существующую для вашей системы, или дождаться, пока пакет станет доступным. Всегда есть причина, по которой пакет замаскирован:

  • ключ ~arch: пакет недостаточно проверен для помещения в стабильную ветвь. Подождите несколько дней или недель и попробуйте установить его еще раз.
  • ключ -arch или ключ -*: пакет не работоспособен в вашей архитектуре. Если вы полагаете, что он работает, сообщите об этом в bugzilla.
  • ключ отсутствует: пакет еще не тестировался в вашей архитектуре. Попросите группу портирования в архитектуру проверить пакет, или протестируйте его за них и сообщите о своих изысканиях в bugzilla.
  • package.mask: обнаружено повреждение пакета, нестабильность или что-то худшее, и пакет заблокирован специально.
  • profile: пакет считается не предназначенным для вашего профиля. В случае установки приложение может вызвать сбой системы или просто несовместимо с используемым профилем.
  • license означает, что лицензия приложения не совместима с вашей настройкой ACCEPT_LISENSE. Вы должны явно разрешить лицензию или группу лицензий приложения, прописав ее в /etc/portage/make.conf, либо в /etc/portage/package.license. Обратитесь к разделу Лицензии для того, чтобы понять, как работают лицензии.

Необходимость изменить USE-флаги

Листинг 5.5: Portage предупреждает о необходимости изменить USE-флаг

The following USE changes are necessary to proceed:
#required by app-text/happypackage-2.0, required by happypackage (argument)
>=app-text/feelings-1.0.0 test

Ошибка может быть показана и так, если флаг --autounmask не установлен:

Листинг 5.6: Portage показывает ошибку, требующую изменить USE-флаг

emerge: there are no ebuilds built with USE flags to satisfy "app-text/feelings[test]".
!!! One of the following packages is required to complete your request:
- app-text/feelings-1.0.0 (Change USE: +test)
(dependency required by "app-text/happypackage-2.0" [ebuild])
(dependency required by "happypackage" [argument])

Такое предупреждение, либо ошибка возникает, когда вы хотите установить пакет, который не только зависит от другого приложения, но и требует, чтобы это приложение было установлено с некоторым USE-флагом (либо набором USE-флагов). В данном примере, пакет app-text/feelings требуется собрать с USE="test", но данный USE-флаг в системе не установлен.

Чтобы решить данную проблему, либо добавьте данный USE-флаг в ваши глобальные USE-флаги, в /etc/portage/make.conf, либо установите его для отдельного пакета в /etc/portage/package.use.

Отсутствие нужных пакетов

Листинг 5.7: Предупреждение об отсутствии пакета

emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".

!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.

( emerge: нет сборок, удовлетворяющих ">=sys-devel/gcc-3.4.2-r4".

  !!! Проблема с ebuild sys-devel/gcc-3.4.2-r2
  !!! Возможно, ошибка в DEPEND/*DEPEND. )

Приложение, которое вы пытаетесь установить, зависит от другого пакета, недоступного вашей системе. Пожалуйста, проверьте, есть ли такой запрос в bugzilla, а если нет, сообщите об ошибке. Если вы не смешиваете ветви, такого не должно происходить, и это — явная ошибка.

Неоднозначность названия пакета

Листинг 5.8: Предупреждение о повторяющихся именах ebuild

[ Results for search key : listen ]
[ Applications found : 2 ]

* dev-tinyos/listen [ Masked ]
     Latest version available: 1.1.15
     Latest version installed: [ Not Installed ]
     Size of files: 10,032 kB
     Homepage: http://www.tinyos.net/
     Description: Raw listen for TinyOS
     License: BSD

* media-sound/listen [ Masked ]
     Latest version available: 0.6.3
     Latest version installed: [ Not Installed ]
     Size of files: 859 kB
     Homepage: http://www.listen-project.org
     Description: A Music player and management for GNOME
     License: GPL-2

!!! The short ebuild name "listen" is ambiguous.  Please specify
!!! one of the above fully-qualified ebuild names instead.

( !!! Короткое название ebuild "listen" неоднозначно. Пожалуйста, 
  !!! вместо него укажите одно вышеприведенных полных названий ebuild.)

Название приложения, которое вы собираетесь установить, соответствует более чем одному пакету. Требуется также указать название категории. Portage предложит вам возможные варианты.

Циклические зависимости

Листинг 5.9: Предупреждение Portage о циклических зависимостях

!!! Error: circular dependencies:

ebuild / net-print/cups-1.1.15-r2 depends on ebuild /
app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild /
net-print/cups-1.1.15-r2

( !!! Ошибка: циклические зависимости:

  ebuild / net-print/cups-1.1.15-r2 зависит от ebuild /
  app-text/ghostscript-7.05.3-r1
  ebuild / app-text/ghostscript-7.05.3-r1 зависит от ebuild /
  net-print/cups-1.1.15-r2   )

Два или более пакета, которые вы хотите установить, взаимно зависимы, и в результате их установка невозможна. Скорее всего, это ошибка в дереве Portage. Пожалуйста, выждав время, обновите дерево Portage, и попытайтесь снова. Вы можете также проверить, есть ли эта ошибка в bugzilla, и если нет, сообщить о ней.

Ошибка извлечения

Листинг 5.10: Предупреждение Portage об ошибке извлечения

!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered.  Please see above for details.

( !!! Ошибка при извлечении sys-libs/ncurses-5.4-r5, продолжение...
  (...)
!!! При извлечении произошли ошибки.  Подробности выше. )

Portage не смогла загрузить исходный код данного приложения и попытается продолжить установку других приложений (если запланирована). Эта ошибка может произойти из-за неправильно синхронизированного зеркала, или из-за того, что ebuild указывает на неверное место. Сервер, где находятся исходные коды, также может почему-либо не работать.

Повторите действие через час, чтобы посмотреть, повторится ли эта ошибка.

Защита системного профиля

Листинг 5.11: Предупреждение Portage о пакете, защищенном профилем

!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.

( !!! Попытка удаления пакетов из системного профиля. 'sys-apps/portage'
  !!! Это может повредить вашей системе. )

Вы попросили удалить пакет, входящий в состав базовых пакетов вашей системы. Он отмечен в вашем профиле как обязательный, и его не следует удалять из системы.

Ошибки проверки дайджеста

Иногда, когда вы пытаетесь установить пакет, этого не происходит, и появляется ошибка:

Листинг 5.12: Ошибка проверки дайджеста

>>> checking ebuild checksums

!!! Digest verification failed:

Это является знаком, что с деревом Portage что-то не так — часто это потому, что разработчик допустил ошибку при коммите пакета в дерево.

Когда проверка дайджеста не проходит, не пробуйте обновить дайджест пакета сами. Запуск ebuild foo manifest не починит проблему, а почти наверняка сделает еще хуже!

Вместо этого, подождите час или два, чтобы дерево обновилось. Скорее всего, ошибку уже заметили, но может понадобиться некоторое время, чтобы починить дерево Portage. Пока вы ждете, проверьте багтрекер, и посмотрите, не написал ли кто-нибудь про этот баг. Если нет, не стесняйтесь, и откройте новый баг для сломанного пакета.

Как только вы увидите, что баг починили, вы можете ресинхронизировать дерево, чтобы у вас появился починенный дайждест.

Важно: Это не означает, что вы можете ресинхронизировать ваше дерево несколько раз! Как сказано в политике rsync (когда вы запускаете emerge --sync), пользователи, которые запускают синхронизацию слишком часто будут забанены! Вообще, лучше просто подождать до следующей синхронизации по расписанию, так что вы не перегрузите серверы rsync.


[ << ] [ < ] [ В начало ] [ > ] [ >> ]


Для печати

View all

Обновлено 17 августа 2014

Исходный документ обновлен 17 августа 2014

Аннотация: Данная глава объясняет "простые" шаги, которые необходимо знать пользователю, чтобы поддерживать приложения на его системе.

Sven Vermeulen
автор

Grant Goodyear
автор

Roy Marples
автор

Daniel Robbins
автор

Chris Houser
автор

Jerry Alexandratos
автор

Seemant Kulleen
разработчик Gentoo x86

Tavis Ormandy
разработчик Gentoo Alpha

Jason Huebel
разработчик Gentoo AMD64

Guy Martin
разработчик Gentoo HPPA

Pieter Van den Abeele
разработчик Gentoo PPC

Joe Kallar
разработчик Gentoo SPARC

John P. Davis
редактор

Pierre-Henri Jondot
редактор

Eric Stockbridge
редактор

Rajiv Manglani
редактор

Jungmin Seo
редактор

Stoyan Zhekov
редактор

Jared Hudson
редактор

Colin Morey
редактор

Jorge Paulo
редактор

Carl Anderson
редактор

Jon Portnoy
редактор

Zack Gilburd
редактор

Jack Morgan
редактор

Benny Chuang
редактор

Erwin
редактор

Joshua Kinard
редактор

Tobias Scherbaum
редактор

Xavier Neys
редактор

Joshua Saddler
Editor

Gerald J. Normandin Jr.
рецензент

Donnie Berkholz
рецензент

Ken Nowack
рецензент

Lars Weiler
участник

Антон Битков
переводчик

Андрей Бородай
переводчик

Василий Голубев
переводчик

Алексей Глазунов
переводчик

Игорь Короть
переводчик

Сергей Кулешов
переводчик, редактор перевода

Игорь Наум
переводчик

Антон Филимонов
переводчик

Азамат Хакимов
переводчик, редактор перевода

Эльдар Цраев
переводчик

Analyzer
переводчик

Алексей Чумаков
ведущий переводчик, редактор перевода

Романов Владимир
переводчик

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.