- •Расширенные возможности Portage
- •А. Установка Gentoo
- •1. Об установке Gentoo Linux
- •1.А. Введение.
- •2. Выбор правильного источника установки.
- •2.А. Требования к железу
- •2.B. Установочные cd Gentoo
- •2.С. Скачайте, запишите, и загрузитесь с установочного cd Gentoo
- •3. Конфигурация сети
- •3.A. Автоматическое определение сети
- •3.B. Автоматическая конфигурация сети
- •3.С. Ручная настройка сети
- •4. Подготовка дисков
- •4.A. Введение в блочные устройства
- •4.B. Разрабатываем схему разделов
- •4.C. Использование fdisk для разбивки вашего диска
- •4.D. Использование parted для разбивки вашего диска
- •4.E. Создаем файловые системы
- •4.F. Монтирование
- •5. Установка файлов Gentoo
- •5.A. Устанавливаем tar-архив Stage3
- •5.B. По умолчанию: Используем Stage3 из Интернета
- •5.C. Устанавливаем Portage
- •5.D. Настройка опций компиляции
- •6. Установка базовой системы Gentoo
- •6.A. Чрутинг
- •6.B. Конфигурируем Portage
- •7. Конфигурация ядра
- •7.A. Временная зона
- •7.B. Устанавливаем исходники
- •7.C. По умолчанию: Ручная конфигурация
- •7.D. Альтернатива: Используем genkernel
- •7.E. Модули ядра
- •8. Конфигурация системы
- •8.A. Информация о файловой системе
- •8.B. Информация о сети
- •8.C. Системная информация
- •9. Установка необходимых системных приложений
- •9.A. Системный логгер
- •9.B. Опционально: Демон Cron
- •9.C. Опционально: Индексация файлов
- •9.D. Опционально: Удаленный Доступ
- •9.E. Программы работы с файловой системой
- •9.F. Программы работы с сетью
- •10. Конфигурация загрузчика
- •10.A. Делаем выбор
- •10.B. По умолчанию: Используем grub
- •10.C. Альтернатива: Используем lilo
- •10.D. Перезагружаем систему
- •11. Окончание установки Gentoo
- •11.A. Работа с пользователями
- •11.B. Очистка диска
- •12. Куда идти дальше?
- •12.A. Документация
- •12.B. Gentoo в сети
- •B. Работа с Gentoo
- •1. Введение в Portage
- •1.A. Добро пожаловать в Portage
- •1.B. Дерево Portage
- •1.C. Поддержка приложений
- •1.D. Лицензии
- •1.E. Когда Portage ругается...
- •2.A. Что такое use-флаги?
- •2.B. Использование use-флагов
- •3. Возможности Portage
- •3.A. Возможности Portage
- •3.B. Распределенная компиляция
- •3.C. Кеширование компиляции
- •3.D. Поддержка бинарных пакетов
- •3.E. Скачивание файлов
- •3.F. Загрузка проверенных образов дерева Portage
- •4. Инициализационные скрипты
- •4.A. Уровни запуска
- •4.B. Работаем с rc-update
- •4.C. Конфигурирование сервисов
- •4.D. Пишем инициализационные скрипты
- •4.E. Изменение поведения уровня запуска
- •5. Переменные окружения
- •5.A. Переменные окружения?
- •5.B. Определение переменных глобально
- •5.C. Определение переменных локально
- •C. Работа с Portage
- •1. Файлы и каталоги
- •1.A. Файлы Portage
- •1.B. Сохраненные файлы
- •1.C. Компиляция приложений
- •1.D. Возможности логгинга
- •2. Конфигурирование через переменные
- •2.A. Конфигурация Portage
- •2.B. Опции, специфичные для компиляции
- •2.C. Защита файлов конфигурации
- •2.D. Опции скачивания
- •2.E. Конфигурация Gentoo
- •2.F. Поведение Portage
- •3. Смешение веток приложений
- •3.A. Использование одной ветви
- •3.B. Смешиваем стабильную ветку и ветку для тестирования
- •3.C. Используем замаскированные пакеты
- •4. Дополнительные программы для Portage
- •5. Отход от официального дерева
- •5.A. Использование поднабора дерева Portage
- •5.B. Добавляем неофициальные ебилды
- •5.C. Приложения, не обрабатываемые Portage
- •6. Расширенные возможности Portage
- •6.A. Введение
- •6.B. Переменные окружения для каждого пакета
- •6.C. Вмешиваемся в процесс установки
- •6.D. Выполняем задачи после --sync
- •6.E. Изменяем настройки профиля
- •6.F. Применение нестандартных патчей
- •D. Конфигурация сети Gentoo
- •1. Начинаем
- •1.A. Начинаем
- •2. Расширенная конфигурация
- •2.A. Расширенная конфигурация
- •2.B. Сетевые зависимости
- •2.C. Имена и значения переменных
- •3. Модульная сеть
- •3.A. Сетевые модули
- •3.B. Обработчики интерфейсов
- •3.F. Связывание
- •3.G. Мосты (Поддержка 802.1d)
- •3.I. Туннелирование
- •3.J. Vlan (Поддержка 802.1q)
- •4. Беспроводные сети
- •4.A. Введение
- •4.D. Определение конфигурации сети на каждый essid
- •5. Добавление функциональности
- •5.A. Хуки стандартных функций
- •5.B. Хуки функций Wireless Tools
- •6. Обслуживание сети
- •6.A. Обслуживание сети
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 |