DataLife Engine / Gentoo Linux: Собери свою идеальную систему с нуля

Gentoo Linux: Собери свою идеальную систему с нуля

Многие из пользователей Linux слышали о таком дистрибутиве как Gentoo. И о том что работа с ним нечто сложное и непостижимое для обычного пользователя. Но на деле все совсем иначе. Gentoo один из не многих дистрибутивов который позволяет без особых усилий весьма гибко настроить систему, при этом сделать это быстро. Огромный набор программного обеспечения в репозиториях данного дистрибутива дает возможность не отвлекаться на подключение сторонних источников ПО. А система портов позволяет выбирать версию нужного ПО.

В формате обзора Gento linux мы постараемся на практике оценить возможности этого дистрибутива, и сделать идеальную персональную систему. Познакомимся с Portage, научимся избавляться от лишнего функциональность в программах, оптимизировать систему под железо. Мы не будем описывать процесс установки Gentoo, хотя по факту после прочтения этой статьи у вас не возникнет проблем с установкой, ибо разница не особо большая.


Содержание статьи

Гибкость Gentoo

Очень часто в интернете всплывают споры, дает ли Gentoo прирост в производительности. Тут на самом деле все предельно просто. Все зависит от того на сколько тонко вы настроили систему. Многие если не все пользователи Gentoo Linux заявляют что это самый гибкий дистрибутив, чем же обусловлена эта гибкость?

Во первых стоит начать с того что Gentoo это source-based дистрибутив, то есть все ПО распространяется не бинарными пакетами (как например deb или rpm), а в виде исходных кодов. Так же сама система пакетный менеджер (если его можно так назвать) напоминает по принципу работы пакетный менеджер в FreeBSD. В системе есть папка в которой находятся порты, а именно подпапки с .ebuild файлами. Это своеобразные скрипты, они указывают на то откуда качать файлы, как их компилировать, и куда раскладывать то что получилось в итоге. За счет такого подхода достаточно создать всего один ebuild для того что бы установить целый набор программ.

USE флаги

Стоит отметить то что при установке различного ПО в Gentoo, его функциональность можно расширить / сузить за счет использования USE флагов. Например хотим мы установить пакет WireShark, в стандартный набор поставки этой программы в различных дистрибутивах входит весьма приличный пакет дополнительного ПО, которым скорей всего мы и пользоваться то и не будем. В Gentoo за счет USE флагов можно собрать собственный WireShark, только с нужным функциональностью. Например нам нужен весь стек протоколов, и графический интерфейс на основе Qt. Достаточно включить все флаги кроме doc, doc-pdf и GTK.eq

Gentoo Linux: Собери свою идеальную систему с нуля

В итоге мы получим пакет который будет весить значительно меньше чем аналог для других дистрибутивов. Флаги можно ставить глобально и локально. Рассмотрим два файла

/etc/portage/make.conf - Глобальный файл настроек portage, к нему мы сегодня будем обращаться очень часто, т.к именно он поможет нам выжать буквально все из нашей системы. В случае с USE флагами все просто, в строчке USE=" " мы можем указать какие флаги надо использовать для каждого пакета, например имеет смысл поставить туда systemd если в дальнейшем будет использоваться эта система инициализации, или же KDE если планируете работать с этой оболочкой. Важно знать что от флагов будут определятся зависимости для пакетов, соответственно чем больше флагов - тем больше будет зависимостей для ПО.

/etc/portage/package.use - Тут уже можно определить файлы настроек для каждого пакета отдельно, поддерживаются логические выражения. Например :

>=dev-lang/python-3.6.0 examples <=dev-lang/python-2.7.0 -examples

В таком случае для python версии 3.6 или выше у нас будут устанавливаться примеры программ, а для 2.7 и ниже напротив, примеры будут игнорироваться. Стоит обратить внимание, для того что бы включить флаг достаточно внести его имя, а для того что бы жестко указать portage на игнорирование флага, поставить перед его именем "-".

Так же можно указывать временные флаги, которые будут действовать единожды в процессе сборки.

USE=" <флаг> " emerge <пакет>

Оптимизация под целевую архитектуру

Помимо сокращения бинарных файлов методом изменения USE флагов, так же оптимизировать работу компьютера можно настройкой компилятора под целевую архитектуру. Как это работает ? - Программы в репозиториях других дистрибутивов находятся в бинарном виде. Разработчики как правило собирают программы без оптимизации под архитектуру, так как их основная задача заставить работать программу на как можно большем количестве ПК. Gentoo же дает нам возможность собрать нужную нам программу под нужную нам архитектуру.

Для того что бы это сделать нам надо заглянуть в файл /etc/portage/make.conf , там нам нужно отредактировать пару пунктов.

CFLAGS - дописываем туда -martch=native или же название своей архитектуры , например -march=haswellПо сути этим можно было и ограничится, но мы будем выжимать все из системы. Добавим флаг -O2 , это "скажет" portage собирать программы с оптимизацией второго уровня. Стоит отметить что в некоторых источниках могут писать что чем больше число тем будет выше степень оптимизации, иногда люди ставят -O10 и больше, но GCC поддерживает только 4 уровня оптимизации, все что выше будет автоматически сброшено до 4.

Оптимизация процесса сборки

Пару советов по сборке ядра

Полезные инструменты

Вывод

В этом обзоре Gentoo linux мы открыли для себя возможности тонкой настройки системы под конечного пользователя. Исходя из выше написанного можно сделать вывод что Gentoo действительно гибкая система. За счет флагов мы можем уменьшить бинарный файл, как следствие он будет быстрее выгружаться в оперативную память, и меньше занимать места на жестком диске. Тонкая настройка /etc/portage/make.conf дает заметный прирост в производительности.

Система Portage позволяет использовать несколько версий пакетов одновременно, что позволяет работать с самым стабильным ПО, даже если оно использует тестовые библиотеки. Так же мы рассмотрели несколько нюансов сборки ядра, и узнали про пару удобных инструментов для администрирования Gentoo. Так же советуем вам почитать о установке пакетов в Gentoo

12-10-2025, 20:04
Вернуться назад