Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gentoo_x86_Handbook.doc
Скачиваний:
25
Добавлен:
19.09.2019
Размер:
924.16 Кб
Скачать

12.B. Gentoo в сети

Вы, конечно, всегда желанны на наших форумах Gentoo (http://forums.gentoo.org/), или на одном из наших Gentoo-IRC каналов (http://www.gentoo.org/main/en/irc.xml?style=printable).

У нас также есть несколько почтовых списков рассылки (http://www.gentoo.org/main/en/lists.xml?style=printable), открытых для всех наших пользователей. Информация о том, как присоединиться к ним, содержится в вышеприведенной ссылке.

Теперь мы закончим, и оставим вас наслаждаться установкой. :)

B. Работа с Gentoo

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

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

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

Portage полностью написана на на Python и Bash, и, поэтому, полностью видима пользователем, так как оба этих языка являются скриптовыми.

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

Код 1.1: Читаем man-страницу emerge

$ man emerge

1.B. Дерево Portage

Ebuild'ы (Ебилды)

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

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

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

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

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

# emerge --sync

Если вы не можете запустить rsync из-за ограничений файрвола, вы все равно можете обновить ваше дерево Portage, используя наши образы дерева 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

Установка приложений

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

Код 3.4: Устанавливаем gnumeric

# emerge gnumeric

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

Код 3.5: Что установится с gnumeric

# emerge --pretend gnumeric

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

Код 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, которое является частью пакета 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 удалить все установленные этим пакетом файлы, кроме тех конфигурационных файлов этого приложения, которые вы меняли после установки. Это позволяет продолжить работать с пакетом, если вы когда-нибудь решите установить его снова.

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

Код 3.9: Удаляем gnumeric из системы

# emerge --unmerge gnumeric

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

Обновляем вашу систему

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

Код 3.10: Обновляем вашу систему

# emerge --update --ask world

Затем Portage найдет новые версии приложений, которые вы установили. Однако он проверит только версии для приложений, которые вы установили явно (приложения, находящиеся в списке /var/lib/portage/world) — он не проверяет все их зависимости. Если вы хотите обновить и зависимости этих пакетов тоже, добавьте аргумент --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-meta установит полное 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]