Персональные инструменты
Счётчики

Участник:GenaZakharov/Gentoo

Материал из Lurkmore
Перейти к: навигация, поиск

Буду записывать сюда черновики для больших правок.

Butthurt.pngВнимание! Статья-детектор!
Одним из побочных эффектов от прочтения этой статьи является так называемый butthurt.
Если вы начнёте ощущать боль в нижней части спины, следует немедленно прекратить дальнейшее чтение и смириться с фактом, что вы — красноглазый гентушник.
«

Кто гентушник? Я гентушник? Сам иди нахуй.

»
Анонимус
Gentoo-tan

Gentoo — один из семейства source-based дистрибутивов Linux, отличительная особенность которых — пакеты собираются на пользовательской машине из исходников, находящихся в репозитории. В отличие от этого, пакетные дистры (Debian/Ubuntu, Mandriva, Red Hat/Fedora, SUSE/OpenSUSE, тысячи их, но формат пакетов обычно или deb, или rpm), как видно из названия, заточены на установку уже собранных пакетов с откомпилированными исполняемыми файлами. Назван в честь соответствующего вида общелинуксового маскота. Самый быстрый в мире пингвин, кстати (36 км/ч, 10 м/с).

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

«

А я люблю компилировать генту и дрочить. Каждый день я скачиваю на компьютер все ебилды которые нахожу. На два гига целый день уходит. Зато, когда после тяжёлого дня я прихожу домой, включаю компьютер и ставлю на компиляцию свое сокровище. И дрочу, представляя, что меня поглотил единый организм портаж. Мне вообще кажется, что ебилды, умеют думать, у них есть свои семьи, города, чувства... А вчера, мне приснился чудный сон, как будто я нырнул в море, и оно превратилось в портаж, рыбы, водоросли, медузы, все из портажа, даже небо, даже Линус Торвальдс!

»
— Вован о Gentoo

Содержание

stage1

В отличие от пакетных дистрибутивов, предназначенных для непосредственного применения, gentoo — это конструктор, из которого при наличии мозга и прямых рук можно запилить что-то, пригодное для использования.

GentooWayTranparent.png

В результате даже простая установки рабочей системы превращается в целый квест с вдумчивым курением манов, что неимоверно повышает Чувство Собственной Важности Гентушника. Иногда возникают довольно серьёзные проблемы, успешное и грамотное решение которых может поднять ЧСВ Гентушника более, чем до 9000. Даже до 9999.

А при наличии такого желания можно ебаться с системой дни и ночи напролёт, неустанно пытаясь что-то обновить, перенастроить, допилить под себя, компилируя и перекомпилируя все приложения, или, на Гентушном жаргоне, «пересобирая мир». Именно таков самый распространенный подвид гентушника в этих ваших интернетах. Sad but true.

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

Справедливости ради стоит сказать, что существуют и куда более задротские вещи, например LFS, но о них знает 3.5 анонимуса. Генту получил известность благодаря сочетанию высокой сложности и простора для задротства с возможностью хоть как-то пользоваться полученным результатом. Иными словами, это самый сложный и задротский из реально используемых Linux-дистрибутивов.

stage3

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

Полное отсутствие какого-либо установщика

Да-да, именно так. Анонимусу, возлежавшему установить это чудо, предлагается LiveCD с базовой системой, командная строка, текстовый(!) браузер для лазанья по интернету и мануал. Нет, даже МАНУАЛ. В котором подробно написано, как разметить диск, перенести на него базовую систему, установить графическое окружение и т.д. Большинство howto имеются в читабельном русском переводе, но все-таки русская документация немного запаздывает, и для надежности желательно вкурить английский оригинал. Для сферического в вакууме компьютера приведенные там команды почти не потребуется менять, а вот если комп совсем новый/очень древний/с экзотическим железом, тогда начинаются длительный секс и задротство.

Мануалы генты в большинстве хорошие, годные, в них не только даются чёткие указания чего и как делать, но и приводятся разъяснения зачем, и как это влияет на систему. Понятно, что дурак способен накосячить и здесь — бывали даже случаи когда в make.conf ставился флаг оптимизации −03 (ноль-три вместо православного О-три), но 95% и на генте 95%. В любом случае, навыки курения манов, пользования командной строкой и гугления гента прокачивает достаточно быстро.

Сборка из исходников и опции компилятора

Все пакеты бинарных дистрибутивов собираются по принципу «чтобы работало везде и у всех», поэтому некоторая часть оптимизаций отключается. Пакет под 64-битную архитектуру собран для некого абстрактного 64-битного процессора, и включает лишь то, что будет работать на всех 64-битных процах без исключения. Собирая пакеты самому, можно включить поддержку SSE3 (есть на всех современных 64-битных процах) SSE4 (для интеловского процессора), 3dNow (для AMD) и прочих вещей разной степени кошерности.

Теоретически, сборка программ с оптимизацией под железо способна заметно ускорить некоторые приложения. Небольшие тесты показали [1], что твое любимое похапэ, мой юный друг, потребляет на 25% меньше ресурсов на Gentoo, чем на других африканских линуксах, что для содержания серверов и крупных маршрутизаторов несомненный win. Также под гентой неплохо работает всякий софт для научных расчетов, которого кстати дофига в оверлеях, так что ставить его довольно удобно. Оборотная сторона этого — адски долгий процесс собственно компиляции. Последние версии Libreoffice или Firefox могут собираться по 10-15 часов, отожрав на время компиляции 4-5 гигов места на диске. Впрочем, подобные монстры можно ставить и из бинарных пакетов, благо именно там скорость работы — не главное.

Некоторые дистрибутиводельщики страдают тяжёлой формой ГГМ (ГНУизмом головного мозга) и выраженным синдромом проприетарофобии, поэтому принципиально не включают в репозиторий программы с лицензиями, отличными от GPL. В Gentoo ты собираешь и ставишь всё сам, не вызывает проблем поставить закрытые фирменные драйвера для NVidia с нормальной поддержкой 3D, или скачать и поставить набор стандартных ttf-шрифтов от Microsoft. Кое-какой научный софт ( GAMESS например), который распространяется в виде исходного кода, но не под GPL-лицензией, на генте достаточно просто скачать в нужную папку, после чего его можно скомпилировать и собрать одной командой.

К сожалению, начинающие гентузадроты первым делом пытаются включить сразу все возможные и невозможные наборы инструкций и оптимизаций, причем сразу для всей системы. В результате сего действа задрот получает +5% к общей производительности системы и 100500 непонятных невоспроизводимых багов, после чего лезет в интернеты излить свою ненависть.

Официальный мануал рекомендует только безопасные наборы флагов, которые выглядят довольно скромно [2]. А лучше вообще включить только только -march=native и -O2, а дальше компилятор сам разберется. Тем более, что для ресурсоемких программ флаги оптимизации обычно прописаны в ебилде и выставляются автоматически.

portage и USE-флаги

«

В слове 'ебилд' буква 'д' явно не на своём месте

»
Анонимус

Второй по важности частью gentoo (поле мануалов) является portage — автоматизированная система компиляции программ. Собственно, конфигурирование этой вундервафли и составляет чуть больше чем половину процесса установки генты. Состоит из большого набора скриптов на bash/python и over 9000 сценариев с доставляющим названием ебилд (ebuild). Каждый ебилд — это инструкция для портежа, откуда качать, с какими опциями конфигурировать и как компилировать определенную программу.

Управляется портеж через набор переменных, наиболее доставляющей из которых является переменная USE. Она содержит набор USE-флагов — опций, с которыми будут собираться пакеты. Например, можно выставить глобально для системы „-ipv6“, что выпилит поддержку IPv6 из всех программ, где это вообще возможно. Во всех пакетных дистрибутивах опции компиляции заданы раз и навсегда, и поменять из невозможно. Если мэйнтейнер пакета решил, что он будет работать с IPv6 и интерфейсом на GTK, то так и будет. Флаги могут задаваться как для всей системы сразу, так и для отдельных пакетов через специальные конфиги.

Обратная сторона такой гибкости — адов треш и угар с зависимостями пакетов. В пакетных дистрах всегда известно, какие пакеты от каких зависят, а в генте зависимости пакетов могут меняться в зависимости от USE-флагов, и их надо каждый раз вычислять заново. Переигравшись с зависимостями, можно получить доставляющую ситуацию, когда пакет A зависит от B, B от С, а C от A, после чего портеж ругается и отказывается работать дальше, пока это непотребство не будет исправлено.

Еще можно в самый неподходящий момент обнаружить, что любимый видеоплейер не желает читать порномультики в формате mkv, а чтобы это исправить, надо прописать в USE-флагах „mkv h264“ и подождать минут 20-30, пока все нужные пакеты пересобираются.

В сферрическм в вакууме случае установка программы делается одной командой.

emerge -av <program name>

После этого заклинания портеж делает следующее

  • Читает ебилд и проверяет присутствие всех зависимых пакетов.

Rolling release

Гента точно также как Debian Sid, или Arch — Rolling-release дистрибутивом. У него нет никаких выпусков, а есть только одна версия - текущая. Новые версии программ добавляются постоянно, сначала как тестируемые, а потом переводятся в статус стабильных.

В любой момент времени можно обновить все программы до последних доступных версий.

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

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-фобиями. Вопрос вкуса.

Кроме того, как ни странно, данный дистрибутив хорош тем, что уже при установке вы более близко знакомитесь с миром кривых зеркал никсовых операционных систем, поскольку вам самим придется создавать и форматировать разделы с нужными размерами, а то и вовсе настраивать ядро под себя и своё железо. Что в большинстве случаев не так сложно, если имеется пара прямых рук и набор извилин центральном отделе нервной системы. Хотя и не всегда. Сборка ядра под какой-нибудь SoC с отрывочной документацией, и конфигами, разбросанными по .config, device tree blob и (бывает и такое!) Си-файлам с кодом инициализации борды, весьма доставляет.

Данный этап, возможно, займет какое-то время. Лучше сразу пройти на официальный сайт gentoo, дабы прочитать документацию по установке и настройке [3]. Перед установкой не забудьте собрать максимум информации по железу и хотя бы немного ознакомиться с той частью документации, в которой даются пояснения use-флагам [4]. Как видно, при наличии вагона свободного времени и отсутствии личной жизни, дистрибутив хорош тем, что он решит проблему как со временем, так и с недотрахом (хотя вопрос, конечно же, спорный).