- •Расширенные возможности 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.B. Сетевые зависимости
Инициализационные скрипты в /etc/init.d могут зависеть от специфического сетевого интерфейса, или просто от net. Все сетевые интерфейсы в инициализационной системе Gentoo дают то, что называется net.
Если в /etc/rc.conf переменная rc_depend_strict=«YES», то все сетевые интерфейсы, которые дают net должны быть активными, прежде чем зависимость на «net» будет считаться выполненной. Другими словами, если у вас есть net.eth0 и net.eth1, и инициализационный скрипт зависит от «net», то оба должны быть включены.
С другой стороны, если rc_depend_strict=«NO», то зависимость «net» считается выполненной, если в этот момент хотя бы один сетевой интерфейс работает.
Но что будет с net.br0, который зависит от net.eth0 и net.eth1? net.eth1 может быть беспроводным или PPP-устройством, которое должно быть сконфигурировано, прежде чем добавить его к мосту. Это не может быть сделано в /etc/init.d/net.br0, так как это просто символическая ссылка на net.lo.
Ответ заключается в определении настройки rc_need_ в /etc/conf.d/net.
Код 2.1: Зависимость net.br0 в /etc/conf.d/net |
rc_need_br0="net.eth0 net.eth1" |
Этого, однако, недостаточно. Инициализационные сетевые скрипты Gentoo используют виртуальную зависимость, называемую net, чтобы проинформировать систему, когда есть сеть. Ясно, в вышеприведенном случае, сеть можно обозначить как работающую только когда net.br0 будет запущена, а не все остальные. Поэтому это нужно тоже записать в /etc/conf.d/net.
Код 2.2: Обновляем виртуальные зависимости и разрешения для сети |
rc_net_lo_provide="!net" rc_net_eth0_provide="!net" rc_net_eth1_provide="!net" |
Для более детального обсуждения зависимостей, проконсультируйтесь с разделом «Инициализационные скрипты» данной книги. Больше информации о /etc/rc.conf приведено в примерах данной главы.
2.C. Имена и значения переменных
Имена переменных динамические. Обычно они соответствуют структуре variable_${interface|mac|essid|apmac}. Например, переменная dhcpd_eth0 содержит значение опций dhcpd для eth0, а dhcpcd_essid содержит значение для опций dhcpd, когда какой-то интерфейс соединяется с ESSID «essid».
Однако не существует явного и четкого правила, которое говорит, что интерфейсы должны обязательно называться ethx. Вообще, многие беспроводные интерфейсы имеют имена вроде wlanx, rax, как и ethx. Также, некоторые интерфейсы, определенные пользователем, такие как мосты, могут быть с любым именем, например foo. Чтобы сделать жизнь еще интереснее, беспроводные точки доступа могут иметь имена с не-буквенно-цифровыми символами в них — это важно, так как вы можете конфигурировать параметры сети на каждый ESSID.
Проблема в том, что Gentoo использует переменные bash для сети, а bash не может использовать ничего, кроме английских букв и цифр. Чтобы обойти это ограничение, мы изменяем любой символ, который не является английской буквой или цифрой на символ _.
Другой проблемой bash является содержимое переменных — некоторые символы нужно «защитить». Это можно сделать добавив символ \ перед символом, который необходимо защитить. Следующий список символов нужно защищать таким образом - ", ' и \.
В следующем примере мы используем беспроводной ESSID, так как они могут содержать больше всех символов. Мы будем использовать ESSID My "\ NET:
Код 3.1: Пример имени переменной |
(Это будет работать, но такой домен не является правильным) dns_domain_My____NET="My \"\\ NET"
(Данная команда устанавливает домен DNS в My "\ NET, когда беспроводная карта соединяется с точкой доступа, ESSID которой My "\ NET) |