CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Демон в пингвиньей шкуре

Сергей А. ЯРЕМЧУК

С дистрибутивом, о котором пойдет речь в данной статье, автор впервые познакомился примерно полтора года назад, сразу после его анонса в марте прошлого года. Первое впечатление оказалось негативным. Наверное, сказалась привычка к многодисковости, когда за раз устанавливается сразу куча программ. Да и об оптимизации устанавливаемого ПО я как-то не очень тогда задумывался, все сводилось к стандартным процедурам: перекомпиляции ядра, отключению лишних сервисов и т.п. Возможна и другая причина: Linux с каждым днем становился ближе к пользователю, даже новичок мог установить и настроить последние версии RedHat, Mandrake и подобных. А тут явный откат назад, к ручной работе — кому, подумалось, такое может понравиться в наше время? Затем пришла очередь Lunar Linux, Source Mage (см. статью «Волшебный источник», МК №19 (242)) и любимчика — CRUX'а (см. статью «Каждому свой крест», МК №14 (237)). Постепенно стало очевидно и преимущество source-based дистрибутивов: ничего лишнего из приложений не устанавливается, система собирается оптимизированной под конкретное оборудование, а система портов, имеющаяся в этих дистрибутивах, позволяет без особых трудов доустановить все необходимое (при наличии хорошего канала, конечно). А когда здоровенная папка с программами, которые я так и не смог собрать под RedHat'ом (см. статью Романа (rtg) ЕПИШЕВА «Новая модель шляпки», МК №10 (233)), начала потихоньку таять... В общем, довольно слов. Встречайте признанного короля source-based дистрибутивов —Gentoo Linux.

Домашняя страница http://www.gentoo.org, на которой можно найти не только ссылки на серверы, откуда можно взять дистрибутив, но и просто море документации, для большинства доступны переводы на русском. Сам gentoo (произносится как «дженту») создан был Даниелем Роббинсом (Daniel Robbins), бывшим создателем Stampede Linux, одним из разработчиков FreeBSD. Ныне же систему поддерживает множество разработчиков из разных стран. С названием долго не возились, решили не выдумывать что-нибудь эдакое — забрасывать пингвинов на Луну, обращаться к магии и пр. Просто открыли зоологический словарик и ткнули в первую попавшуюся симпатичную (конечно же, пингвинью) мордашку. Этой мордашкой оказался один из видов пингвинов (Pygoscelis papua, по науке) обитающий на антарктических островах. Сам Pygoscelis papua небольшой по размеру, обладает хорошей подвижностью, что и выражает основные качества дистрибутива.

Daniel Robbins известен большинству пользователей в том числе и многочисленными статьями по новейшим технологиям Linux на сайте IBM (http://www-124.ibm.com/developerworks/oss). Надо сказать, многие, попробовавшие свои силы в Linux, рано или поздно обращаются и к BSD-системам, и что самое интересное, остаются там. В этих системах, несмотря на кажущиеся трудности с настройкой и установкой, есть очень много и привлекательных сторон. Даже я, если честно, хотел было туда рвануть — OpenBSD меня просто пленила. Но по моему мнению, Linux все же идет впереди по развитию — количество патчей к ядру на все случаи жизни под эту систему трудно даже пересчитать, разработчики отрываются, как говорится, по полной. А вот в BSD-системах главный упор делается все же на стабильность и безопасность, домашнему же пользователю, желающему заняться, например, обработкой звука, будут недоступны многие наработки, уже включенные в Linux-ядро. Так вот, все передовое, что привлекало пользователей и администраторов в BSD, перекочевало в Gentoo. В первую очередь это касается системы портов, которая была сюда перенесена, правда, в несколько измененном виде. Также из BSD-систем были заимствованы сценарии начальной загрузки, особенности настройки, некоторые конфигурационные файлы и многое другое. Получилось что-то вроде демона в пингвиньей шкуре. А что, это даже интересно!

Установка

Поклонники различных графических инсталляторов могут спокойно перевернуть страницу — все равно будете ругаться, лучше поберечь эмоции. Я устанавливал предрелиз версии 1.4rc4. Наверное, просто не повезло: буквально через неделю после того, как удалось вытащить дистрибутив из Интернета, был анонсирован релиз 1.4. Пришлось все скачивать заново, больше, правда, из интереса, т.к. Gentoo позволяет без проблем обновить систему до современного состояния буквально за пару шагов. В общем-то, релизы таких систем обычно предполагают изменения скорее в устройстве самого дистрибутива, чем в составляющих утилитах.

Установка навеяла воспоминания об OpenBSD. Необходимо с чего то загрузиться (или иметь уже установленный Linux), после чего просто распаковать архив и вручную отредактировать конфигурационные файлы. При закачке надо быть внимательным: есть вариант basic, рассчитанный под все платформы (79.5 Мб), предназначенный для самостоятельной сборки, а есть уже откомпилированные под определенную марку процессора (Pentium III и 4, Athlon XP) по два iso-образа размером около 490 Мб. На первом LiveCD-диске находятся необходимые компоненты для базовой установки, включая X-Window. На втором находится пакет, названный Gentoo Reference Platform, который является полной, заранее собранной системой Gentoo Linux, включающей GNOME, KDE, Mozilla и OpenOffice.

На сайте доступна очень подробная инструкция по установке (кстати, предрелизная установка практически во всем совпадает с basic) на 24 листах; скачивать ее полностью смысла не вижу — к сожалению, специфика установки и эксплуатации рассчитана на их, буржуйские каналы. Впрочем, инструкцию интересно хотя бы просто почитать, в ней объяснены все моменты, связанные с выбором и настройкой файловой системы, установкой загрузчика, подключению к Интернет, а также некоторые опции конфигурации ядра.

Как видите, Gentoo Linux можно установить двумя способами. Те, кто хотят провести установку быстро, или которым канал не позволяет тянуть все компоненты из Интернета, могут воспользоваться набором заранее собранных пакетов. А желающие настроить сразу как можно больше параметров самостоятельно, еще и под конкретное оборудование, могут собрать Gentoo Linux полностью из исходных кодов (source code).

В любом случае, минимальные требования, предъявляемые к компьютеру — 486/64 Мб ОЗУ. Разумеется, желателен все же более мощный процессор, особенно при самостоятельной сборке, т.к. в противном случае компиляция всей системы и дополнительных пакетов займет слишком много времени (ведь даже X-Window собирается из исходных текстов).

Устанавливать будем вариант basic, т.к. он меньше по размеру и сложнее в установке. На самом LiveCD-диске имеются три архива — от stage1 до stage3. Отличаются они только составом приложений — stage1 предназначен только для возможности загрузки и дальнейшего построения всей системы с нуля; stage2 строит Gentoo Linux на базе наполовину собранной системы; stage3 уже содержит базовый Gentoo Linux.

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

закачка образа и запись его на CD-R/RW;

подготовка дисковых разделов и создание на них файловых систем;

распаковка выбранного тарбала на созданный(е) раздел(ы);

настройка конфигурационных файлов для возможности загрузки;

запуск базовой системы, конечная настройка и приведение ее к желаемому виду.

Кратко пробежимся по этим пунктам. Итак, загрузка при помощи LiveCD. После первоначальной инициализации и появления строки приглашения можно ввести ряд параметров; вся информация доступна по F2 и F3. Наиболее востребованными, вероятно, будут: gentoo (по умолчанию), nofb (без framebuffer), memtest (тестирование памяти), ide=nodma (отключает DMA, полезно на старых компьютерах), dokeymap (выбор раскладки, пригодится при использовании LiveCD как рабочего дисрибутива) и особенно интересный параметр cdcache (выгружает содержимое CD-ROM в оперативную память — около 40 Мб, — позволяя его после этого вынуть и вставить, например, диск со скачанными программами); при этом вводим что-то вроде этого.

Загрузка выглядит очень симпатично, радуя глаз сине-фиолетовым фоном с логотипом Gentoo внизу экрана. После загрузки в приглашении интерпретатора вводим root и вместо пароля нажимаем Enter. Далее в руководстве следует описание загрузки модулей для тех устройств, которые система не смогла определить автоматически; рассказ о том, как настроить соединение с Интернетом (для Ethernet- и ADSL-соединений), с примерами конфигурационных файлов, затем объяснение установки режима DMA, пример разбиения диска при помощи fdisk и еще множество советов. Все эти подробности пропускаю, благо там довольно подробно все расписано, вдобавок, все эти моменты рассмотрены мною ранее — поройтесь в подшивке. Да и вряд ли кто-то горазд тащить все это барахло при помощи популярного у нас модема во время установки.

На выделенных под систему разделах создаем файловые системы — только не забудьте потом скачать ядро с поддержкой выбранной ФС и включить в опциях конфигурирования ядра соответствующие параметры:

# mke2fs -j /dev/hda1 — создание ext3;

# mkswap /dev/hda2 — создание swap;

# mkreiserfs /dev/hda3 — создание ReiserFS;

# mkfs.xfs /dev/hda3 — для создания XFS (необходимо ядро xfs-sources или 2.6);

# mkfs.jfs /dev/hda3 — для создания JFS.

Далее создаем точки монтирования и монтируем в них файловые системы.

Активируем своп-раздел:

Монтируем корневой раздел:

Если создавались разделы под другие точки монтирования (/boot, /var, /usr/local и пр.), то и для них создаем точки, монтируем. Например:

Теперь распаковываем сюда выбранный тарбал — у меня он был на диске, но его можно и с Интернета скачать во время инсталляции (для начинающих рекомендуется stage3):

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

Сюда же распаковываем и снимок дерева портежей —portage, его рекомендую (если нет на диске или чтобы избежать обновления emerge sync на плохом канале) скачать предварительно, причем версию посвежее, и положить его на второй CD-ROM или на раздел жесткого диска:

Теперь меняем корневой раздел, чтобы можно было далее собрать систему как положено. Чтобы не повторять заново все проделанную работу, если настраивалась сеть (это еще и потому, что в распакованном архиве нет шаблона некоторых файлов) копируем все, что изменяли, в новое место:

Туда же копируем и пакеты с LiveCD (при их наличии, конечно):

Как видите, все предыдущие операции можно выполнить и из другого дистрибутива, не обязательно из Gentoo LiveCD. Далее меняем корневой раздел:

Вот теперь можно работать в новом окружении как ни в чем не бывало, используя просто /, а не /mnt/gentoo.

И самое интересное — настройка оптимизации Gentoo. Для этого изменяем значения некоторых переменных (CHOST, CFLAGS, CXXFLAGS и USE) в файле /etc/make.conf — хотя в инструкции сказано, что при установке из stage2 и stage3 этого делать не надо, я сделал, и ничего страшного не произошло. Для более детальной настройки придется подсмотреть некоторые значения в файлах /etc/make.globals, /etc/make.profile/make.defaults и переопределить их в /etc/make.conf:

Первое, что бросается в глаза, — это переменная USE. Смысл ее заключается во включении/выключении различных опций, которые обычно используются при конфигурировании командой ./configure в ходе обычной компиляции программы из исходников, т.е. --enable/disable или –with/without. Например, закомментированная переменная USE="X gtk gnome -alsa" соответсвует ./configure –with-x –with gtk –with gnome –without alsa. Более подробно об опциях USE можно почитать в USE_HOWTO (http://www.gentoo.org/doc/use-howto.html), а список включенных по умолчанию значений этой переменной можно найти в файле /usr/portage/profiles/default-x86-1.4/make.defaults.

Следующая строка:

Она указывает на используемую архитектуру. Все современные процессоры соответствуют данному описанию; если у вас более ранняя модель вроде Pentium Pro, уменьшите значение (i586, i486 или i386). А вот при помощи CFLAGS мы сообщаем компилятору (gcc 3.2) о том, какой процессор используем, и назначаем требуемый уровень оптимизации, после чего компилятор собирает пакеты под указанную модель процессора:

Флаг -mcpu= оптимизирует программу под указанный процессор без потери совместимости с другими процессорами. А вот -march= требует более осторожного обращения, так как оптимизированная с таким флагом программа будет работать только на указанном процессоре — никакой совместимости вниз, — зато при этом достигается максимальная производительность.

И последняя переменная:

Предназначена для программ, написанных на С++. Ее трогать не надо.

Далее в файле можно переопределить переменные, указывающие на расположение каталогов с portage и команд для закачки файлов.

Если производилась установка при помощи stage1, далее необходимо выполнить команды:

При помощи этих команд собираются оптимизированные gcc, binutils, gettext и glibc, на что уйдет прилично времени.

И теперь самое главное, без чего любая система представляет просто набор бесполезных файлов —ядро. Естественно было бы предположить, что в подобных дистрибутивах ядро собирается самим пользователем. Но есть маленькое «но»: в каталогах на CD-ROM сырцов не обнаруживается. Что само по себе выражает стремление разработчиков предоставить пользователю только самое свежее и на его личный вкус, заодно освободив его от необходимости тянуть из Сети еще 50 Мб ядра, которое, может быть, ему и не подходит. Если с доступом все в порядке, достаточно зайти в каталог /usr/portage/sys-kernel и выбрать то, что вам больше по душе. Сразу же обращает внимание и отличие portage от портов во FreeBSD — пользователю предлагаются сразу несколько версий программы. Имеются несколько десятков ядер: vanilla-sources — каноническое от Линуса Торвальдса, xfs-sources — ядро с поддержкой файловой системы XFS, ac-sources — с патчем от Алана Кокса, фирменный gentoo-sources, есть также ядра с поддержкой различных технологий вроде selinux (security), openmosix (кластер), win4lin (эммулятор), uml (еще один), есть даже gaming-sources и другие. Теперь достаточно ввести команду:

и получите требуемое ядро. Но при модемном канале вытянуть ядро из Сети будет трудновато, поэтому я использовал заготовленное заранее. При этом могу сказать, что, как и предрелиз 1.4, так и сам релиз успешно работает с новыми ядрами серии 2.6. Для новичков, которые чувствуют себя не уверенно при сборке ядра, разработчиками припасен сценарий genkernel, который собирает ядро, аналогичное загружаемому с LiveCD. Далее в руководстве приведен пример того, как можно настроить систему для автоматического определения оборудования при помощи hotplug. Опытные же пользователи, вероятно, будут собирать ядро сами. Процедуру эту я описывал уже неоднократно, поэтому застревать на этом не буду. Напомню только, что необходимо включить в ядро поддержку файловых систем, под которые откомпилированы разделы (причем, включив их в ядро, а не как модули), а также добавить поддержку /proc и /dev файловой системы виртуальной памяти (Virtual Memory Filesystem):

После компиляции и установки ядра необходимо установить и утилиты для работы с используемыми файловыми системами. Для этого вводим команду:

Конфигурируем систему.

Устанавливаем временной пояс:

Теперь редактируем файл /etc/fstab, где, как обычно, прописываем все разделы, которые хотим видеть смонтироваными при загрузке системы:

И далее в том же духе.

Устанавливаем загрузчик grub:

Появляется приглашение grub>:

Выбираем место, куда будет установлен загрузчик (в данном случае MBR):

И теперь создаем конфигурационный файл /boot/grub/grub.conf, который будет выводить меню на экран:

И вводим что-то наподобие

Только помните, что (hd0,0) пишется без пробелов внутри кавычек — очень многие здесь ошибаются.

Полезно иногда добавить ссылку:

Gentoo Linux наконец установлен. Осталось только обновить конфигурационные файлы, выйти из chroot-среды, отключить диски и перезагрузиться:

(это выведет вас из среды chroot; еще можно нажать ^D)

После перезагрузки приступаем к локализации и дальнейшему благоустройству системы. Этот сюжет, пожалуй, затрагивать не буду, т.к. сам не раз описывал подобные действия для других дистрибутивов. Дополнительный материал найдете по ссылкам в конце статьи.

Пару слов о системе paskages

Здесь тоже не буду сильно жар раздувать, скажу только о том, что мне понравилось. Несмотря на то, что Gentoo все-таки рассчитан на широкий канал, можно обойтись и без него (мой случай). Для установки выбранного пакета необходимо ввести emerge --pretend [имя пакета], чтобы посмотреть, какие пакеты должны быть установлены для удовлетворения зависимостей; опция --fetchonly позволяет получить адреса серверов, откуда их можно скачать (этот список можно передать wget’у, предварительно убрав дубликаты).

После этого загрузите исходники и доставьте их на любом носителе домой. Затем помещаем все это хозяйство в /usr/portage/distfiles, запускаем emerge [имя пакета] и наблюдаем, как компилируются только что добавленные нами исходные файлы. Расположение всех исходников в одном каталоге очень радует — удобно; например, в CRUX мне их приходилось распихивать по своим местам, на что уходило много времени. Здесь же, скачав очередной исходник, я просто помещаю в /usr/portage/distfiles символическую ссылку на него.

Естественно, в portage можно найти только самые свежие версии утилит. Но у меня скопилась масса приложений, наличие которых принципиальнее, чем их свежесть (например, mpg123). Зачем скачивать все заново? (Впрочем, данная методика уместна и в обратном случае, т.е. когда в portage еще нет готового ebuild для новой версии утилиты). В этой ситуации предлагаю самим создать свой ebuild-файл. Но прежде чем рассказать вам о том, как это делал лично я, обращаю ваше внимание: на сайте есть инструкция по его построению, которую я пока не читал — может, там предлагают нечто более удобное? Итак, моя версия.

Для начала я скопировал устанавливаемый файл в /usr/portage/distfiles:

Затем скопировал подходящий ebuild-файл с новым названием:

И теперь автоматически генерируется digest, содержащий информацию о контрольной сумме файла (он находится в подкаталоге files; но в случае чего его можно и вручную создать):

(В большинстве случаев лучше ввести полный путь к ebuild-файлу.)

Теперь можно пробовать установить программу:

На этом этапе необходимо проследить за выдаваемыми сообщениями. Например, очень часто имя скачиваемого архива может не соответствовать тому, что реально лежит на сервере. Лично у меня строка, описывающая скачиваемый файл, выглядела так:

т.е. программа искала архив mpg123-pre0.58.tar.gz, а не mpg123-0.58.tar.gz.

Еще я заметил, что переменная DEPEND часто отсылает к приложениям, характерным, например, для ppc-архитектуры или попросту не установленным — если будут выдаваться ошибки, сравните с другими файлами. Следующий нюанс — аргументы команды make, описанной в функции src_compile. Например, старые версии требуют команды make linux для компиляции, а более новые сами определяют систему, им достаточно простого make. Можно, конечно, обойтись без аргументов и компилировать обычным образом — emerge при установке производит полное конфигурирование пакетов, не удовлетворяясь одной лишь информацией о том, что уже инсталлировано, как это делает Red Hat Paskage Manager, — но в таком случае при большом количестве установленных приложений будет труднее уследить за ними.

И последняя проблема, с которой я столкнулся, да так, что не мог поначалу понять, в чем дело. При попытке ввести su, чтобы получить права суперпользователя, я неизбежно получал отворот поворот. Все дело в том, что в Gentoo, как и во FreeBSD, пользователь, претендующий на это право, должен быть добавлен в группу wheel. Не забудьте.

Наконец, из особых пряностей хочу отметить наличие сервера gentoo-stats (http://stats.gentoo.org), который собирает информацию по использованию Gentoo Linux с целью помочь разработчикам с определением приоритетных направлений развития.

В общем, надеюсь, мне удалось дать представление о Gentoo Linux. Это совсем не тот Linux, к которому привыкли пользователи, — он удачно соединяет в себе достоинства как Linux, так и BSD-систем. В последнее время мне все чаще попадаются на сайтах рядом с исходными текстами программ и ebuild-файлы, что свидетельствует о популярности этого дистрибутива. Он несколько сложнее, чем тот же CRUX, и для того чтобы эксплуатировать его с максимальной отдачей все-таки необходимо читать документацию. Хотя это и не должно отпугивать новичков. Напоследок — места, которые следует посетить желающим во всем разобраться:

естественно, сайт Gentoo, где по адресу http://www.gentoo.org/main/en/docs.xml доступен Gentoo Linux User Documentation Resources, в том числе и с переводами на русском;

проект Алексея Федорчука Unix4ALL (http://www.linuxshop.ru/unix4all), где в разделе gentoo-цикла можно найти ответы практически на все возникающие вопросы;

на этом же сервере по адресу http://www.linuxshop.ru/gentooрасполагается сайт русских пользователей Gentoo, а также находящийся на момент написания статьи в разработке сайт украинских пользователей Gentoo —http://gentoo.org.ua.

Linux forever!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov