Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 117, СЕНТЯБРЬ 2008 г.

Самый быстрый пингвин: Gentoo Linux 2008.0: новый релиз популярного дистрибутива

Юрий «bober» Раззоренов (zloy.bobr@gmail.com, root.ua)

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

Пингвин не любит новичков

Дженту появился на свет в начале 2002 года и, несмотря на свое прохладное отношение к новичкам, практически сразу обрел популярность. Почему прохладное? В первых версиях вместо интуитивно понятной программы установки предлагалась суровая командная строка и 20-страничный талмуд с описанием. Нужно было загрузиться с LiveCD, распаковать архив, а затем поправить все конфигурационные файлы и самостоятельно собрать ядро. Да, – еще разметить диски, причесать /etc/fstab, настроить локализацию. И все это вручную. Согласись, тут нужно обладать немалыми знаниями или стремиться к таковым. Дистрибутив изначально был рассчитан на power users. С другой стороны, после разборок с Gentoo человека не напугаешь мандрейком или, например, редхатом.

Если для личного пользования система и могла быть приемлемой, то процесс развертывания Gentoo в корпоративной среде на сотне компов представлялся с трудом. Наверное, и сами разработчики поняли, что перемудрили, так как в августе 2005 года на суд общественности была представлена альфа-версия программы установки с графическим интерфейсом. Имидж дистрибутива в глазах бывалых гентушников от нововведения практически не пострадал; любителям сложностей «традиционно экстремальный» путь был по-прежнему доступен. Но вот развернуть систему при помощи готовых бинарных пакетов стало проще и, главное, быстрее. В настоящее время версия Gentoo Installer достигла номера 0.6.6, и, судя по всему, планы по ее совершенствованию у разработчиков громадные.

Чем хорош Gentoo

Муки установки удалось полностью компенсировать за счет оптимизации ядра, библиотек и программ под конкретное аппаратное обеспечение и задачи. В первую очередь, благодаря системе управления пакетами Portage, которая заимствовала идею портов, принятую в BSD системах. В отличие от большинства дистрибутивов, пользователь мог собрать полностью оптимизированную под конкретное оборудование систему еще на этапе установки.

В Gentoo применяются флаги USE, отвечающие за включение/выключение различных опций, которые обычно используются при конфигурировании командой ./configure во время стандартной сборки программы из исходников («--enable/disable» или «-–with/without»). Например, переменная USE="X gtk gnome -alsa" соответствует команде "./configure -–with-x -–with-gtk –-with-gnome –-without-alsa". USE-флаги могут быть глобальные, локальные и временные. Некоторые пакеты после установки также добавляют свои значения в USE.

Для сборки под конкретное оборудование используются флаги CHOST, CFLAGS, CXXFLAGS и USE. Их настройка производится в файле /etc/make.conf. По умолчанию сборка происходит под архитектуру i686:

# grep CFLAGS /etc/make.conf
CFLAGS="-march-686 -pipe"

Именно полный контроль над системой, начиная с первых шагов установки, привлекает пользователей к этому, казалось бы, не самому удобному дистрибутиву. Здесь принято компилировать программы из исходных текстов, вместо того, чтобы устанавливать готовые пакеты. Портеж полностью берет на себя заботу о деталях. Достаточно указать имя программы, и она будет загружена, скомпилирована со всеми зависимостями и установлена. Выглядит это не сложнее работы с APT в том же Ubuntu, правда, несравненно дольше. За работу с портежами отвечает специальная утилита emerge. Обновление системы до последней версии также просто и, фактически, выполняется одной командой «emerge -uavDN world».

Возможности Portage этим не ограничены. Например, технология слотов (SLOT) обеспечивает мирное сосуществование в системе нескольких версий одной программы. Использование механизма маскировки позволяет устанавливать как стабильные (по умолчанию), так и экспериментальные, но более свежие/функциональные версии программ. При этом сохраняется возможность отката на любую из старых версий. У некоторых пакетов в дереве портежей нет содержимого как такового – в этом случае в бой вступают метапакеты. Например, пакет kde полностью устанавливает среду KDE, привлекая различные KDE-пакеты в качестве зависимостей.

Команда, при помощи которой производится синхронизация дерева портежей, выглядит следующим образом:

# emerge --sync

Не будем скрывать, у дистрибутива есть и очевидные недостатки. Среди основных: необходимость в широком канале и мощном компьютере. Компиляция всей системы и дополнительных пакетов займет немало времени. На сборку KDE в минимальной поставке на процессоре P4 1.6 Гц уйдет около 2 дней. Кроме того, нет каких-либо графических средств настройки.

Для удобства предусмотрены три уровня оптимизации базовой системы: от stage1 до stage3. Так, stage1 предназначен для загрузки и дальнейшего построения всей системы с нуля; в stage2 имеется наполовину готовая базовая система – а stage3 содержит базовый Gentoo. Сейчас поддержка предоставляется только при установке stage 3, и в основной документации описан именно этот вариант. Поэтому stage 1 и 2 – уровни для знатоков.

Компиляция и установка нового ядра, пугающая новичков даже своим названием, в Gentoo может быть выполнена всего одной командой «genkernel --install all». Конечно, это будет не то ядро, ради которого устанавливается Gentoo, но начинающим должно понравиться.

В Gentoo реализована поддержка прекомпилированных пакетов. Их роль, скорее, вспомогательная, однако полностью отказываться от них нельзя, так как некоторые программы распространяются исключительно в бинарном виде. Хотя, использовав emerge с параметрами '--buildpkg' или '--buildpkgonly', при необходимости можно собрать и пакет.

Новичку освоить такой непростой дистрибутив без чтения мануалов просто не реально. И тут открывается еще один плюс Gentoo – наличие очень подробной документации, к тому же переведенной на несколько языков, в том числе и наш любимый русский. В Gentoo Handbook (www.gentoo.org/doc/ru/handbook) ты найдешь ответы на все вопросы по установке в разных режимах, настройке дистрибутива, использованию системы портежей и т.д. Английская версия хэндбука есть на установочном LiveCD.

Также много полезной информации содержится в русскоязычном разделе Gentoo wiki (ru.gentoo-wiki.com). Рекомендуем изучить раздел по русификации установленного Gentoo. Кстати, в документации есть несколько советов для юзеров, сидящих на медленных каналах. Если воспользоваться утилитой Deltup (Delta Update, deltup.sf.net), – это позволит сэкономить почти 90% трафика за счет того, что загружается не весь архив с исходными кодами, а только разность между новой и старой версией (применяется принцип, заложенный в diff/patch). Правда, тулза не лишена недостатков, в частности, не поддерживается докачка пакетов.

Система профилей – набор настроек для определенной архитектуры или некоторого класса задач – сделала Gentoo удобным инструментом для создания других дистрибутивов. Профили находятся в /usr/portage/profiles, где уже есть заготовки для систем с повышенными требованиями к безопасности (hardened и selinux), встраиваемых устройств (embedded), десктопов и серверов. Описание текущего профиля доступно по команде:

# cat /etc/make.profile/parent
../targets/desktop

Как видишь, профиль по умолчанию десктопный. Чтобы изменить его, достаточно создать симлинк /etc/make.profile на каталог с выбранным профилем в /usr/portage/profiles.

Новинки 2008.0

Финальная версия Gentoo Linux 2008.0 под кодовым названием «It's got what plants crave» вышла с опозданием на 4 месяца (релиз был намечен на середину марта) и спустя 14 месяцев после предыдущего релиза 2007.0. Версия 2007.1 из-за большой загруженности разработчиков не состоялась. Но для таких дистрибутивов, как Gentoo, само понятие «релиз» весьма относительно, ведь в любой момент можно обновиться до актуального состояния. Тем более, сами разработчики регулярно поставляют обновленные срезы. Релизы выходят именно тогда, когда они должны появиться, и накоплена критическая масса обновлений. Поэтому назвать недостатком «невыход в срок» тяжело. Например, в другом подобном дистрибутиве Arch Linux (www.archlinux.org) выход релизов вообще не принято планировать.
Вероятно, именно по этой причине список нововведений на странице www.gentoo.org/news/20080706-release-2008.0.xml насчитывает всего шесть основных пунктов. По сравнению с той же Mandriva, выглядит он скупо, но, по крайней мере, свидетельствует о том, что разработчики не успели ничего испортить. Переход на ядро 2.6.24 означает расширение списка поддерживаемого оборудования. Чтобы уменьшить размер образа, место GNOME на LiveCD занял XFce 4.4.2, который и будет установлен в качестве рабочего окружения при бинарной инсталляции. Теперь KDE (кстати, есть и четвертый) или GNOME необходимо собирать из исходников. Полностью реструктурированы профили; новое их размещение – подкаталог default/linux. И, конечно, обновление коснулось основных пакетов: Portage 2.1.4.4, gcc 4.1.2, glibc 2.6.1 и других в дереве ebuild.

Gentoo 2008.0, кроме стандартных x86- и amd64-архитектур, также доступен для: Alpha, HPPA, IA64, MIPS, PPC, S390, SH и SPARC64.

Не обошлось и без багов. Сразу после релиза всплыли две серьезные ошибки, не позволяющие записать образ для amd64 на обычную CD-болванку, а загрузка в LiveCD часто прерывалась из-за ошибки записи kernel/initramfs в tmpfs. Проявлялось это не всегда и не во всех конфигурациях, но сейчас это уже не важно, так как выпущена исправленная версия 2008.0-r1. Будь внимателен при закачке.

На странице для загрузки дистрибутива (www.gentoo.org/main/en/where.xml) из всего списка вариантов применительно к x86 и amd64 на выбор предложены всего два. Вариант Minimal CD/InstallCD размером 80 Мб содержит только базовый набор и ориентирован на сетевую установку. Выбрав вариант LiveCD, можно в итоге получить рабочую систему, собранную из пакетов. Здесь уже доступен графический вариант инсталлятора. В настоящее время LiveDVD вариант для x86 и amd64 из-за проблем со сборкой не предлагается, но, возможно, он будет доступен позднее.

Для тех, кто уже имеет установленный Gentoo, перед обновлением советую ознакомиться с руководством Gentoo Upgrading Guide, который размещен по адресу www.gentoo.org/doc/en/gentoo-upgrading.xml. Собственно, большая часть описанных проблем связана с изменениями в профиле.
Кстати, роадмап на этот год весьма жесткий, поэтому в ближайшее время можно ожидать версию 2008.1.

Установщик Gentoo

Один из HowNotTo «Как НЕ устанавливать Gentoo Linux» на сайте ebash.in/hownotto гласит: «…не пользуйтесь графическим инсталлятором! На данный момент (2007.0) он хоть и не такой кривой, как раньше, но все еще не готов заслужить всеобщего одобрения, а тех, кто им воспользуется, ждут страшный суд, вечные муки, ад и погибель». Привел полностью, чтобы было понятнее, как установщик выглядел прежде.

В Gentoo 2008.0 обновленная (до версии 0.6.6) программа инсталляции дистрибутива на жесткий диск теперь поддерживает только локальную, бессетевую установку при помощи пакетов и дерева ebuild'ов. В новинках числятся и многочисленные исправления для работы с дисковыми разделами. Доступны два варианта интерфейса Gentoo Installer – GTK+ и псевдографический. Порядок установки в каждом случае несколько отличается, а отдельные моменты до сих пор вводят в ступор даже матерых линуксоидов. Скажем, на некоторых этапах надо выбирать между «OK» и «Save and Continue». Ну, и что нажимать? Вернуться к предыдущему шагу в текстовом варианте нельзя: нужно сохранить настройки, завершить установку, закрыв терминал, и начать все сначала. В графическом вернуться назад можно, но только теоретически :). Переход со второго шага (точки монтирования) на первый (разметка диска) и обратно может отправить установщик в нокаут, а на третьем и четвертом шаге кнопка «Previous» заблокирована.

Реализована автоматическая разметка диска, которая активируется выбором Recommended Layout. При ее использовании будет создан 100-мегабайтный раздел /boot и свап, равный двойному ОЗУ (до 512 Мб), а остальное отдано под корень (форматируется в ext3fs). Кстати, именно так рекомендовано разбивать диск в официальном руководстве. Беда в том, что мастер не подозревает о наличии других ОС и сотрет все разделы, уточнив, на всякий случай, насчет твоей уверенности в дальнейших действиях. Не нравится? Тогда только вручную. Тем более, это несложно.

Сам Installer весьма прост в обращении и обеспечивает не только установку, но и первичную настройку того, что раньше приходилось вбивать ручками прямо в конфигурационные файлы, покуривая мануалы. Кое-какие подсказки даются в левом окне мастера.

Если вкратце, то процесс выглядит так: разметка диска; настройка точек монтирования; после нажатия на Next без всякого предупреждения начнется распаковка установочных файлов на диск, прерывать которую не стоит. Далее вводим пароль root, задаем часовой пояс. На этапе настройки сети можно указать параметры не только Ethernet-устройств, но и WiFi. Теперь заводим нового пользователя, подглядывая в левую панель при заполнении названий групп. Затем программа предлагает выбрать отдельные пакеты для установки в группе extra, которые разбиты на несколько категорий: X11, Recommended, Servers, Misc и Desktop. Пакетов в каждой категории немного. После выбора будет произведена проверка зависимостей. Например, я указал XFce, но не отметил, что мне нужен X.Org. Установщик справился с задачей, но никаких предупреждений не вывел, и до окончания процесса я буду оставаться в неведении, заработает ли система.

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

Заметим, о загрузчике нас никто не спрашивал. Но через некоторое время узнаем, что Gentoo грузится и даже почти что работает (почти – так как X и остальное настраиваются по-прежнему ручками). В моем случае после команды startx стартанул TWM, хотя при настройке я выбирал GDM и XFce :).

Немного о работе

Меню загрузки в LiveCD-варианте очень простое. Нажав <F1>, можно получить информацию по доступным ядрам, а <F2> открывает доступ к информации о дополнительных параметрах. В процессе загрузки скрипт на несколько секунд остановится, позволяя ввести другую раскладку клавиатуры. Если был нажат <Enter> или ответа не последовало, через некоторое время загрузка продолжится с параметрами по умолчанию. В окне регистрации можно выбрать русский язык, но, к сожалению, на XFce это никак не скажется. Если есть работающий DHCP, сеть будет настроена автоматически.

Установить пакет элементарно. Находим нужное название, введя команду вроде «emerge --search apache» или (для поиска в описаниях) «emerge --searchdesc apache», и устанавливаем:

# emerge apache

По умолчанию апач идет с такими параметрами:

USE="ldap ssl -debug -doc -mpm-event -mpm-itk
-mpm-peruser -mpm-prefork -mpm-worker -no-suexec
(-selinux) -static-modules -threads"

Знак минуса показывает, что с этим флагом пакет компилироваться не будет. Чтобы узнать, с какими флагами будет установлен пакет, следует добавить параметры '–ask', '-av' или '-pv'. Чтобы собрать программу с другими флагами, используй конструкцию вроде:

# USE="-ldap mom doc" emerge apache

Увы, при следующем обновлении пакет будет собран со стандартным набором флагов. Чтобы упростить себе жизнь, флаги для отдельных пакетов лучше заносить в файл /etc/portage/package.use. Удалить пакет также просто: «emerge –unmerge название» и его как не бывало. Облегчить работу с флагами поможет утилита euse. Вводим «euse –i название_флага» и выясняем, взведен ли он.

Заглянуть под капот

Сравнивать Gentoo с другими дистрибутивами ни в коем случае нельзя. Это выбор тех, кто любит тотальную оптимизацию и привык все держать под полным контролем. Тем, кому нужен просто дистрибутив, готовый к работе сразу после установки, без желания и необходимости заглянуть под капот, покопаться в моторе, – лучше смотреть в сторону Ubuntu, Mandriva и прочих решений.

Творческие порывы создателя Gentoo

Летом 2005 года Дэниел Роббинс (кстати, бывший разработчик FreeBSD) удивил все сообщество своим переходом в компанию Microsoft, где возглавил лабораторию по исследованию открытых систем (Microsoft Linux and Open Source Lab). Впрочем, проработал он там меньше года, в качестве официальной причины ухода была указана невозможность полной реализации своих способностей. К «родному» проекту он вернулся в марте 2007 года.

Дистрибутивы на базе Gentoo

Стоит отметить, Gentoo дал жизнь нескольким дистрибутивам – Sabayon, Calculate Linux Desktop, спасательному SystemRescueCD и некоторым другим. Наиболее популярен из них Sabayon (www.sabayonlinux.org) – он является, наверное, самым дружественным на сегодня Gentoo. Хотя бывалые гентушники считают его, скорее, иллюстрацией возможностей Gentoo, чем реальным соперником.

DVD

На прилагаемом к журналу диске ты найдешь Gentoo Linux 2008.0 для архитектуры x86.

INFO

  • Минимальные системные требования: процессор 486 и выше, 64 Мб ОЗУ, раздел 1.5 Гб + 256 Мб под свап. Но для работы в Gentoo желательно иметь более современный комп (особенно при самостоятельной сборке приложений).
  • В качестве названия дистрибутива выбран самый быстрый из пингвинов Pygoscelis papua, по-английски gentoo.
  • Дистрибутив Sabayon, о котором шла речь в X_06_2008, основан на Gentoo и имеет удобный графический инсталлятор.
  • Утилита Deltup (deltup.sf.net) позволяет сэкономить львиную долю трафика при обновлении.
  • Эксперименты над сборками GCC показали, что производительность получаемого пакета увеличивалась (в зависимости от аппаратного обеспечения) от 10 до 200% по сравнению с бинарными сборками gcc, поставляемыми другими дистрибутивами.
  • Пакет virtual/syslog показывает зависимость от любого пакета, отвечающего за журналирование.

WWW

  • Освоить такой непростой дистрибутив, как Gentoo, поможет Gentoo Handbook – www.gentoo.org/doc/ru/handbook.
  • Сообщество русскоязычных пользователей Gentoo Linux разместилось по адресу www.gentoo.ru.
  • В русскоязычном разделе Gentoo wiki (ru.gentoo-wiki.com) содержится много полезной информации по настройкам.
  • Ближайшее зеркало для загрузки находится по адресу mirror.yandex.ru/gentoo-distfiles.
  • Кроме официальных зеркал, дистрибутив можно скачать и с торрент-трекера проекта (torrents.gentoo.org).
Содержание
ttfb: 63.002109527588 ms