Gentoo GNU/Linux 2004.3
Emerge system!
Роман Химов, Четверг, 24 Март 2005, 03:01

Об аппаратной части
Для начала, правда, давайте о железе. Для очередных зверских (о да, на этот раз они действительно будут зверские экспериментов использовалась старая и весьма замученная машинка, aka:

<ul><li>Intel Pentium II Celeron 433 (по ходу установки резко превратился в 488 </li>
<li>Материнская плата Acorp ZX85</li>
<li>96 Мб ОЗУ (из них 32 совсем noname)</li>
<li>Creative SBLive! 5.1</li>
<li>Винчестер Seagate ST310212A на 10</li>
<li>Видеокарта S3Trio3D2X</li>
<li>Модем внешний на COM-порт (IDC)</li>
<li>Принтер Epson Stylus Color 680 (на LPT)</li>
<li>Планшетик Wacom Graphire3</li>
<li>Мониторчик Samsung 173P</li></ul>

Как вы уже, возможно заметили, это та самая машинка на которую я уже однажды весьма успешно поставил SimplyMEPIS (а потом еще Fedora Core 3, но по причине жутких тормозов оной на приведенной конфигурации, тестирование доведено до логического конца не было). Стало быть, настала пора ему подвинуться (я еще не знал, куда он подвинется после всего этого...).

Мир Gentoo
Итак, во вступлении я упомянул сразу несколько словечек, которые, вполне возможно, знакомы далеко не каждому пользователю GNU/Linux систем. Про другие системы не говорю вовсе. Но все-таки, понятие минимального инсталляционного диска должно вырисовываться в голове само собой (читай - консоль , а понятие портежей, может быть, кто-нибудь припомнит в связи со станом *BSD систем. И будет прав! Портежи Gentoo - это, фактически, перенос принципа работы системы портежей BSD в GNU/Linux. А портежи в BSD - это замечательный способ установки всего и вся из исходников.

Чем он замечателен? Может быть вам приходилось сталкиваться с установкой программ из исходников? Помните "<tt>./configure && make && make install</tt>"? А помните хоть для одного пакета, какие надо поставить ключики в <tt>configure</tt>, чтобы получить то, что вам нужно (например, поддержку ipv6 для сетевых программ)? Часто о них забывали при установке? Если помните и не забывали - можете дальше не читать, я прямо-таки носом чую сборщика LFS . Что же предлагает Gentoo? Ну, во-первых, зачем вбивать три команды, когда можно одну? Нет никакого смысла. Во-вторых, зачем выискивать исходники и (это "" стоит многого в некоторых случаях) отдельные патчи для желаемого ПО, скачивать, распаковывать, применять патчи, потом удалять, и так далее?.. Незачем. Можно вести базу данных. И Gentoo делает это за вас. Он знает что где взять, какие патчи надо наложить для успешной компиляции/работы, он умеет сам все распаковывать, конфигурировать(вы задаете основные параметры своей системы всего лишь единожды, можете начинать забывать флаги), компилировать, устанавливать, удалять, находить зависимости и проводить с ними все описанное выше...

Gentoo? <tt>emerge</tt>! Скромная программа в три с небольшим тысячи строк, написанная на Python, является сердцем всего дистрибутива Gentoo. По сути, только она и отделяет Gentoo от LFS - полного самосбора. Весь процесс управления ПО на компьютере становится значительно проще, чем в случае с LFS, но вы имеете почти тот же контроль над системой. Почему ""? Ну, как сказали бы наши иностранные друзья, во-первых, Gentoo/emerge не дает прострелить себе ногу, то есть сделать глупость. Например, это касается флагов оптимизации. GCC позволяет оптимизировать код очень по-разному и очень по-всякому, список его опций весьма объемен. Но некоторые из этих оптимизаций (еще) не доработаны до такой степени, чтобы их можно было применять спокойно. Проще говоря, скомпилировав что-нибудь с этими опциями, можно получить нерабочий/глючный бинарный файл. В то же время, эта ситуация может быть актуальна для одного пакета, но неактуальна для другого. Известно, что собирать основную системную библиотеку GNU/Linux, <tt>glibc</tt>, с "" оптимизациями просто нельзя - вероятность того, что она не будет работать с ними очень высока. В книге LFS не рекомендуется выставлять даже архитектуру процессора при компиляции glibc, то есть, компилировать ее строго для i386 (если это x86, конечно, под который и написана книга LFS). Что ж, это хорошо, но... работает ведь и при компиляции под различные архитектуры , это частенько видно на разных сайтах сборщиков LFS, да и бинарные дистрибутивы зачастую закладывают минимум на уровне Pentium или Pentium II. Вернемся к прострелу ноги - Gentoo, конечно, указанную вами архитектуру при сборке <tt>glibc</tt> уважит, но вот все остальные опции оставит по умолчанию. Вероятность корректной сборки - 99.9%, это хорошо, но... а вдруг можно было бы еще что-то оптимизировать?

Похожим образом идет сборка OpenOffice, также собираются <tt>binutils</tt> - там тоже применять различные "супер-" опции GCC не рекомендуется. Gentoo этого делать и не будет. То есть, если вам все-таки свербит в каком-то месте, а что было бы, если бы все же попробовать скомпилировать $вот_этот пакет с $вот_этой опцией, то Gentoo не для вас, увы. То же самое, если вы сами хотите (и знаете из чего!) выбрать патчи для своих пакетов, знаете, что вам необходимо, а что нет, если вы не ленитесь читать различные README и другие источники, в которых расписаны все зависимости данного пакета, которые вам, опять-таки, не будет лень ставить своими руками с собственноручноотобранными патчами... Вот интересно, много нас таких?

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

Как его ставят
Возможно, у вас уже зачесались руки в сторону скачивания/приобретения дисков с Gentoo, но стоит разобраться что в нем есть куда. А в нем все очень интересно. Вот, например, как вы представляете себе установку современного дистрибутива GNU/Linux? Вставляем диск, видим графический инсталлятор (кто сказал текстовый?! Выпишите успокоительноготому парню с 14 дисками! Ох уж этот Debian...), мышкаем по нему, применяя по мере неободимости мозговенный аппарат и пятую точку опоры в качестве генератора случайных кликов, приговаривая, "да вроде бы так, впрочем, черт его знает...", потом делаем минимальную конфигурацию, перезагружаемся - вуаля, графический вход, логин/пароль, красивый рабочий стол, куча приложений... Все варьируется от дистрибутива к дистрибутиву и от пользователя к пользователю, но, в основном, все происходит где-то так (справедливости ради - дистрибутивов GNU/Linux с текстовыми инсталляторами, суммарно, пожалуй, даже больше, чем с графическими, но говоря о настольных системах и универсальных дистрибутивах, такая картина сегодня, пожалуй, более актуальна).

Да, Gentoo... Ну что, вставляем диск? Да вовсе не обязательно. Можно и без диска, если есть уже рабочая GNU/Linux система. Или в качестве диска можно взять Knoppix, тоже вариант. Хотите диск от Gentoo? ОК, получите красивую консольку (аккурат в такой я уже двигал разделы, о потаенных возможностях по установке Gentoo я тогда не думал). Упс. А что делать-то? Читать! Читать умные руководства, написанные умными людьми для людей неглупых. Во всяком случае, способных читать и понимать написанное. Сколько здесь отвалилось читателей, интересно?..

ОК, но что читать? А читать надо "Gentoo Linux x86 Handbook" (ой, у вас не x86? Где-нибудь рядом обязательно должна быть другая версия. Хотя различия в них будут небольшие). В этом замечательном руководстве популярно поясняется, как же все-таки получить рабочую систему Gentoo GNU/Linux на своем компьютере. Замечено две вещи относительно этого руководства - если вообще ничего не читать (почти) и тупо вводить выделенные командочки, то вы получите рабочую систему; если читать вдумчиво и обстоятельно, то вы не только почерпнете массу сведений о Gentoo и GNU/Linux, но и сделаете все правильно, то есть так, как вам надо, и у вас не будет серьезных проблем с тем, как же и что же делать с уже полученной системой.

Стало быть, если вы вдруг когда-нибудь соберетесь ставить Gentoo - не торопитесь. Делайте все обстоятельно, handbook читайте вдумчиво. Оно полезно. И никто не говорил, что будет легко. Хотя, на само деле, все действительно легко. Но даже я этого вам не говорил.

Во-первых, сей мудрый документ поясняет, что же такое ступень aka stage. А это очень простая вещь, измеряется в штуках, всего три. Первая такая штука aka stage1, означает, что собирать всю систему вы будете из исходников (да, да, да, ура!!!). Здесь Gentoo позволяет развернуться на полную катушку - устанавливайте нужные оптимизации, узнавайте получше Gentoo, делайте все так, как вам надо. Вторая штука aka stage2, содержит в себе в "полу-скомпилированно" состоянии самую-самую основу системы - glibc, GCC и другие базовые безальтернативне атрибуты любой GNU/Linux системы. Это означает, что вам не надо будет тратить время на их сборку (но придется потратить время на сборку других базовых консольных приложений), но это означает и то, что вам придется мириться с теми настройками и оптимизациями, которые применили при сборке этих пакетов без вас. Stage3 содержит в себе полноценную базовую систему в бинарниках, кроме одной мелочи... ядра Linux.

Итого - ядро придется собирать самому в любом случае. Gentoo, правда, на этот счет имеет автоматизирующую сей процесс (имеется в виду конфигурировани) утилиту - <tt>genkernel</tt>, которая "усё сделает ". Но, конечно, это неинтересно... Но, конечно, это уже я навязываю свое мнение. Что уж поделать, если одной из первых команд консоли, что узнал, была "<tt>make bzImage</tt>". Да, тогда был Debian, о котором я, по сути, не знал ничего, кроме одного - мне обязательно надо было скомпилировать свое ядро. Как водится, первое ядро успешно не запустилось. Впрочем, отвлекаюсь, простите.

Так вот, что в этом всем главное - выбор. Вы выбираете сами, насколько гибко вы хотите контролировать свою систему (LFS'ники, молчать!), насколько много вы хотите компилировать, насколько вы уверены в своих силах... В общем, подумайте маленько сами, не все же дистрибьютору за вас думать!

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

И вот, со слегка круглыми глазами, handbook'ом на экране ноутбука и инсталляционным диском в руке, я приступил к препарированию машины. Чем я тогда думал, я теперь уже и не понимаю. Диск-то ведь и не нужен был, можно было прямо из SimplyMEPIS ставить, но чистота эксперимента и все такое... В общем, результаты своего разбиения диска я оценил только на третий день установки. Упс. Перепутал, бывает же... Стояли Fedora Core 3 и SimplyMEPIS 2004.3. Fedora была не нужна. Точно. Совсем. Ставим на ее раздел. Точно. И промахиваемся в cfdisk'е... Ничего критично важного, конечно, на разделе MEPIS не было, но кое-чего до сих пор жаль. А ведь думал еще снять образы разделов перед установкой, но зачем? Да и правда, гораздо интереснее проводить вот такие радикальные чистки системы. Мораль: читайте и делайте все не торопясь. И лучше всего - сделайте архивные копии всего важного. Я понимаю, что так пишут в каждом втором инсталляторе любого ПО крупными буквами, но, обжегшись, не могу не предупредить лично.

Что же касается остального, то инсталляция скучна, как это обычно и бывает. Нет, handbook написан отлично, есть что почитать, но ты просто делаешь А и получаешь А. Делаешь Б и получаешь Б. В отличие от графических инсталляторов в стиле "для полных " здесь ты всегда сначала все подробно узнаешь о том, чего делаешь, а потом уже это делаешь. Инсталляторы графические, к сожалению, зачастую бедны на справочную информацию и заставляют что-то предполагать, когда толком, конечно же, ничего не понятно.

Конечно, есть в инсталляции Gentoo моменты выбора некоторых вещей, вот тут уже интереснее. Особое внимание файлу <tt>make.conf</tt> и еще более особое - флагу <tt>USE</tt>. Это как раз то, что надо читать особенно внимательно и подбирать особенно тщательно. Когда знаешь, что тебе надо, это несложно. Вы знаете, чего вы точно хотите и чего точно не хотите от своей системы? Вот и я таким образом упустил необходимые мне "<tt>-ipv6 unicode</tt>". То есть, IPv6 мне ни к чему, а Unicode очень хочется. Чего вы желаете?

Ну и, конечно же, старый добрый аттракцион - конфигурация ядра Linux. Даже обидно, что ее можно пропустить через <tt>genkernel</tt>. Впрочем, давлю, давлю, не слушайте. Хотите - используйте. Мне даже интересно, какие это может дать результаты. То что рабочие - это точно, но как что решает этот конфигуратор было бы интересно посмотреть. Хотя я так и не удосужился, процесс личной конфигурации ядра мне приятен. Да, чуть не забыл, с ядром есть еще один маленький подвох - по умолчанию Gentoo 2004.3 хочет ставить что-то из ветки 2.4.x, что в наши дни просто недопустимо. Добрый друг решил за меня эту проблему легко и просто - он даже не включил ядра 2.4.x в набор портежей . Правильно, только вот инсталлятор упрямо хочет использовать файлы заголовков для 2.4.x. Я эту проблему обошел выставив "<tt>nptl</tt>" в <tt>USE</tt>. Native POSIX Threading Library требует под себя только 2.6.x, а значит, заголовки будут взяты для 2.6.x, а значит зависимости будут удовлетворены и компиляция системы пойдет как по маслу!

Денька полтора. Вот тут и призадумаешься, а может и stage2/stage3 тоже неплохи? Действительно, компилировать все на машине приведенного уровня с нуля - задача весьма трудоемкая, так что, лучше, если она вам не нужна как постоянный рабочий инструмент. С другой стороны, на современных числогрызах это уже будет не так заметно.

Еще один интересный момент поджидал меня при выборе системного логгера. С одной стороны, мне, в общем-то, все равно, что там будет, лишь бы было что почитать в <tt>/var/log/</tt>. С другой стороны, я подумал, что лучше поставлю тот, который стоит у меня в SuSE - старый добрый <tt>syslogd</tt>. Ой! Нету. Ай-ай-ай... Спасибо доброму другу, на самом деле это дало мне возможность познакомиться с <tt>metalog</tt> - прекрасным логгером, который мне весьма понравился. Во всяком случае одно то, что он сам может проводить оборот логов (aka периодическое архивирование и удаление старых), уже приятно. Плюс ко всему, по размеру он оказался меньше другой альтернативы, <tt>syslog-ng</tt>, что тоже приятно.

Кстати, насчет есть/нету. Gentoo обучен брать пакеты исходников для самого себя из Сети (собственно, по идее, он на это и рассчитан). То есть, вы можете загрузить stage1, воспользоваться любой GNU/Linux системой, ночным тарифом местного провайдера (или другим дешевым каналом) и получить полноценную систему только с тем, что надо вам, просто скачивая то, что нужно вам. К черту ISO с сотнями и тысячами ненужных программ, качайте только то, что вам надо!

Ну что же, перезагрузка мне удалась без проблем и я вошел в свежую систему...

Как им пользуются

И набрал "<tt>emerge kde</tt>"...

<span style='float: right; border:0'>

Компилируем OpenOffice.org...
</span>Через трое суток X.org 6.8.0, все KDE'шные приложения и еще некоторые зависимости/библиотеки были скомпилированы и установлены. Что поделать, уж очень мне хотелось увидеть KDE в новой системе. По ходу этого спектакля я почитывал man'ы и узнал, что, в целом, ничто не мешало мне скомпилировать все на своей машинке (помощнее) в бинарный пакет, а потом поставить его на ту машину. Но останавливать процесс уж очень не хотелось. KDE 3.3.2 порадовал, работает отлично, хотя больших ускорений в сравнении с MEPIS я не заметил. Впрочем, подробнее читать руководство к GCC я начал уже после выставления флагов в <tt>make.conf</tt> . Поэтому, среди моих флагов оказался "<tt>-O3</tt>", а это означает встраивание небольших функций в тело вызывающих функций, что означает некоторое раздутие объема, что на 96 МБ памяти означает, что это не оптимизация, а как-то наоборот.

<span style='float: right; border:0'>

Сеть работает прекрасно!
</span>Затем я задался целью обеспечить правильную работу сети ноутбук-компьютер, что означало DHCP и NAT ноутбука через модем в Интернет. С DHCP разобрался сам без каких-либо проблем (<tt>emerge dhcp</tt>, <tt>man dhcpd.conf</tt>), а потом обнаружил замечательное руководство как раз об этом на сайте gentoo.org. Смекнул, что там должно быть не только оно и обнаружил еще несколько прекрасных руководств на различные темы.

В частности, изначально я решил последовать указаниям handbook (а версия Gentoo 2004.3, напомню, по идее, рассчитана на использование ядра 2.4.x) и скомпилировал ядро с поддержкой <tt>devfs</tt>, которую, вообще-то, уже использовать просто неприлично - есть <tt>udev</tt>. Стало быть, есть и руководство о том, как перевести Gentoo на <tt>udev</tt>. Есть руководство по локализации, по безопасности, по Java, по использованию UTF-8, по использованию <tt>mutt</tt> в связке с <tt>fetchmail</tt>, <tt>procmail</tt> и собственным SMTP сервером, по конфигурации KDE, много, много другого. Документация по системе хорошая, понятная, приятная для чтения, чему способствует наличие очень дружного сообщества разработчиков и не менее дружного сообщества пользователей. Они действительно любят эту систему и стараются делать ее лучше, это тоже сила Gentoo. Кстати, Gentoo еще отличается наличием общественного договора по типу Debian, а последнее примечание по поводу базы данных ошибок тоже не пустословно - Gentoo прекрасно ведет собственную базу по безопасности. Теперь соедините этот факт с тем, что система изначально сделана для компиляции из исходников, и вы получите то, что ставить заплатки на программы здесь очень легко и просто, а это делает Gentoo очень хорошим кандидатом в серверные дистрибутивы.

DHCP, NAT и DNS я, в конце концов, прекрасно разрулил, "" при этом руководство (и удалив ненужный <tt>dhcpd</tt>). Вскоре после этого перевел-таки систему на чистый <tt>udev</tt> (чем он отличается от нечистого - смотри в документе), что ничего принципиально не изменило, но... само по себе приятно. Уже потом почитал о различиях <tt>udev</tt> и <tt>devfs</tt>, убедился, что сделал это не зря и совсем успокоился.

Проблема была одна - планшет (кстати, с остальной аппаратурой никаких проблем, что, собственно, и ожидалось). Конфигурацию X я составил (спасибо "<tt>man wacom</tt>"), это без проблем, но он вел себя странно - первая загрузка X, что автоматическая, что из консоли, приводила к черному экрану, а в логах писалось, что X словил <tt>SIGINT</tt>. Причем, логи загрузки успешной и неуспешной, фактически, отличались только тем, что в первом случае в конце была запись об ошибке, а во втором - нет. В общем, как выяснилось позже, никак не хотел X.org 6.8.0 держать одновременно мою старую мышь на RS232 и планшет. Пришлось мышь вешать рядом с товаркой на люстру (собственно, давно уже было желание убрать ее со стола), оставил один планшет - работает как надо.

<span style='float: right; border:0'>

Неправильный OpenOffice
</span>
После этого система переместилась на другой винчестер (80 ГБ), стала малость пошустрее работать. Без проблем я поднял OpenOffice.org 1.1.4, правда, он хотел запугать меня квадратиками в меню, но они решились очень просто - "<tt>Сервис -> Параметры -> Замена </tt>" (не видите? ОК Третий справа, последний, четвертый снизу в подменю OpenOffice.org) и меняем Bitstream Vera Sans на что угодно. Лучше всего на Verdana (когда шрифты от Microsoft уже стоят в системе, а ставятся они тоже быстро и просто - "<tt>emerge corefonts</tt>"), впрочем, по желанию. Кстати, как оказалось, заставить говорить по-русски <tt>dosemu</tt> (а точнее, конечно, <tt>xdosemu</tt>) тоже совсем несложно, несложно даже заставить его воспринимать русский язык с клавиатуры. Я поначалу подумал, что это будет проблемой, а, как оказалось - ничуть, немного надо почитать комментарии в конфиг-файле и все становится ясно.

Еще одна проблема проявилась позже, выражалась она очень интересно: первый пользователь (а у этой скромненькой машинки два пользователя, плюс я, да плюс я aka root , который входил в систему (через <tt>kdm</tt>) мог проигрывать музыку, а все остальные - уже нет. Потом проблема была прослежена на уровне консоли, оказалось весьма забавно: кто первый попробовал поиграть с ALSA (в первом случае это был Arts, потом тестировал на <tt>mplayer</tt> в консоли), тот становился владельцем устройств в "<tt>/dev/snd</tt>" с правами 600. Думаю, не надо пояснять, к чему это приводило. Самое смешное было даже не в том, что я малость запарился искать, где бы это устранить, но в том, что я посмотрел в свою рабочую SuSE и увидел ту же самую картину: всем владело мое второе "я" с правами 600. Просто я никогда этого не замечал. Что оказалось еще интереснее, так это то, что аналогичная ситуация была с CDROM aka <tt>/dev/hdd</tt>. Монтировать/размонтировать это не мешало, но вот <tt>eject</tt> уже было не сделать. Проблема какая-то странная, возможно это глюк Gentoo (но что же тогда в SuSE?), устройства не меняют владельцев после того как ими перестают пользоваться, возможно нет, надо, конечно, проверять. Поскольку правильное решение этой проблемы я так (еще) и не нашел, а просто добавил в cron маленькое задание - каждые три минуты принудительно изменять права на нормальные.

<span style='float: right; border:0'>

Правильный OpenOffice
</span>А вот действительно напугать Gentoo меня успел при компиляции GIMP - я стабильно получал Segmentation fault от GCC в самых разных местах. Потом машина начала зависать! Совсем, то есть не реагируя на прерывания. Но, как оказалось, это не вина Gentoo, хотя очень хотелось на него все спихнуть (защитная реакция, или как это там по-правильному называется?)... Вентилятор на процессоре почти стоял. Покрутил его малость, а он как пошел жужжать! И GIMP мне нажужжал без проблем, и новое ядро (сейчас на этой машине стоит уже 2.6.11-ck2) тоже. Мораль - работоспособнось железа необходимо контролировать ручками и стоит делать это периодически...

emerge && portage
Что понравилось, очень понравилось в Gentoo, так это то, из-за чего, собственно, это и есть Gentoo - система <tt>portage</tt> и ее дружелюбная к пользователю часть aka <tt>emerge</tt>. Прекрасно работает, качает, патчит, собирает, устанавливает, подчищает... Вот бы еще чай заваривал?..

Я успел основательно попользовать <tt>emerge</tt> (хотя так может сказать любой пользователь Gentoo - все используют <tt>emerge</tt> , обновлял различные пакеты. Интереснее всего получилось с <tt>baselayout</tt>, свежая его версия была необходима для полноценной поддержки UTF-8 в консоли. Так вот, мне пришлось ставить нестабильную версию этого пакета плюс еще несколько нестабильных зависимостей. Система, конечно, работает с ними нормально, но на работу <tt>emerge</tt> было посмотреть интересно. По умолчанию, меня, конечно же, пытались отговорить от установки нестабильного пакета, предупреждая, что он "masked", а как его разрешить, говорят, читайте man. Почитал, поправил один конфигурационны файл (4 раза, для четырех нестабильных пакетов (1+3 по зависимостям)), все пошло как по маслу. К конфигурационны файлам Gentoo относится с уважением (<tt>baselayout</tt> - это скрипты загрузки, по сути, весь пакет и представляет из себя набор конфигурационны файлов), старые не трогает, а новые просто ложит рядом с именем вида "<tt>._cfg????*</tt>", так что можно без особых проблем проглядеть все такие пары и решить, что куда перемещать. Есть даже очень и очень приятный для этого скрипт - <tt>etc-update</tt>, он и находит эти пары, и различия показывает, и спрашивает - чего делать будем, заменять, оставлять, редактировать? С ним обновления в конфигурации вообще очень быстро разрешаются. Остается только один вопрос - кто же первым научится заваривать чай?..

Обновлял и большие пакеты, вроде X.org, с версии 6.8.0 на 6.8.2. Gentoo в довесок к нему еще набрал патчей пару сот килобайт, что тоже интересно - в отличие от LFS, напрягаться поиском необходимых патчей в Gentoo не придется. Конечно, всегда будут такие патчи, которые в Gentoo не войдут, но могут быть кому-то необходимы, но это редкость и то же самое можно сказать про любой дистрибутив. А вот всевозможные исправления к уже выпущенным стабильным версиям разного ПО Gentoo подхватывает в систему portage без проблем, отслеживать все это самостоятельно (путь LFS) - дело довольно муторное и неблагодарное.

Заодно, на примере X.org оценил что такое флаги GCC - изначально я компилировал все как "<tt>-O3 -pipe -march=pentium2 -mcpu=pentium2 -fomit-frame-pointer</tt>", а потом поменял на "<tt>-Os -fno-inline-functions -pipe -march=pentium2 -mcpu=pentium2 -fomit-frame-pointer -fforce-addr -mmmx</tt>" (-mmmx и -mcpu=... чисто для самоуспокоения . Так вот, свежий X.org 6.8.2 уместился в 7 с небольшим МБ памяти при первой загрузке! Глядя на 20 Мб в своей SuSE... Справедливости ради отмечу, что чуть позже, во время работы, X все-таки был уличен в использовании аж 10 МБ, но все-таки?.. Попробовал перекомпилироваь Qt. Но тут сработала та самая "защита от ", из моих мега-опций в компиляции Qt участвовали только "-march... -mcpu...". Но обновил Qt 3.3.3 на 3.3.4. Потом обновил GCC до версии 3.4.3 (последняя стабильная), хотя в Gentoo он тоже числится в нестабильных (это неудивительно, так как смена компилятора "на " может отразиться на стабильности системы), после этого, конечно же, перекомпилирова новым компилятором Qt. Теперь есть новая задача - перекомпилироваь KDE (а там опции будут взяты целиком, кроме, разве что, библиотек), но с выходом версии 3.4.0 хочется заодно и обновиться. В общем, вот именно так Gentoo и используют.

Кстати, что еще интересно, поначалу я хотел обвинить Gentoo в навязывании кучи своих пакетов, когда на этапе инсталляции делается "<tt>emerge system</tt>". System - мета-пакет (или класс, как это говорится в <tt>man emerge</tt>), связывающий воедино множество базовых пакетов, утилит и прочего. Я бы, может, и не стал обращать на это внимания, но уж очень настойчиво мне по ходу всей инсталляции Gentoo говорили, что надо редактировать файлы с помощью <tt>nano</tt>, который также входит в system, но куда не входит ни <tt>vi</tt>, ни <tt>vim</tt>, ни <tt>emacs</tt>, ни многие другие. <tt>nano</tt> - отличный сам по себе редактор, но когда я, по привычке, жму в нем "<tt>:qw</tt>" и вместо ожидаемого эффекта вижу, что я куда-то что-то впечатал, мне хочется сделать с ним что-то очень нехорошее. Так вот, возвращаясь к <tt>system</tt>, я хотел поругать Gentoo за навязывание того самого <tt>nano</tt>, плюс всякого другого, что меня лично не напрягает, но кому-то может не понравиться. А потом вот что подумалось - а кто ж заставляет делать "<tt>emerge system</tt>"? А никто. Handbook - это лишь толковый справочник для начинающих, а ведь можно ставить не <tt>system</tt>, а открыть книгу LFS (или покопаться на www.gentoo.org), посмотреть, какие пакеты хочется видеть в своей системе и последовательнонабирать "<tt>emerge $вот_этот_</tt>"!

Еще одна вещь, которой может порадовать Gentoo - это умное скачивание обновлений. Сейчас это не является распространенно практикой, да и серверов, поддерживающих это немного (на момент написания, похоже, всего один), но <tt>deltup</tt> есть и с ним можно работать. Эта замечательная программа заменяет собой <tt>wget</tt> в деле закачивания новых версий пакетов и качает не полновесные исходники, а лишь патчи (дельты) со старых версий на новые. Хорошим примером распространения обновлений в патчах является ядро Linux, разницу между скачиванием 40 МБ новой версии и 4-5 патча видно сразу. Но <tt>deltup</tt>, в отличие от <tt>diff</tt>/<tt>patch</tt>, может работать только со специфичным сервером, а с этим, как я уже сказал выше, сейчас есть проблемы. Надеюсь, что это разрешится, а тогда будет совсем красиво и здорово, можно начинать забывать, что такое бинарные пакеты и RPM-, DEB-, TGZ-дистрибутивы - они так не могут по определению.

А теперь еще помножьте это на такую скромную команду как "<tt>emerge -u world</tt>", которая полностью обновляет вашу конкретную систему, те пакеты, которые вы реально используете в своей системе! Да, вы еще помните заголовок этой статьи? Там цифирь какая-то была еще, да? Забудьте ее. Единожды установив, все обновления вы будете делать через вышеприведенную команду, и после обновления вы будете иметь все самое свежее, даже если официально выйдет Gentoo 2005.7, обновившись через <tt>emerge</tt> вы получите все те же версии пакетов. Ну разве не сказка?

Взвешен и измерен
Gentoo - очень, очень, очень хороший дистрибутив. Отличный! В самом деле, он мне понравился, я играюсь с ним уже около месяца и делаю это с огромным удовольствием. Пользователи системы тоже используют ее не без удовольствия, хотя, на слово "компиляция" у них, похоже, выработался нездоровый рефлекс - "что, опять?" Конечно, он вряд ли подойдет тем, кто хочет посмотреть "а чё это за линуха такая?", но если вы хоть немного работали с другими дистрибутивами GNU/Linux и были чем-то неудовлетворены особенно сложностью конфигурации - хоть вам и придется большую часть всего конфигурироватьв Gentoo ручками, с помощью текстового редактора, везде и всегда вас будет сопровождать толковая справка; стоит его попробовать. Правда, придется вооружиться и знанием английского языка - читать действительно надо. Да, он никак не подойдет еще и в том случае, когда необходимо получить рабочую систему в минимальные сроки - это не его задача. Подход Gentoo - "медленно спускаемся с горы, и все стадо!"

Кстати, насчет английского языка - дело, похоже, выправляется - потихоньку переводится на русский документация Gentoo, есть российский форум Gentoo, есть русская wiki Gentoo, есть зеркала Gentoo в России (ссылки смотрите на форуме, зеркал несколько, обижать никого не хочу), ну и пока есть еще пользователи Gentoo в comp.soft.linux.discuss на Subscribe.ru (кстати, они довольно активны в этой конференции), там тоже можно многое узнать.

На мой взгляд, это один из лучших универсальных дистрибутивов GNU/Linux, хотя действительно лучших универсальных дистрибутивов я бы назвал всего два - Gentoo и Debian. Очень разные, но действительно универсальные дистрибутивы. Причем, несмотря на то, что Gentoo - дистрибутив довольно молодой, число его пользователей сегодня растет и стремительно догоняет тот же Debian, уже опережая такого ветерана, как Slackware (мерилом здесь я считаю www.distrowatch.com). Впрочем, способствует этому и наличие у многих там хорошего подключения к Сети, которым у нас, увы, похвастаться могут немногие. Поэтому, при желании поставить Gentoo придется либо попросить кого-нибудь записать "" DVD с необходимыми пакетами (продаваемые в большинстве сетевых магазинов диски, как правило, содержат уже устаревшие версии пакетов, да и набор пакетов взят какой-нибудь "", а значит, вы наверняка чего-нибудь нужного там не найдете), либо покупать ночные карточки интернет-провайдеров и принимать по таблетке "<tt>emerge --fetchonly</tt>" на ночь. Чего вам и желаю.


это контент от Центр информации по операционным системам
( http://www.osrc.info/plugins/content/content.php?content.87 )