Сборник статей Handbook inside ! : Linux не для идиотов inside ! : Версия 1 от 15. 07. 2007 2007



Pdf просмотр
страница13/50
Дата14.11.2016
Размер5.65 Mb.
Просмотров8123
Скачиваний0
ТипСборник статей
1   ...   9   10   11   12   13   14   15   16   ...   50
12.b. Gentoo в интернете
Естественно, мы всегда рады видеть вас на форумах Gentoo (англ.), как и на любом из множества IRC-каналов Gentoo (англ.).
Кроме того, мы можем предложить вашему вниманию несколько списков рассылки, открытых для всех наших пользователей. Сведения о порядке подписки находятся на той же странице.
На этом мы замолкаем, чтобы позволить вам в полной мере насладиться результатом установки :)
B. Работа с Gentoo
1. Введение в Portage
132

1.a. Добро пожаловать в Portage
Система Portage — вероятно, самое известное нововведение Gentoo в управлении программным обеспечением. Благодаря высокой гибкости и чрезвычайно богатым возможностям, она зачастую считается лучшим средством управления программным обеспечением из существующих в Linux.
Portage полностью написана на Python и Bash, и в результате полностью прозрачна для пользователей, поскольку оба — языки сценариев.
Большинство пользователей взаимодействует с Portage с помощью команды emerge. Эта глава не призвана заменить страницу справки emerge. Для просмотра всех возможных параметров команды emerge, обращайтесь к странице справки:
Листинг 1: Чтение страницы справки emerge
$ man emerge
1.b. Дерево портежей
Сборочные файлы ebuild
Говоря о пакетах, мы часто имеем в виду программы, доступные пользователям
Gentoo через дерево портежей. Дерево портежей — это набор сборочных файлов ebuild, содержащих всю информацию, необходимую Portage для управления программным обеспечением (установки, поиска, извлечения и т.п.) По умолчанию сборочные файлы находятся в /usr/portage.
Когда Portage по вашему поручению выполняет любые действия над пакетами программ, эти действия опираются на сборочные файлы, имеющиеся в системе.
Поэтому необходимо регулярно обновлять сборочные файлы, чтобы Portage знала о новых программах, обновлениях, связанных с безопасностью и т.д.
Обновление дерева портежей
Дерево портежей обычно обновляется с помощью rsync (англ.), средства быстрой разностной передачи файлов. Обновление выполнить довольно просто, так как запуск rsync обеспечивается командой emerge :
Листинг 2: Обновление дерева портежей
# emerge --sync
Если rsync выполнить невозможно из-за ограничений межсетевого экрана, дерево портежей все-таки можно обновить из ежедневных «снимков», создаваемых нами.
Для автоматического извлечения и установки в системе новейшего снимка служит утилита emerge-webrsync:
Листинг 3: Запуск emerge-webrsync
# emerge-webrsync
133

1.c. Обслуживание программного обеспечения
Поиск программ
Для поиска программ в дереве портежей по названию можно использовать встроенные возможности команды emerge. По умолчанию команда emerge --search выдает названия пакетов, соответствующих (как полностью, так и частично) заданному условию поиска.
Например, чтобы найти все пакеты, содержащие «pdf» в названии:
Листинг 4: Поиск пакетов с pdf в названии
$ emerge --search pdf
Для поиска пакетов еще и по тексту описания можно использовать параметр -- searchdesc (или -S):
Листинг 5: Поиск пакетов, связанных с pdf
$ emerge --searchdesc pdf
Посмотрев на сообщения команды, вы отметите, что вам дается множество информации. Поля четко обозначены, поэтому мы не будем вдаваться в подробности их значения:
Листинг 6: Пример вывода 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:
Листинг 7: Установка gnumeric
# emerge gnumeric
134

Так как множество приложений зависит друг от друга, любая попытка установить какой-либо пакет программ может повлечь за собой также установку дополнительных пакетов. Не беспокойтесь, Portage справится и с этим. Если вы захотите выяснить, что именно Portage собирается установить вместе с нужным вам пакетом, добавьте параметр --pretend. Например:
Листинг 8: Проверка зависимостей пакета gnumeric
# emerge --pretend gnumeric
После команды на установку пакета, Portage загружает из интернета необходимый исходный код (при необходимости), и по умолчанию сохраняет его в каталоге
/usr/portage/distfiles. После этого пакет распаковывается, компилируется и устанавливается. Если вы хотите, чтобы Portage только загрузила исходный код без его установки, добавьте к команде emerge параметр --fetchonly:
Листинг 9: Загрузка исходного кода пакета gnumeric
# emerge --fetchonly gnumeric
Обнаружение документации к пакету
Многие пакеты содержат собственную документацию. Иногда USE-флаг doc определяет, следует ли устанавливать документацию к пакету. Проверить наличие
USE-флага doc можно командой emerge -vp <название пакета>.
Листинг 10: Проверка наличия USE-флага doc
(alsa-lib - это всего лишь пример)
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.9_rc3 +doc -jack 674 kB
USE-флаг doc можно включить или отключить как глобально в файле /etc/make.conf, так и для отдельных пакетов в файле /etc/portage/package.use. Также можно, создав каталог с названием /etc/portage/package.use, указать флаг в файле внутри этого каталога. В главе USE-флаги этот вопрос описывается более подробно.
Документация от вновь установленного пакета обычно находится в подкаталоге каталога /usr/share/doc, соответствующем названию пакета. Кроме того, можно вывести список всех установленных файлов утилитой equery, которая входит в пакет gentoolkit (англ.) — app-portage/gentoolkit.
Листинг 11: Обнаружение документации пакета
# ls -l /usr/share/doc/alsa-lib-1.0.9_rc3
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.9_rc3 135

* Contents of media-libs/alsa-lib-1.0.9_rc3:
/usr
/usr/bin
/usr/bin/alsalisp
(выдача обрезана)
Удаление пакета
Когда вы захотите удалить пакет из системы, используйте команду emerge -- unmerge. Это приведет к удалению из системы всех файлов, установленных пакетом, кроме конфигурационных файлов приложения, изменявшихся после установки. Сохранение конфигурационных файлов позволяет вернуться к работе с пакетом, если вы когда-нибудь решите снова его установить.
Внимание: Portage не проверяет, зависят ли другие пакеты от удаляемого! Однако вы получите предупреждение, если удаление пакета приведет к неработоспособности системы.
Листинг 12: Удаление пакета gnumeric из системы
# emerge --unmerge gnumeric
После удаления пакета из системы, пакеты, установленные автоматически, потому что от них зависел удаленный пакет, остаются. Чтобы Portage выявила все когда-то нужные пакеты, которые теперь можно удалить, используйте команду emerge -- depclean. Мы вернемся к этому ниже.
Обновление системы
Чтобы система сохранялась в отличной форме (не говоря уже об установке свежайших обновлений, связанных с безопасностью), ее нужно регулярно обновлять. Так как Portage просматривает сборочные файлы только в локальном дереве портежей, сперва потребуется обновить его. Обновив дерево портежей, вы сможете обновить систему командой emerge --update world. В следующем примере мы также пользуемся параметром --ask, который поручает Portage вывести список пакетов, которые она собирается обновить, и спросить вас, можно ли продолжать:
Листинг 13: Обновление системы
# emerge --update --ask world
Portage будет искать более новые версии установленных приложений. Однако проверяется только версии приложений, явно установленных вами, а не тех, от которых они зависят. Если вы хотите обновить каждый пакет в системе, добавьте аргумент --deep:
Листинг 14: Обновление всей системы
# emerge --update --deep world
Поскольку обновления, относящиеся к безопасности, случаются и в пакетах, явным образом не устанавливались (но были «подтянуты» из-за того, что он них зависят другие программы), рекомендуется изредка запускать эту команду.
136

Если вы меняли какие-либо из USE-флагов, возможно, потом вы также захотите добавить параметр --newuse. Тогда Portage проверит, требует ли изменение установки новых пакетов или перекомпиляции существующих:
Листинг 15: Выполнение полного обновления
# emerge --update --deep --newuse world
Метапакеты
У некоторых пакетов в дереве портежей нет содержимого как такового, и они используются для установки набора других пакетов. Например, пакет kde полностью устанавливает среду KDE в вашей системе, привлекая различные KDE-пакетов в качестве зависимостей.
Если вы когда-либо захотите удалить из системы такой пакет, запуск emerge-- unmerge не возымеет должного эффекта, так как пакеты, от которых он зависит, останутся в системе.
В Portage существует возможность удаления остаточных зависимосей, но так как зависимости программ меняются со временем, доступность программного обеспечения, прежде всего требуется полностью обновить всю систему, включая реализацию изменений, произведенных путем модификации USE-флагов. После этого можно запустить emerge --depclean, чтобы удалить остаточные зависимости.
Когда это сделано, вам потребуется пересобрать приложения, ранее динамически связанные с удаленными пакетами, в которых они теперь не нуждаются.
Со всем этим управляются следующие три команды:
Листинг 16: Удаление ненужных зависимостей
# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild revdep-rebuild входит в пакет gentoolkit; не забудьте сначала его установить:
Листинг 17: Установка пакета gentoolkit
# emerge gentoolkit
1.d. Когда Portage жалуется...
Слоты, виртуалы, ветви, архитектуры и профили
Как уже сказано, Portage — чрезвычайно мощная система, поддерживающая множество возможностей, не хватающих другим системам управления программами.
Чтобы это стало понятно, разберем несколько аспектов Portage, не вникая в подробности.
С помощью Portage разные версии отдельного пакета могут сосуществовать в одной
137
системе. В то время, как другие системы управления стремятся называть пакеты в соответствии с версией (например freetype и freetype2), в Portage используется технология слотов (SLOT), или областей. Пакет присваивает определенный слот своей версии. Пакеты с разными слотами способны сосуществовать в одной системе. Например, у пакета freetype есть ebuild как со SLOT="1", так и со SLOT="2".
Существуют также пакеты, выполняющие одни и те же функции, но отличающиеся в реализации. Например metalogd, sysklogd и syslog-ng являются системными службами журналирования. Приложения, использующие «системный журнал», не могут зависеть от одной конкретной программы, например от metalogd, так как остальные программы ничем не хуже. В Portage предусмотрены виртуальные пакеты: каждая служба журналирования предоставляет virtual/syslog, и в результате в приложениях можно указывать зависимость от virtual/syslog.
Программное обеспечение может располагаться в различных ветвях дерева портежей. По умолчанию в системе разрешено только использование стабильных пакетов. Большинство новых программ при поступлении включаются в тестовую ветвь, что указывает на необходимость дополнительного тестирования перед тем, как включить их в стабильные. Хотя в дереве портежей и видны сборочные файлы для таких программ, Portage не станет обновлять их до тех пор, пока они не будут помещены в стабильную ветвь.
Некоторые программы имеются не для всех архитектур. Либо они не работают в определенных архитектурах, либо требуют дополнительного тестирования, или у разработчика нет возможности проверить, работает ли пакет в различных архитектурах.
Каждая установка Gentoo придерживается определенного профиля, который содержит, помимо прочего, список пакетов, необходимых для работоспособности системы.
Блокировка пакетов
Листинг 18: Предупреждение о заблокированных пакетах (с --pretend)
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
Листинг 19: Предупреждение о заблокированных пакетах (без --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. Когда одна из этих зависимостей явно указывает на несовместимость пакета или виртуального пакета, это вызывает блокировку.
Для разблокировки можно отказаться от установки пакета или предварительно
138
удалить конфликтующего пакета. В данном примере можно отказаться от установки postfix или сначала удалить ssmtp.
Также возможно, что два пакета, подлежащие установке, блокируют друг друга. В этом редчайшем случае следует определить, зачем вам устанавливать оба пакета.
В большинстве случаев можно обойтись одним. Если это окажется не так, то, пожалуйста, заведите отчет об ошибке в системе распределения запросов Gentoo.
Маскировка пакетов
Листинг 20: Предупреждение о замаскированных пакетах
!!! all ebuilds that could satisfy "bootsplash" have been masked.
(!!! все сборки, удовлетворяющие "bootsplash", замаскированы.)
Листинг 21: Предупреждение о замаскированных пакетах с указанием причины
!!! 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)
- media-video/ati-gatos-4.3.0 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
( !!! возможные кандидаты:
- 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 (маскировка: ключ отсутствует)
- media-video/ati-gatos-4.3.0 (маскировка: package.mask)
- sys-libs/glibc-2.3.2-r11 (маскировка: profile) )
Когда вы собираетесь установить пакет, не предназначенный для вашей системы, выдается ошибка маскировки. Нужно попытаться установить другую программу, существующую для вашей системы, или дождаться, пока пакет станет доступным.
Всегда есть причина, по которой пакет замаскирован: ключ arch: пакет недостаточно проверен для помещения в стабильную ветвь.
Подождите несколько дней или недель и попробуйте установить его еще раз. ключ -arch или ключ -*: пакет не работоспособен в вашей архитектуре. Если вы полагаете, что он работает, сообщите об этом в bugzilla. ключ отсутствует: пакет еще не тестировался в вашей архитектуре. Попросите группу портирования в архитектуру проверить пакет, или протестируйте его за них и сообщите о своих изысканиях в bugzilla. package.mask: обнаружено повреждение пакета, нестабильность или что-то худшее, и пакет заблокирован специально. profile: пакет считается не предназначенным для вашего профиля. В случае установки приложение может вызвать сбой системы или просто несовместимо с используемым профилем.
Отсутствие нужных пакетов
139

Листинг 22: Предупреждение об отсутствии пакета 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, а если нет, сообщите об ошибке. Если вы не смешиваете ветви, такого не должно происходить, и это — явная ошибка.
Неоднозначность названия пакета
Листинг 23: Предупреждение о повторяющихся именах ebuild
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm x11-terms/aterm
( !!! Короткое название ebuild "aterm" неоднозначно. Пожалуйста,
!!! вместо него укажите одно из полных названий ebuild:
dev-libs/aterm x11-terms/aterm )
Название приложения, которое вы собираетесь установить, соответствует более чем одному пакету. Требуется также указать название категории. Portage предложит вам возможные варианты.
Циклические зависимости
Листинг 24: Предупреждение 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 )
140

Два или более пакета, которые вы хотите установить, взаимно зависимы, и в результате их установка невозможна. Скорее всего, это ошибка в дереве портежей.
Пожалуйста, выждав время, обновите дерево портежей, и попытайтесь снова. Вы можете также проверить, есть ли эта ошибка в bugzilla, и если нет, сообщить о ней.
Ошибка извлечения
Листинг 25: Предупреждение 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 указывает на неверное место. Сервер, где находятся исходные коды, также может почему-либо не работать.
Повторите действие через час, чтобы посмотреть, повторится ли эта ошибка.
Защита системного профиля
Листинг 26: Предупреждение Portage о пакете, защищенном профилем
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
( !!! Попытка удаления пакетов из системного профиля. 'sys-apps/portage'
!!! Это может повредить вашей системе. )
Вы попросили удалить пакет, входящий в состав базовых пакетов вашей системы.
Он отмечен в вашем профиле как обязательный, и его не следует удалять из системы.
2. USE-флаги
2.a. Что такое USE-флаги?
Смысл USE-флагов
Устанавливая Gentoo (или любой другой дистрибутив, или даже операционную систему вообще), вы выбираете те или иные возможности в зависимости от среды, с которой работаете. Установка сервера отличается от установки рабочей станции, а установка игровой станции — от платформы 3D-рендеринга.
141

Это касается не только того, какие пакеты устанавливать, но и какие функции определенных пакетов должны поддерживаться. Если вам не нужен OpenGL, то зачем вам его ставить и встраивать поддержку OpenGL в большинство программ?
Если вы не собираетесь использовать KDE, зачем собирать пакеты с его поддержкой, если они работают и без этого?
Чтобы помочь пользователям в выборе того, что устанавливать/активировать, а что
— нет, мы захотели дать им простой способ описания рабочей среды. Это позволяет пользователю решить, что же ему на самом деле надо, и облегчить работу с Portage, нашей системой управления пакетами.
Определение USE-флагов
Рассмотрим USE-флаги. USE-флаг — это ключевое слово, включающее сведения о поддержке и зависимостях определенного понятия или функции. При определении какого-либо USE-флага, Portage узнает, что вам нужна поддержка соответствующей функции. Конечно, это также влияет на сведения о зависимостях пакета.
Давайте рассмотрим конкретный пример — ключевое слово kde. Если в вашей переменной USE нет этого слова, то все пакеты, где поддержка KDE является необязательной, собрираются без нее. Все пакеты, где зависимость от KDE является необязательной, устанавливаются без установки библиотек KDE (по зависимости). Если же вы определите ключевое слово kde, то эти пакеты будут собираться с поддержкой KDE, а KDE будет установлен в качестве необходимого.
Правильно определяя ключевые слова, вы создаете систему, подогнанную специально для ваших нужд.
Какие USE-флаги существуют?
Есть два типа USE-флагов: глобальные и локальные.
Глобальный USE-флаг используется несколькими пакетами и является системным.
Это то, что большинство видит в качестве USE-флагов.
Локальный USE-флаг используется единичным пакетом для настройки определенных параметров самого пакета.
Список доступных глобальных USE-флагов можно найти в сети или локально в
/usr/portage/profiles/use.desc.
Список локальных USE-флагов находится в вашей системе в
/usr/portage/profiles/use.local.desc.
2.b. Использование USE-флагов
Объявление постоянных USE-флагов
В надежде, что вы убедились в важности USE-флагов, теперь мы расскажем, как их объявлять.
Как сказано ранее, все USE-флаги объявляются в переменной USE. Чтобы упростить пользователям поиск и выбор флагов, мы предлагаем значение USE по умолчанию, которое представляют собой список USE-флагов, как нам кажется,
142
наиболее часто используемых пользователями Gentoo. Это значение приведено в файле make.defaults вашего профиля.
Профиль, на который ориентируется ваша система, указывается символьной ссылкой /etc/make.profile. Каждый профиль основывается на предыдущем, более крупном, а итоговый складывается из всех профилей. Верхним является базовый профиль (/usr/portage/profiles/base).
Давайте взглянем на значение по умолчанию для профиля 2004.3:
Листинг 1: Итоговая переменная USE make.defaults для профиля 2004.3
(в этом примере объединяются значения из base, default-linux,
default-linux/x86 и default-linux/x86/2004.3)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
Как видите, эта переменная уже содержит достаточно много ключевых слов. Не меняйте файл make.defaults для настройки переменной USE под свои нужды: изменения в этом файле аннулируются при обновлении Portage!
Для изменения значения по умолчанию, нужно добавлять или удалять ключевые слова из переменной USE. Это делается глобально, определением переменной USE в /etc/make.conf. В эту переменную можно добавить нужные вам USE-флаги, или удалить ненужные. Для удаления флага, его надо указывать со знаком минус в виде приставки («-»).
Например, чтобы убрать поддержку KDE и QT, но добавить поддержку ldap, можно определить в /etc/make.conf переменную USE следующего вида:
Листинг 2: Пример значения USE в /etc/make.conf
USE="-kde -qt ldap"
Объявление USE-флагов для отдельных пакетов
Иногда нужно определить некоторые USE-флаги только для одного или нескольких пакетов, не трогая системных настроек. Для этого необходимо создать каталог
/etc/portage (если его еще нет) и отредактировать файл /etc/portage/package.use.
Например, вам не нужна глобальная поддержка berkdb, но она необходима в mysql:
Листинг 3: Пример /etc/portage/package.use dev-db/mysql berkdb
Естественно, можно в явном виде отключить USE-флаги для определенного пакета.
Например, если вам не нужна поддержка java в PHP:
Листинг 4: Второй пример /etc/portage/package.use dev-php/php -java
143

Объявление временных USE-флагов
Иногда необходимо установить какой-то USE-флаг только на один раз. Вместо того, чтобы дважды редактировать /etc/make.conf (сначала добавить изменения USE, а потом удалить), можно просто объявить USE как переменную среды. Помните, что при переустановке или обновлении приложения (явном или в составе обновления системы) ваши изменения будут утеряны!
Например, уберем java из значения USE на время установки mozilla.
Листинг 5: Использование USE в виде переменной среды
# USE="-java" emerge mozilla
Наследование
Конечно же, существует определенная последовательность формирования значения
USE. Вы же не хотите объявить USE="-java" только для того, чтобы узнать, что java все еще включена из-за значения с более высоким приоритетом.
Последовательность установки значения USE в порядке приоритета (от меньшего к большему) такова: значение USE по умолчанию, объявленное в файлах make.defaults в составе вашего профиля значение, определенное пользователем в /etc/make.conf значение, указанное пользователем в /etc/portage/package.use значение, определенное пользователям в переменной среды
Чтобы узнать, какие же настройки USE в конечном счете видит Portage, запустите emerge --info. Эта команда выводит значения всех переменных (включая USE), используемые Portage.
Листинг 6: Запуск emerge --info
# emerge --info
Адаптация всей системы под новые USE-флаги
Если вы изменили свои USE-флаги и хотите обновить всю систему в соответствии с новым значением USE, запустите emerge с параметром --newuse:
Листинг 7: Пересборка всей системы
# emerge --update -deep --newuse world
Теперь запустите функцию Portage depclean, чтобы удалить условные зависимости, присутствующие в «старой» системе, но больше не нужные при новом составе USE- флагов.
Предупреждение: Запуск emerge --depclean является опасной операцией, которую следует использовать с осторожностью. Дважды проверьте список «ненужных» пакетов и убедитесь, что не удалятся нужные пакеты. В следующем примере мы добавляем ключ -p, чтобы depclean только перечислил пакеты, не удаляя их.
144

Листинг 8: Удаление ненужных пакетов
# emerge -p --depclean
Когда depclean закончит свою работу, запустите revdep-rebuild, чтобы пересобрать программы, динамически связанные с библиотеками, входящими в потенциально удаленные пакеты. revdep-rebuild входит в пакет gentoolkit, так что не забудьте сначала установить его.
Листинг 9: Запуск revdep-rebuild
# revdep-rebuild
После выполнения всех этих действий, ваша система будет полностью использовать новые значения USE-флагов.

Каталог: pub -> docs books -> Linux -> Linux 2
pub -> Буланов С. В. Кудрявцева Е. Л. Развитие креативности билингвов: путь от интеркультурности к формированию «человека мира»
pub -> «октябрьский лицей»
pub -> Самообследование гоу сош «Школа надомного обучения» №196 по направлениям деятельности. Общие вопросы
pub -> Занятие для математического кружка. Задачи работы
pub -> Доклад муниципальное образовательное
pub -> Публичный доклад. 2013 год Общая характеристика образовательного учреждения. Место расположения
pub -> Публичный доклад муниципального общеобразовательного учреждения средней общеобразовательной школы №13


Поделитесь с Вашими друзьями:
1   ...   9   10   11   12   13   14   15   16   ...   50


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал