Участник:GenaZakharov/Gentoo
Материал из Lurkmore
Эта статья находится на доработке. Эта статья всё ещё не взлетела и не соответствует нынешним реалиям /lm/. Но добрый GenaZakharov приютил её в своём личном пространстве, и теперь она может Модераторам: выпустить Дата последней правки страницы: 28.07.2015 |
« |
Кто гентушник? Я гентушник? Сам иди нахуй. | » |
— Анонимус |
Gentoo — один из семейства source-based дистрибутивов Linux, отличительная особенность которых — пакеты собираются на пользовательской машине из исходников, находящихся в репозитории. В отличие от этого, пакетные дистры (Debian/Ubuntu, Mandriva, Red Hat/Fedora, SUSE/OpenSUSE, тысячи их, но формат пакетов обычно или deb, или rpm), как видно из названия, заточены на установку уже собранных пакетов с откомпилированными исполняемыми файлами. Назван в честь соответствующего вида общелинуксового маскота. Самый быстрый в мире пингвин, кстати (36 км/ч, 10 м/с).
В интернетах известен в основном высокой сложностью использования, и воистину огромными возможностями для красноглазия и задротства.
« |
А я люблю компилировать генту и дрочить. Каждый день я скачиваю на компьютер все ебилды которые нахожу. На два гига целый день уходит. Зато, когда после тяжёлого дня я прихожу домой, включаю компьютер и ставлю на компиляцию свое сокровище. И дрочу, представляя, что меня поглотил единый организм портаж. Мне вообще кажется, что ебилды, умеют думать, у них есть свои семьи, города, чувства... А вчера, мне приснился чудный сон, как будто я нырнул в море, и оно превратилось в портаж, рыбы, водоросли, медузы, все из портажа, даже небо, даже Линус Торвальдс! | » |
— Вован о Gentoo |
Содержание |
stage1
В отличие от дистрибутивов, предназначенных для непосредственного применения, gentoo — это конструктор, из которого при наличии мозга и прямых рук можно запилить что-то, пригодное для использования.
В результате даже простая установки рабочей системы превращается в целый квест с вдумчивым курением манов, что неимоверно повышает Чувство Собственной Важности Гентушника. Иногда возникают довольно серьёзные проблемы, успешное и грамотное решение которых может поднять ЧСВ гентушника более, чем до 9000. Даже до 9999.
А при наличии такого желания можно ебаться с системой дни и ночи напролёт, неустанно пытаясь что-то обновить, перенастроить, допилить под себя, компилируя и перекомпилируя все приложения, или, на гентушном жаргоне, «пересобирая мир». Именно таков самый распространенный подвид гентушника в этих ваших интернетах. Sad but true.
При этом из генты можно выпилить вполне кошерные вещи, типа LiveCD всяких антивирусов и других утилит, ремонтных дисков для восстановления системы, или даже целые пакетные дистрибутивы. Но если само конструирование как процесс не доставляет, а хочется чтобы оно просто работало, то лучше сразу забить на генту нахуй.
Справедливости ради стоит сказать, что существуют и куда более задротские вещи, например LFS, но о них знает 3.5 анонимуса. Генту получил известность благодаря сочетанию высокой сложности и простора для задротства с возможностью хоть как-то пользоваться полученным результатом. Иными словами гента наравне с Arch— самый сложный и задротский из реально используемых Linux-дистрибутивов.
stage3
Ниже описан ряд наиболее доставляющих особенностей, отличающих генту от нормальных дистрибутивов. При первом знакомстве обычно производят совершенно мозговыносящий эффект, но по мере мутации человека в гентушника начинают казаться вполне нормальными, а потом и единственно правильными.
Полное отсутствие какого-либо установщика
Да-да, именно так. Анонимусу, возлежавшему установить это чудо, предлагается LiveCD с базовой системой, командная строка, текстовый(!) браузер для лазанья по интернету и мануал. Нет, даже МАНУАЛ. В котором подробно написано, как разметить диск, перенести на него базовую систему, установить графическое окружение и т. д. Большинство howto имеются в читабельном русском переводе, но все-таки русская документация немного запаздывает, и для надежности желательно вкурить английский оригинал. Для сферического в вакууме компьютера приведенные там команды почти не потребуется менять, а вот если комп совсем новый/очень древний/с экзотическим железом, тогда начинаются длительный секс и задротство.
Мануалы генты в большинстве хорошие, годные, в них не только даются чёткие указания чего и как делать, но и приводятся разъяснения зачем, и как это влияет на систему. Понятно, что дурак способен накосячить и здесь — бывали даже случаи когда в make.conf ставился флаг оптимизации −03 (ноль-три вместо православного О-три), но 95% и на генте 95%. В большинстве случаев навыки курения манов, пользования командной строкой и гугления гента прокачивает достаточно быстро.
Сборка из исходников и опции компилятора
Все пакеты бинарных дистрибутивов собираются по принципу «чтобы работало везде и у всех», поэтому пакет под 64-битную архитектуру собран для некого абстрактного 64-битного процессора, и включает лишь то, что будет работать на всех 64-битных процах без исключения. Собирая пакеты самому, можно включить поддержку SSE4 (для интеловского процессора), 3dNow (для AMD) и прочих вещей разной степени кошерности.
Теоретически, сборка программ с оптимизацией под железо способна заметно ускорить некоторые приложения. Небольшие тесты показали [1], что твое любимое похапэ, мой юный друг, потребляет на 25% меньше ресурсов на Gentoo, чем на других африканских линуксах, что для содержания серверов и крупных маршрутизаторов несомненный win. Также под гентой неплохо работает всякий софт для научных расчетов, которого кстати дофига в оверлеях, так что ставить его довольно удобно. Оборотная сторона этого — адски долгий процесс собственно компиляции. Последние версии Libreoffice или Firefox могут собираться по 10-15 часов, отожрав на время компиляции 4-5 гигов места на диске. Впрочем, подобные монстры можно ставить и из бинарных пакетов, благо именно там скорость работы — не главное.
К сожалению, начинающие гентузадроты первым делом пытаются включить сразу все возможные и невозможные наборы инструкций и оптимизаций, причем глобально для всей системы. Например, так:
CFLAGS="-march=core-avx2 -mcpu=core-avx2 -pipe -O9 -frename-registers -fno-thread-jumps -fno-omit-frame-pointer -mieee-fp -finline-limit=600 -mno-push-args -fno-signaling-nans -malign-double -fno-defer-pop -fno-cprop-registers -maccumulate-outgoing-args -fno-if-conversion2 -fno-gcse -fno-expensive-optimizations -fno-optimize-sibling-calls -fno-regmove -fno-schedule-insns".
В результате сего действа задрот как правило получает +5% к общей производительности системы и 100500 непонятных невоспроизводимых багов, после чего лезет в интернеты излить свою ненависть. Официальный мануал рекомендует безопасные наборы флагов, которые выглядят довольно скромно [2]. А лучше вообще включить только только -march=native и -O2, а дальше компилятор сам разберется. Тем более, что для ресурсоемких программ флаги оптимизации обычно прописаны в ебилде и выставляются автоматически.
portage и USE-флаги
« |
В слове 'ебилд' буква 'д' явно не на своём месте | » |
— Анонимус |
Второй по важности частью gentoo (поле мануалов) является portage — автоматизированная система компиляции программ. Собственно, конфигурирование этой вундервафли и составляет чуть больше чем половину процесса установки генты. Состоит из набора скриптов на bash/python и over 9000 сценариев с доставляющим названием ебилд (ebuild). Каждый ебилд — это инструкция для портежа, откуда качать, с какими опциями конфигурировать и как компилировать определенную программу.
Управляется портеж через набор переменных, наиболее доставляющей из которых является переменная USE. Она содержит набор USE-флагов — опций, задаваемых при сборке программ. Во всех пакетных дистрибутивах опции компиляции заданы раз и навсегда, и поменять из невозможно. А в генте, можно, например, выставить глобально «-ipv6» и выпилить поддержку IPv6 сразу из всей системы, что сохранит 10-20 мегабайт места на диске и позволит выиграть несколько драгоценных (мили)секунд времени. Флаги могут задаваться как для всей системы сразу, так и для отдельных пакетов через специальные конфиги.
Обратная сторона такой гибкости — адов треш и угар с зависимостями пакетов. В пакетных дистрах всегда известно, какие пакеты от каких зависят, а в генте зависимости пакетов надо каждый раз вычислять. Переигравшись с USE-флагами, можно получить доставляющую ситуацию, когда пакет A зависит от B, B от С, а C от A, после чего портеж ругается и отказывается работать дальше, пока это непотребство не будет исправлено.
Еще можно в самый неподходящий момент обнаружить, что любимый видеоплейер не желает читать всякие порномультики в формате mkv, а чтобы это исправить, надо прописать в USE-флагах «mkv h264» и подождать минут 20-30, пока все нужные пакеты пересобираются.
В сферическом в вакууме случае для установки пакета достаточно набрать одну единственную команду
emerge -av <programname>
После чего портеж автоматически скачает все нужные исходники, наложит на них патчи, по очереди скомпилирует их с нужными опциями и установит. В реальности перед этим часто требуется произвести набор разнообразных телодвижений:
- Изменить набор USE-флагов (с 2013 года рекомендуемые изменения выводятся и их достаточно просто принять)
- Пересобрать с новыми USE-флагами имеющиеся пакеты
- Прочитать логи и выполнить рекомендуемые действия (например, переключиться на новую версию gcc или perl.
- В отдельных случаях пересобрать ядро, включив написанные в логах опции.
Некоторые дистрибутиводельщики страдают тяжёлой формой ГГМ (ГНУизмом головного мозга) и выраженным синдромом проприетарофобии, поэтому принципиально не включают в репозиторий программы с лицензиями, отличными от GPL. В Gentoo ты собираешь и ставишь всё сам, не вызывает проблем поставить закрытые фирменные драйвера для NVidia с нормальной поддержкой 3D, или скачать и поставить набор стандартных ttf-шрифтов от Microsoft. Кое-какой научный софт (GAMESS например), который распространяется в виде исходного кода, но не под GPL-лицензией, на генте достаточно просто скачать в нужную папку, после чего его можно скомпилировать и установить одной командой.
Rolling release
Гента точно также как Debian Sid, или Arch — rolling-release дистрибутив. У него нет никаких выпусков, а есть только одна версия — текущая. Новые версии программ добавляются постоянно, сначала как тестируемые, а потом переводятся в статус стабильных. Устанавливая систему, можно мешать пакеты из стабильных и тестовые версий в произвольном порядке. С одной стороны, такой подход удобен тем, что новые полезные фичи становятся доступны сразу после появления. Суровейший недостаток такой системы — любое ее обновление потенциально так же опасно, как переход на новый выпуск в пакетных дистрибутивах, поэтому требует внимательности, а иногда и дополнительных действий. Крайне желательно сохранить и внимательно прочитать логи портежа (для чего лучше всего установить какую-нибудь тулзу типа elogv), и сделать все рекомендующиеся там действия. Невыполнение этого правила может привести к печальным последствиям, вплоть до незагружающейся системы.
Одна из самых частых и лулзоносных проблем, которая достойна отдельного упоминания - обновление динамических библиотек. В генте при обновлении могут измениться мажорные версии динамических библиотек, после чего обязательно надо пересобрать все зависящие от них программы, иначе они не будут запускаться. До 2014 года для этого была нужна отдельная утилита revdep-rebuild, которой по умолчанию в системе вообще не было, и необходимость ее использования неофит постигал на собственном печально опыте, попутно генерируя сотни ненависти, а то и вообще бросая нахрен это дело.
Очевидно, что подобная ситуация с обновлениями увеличивает возможный уровень задротства до совершенно космических масштабов. Так как новые ебилды добавляются почти каждый день, а компиляция этого добра на не слишком новых процах занимает довольно много времени, тру-задроты могут пересобирать систему постоянно, вообще не останавливаясь ни на минуту. Время, свободное от собственно компиляции, полностью уходит на курение логов и исправление проявившихся при обновлении косяков. А ведь можно еще создавать собственные репозитарии (оверлеи) и писать собственные ебилды.
Для нормальных людей процесс обновления достаточно выполнять 1-2- раза в месяц, а то и реже.
metadata
« |
"If you know <distro>, then you know <distro>. If you know Gentoo, then you know Linux" | » |
— В оригинале фигурировала Slackware, но сабж подходит больше |
Генту — хорошее средство либо для тех, кто в детстве не наигрался с Lego (сборка системы доставляет, я гарантирую это) либо для тех, кто хочет получить практические навыки. Ибо Генту для последнего предназначена лучше всего.
Также стоит отметить, что сабж больше подходит для серверов, маршрутизаторов, автоматизации производства и прочих девайсов где не нужен рабочий стол и куча пакетов (начиная от браузера, заканчивая офисом). Ведь на сервере не каждый день устанавливаешь или обновляешь программы, как только появляется новая альфа релизная версия твоих любимых программ, коих 9000 на твоем ноутбуке. Здесь стоит один раз настроить и юзать консоль с двумя-тремя нужными программами и обновлять их раз в год, когда их окончательно поюзают бета тестеры и выйдут более стабильные релизы.
Поговорка в эпиграфе как бы намекает нам, что после сложного и трудоемкого процесса установки и настройки до нормального уровня пары-тройки десктопов (нормального, блджад!, уровня, с вай-фаем и компизами) и хотя бы одного сервера (Анонимус опять замечает — нормального! не тупо шлюз для интернета в быдлоконторке на 1.5 компьютера, а хотя бы с почтовиком, VPN-ом и интеграцией в Active Directory), на все остальные линуксы будешь смотреть без страха и сомнения!
И еще: из Gentoo можно сделать все что угодно: сервер, десктоп, и т. п. ерунду. Впрочем, всю эту ерунду можно сделать и на FreeBSD, если вы, конечно, не страдаете BSD-фобиями. Вопрос вкуса.
Кроме того, как ни странно, данный дистрибутив хорош тем, что уже при установке вы более близко знакомитесь с миром кривых зеркал никсовых операционных систем, поскольку вам самим придется создавать и форматировать разделы с нужными размерами, а то и вовсе настраивать ядро под себя и своё железо. Данный этап, возможно, займет какое-то время. Лучше сразу пройти на официальный сайт gentoo, дабы прочитать документацию по установке и настройке [3]. Перед установкой не забудьте собрать максимум информации по железу и хотя бы немного ознакомиться с той частью документации, в которой даются пояснения use-флагам [4].
В большинстве случаев все это не так сложно, если имеется пара прямых рук и набор извилин центральном отделе нервной системы. Хотя и не всегда. Сборка ядра под какой-нибудь SoC с отрывочной документацией, и конфигами, разбросанными по .config, device tree blob и (бывает и такое!) Си-файлам с кодом инициализации борды, весьма доставляет. Как видно, при наличии вагона свободного времени и отсутствии личной жизни, дистрибутив хорош тем, что он решит проблему как со временем, так и с недотрахом.
Распространенность
По версии анонимуса Гента - самый распространенный дистрибутив Линуксов, ибо единственноый:
Не хочу вас растраивать товарищи,но у всех мейнтейнеров стоит гента.Они её просто компилят со своими опциями ставят свои капеты и выкладывают.Красная шляпа - простой stage4+графический распаковщик ))))). |
https://www.linux.org.ru/forum/admin/10544447/page3#comment-10547130 |
Алсо
- Говорят, что Господь Бог был гентушнегом — тоже мир 6 дней собирал. Впрочем, эта гипотеза — серьезный повод к сомнениям в Его истинном «православии»: Иначе откуда взяться поговорке «Я бы изменил мир, но Бог не дает исходников»?
- К выходу LibreOffice гентушники как раз закончили компилировать OpenOffice.
- Основатель проекта — Дэниэл Роббинс — в 2005 году ушел в Майкрософт, но через год уволился оттуда, так как был очень огорчен тем фактом, что не смог в полной мере реализовать свои технические способности на назначенной должности [5]. Сейчас пилит Funtoo Linux, окончательно стал Анальным Рабом и, по его словам, избегает использовать линупс на десктопе, потому что глаза начинают кровоточить, он начинает пилить рендеринг шрифтов, фейлит но не может остановиться и ни на что другое не остается времени.
Башорг
<@insomnia> Нужно выполнить всего три команды, чтобы поставить Gentoo |
394695 |
RS_Guardian: поставь соляру |
403342 |
bbl321_: а у меня виноград
|
404715 |
<Byron> Дочка Убунту прибежала к Дебиану и, весело смеясь, поцеловала его в лоб: "С днём рождения, папа!" Затем она окинула радостным взглядом сидящих за столом гостей и спросила своим звонким голосом: — Папа, а где Gentoo, разве он ещё не пришёл? — Нет, он ещё только собирается. |
404277 |
ххх: я конечно понимаю что у каждого свои тараканы в голове, но это слишком. на прошлой неделе просила мужа купить булочки с повидлом - купил отдельно булочки и отдельно повидло, мотивируя это тем, что так лучше |
404580 |
torkvemada> Он гентушник |
405641 |
Алина: Кать, у тебя есть черный лак для ногтей? |
405977 |
<plab> так, господа айтишники, очень актуальный вопрос |
394118 |
xxx: Настоящий гентушник никогда не качает мп3, он качает ноты и сам собирает песню! |
405425 |
xxx: Чтобы войти в храм, неофит должен смирить плоть, отказаться от плотских утех и отринуть все мирское, посвятив себя достижению совершенства. |
403213 |