Russian Gentoo FAQ

Вопросы, часто задаваемые пользователями Gentoo на постсоветских пространствах

Модератор: Алексей Федорчук

Здесь приведены вопросы, которые задавались мне в частной переписке или всплывали на форуме сайта LinuxShop, и ответы на которые не найти в официальном Gentoo FAQ, ныне доступном и в русском переводе. Настоящие же ответы исходят из а) того, что предложено а) на форуме и б) из моего скромного разумения. Собственно говоря, этот FAQ и возник как попытка гуртом ответить на письма, на которые я иногда не мог ответить физически или технически (за что приношу извинения их отправителям).

Если у вас есть вопросы, не охващенные ни в одном из указанных документов - пожалуйста, присылайте, желательно вместе с ответами:-).

Содержание

Установка Gentoo

Вопрос
Что необходимо для установки Gentoo?

Ответ
Три вещи (кроме достаточно мощного компьютера): 1) носитель, с которого можно загрузить ядро Linux, "живую" (Live) файловую систему (то есть такую, к которой можно подмонтировать файловые системы на разделах жесткого диска) и утилиты разбивки диска (как минимум fdisk), создания файловых систем (хотя бы mke2fs) и их монтирования/размонтирования (mount/umount); 2) привод, в который этот носитель можно вставить и с которого можно загрузиться; 3)

Вопрос
Что может выступать в роли загрузочного носителя?

Ответ
Все, с чего можно загрузиться (и немножечко - то, с чего загрузиться теортерически нельзя :-). Практически, однако, очень рекомендуется загрузочный Live-CD, записанный с оригинального iso-образа, полученного с сайта проекта. Потому что ядро, загружаемое с него, включает (встроенную или модульную) поддержку всего, что может потребоваться при установке Gentoo: распространенных сетевых и SCSI-адаптеров, PPP-протокола, контроллеров IDE-RAID (как от Promise, тфк и от HighPoint), всех возможных как нативные файловых систем (ext3fs, ReiserFS, XFS, JFS), в том числе программных RAID-массивов и систем управления логическими томами (LVM и EVMS).

Вопрос
Обязательно ли загрузочный iso должен соответствовать устанавливаемой версии?

Ответ
Не обязательно. Однако при использовании образа от более старой версии нет уверенности в корректной работе с новым оборудованием (например, чипсетами серии i845PE/GE или IDE-RAID).

Вопрос
Можно ли установить Gentoo, загрузившись с дискет?

Ответ
В самом по себе Gentoo штатным образом такая функция не предусмотрена (даже образом дискет нету). Однако можно подобрать подходящие к имеющемуся оборудованияю образы дискет из последних версий Slackware (вероятно, и каких-то других дистрибутивов тоже).

Вопрос
Что необходимо скачать для установки Gentoo, кроме образа Live-CD?

Ответ
Это зависит от характера подключения к Сети - раз, и от потребностей в дополнительном софте - два. Для установки базовой системы при хорошем коннекте до начала установки достаточно иметь (в текущем пре-релизе 1.4) тарбалл stage1 и один из последних снапшотов дерева портежей (portage-год_месяц_число.tar.bz2). Если на локальной машине выхода в Сеть нет (или коннект плохой), потребуются: тарбалл stage3 (stage1 и stage2 можно пропустить), тот же снапшот портежей и исходные тексты желаемого ядра (ac, gentoo, xfs и т.д.) плюс Gentoo-специфичные патчи для него (если планируется установить каноническое ядро с kernel.org, в патчах необходимости не возникнет).

Вопрос
Что входит в понятие базовой системы Gentoo?

Ответ
Ядро и его окружение, загрузчик (GRUB или LILO), система стартовых скриптов, общесистеные библиотеки (glibc и ncurses), средства разработки (gcc, Python, Perl) и управления сборкой (make, automake, autoconf), утилиты для работы с файлами и текстами (find, grep, awk, sed), текстовый редактор (nano) и ftp-клиент (wget), ну и еще кое-какие мелочи.

Вопрос
А где же все сотальное (Иксы, KDE, офисные пакеты - нужное вписать)?

Ответ
Для установки всего остального в Gentoo штатно предусомтрена система портежей (см. следующий раздел)

Система портежей

Вопрос
Что такое система портежей?

Ответ
Это система получения из Сети исходников пакетов, их сборки и установки в файловой системе Gentoo.

Вопрос
Можно ли использовать систему портежей на машине без постоянного подключения к Сети (например, дома)?

Ответ
Можно, нужно только скачать все требуемые исходники заранее (например, на службе), перенести их домой на любом носителе и поместить в каталоге /usr/portage/distfiles.

Вопрос
Как определить, какие пакеты необходимо скачать для установки данного (т.н. от каких пакетов он зависит)?

Ответ
Для определения отношений зависимости данного пакета штатно предусмотрена команда emerge --pretend /path/package_name.

Вопрос
Команда emerge --pretend для Midnight Commander (например) выдает оргомный список требуемых пакетов, включаяя XFree86, Gtk, GNOME etc. А ведь я заказывал простой консольный файловых менеджер!!!

Ответ
Кроме жестких отношений зависимостей (типа - KDE от Qt или GNOME от Gtk), в Gentoo предусмотрены "мягкие" отношения использования. Они могут настраиваться пользователем с помощью задания значений переменной USE, что описано (по русски) в соответствующей статье.

Вопрос
Мне необходимо устанавливать новейшие версии программ, которые еще не портированы в Gentoo. Если собирать их руками - как это согласуется с идеологией Gentoo и системой портежей?

Ответ
Замчательно согласуется. Пакеты, собранные руками, будут существовать в Gentoo на равных правах с пакетами потрированными. При определении зависимостей вновь устанавливаемого пакета система портежей не просто проверяет свою базу данных, но выполняет реальное предкомпиляционное конфигурирование. И потому все собранные руками пакеты будут выявлены и учтены при определении зависимостей.

Локализация

Вопрос
Как идеологически правильно выполнить в Gentoo локализацию (например, русскую)?

Ответ
Основа идеологии Gentoo - правильно все, что хорошо работает. И потому любой работоспособный вариант локализации будет идеологически правильным :-)

Если же серьезно - насколько мне удалось выяснить, для штатного определения локали в Gentoo предназначена система env.d, о которой по русски можно прочитать здесь - Env.d HOWTO. То есть нужно создать файл /etc/env.d/##locale (цифровое значение берется из числа незанятых в /etc/env.d/ в интервале между 00basic и ##xfree, само по себе имя - произвольно), внести в него строку типа LANG='ru_RU.KOI8-R' и выполнить команду env-update.

К сожалению, в оригинальном варианте это работает только если в качестве login shell используется bash. В zsh и tcsh локаль приходится определять через соответствующие профайлы в /etc или $HOME. Я нынче размышляю о том, как прикрутить env.d для работы с оболочкой zsh (которую сам использую и другим советую). Если кто придумает аналогичное общее решение для оболочки tcsh - буду признателен за информацию.