Примеры USE-flags:
Код: Выделить всё
[ebuild R ] net-analyzer/snort-2.3.2 -debug -flexresp -inline +mysql -odbc -postgres -prelude (-selinux) +sguil +snortsam +ssl 0 kB
[ebuild R ] net-dns/bind-9.2.5 +berkdb -bind-mysql -caps -dlz -doc -idn -ipv6 -ldap +mysql* -odbc -postgres (-selinux) +ssl 0 kB
[ebuild R ] net-www/apache-2.0.52-r1 +berkdb -debug -doc +gdbm -ipv6 -ldap +ssl -static -threads 0 kB
*то, что после названия пакетов (с '+' / '-') - это use-flags для данного пакета.
Теперь поясню.
В случае snort и bind - имею в виду поддержку db. Было бы странным держать bind или snort, поддерживающие сразу и mysql и postgres (обе db не слишком малы в размерах). Тем не менее, допускаю, что в пакетных дистрибутивах это разбито на несколько пакетов (т.е. snort, snort-mysql, snort-postgres, etc). Если так, то довод, видимо, слабоват.
С апачем - поинтересней. Флаги static (имхо удобно в случае chroot) и threads (суть флага не знаю, но полагаю, что вместо форкания apache запускает нити. если кто в курсе - пусть поправят). В этом случае в пакетном дистрибутиве видимо придется держать два пакета (к примеру, apache и apache-static). Насколько эти фичи полезны - решать не мне.
Как мне кажется, USE-флаги никому не мешают, а иногда могут быть и полезны. Пусть даже пакетов, где наличие USE-флагов существенно, всего два (хотя список можно продолжить при желании). Если все согласны, что фича, которая существует, исправно работает, никому не приносит вреда и несет пользу хотя бы одному человеку, является полезной, тогда поехали дальше.
Если мы пришли к выводу, что USE-флаги полезны, то самый (имхо) рациональный способ реализации этой фичи - это построение из исходников. Ну а если мы строимся из исходников, то почему бы не добавить возможность оптимизации. Это же не требует никаких трудо-затрат? Пусть даже это даст всего 1% прироста производительности! Но ведь реализация фичи проста до безобразия! Опять же, это никому не мешает. Опять же, польза, пусть и маленькая, но есть. Значит фича полезна?
=== === ===
А теперь мои 2 копейки для темы.
Хочу начать с того, что новички бывают разные. Я постараюсь рассмотреть 2 случая, которые, как мне кажется, являются граничными:
1. просто-user. Под этим я понимаю человека, который далек от IT и для которого компьютер - это не более чем инструмент. Либо человека, чье общение с компьютером, в той или иной степени, основано на принципе "нажми эту кнопку и будет тебе счастье".
Такому человеку я никогда в жизни не посоветую устанавливать gentoo по следующим причинам:
- процесс установки с высокой долей вероятности вызовет проблемы. Несмотря на то, что этот процесс описан достаточно досконально (и вроде бы переведен на великий и могучий), любая опечатка при вводе команд привидет к длительному ступору (случай из жизни). Любая неточность или неполность в документации
(пример - в Handbook/InstGuide есть строчка "# tar -xvjpf /mnt/cdrom/stages/stage3-<subarch>-2005.0.tar.bz2" с коментарием "Be sure to substitute the tarball filename with your stage." - человек дословно написал как написано, с <subarch>, просто не понял или не обратил внимания на коментарий. И это случай из жизни) приведет к ступору. Можете сказать, опечатался - сам виноват. Не разобрался - сам виноват. А я скажу - это не его забота набирать какие-то непонятные слова и разбираться в том, что ему не нужно для его непосредственной работы или просто не интересно. Не стоит к тому же забывать, что то, что для нас очевидно - для кого-то может быть абсолютно не ясно. Один мой знакомый как-то очень удивлялся, почему после ввода команды ничего не происходит (я руководил процессом по телефону) - а причина была проста - он просто не нажимал Enter. Смешно? Да, согласен. Но ведь это же нигде не написано. Тем не менее, если бы на протяжение всего процесса пользователь не вводил команды с клавиатуры, а нажимал кнопочки в интуитивно-понятном интерфейсе, отвечая на простые вопросы, этой проблемы бы не возникло.
- после установки пользователь вывалится в консоль и спросит "а дальше что?". А дальше, следуя Handbook, пользователь начнет читать "Gentoo Desktop Documentation Resources", где первым делом, в "The X Server Configuration HOWTO", ему предложат прочитать man 5 xorg.conf (не самый большой ман, но все же) и ознакомиться с содержимым xorg.conf и отредактировать его. А теперь сравним время, которое уйдет у абсолютно не подготовленного пользователя на чтение документации и получение рабочего конфига иксов, со временем, которое бы потратил пользователь, ответив на 2-3 вопроса в графическом инсталяторе. Опять же, когда в gentoo наконец интегрируют графический инсталятор и сделают его не for experts, а for dummies (фигурально выражаясь) - эта проблема отпадет.
- когда же пользователь наконец-то попадет в графический режим (будь то kde или gnome или xfce или еще что), наиграется с настройками внешнего вида и (в случае kde или gnome, про остальное - не скажу) поназапускает штатных приложений, он наконец-то вспомнит, что это все ему было нужно для работы. Ну, скажем, для документов. Конечно, он уже прочитал километры Handbook и безусловно знаком с portage как со своими пятью пальцами. И само-собой разумеется, чтобы узнать, имя пакета, он сходит в /usr/portage/app-office (да, я заведомо исключил возможность знакомства пользователя с google и проч. - исходим только из того, что есть часть дистрибутива). Выберет первый подходящий по описанию пакет и поставит его. Скорей всего это будет abiword. Нет, вполне хороший текстовый процессор (кроме шуток), возможно, пользователя он вполне даже устроит. Но, все же, думаю было бы лучше, если бы в процессе инсталяции он просто бы поставил галочку на "Office" preset в инсталяторе при выборе пакетов, а потом методом сравнения выбрал бы то приложение из "Menu"->"Office applications", которое устроило бы его больше всего.
- да, я конечно же забыл упомянуть, что пользователю придется провести некоторое время без компьютера - все же компиляция требует времени. но ему будет чем себя занять - ведь ему предстоит прочитать столь интересную и необходимую для его непосредственных обязанностей документацию по установке gentoo. Конечно же, всегда можно воспользоваться GRP (prebuild packages) - только тогда совершенно непонятно, зачем ставить gentoo.
- ну и, в конце концов, на мой взгляд, gentoo для такого пользователя не имеет ни единого преимущества, по сравнению с большинством других дистрибутивов.
Если же все-таки такой пользователь возьмется за установку gentoo - то тут возможны два крайних варианта и множество промежуточных:
- пользователя выгонят с его работы за невыполнение непосредственных обязанностей (по причине нефункционирующего компьютера и постоянного чтения документации). При этом не исключена возможность, что пользователя это нисколь не расстроит и он переквалифицируется в, к примеру, админа.
- пользователь плюнет на все на одном из этапов и возненавидит linux и будет всем рассказывать, какой он ужасный, неудобный и ненужный. Возможно, он даже опубликует статью с разгромным обличением gentoo в частности и linux в целом в не-юзер-френдлевости.
При этом я совсем не исключаю возможности, что все закончится хеппи-эндом.
2. заинтересованный-user. Под этим я понимаю человека, который по каким-либо причинам заинтересован в изучении системы linux. Причины могут быть - от простого любопытства до необходимости по работе. При этом эта заинтересованность вполне осознана и человек готов к трудностям, которые могут возникнуть.
Я бы 10 раз подумал, прежде чем посоветовать такому пользователю gentoo. Но если бы посоветовал, то основывался бы на весомости следующих аргументов для данного человека:
- не рискну сравнивать с другими дистрибутивами, но объем документации по gentoo поистине огромен. Я имею в виду не только
http://www.gentoo.org/doc но и
http://gentoo-wiki.com. Большая часть ее - на английском, но многое переведено.
- в процессе установки, на которую уйдет достаточно большое количество времени (в основном, на чтение доков), человек научится пользоваться системой - просто потому, что в процессе установки используется пусть и малая, но все же фундаментальная часть как самого gentoo (emerge, etc-update, rc-update etc) так и linux (sh, /dev, vi etc). Это и банальные cd/ls/cp/mv/rm/tar, и, вероятно, vi, и сборка ядра, и настройка иксов. После того, как все необходимые пакеты будут построены, помимо этого будет построен довольно прочный фундамент в работе с *nix.
- возможно, вопрос достаточно спорный и касается далеко не всех пользователей, но, имхо, отсутствие графических настройщиков всего-и-вся сэкономит такому человеку время. В том смысле, что такие люди, в большинстве своем в итоге настраивают все вручную, а раз так, то время, потраченное на изучение gui - время, потраченное впустую.
- если оптимизация дает хотя бы 5-10% прироста производительности, то это может быть вполне весомым аргументом. Не для workstation конечно, но на сервере это может быть актуально.
- конечно, это не касается процесса знакомства, но такому человеку могут пригодиться USE-флаги, потому как они, все же, дают больший контроль над системой, нежели пакеты (имхо, больше только с ./configure && make && make install).
PS:
В нескольких местах в первом пункте просто напрашивается сравнение с неким дистрибутивом X (где X - любое из RedHat/Fedora, Mandrake, SuSE, ALT, ASP, Debian etc). Этого сравнения я проводить не стал, ибо вопрос стоит как "
gentoo для новичков". Скажу только, что своему знакомому "просто-user'у" в качестве X я порекомендовал Mandrake.
Во втором пункте я рассматривал gentoo как метод обучения типа "вывез на центр озера и выбросил за борт". Сразу же оговорюсь, что не берусь судить, какой метод эффективнее и надежнее (под вторым подразумеваю "сначала в лягушатнике"), более того, даже для себя на этот вопрос я не могу ответить. Равно как и не берусь утверждать, что gentoo - единственный дистрибутив на котором можно учиться по такой методике.
К тому же, во втором пункте можно заметить, что "заинтересованный-user" это скорее "заинтересованный-admin". Это не случайно, потому как у меня есть двое знакомых, абсолютно не знакомых с *nix (в живую), и при этом изучающих его на примере gentoo. Один - дома под vmware. Второй - на работе на живых, но не критически важных серверах. Хотя, может термин "Новичек-Админ" звучит и несколько нелепо, но в жизни он имеет место быть.