Топ 5 мифов о Gentoo Linux: правда и вымыслел

Топ 5 мифов о Gentoo Linux: правда и вымыслел Linux, Gentoo, Мифы, Длиннопост

К созданию данного поста меня подтолкнул спор с пользователем @idkravitz да и другие комментарии на пикабу касательно генту. Ошибочно многие пользователи считают что генту - вершина красноглазия линуксоида. Надеюсь, что кому-то этот пост окажется информативным или, как минимум, поясняющий некоторые моменты.

Поехали.


Миф 1: установка Gentoo - сложный, долгий и трудоемкий процесс.

Топ 5 мифов о Gentoo Linux: правда и вымыслел Linux, Gentoo, Мифы, Длиннопост

Отчасти утверждение верно. В действительности, порог вхождения в Gentoo Linux несколько выше, чем у многих Linux дистрибутивов. Но не так страшен черт, как его малюют :)


Установка генту происходит из работающей системы (в отличие от многих ОС, где этой задачей занимается установщик, который на самом деле представляет из себя миниатюрную ОС). Для этих целей сообществом Gentoo был создан MinimalCD, содержащий в себе Live-версию Gentoo Linux для конкретной архитектуры и минимальный набор инструментов для установки. Хотя я (как и многие участники сообщества) рекомендую использовать SystemRescueCD - дистрибутив, созданный с целью экстренного восстановления работы большинства ОС на базе Gentoo (рекомендую хотя бы из-за наличия многих сетевых драйверов из коробки и полноценного графического интерфейса).


Процесс установки расписан до мельчайших деталей в Gentoo Handbook - книге (доступен так же онлайн-вариант на русском языке) об установке и настройке Gentoo Linux. Процесс этот действительно долгий (особенно для новичков), но нельзя сказать что чрезмерно сложный благодаря наличию хендбука и неплохой вики-документации на многие пакеты.


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


Миф 2: Gentoo намного/несколько быстрее других дистрибутивов.

Топ 5 мифов о Gentoo Linux: правда и вымыслел Linux, Gentoo, Мифы, Длиннопост

Утверждение в большинстве случаев не верно. Для того, что бы понять почему, достаточно знать основы программирования и немного про компилятор GNU GCC.


Оптимизация внутри системы Gentoo достигается за счет использования т.н. use-флагов. Это - обычные текстовые выражения из числа заранее определенных описывающие, какой именно функционал пользователь хочет получить от устанавливаемой программы. Это не значит, что код будет работать быстрее всегда (хотя в некоторых случаях это действительно так). Это лишь означает, что программа не будет предлагать (а во многих случаях и делать) ненужные пользователю действия. Что действительно улучшается - так это размер программы при таком подходе. Конечно же, можно вспомнить, что размер исполняемого файла напрямую влияет на время его загрузки в оперативную память (запуска), но с современным железом речь будет идти максимум о паре миллисекунд.


При чем тут GCC? А тут появляются магические флаги компиляции "-О", определяющие как сильно компилятор будет оптимизировать код. Если не вдаваться сильно в подробности, то в зависимости от настроек код может быть оптимизирован (под конкретную платформу) от состояния "никак" до состояния "не работает, но быстро". В последнем состоянии компилятор может переставлять местами логические блоки внутри программы полностью ломая ход её выполнения. Зато с точки зрения компилятора получившийся код будет выполняться максимально быстро. Как это относится в Gentoo? Самым что ни на есть прямым образом: пользователь может определять флаги оптимизации как для каждого пакета в отдельности так и для системы в целом.


Стоит так же добавить сюда факт появления на свет компилятора clang, который хоть и не может пока полноценно заменить GCC, но уже по существующим тестам опережает его как по времени компилирования так и по скорости работы собранных программ (т.е. по оптимизации). Пока некоторые дистрибутивы только думают переходить на clang пользователи Gentoo могут самостоятельно поменять компилятор по-умолчанию и собрать себе систему им.


Миф 3: Нужно вручную собирать систему целиком.

Топ 5 мифов о Gentoo Linux: правда и вымыслел Linux, Gentoo, Мифы, Длиннопост

Всё зависит от того, что понимать под словом "вручную".

В действительности же процесс обновления или установки новых программ выглядит следующим образом: пользователь ищет нужный пакет и притворяется что устанавливает его (опция --pretend в установщике). Менеджер пакетов показывает, какие пакеты будут установлены (с учетом всех зависимостей) и при наличии - опции для каждого пакета в отдельности. После настроек пользователь уже запускает нормальную установку и идет пить чай / спать / в отпуск в зависимости от мощности процессора и объема устанавливаемой программы. Система в это время самостоятельно выкачивает исходники, компилирует и устанавливает их. Стандартный менеджер пакетов консольный (что не мешает ему оставаться удобным в использовании), существуют так же графические оболочки для него, хотя большого смысла в них нет.


Что касается конфликтов при установке: действительно, они встречаются. Например, когда программа А требует установить библиотеку С версии .х а программа И - С.у . В этом случае пользователю следует прежде всего проверить, какая из программ А и В использует старую версию библиотеки и почему. В 99% случаев это происходит из-за устаревшей версии программы А или В (соответственно её стоит обновить). И лишь в 1% - из-за несовместимости пакетов, например, когда А требует от С фичу Х, а В - требует отсутствие в С фичи Х.

Но на моей практике (более 6 лет пользования Gentoo) это случилось лишь единожды при мажорном апдейте udev и обратной несовместимости новой и старой версии. Где-то месяц разработчики переписывали свои программы под новую версию udev.

При этом никто не заставляет пользователя обновлять данный пакет - можно спокойно проигнорировать апдейт (или абсолютно безболезненно откатиться на старую версию все через тот же менеджер пакетов) и подождать, пока починят остальные пакеты. При этом в 100% случаев после обновления пакета пользователю будет дано сообщение о том, что именно нужно поменять в настройках системы, что бы она продолжала нормально работать.


Миф 4: Пользователи Gentoo раньше других получают обновления программ.

Топ 5 мифов о Gentoo Linux: правда и вымыслел Linux, Gentoo, Мифы, Длиннопост

В большинстве случаев это правда, особенно если сравнивать с Debian :) . Конечно, сообщество не рекомендует обновляться до пакетов, которые только появились на свет и проходят тестирование, но по желанию пользователя возможно и такое. При большом желании можно настроить систему на игнорирование официального репозитория и скачивать исходный код напрямую из репозиториев разработчиков со всеми багами и фичами (недавнее обновление portage добавило и такую функцию, теперь можно обойтись без ebuild-ов и напрямую качать из git, svn, etc.).

Например я начал использовать KDE Plasma 5 в тот момент, когда она только появилась на свет и не была доступна ни в одном репозитории (и, кстати, намного стабильнее с самого начала, по сравнению с KDE 4). Энтузиасты в сообществе очень охотно создают скрипты установки (т.н. ebuild'ы) для новых версий ПО.

Стоит оговориться: некоторые пакеты не проходят тестирование и так и остаются в официальном репозитории на стадии "testing". Например Qt 5.7.0 до сих пор (уже почти два месяца с момента официального релиза) весит с пометкой "testing". Во всех случаях это связано с тем, что неумелый пользователь при установке данного пакета может прострелить себе колено поломать систему (например Qt 5.7.0 требует ABI-совместимости C++11, которую могут не поддерживать другие пакеты). Но опять таки - никто не запрещает установить и такой пакет.


Миф 5: Gentoo - вершина красноглазия в мире GNU/Linux

Топ 5 мифов о Gentoo Linux: правда и вымыслел Linux, Gentoo, Мифы, Длиннопост

Катастрофически неверное утверждение. Во-первых существует проект LFS (linux from scratch) подразумевающий полностью ручную сборку всей операционной системы без участия менеджера пакетов и какой-либо автоматизации и представляющий из себя набор советов. Во-вторых - Gentoo - не единственный source-based дистрибутив, существуют так же AryaLinux, CRUX, Lunar, GoboLinux, T2, Sourcemage и другие, основанные на них и Gentoo (например Funtoo). Gentoo же лишь (по-моему мнению) самый удобный из всех со своим менеджером пакетов и обширным сообществом.

GNU/Linux

1K постов15.5K подписчика

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.