- •Расширенные возможности 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. Обслуживание сети
2.A. Что такое use-флаги?
Идея, стоящая за USE-флагами
Когда вы устанавливаете Gentoo (или любой другой дистрибутив, или даже операционную систему в данном случае), вы делаете выбор, в зависимости от окружения, в котором вы работаете. Настройка для сервера отличается от настройки для рабочей станции. Игровая рабочая станция отличается от рабочей станции для 3D-рендеринга.
Это правильно не только для того, чтобы выбрать, какие пакеты установить, но и какие возможности должен поддерживать конкретный пакет. Если вам не нужен OpenGL, зачем вам маяться с установкой OpenGL, и включать поддержку OpenGL в большинство ваших приложений? Если вы не используете KDE, зачем вам маяться с компиляцией пакетов с поддержкой KDE, если эти пакеты нормально работают и без нее?
Чтобы помочь пользователям в решении, что они хотят установить/активировать, а что нет, мы хотим, чтобы пользователи могли описать его/ее окружение простым способом. Это заставит пользователя решить, что им реально необходимо, и упростит процесс для Portage, нашей системе менеджмента пакетов, в части принятия полезных решений.
Определение USE-флага
Вступайте в мир USE-флагов. Такой флаг это ключевое слово, которое включает в себя поддержку и инорфмацию о зависимостях для некоторой концепции. Если вы определите некоторый USE-флаг, Portage будет знать, что вы хотите поддержку выбранного ключевого слова. Конечно, это также изменит информацию о зависимостях пакета.
Давайте посмотрим на конкретный пример: ключевое слово kde. Если у вас нет этого ключевого слова в вашей переменной USE, все пакеты, в которых есть возможная поддержка KDE, будут скомпилированы без поддержки KDE. Все пакеты, в которых есть возможная зависимость от KDE будут установлены без установки библиотек KDE по зависимости. Если вы определили ключевое слово kde, тогда эти пакеты будут скомпилированы с поддержкой KDE, а библиотеки KDE будут установлены как зависимости.
Правильно определив ключевые слова, вы получите систему, разработанную специально по вашим нуждам.
Какие USE-флаги сущестувуют?
Существует два типа USE-флагов: глобальные и локальные USE-флаги.
Глобальный USE-флаг используется несколькими пакетами, на уровне системы. Это то, что большинство людей и назовет USE-флагами.
Локальный USE-флаг используется одним пакетом, чтобы принимать решения для каждого пакета отдельно.
Список существующих глобальных USE-флагов можно найти онлайн (http://www.gentoo.org/dyn/use-index.xml?style=printable), или локально в /usr/portage/profiles/use.desc.
Список существующих локальных USE-флагов может быть найден локально в /usr/portage/profiles/use.local.desc.
2.B. Использование use-флагов
Определение постоянных USE-флагов
В надежде на то, что вы прониклись важностью USE-флагов, мы расскажем вам, как определять USE-флаги.
Как уже говорилось ранее, все USE-флаги определяются в переменной USE. Чтобы упростить пользователям поиск и выбор USE-флагов, мы уже даем настройки USE по умолчанию. Эта настройка — это коллекция USE-флагов, которая, как мы думаем, часто используется пользователями Gentoo. Эта настройка по умолчанию определена в make.defaults части вашего профиля.
На профиль, который использует ваша система, указывает символическая ссылка /etc/make.profile. Каждый профиль работает на базе другого, более широкого профиля, и конечный результат это сумма всех профилей. Самый широкий профиль — это базовый профиль (/usr/portage/profiles/base).
Давайте посмотрим на значение по умолчанию для профиля 10.0:
Код 2.1: Кумулятивное значение переменной USE для профиля 10.0 из файла make.deafults |
(This example is the sum of the settings in base, default/linux, default/linux/x86 and default/linux/x86/10.0/) USE="a52 aac acpi alsa branding cairo cdr dbus dts dvd dvdr emboss encode exif fam firefox flac gif gpm gtk hal jpeg lcms ldap libnotify mad mikmod mng mp3 mp4 mpeg ogg opengl pango pdf png ppds qt3support qt4 sdl spell startup-notification svg tiff truetype vorbis unicode usb X xcb x264 xml xulrunner xv xvid" |
Как вы можете видеть, данная переменная уже содержит много ключевых слов. Не меняйте никакой файл make.defaults, чтобы изменить переменную USE так, как вам нужно. Любые изменения в этом файле отменятся, если вы обновите Portage!
Чтобы изменить эту настройку по умолчанию, вам нужно добавить или убрать ключевые слова в переменной USE. Это делается глобально определением переменной USE в /etc/make.conf. В данной переменной вы добавляете дополнительные USE-флаги, которые вам необходимы, или удаляете USE-флаги, которые вы не хотите. Последнее делается добавлением минуса («-») перед ключевым словом.
Например, чтобы убрать поддержку KDE и QT, но оставить поддержку ldap, следующая переменная USE может быть определена в /etc/make.conf.
Код 2.2: Пример настройки USE в /etc/make.conf |
USE="-kde -qt4 ldap" |
Определение USE-флагов для конкретных пакетов
Иногда вы хотите определить некоторый USE-флаг для одного (или нескольких) приложений, но не на общесистемном уровне. Чтобы сделать это, вам нужно создать каталог /etc/portage (если он еще не существует), и отредактировать /etc/portage/package.use. Это обычно один файл, но может быть и каталогом (смотри man portage для более детальной информации). Следующие примеры предполагают, что package.use это один файл.
Например, если вы не хотите поддержку berkdb глобально, но вы хотите ее для mysql, вы добавите:
Код 2.3: Пример /etc/portage/package.use |
dev-db/mysql berkdb |
Вы можете, конечно, явно выключать USE-флаги для некоторого приложения. Например, если вы не хотите поддержку java в PHP:
Код 2.4: Второй пример /etc/portage/package.use |
dev-php/php -java |
Определение временных USE-флагов
Иногда вы хотите установить некоторый USE-флаг только один раз. Вместо редактирования /etc/make.conf дважды (чтобы сделать, и чтобы отменить изменения USE), вы можете определить переменную USE как переменную окружения. Помните, что когда вы переустановите, или обновите это приложение (или явно, или как часть обновления системы), ваши изменения будут потеряны!
Как пример, мы временно уберем java из настройки USE в течение установки seamonkey.
Код 2.5: Используем USE как переменную окружения |
# USE="-java" emerge seamonkey |
Последовательность
Конечно, существует некоторая последовательность, какие настройки имеют приоритет в настройке USE. Вы не захотите определять USE=«-java» только для того, чтобы увидеть, что java все еще используется из-за настройки, у которой более высокий приоритет. Приоритет настройки USE, упорядоченный по приоритету таков (по возрастанию приоритета).
USE значение по умолчанию, определенный в make.defaults-части вашего профиля
Определенный пользователем USE в /etc/make.conf
Определенный пользователем USE в /etc/portage/package.use
Определенный пользователем USE как переменная окружения
Чтобы посмотреть конечную настройку USE, как ее увидит Portage, запустите emerge --info. Это покажет все важные переменные (включая переменную USE) с таким содержимым, с которым ее будет использовать Portage.
Код 2.6: Запускаем emerge --info |
# emerge --info |
Адаптируем вашу систему к новым USE-флагам
Если вы изменили USE-флаги, и вы хотите обновить всю вашу систему для использования новых USE-флагов, используйте опцию emerge --newuse:
Код 2.7: Перестраиваем всю вашу систему |
# emerge --update --deep --newuse world |
Далее запустите опцию Portage --depclean, чтобы удалить зависимости, которые установились на вашу «старую» систему, но которые уже не нужны с новыми USE-флагами.
Осторожно: Запуск emerge --depclean это опасная операция, и ее нужно выполнять осторожно. Дважды проверьте список «устаревших» пакетов, чтобы удостовериться, что не удалятся пакеты, которые вам нужны. В следующем примере мы добавляем ключ -p, чтобы только посмотреть на список пакетов, но не удалить их. |
Код 2.8: Удаляем устаревшие пакеты |
# emerge -p --depclean |
Когда depclean закончится, запустите revdep-rebuild, чтобы перекомпилировать приложения, которые динамически слинкованы с библиотеками, которые принадлежали (возможно) удаленным пакетам. revdep-rebuild это часть пакета gentoolkit, не забудьте сначала установить его.
Код 2.9: Запускаем revdep-rebuild |
# revdep-rebuild |
Когда все это выполнено, ваша система использует новые настройки USE-флагов.
2.c. USE-флаги, специфичные для каждого пакета
Просмотр существующих USE-флагов
Давайте возьмем как пример seamonkey. Какие USE флаги на нео влияют? Чтобы это определить, мы будем использовать emerge с опциями --pretend и --verbose.
Код 3.1: Просматриваем используемые USE-флаги |
# emerge --pretend --verbose seamonkey These are the packages that I would merge, in order:
Calculating dependencies ...done! [ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java -debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango -moznoroaming -postgres -xinerama -xprint" 0 kB |
emerge это не единственная утилита для этой работы. Вообще, у нас есть приложение, специально для информации о пакетах, называемое equery, которое находится в пакете gentoolkit. Сначала устанавливаем gentoolkit:
Код 3.2: Устанавливаем gentoolkit |
# emerge gentoolkit |
Теперь запустим equery с аргументом uses, чтобы посмотреть USE-флаги конкретного пакета. Например, для пакета gnumeric:
Код 3.3: Используем equery чтобы просмотреть используемые USE-флаги |
# equery --nocolor uses =gnumeric-1.6.3 -a [ Searching for packages matching =gnumeric-1.6.3... ] [ Colour Code : set unset ] [ Legend : Left column (U) - USE flags from make.conf ] [ : Right column (I) - USE flags packages was installed with ] [ Found these USE variables for app-office/gnumeric-1.6.3 ] U I - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml . + + gnome : Adds GNOME support + + python : Adds support/bindings for the Python language - - static : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically |