что такое linux gentoo

Честный Gentoo Linux Обзор

В этом посте мы рассмотрим Linux дистрибутив Gentoo.

Что такое Gentoo?

Особенности Gentoo Linux

Gentoo Linux компилируется из исходного кода, и пользователь может решить, какие параметры конфигурации и компиляции использовать для каждого пакета. Доступные по умолчанию параметры для каждого пакета не удовлетворяют ваши потребности, вы даже можете скопировать ebuild пакета (сценарии оболочки, используемые для сборки пакетов с использованием диспетчера пакетов Gentoo) в свой собственный репозиторий (называемый наложением), настроить его в соответствии с вашими собственными нужно и построить. Gentoo дает вам свободу решать, что выбрать из следующего:

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

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

Плюсы и минусы Gentoo Linux

Плюсы Gentoo Linux

Минусы Gentoo Linux

Системные требования для Gentoo Linux

Ресурс Минимальный CD LiveDVD
ЦП i486 или позже i686 или позже
Память 256 MB 512 MB
диск 2.5 ГБ (исключая пространство подкачки)
Пространство подкачки Не менее 256 МБ

Вынос с поста

Итак, лучшие вещи в Gentoo Linux:

заключительные выступления

Вот обзор Intel Clear Linux в случае, если вы еще не читали об этом.

Оставьте комментарий Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Обзор Gentoo Linux

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

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

Гибкость Gentoo

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

USE флаги

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

Проверка USE с помощью equery

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

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

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

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

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

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

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

Вывод

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

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

Источник

Разрушители легенд — Gentoo Linux

Дочка Убунту прибежала к Дебиану и, весело смеясь, поцеловала его в лоб: «С днём рождения, папа!». Затем она окинула радостным взглядом сидящих за столом гостей и спросила своим звонким голосом:
— Папа, а где Gentoo, разве он ещё не пришёл?
— Нет, он ещё только собирается.

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

Миф №1 — прирост производительности

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

На чем основан этот миф? Действительно узкий круг вычислительных программ можно ускорить при компиляции под определенную платформу, задавая компилятору включение инструкций SIMD, AESNI, или AVX. Бинарные дистрибутивы из-за чрезмерной заботы о совместимости со старой архитектурой базой зачастую приносят подобные оптимизации в жертву. Вернее будет сказать, что так было раньше, а сейчас это не играет большой роли.

Определенно, не за это адепты ценят Gentoo.

Миф №2 — обновления съедают много времени

Технически это верно, таки да, иногда программы обновляются долго, но обходные пути очень хорошо проторены, что и делает этот тезис мифом. Вот мои рекордсмены.

Во-первых никто не мешает долгоиграющие обновления запускать ночью. Во-вторых в любой момент задание emerge и компиляцию исходников можно поставить на паузу (Ctrl+Z), возобновив позже в фоновом режиме (bg) или явно (fg). В-третьих можно задать автоматическое обновление через небольной скрипт, например такой.

Миф №3 — в Gentoo самые свежие версии программ

Конечно, если сравнивать с Debian Linux, то в целом это так, однако и тут бывают исключения. Тот же Debian раньше стал использовать Grub 2 в стабильной ветке и Perl какое-то время был более новой версии, нежели в Gentoo. Если же сравнивать стабильные ветки менее консервативных дистрибутивов с таковыми в Gentoo, то результат может быть каким угодно. Все зависит от кучи обстоятельств, насколько данный пакет обеспечен мейнтейнером и волонтерами. Например QEMU обновляется почти одновременно со стабильной веткой Github, а MATE — застрял в Gentoo на версии 1.12.2 из-за того, что у него мало разработчиков.

+1 — необычайная гибкость настроек

Поговорим теперь немного о достоинствах Gentoo Linux. Гибкость и возможность настроить очень многие аспекты ОС под себя это то, чем блещет дистрибутив. Вот всего лишь несколько таких примеров.

+2 — скользящие релизы

Для меня это одно из основных преимуществ дистрибутива. Из-за того, что вы невнимательно читали RSS ленту вашего дистрибутива вы не окажетесь в ситуации, когда вам на голову свалился новый инит, файловая система или принцип работы сетевых интерфейсов.

+3 — хорошая документация

Это действительно так. Установку ОС значительно облегчает подробнейшее руководство, но есть также крайне полезные вики и форум.

± emerge и portage

Основная система управления пакетами portage и штатное средство управления пакетами emerge являются очень мощным и функциональным в руках опытного и внимательного к докам пользователя. Именно благодаря системе portage возможны тонкие и гибкие настройки операционной систему и пользовательского ПО (см. выше в +1). Даже беглое описание возможностей emerge/portage заслуживает отдельного поста, поэтому ограничусь общим описанием.

Из-за чего могут возникать такие ситуации? По самым разным причинам, изменения в лицензировании продукта, необходимость замаскировать, или наоборот размаскировать пакет, изредка ляпы разработчиков. Тут наблюдается обратная зависимость от частоты обновлений, поэтому рекомендуется регулярно и по возможности часто обновлять систему, чтобы накопленная энтропия в древе портов не порождала цепной реакции.

-1 — начальная установка занимает много времени

Полная ерунда, вот установка с помощью однострочника.

А если серьезно, то действительно весь процесс займет времени намного больше, чем при установки бинарных дистрибутивов, таких как Дебиан, или Убунту. Однако трудности более чем преодолимы, ввиду следующих обстоятельств.

Маленькие хитрости

Если по каким-то причинам компиляция пакета прервалась (выключился свет, завис компьютер и т. д.), но технически может быть возобновлена, можно продолжить процесс с этого самого места. Это особенно ценно для LibreOffice, Chromium или qt-webengine, которые собираются не один час.

Можно сделать бинарный бэкапы системных пакетов на всякий пожарный случай.

Источник

Gentoo Linux amd64 Handbook: Работа с Gentoo

Contents

Добро пожаловать в Portage

Система Portage — вероятно, самое известное нововведение Gentoo в управлении программным обеспечением. Благодаря высокой гибкости и чрезвычайно богатым возможностям, она зачастую считается лучшим средством управления программным обеспечением из существующих в Linux.

Portage полностью написан на Python и Bash и, следовательно, полностью прозрачен для пользователей, поскольку это скриптовые языки.

Gentoo репозиторий

Ebuilds

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

Обновление Gentoo репозитория

Иногда правила файрвола ограничивают rsync в доступе к зеркалу. В этом случае обновите Gentoo репозиторий с помощью ежедневно генерируемых Gentoo снимков. Утилита emerge-webrsync автоматически загрузит и установит последний снимок в систему:

Управление программным обеспечением

Поиск программного обеспечения

Например, чтобы найти все пакеты, содержащие «pdf» в названии:

Обратите внимание, что вывод команды возвращает много информации. Поля четко обозначены, поэтому мы не будем вдаваться в подробности их значения:

Установка программы

Поиск документации для установленных пакетов

После установки пакета, его документацию, как правило, можно найти в подкаталоге с именем пакета в каталоге /usr/share/doc/ :

Удаление программы

Обновление системы

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

Метапакеты

У некоторых пакетов в Gentoo репозитории нет содержимого, но они используются для установки набора других пакетов. Например, kde-plasma/plasma-meta установит KDE Plasma desktop в систему, устанавливая в качестве зависимостей различные пакеты, которые нужны Plasma.

Все это можно сделать следующими двумя командами:

Лицензии

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

Например, чтобы разрешить google-chrome лицензию для пакета www-client/google-chrome добавьте следующее в /etc/portage/package.license :

Это разрешит установку пакета www-client/google-chrome, но не позволит устанавливать пакет www-plugins/chrome-binary-plugins, хотя он имеет туже лицензию.

Группа лицензий в переменной ACCEPT_LICENSE указываются с символом @ перед ней. Возможной настройкой (которая является значением по умолчанию в Gentoo) является разрешение всех лицензий, кроме Соглашений с лицензией конечного пользователя (EULA), которые обычно требуют прочтения и подписания соглашения о принятии условий лицензии. Это можно достичь, приняв все лицензии (через * ), после чего удалив лицензии из группы EULA, как указано ниже:

Обратите внимание что такая настройка разрешит несвободное программное обеспечение и документацию.

Когда Portage на что-то ругается

Терминология

Как отмечалось ранее, Portage поддерживает многие возможности и является чрезвычайно мощным инструментом, как и другие инструменты управления программами. Чтобы понять это, разберём несколько аспектов Portage, не вдаваясь в детали.

С помощью Portage разные версии отдельного пакета могут сосуществовать в одной системе. В то время, как другие системы управления стремятся называть пакеты в соответствии с версией (например freetype и freetype2), Portage использует технологию под названием SLOT. Ebuild присваивает определенный SLOT для одной версии пакета. Ebuild с разными SLOT способны сосуществовать в одной системе. Например, пакет freetype имеет разные ebuild для SLOT=»1″ и SLOT=»2″.

Есть также пакеты, которые обеспечивают ту же функциональность, но реализуются по-разному. Например, metalogd, sysklogd и syslog-ng это все системные службы журналирования. Приложения, которым нужен «системный журнал», не могут зависеть только от metalogd, так как остальные программы журналирования могут быть равнозначны. В Portage предусмотрены виртуальные пакеты: каждая служба журналирования описана в нем как «эксклюзивная» зависимость от службы журналирования в виртуальном пакете журналирования виртуальной категории, поэтому остальные приложения могут зависеть от пакета virtual/logger. Если ещё не была установлена служба журналирования, то при установке виртуальный пакет «вытянет» первый из указанных в нём пакет журналирования. Если любой пакет журналирования уже был установлен, то в этом случае виртуальная зависимость считается удовлетворенной.

Программное обеспечение в репозитории Gentoo может располагаться в различных ветвях. По умолчанию система устанавливает только пакеты, которые в Gentoo считаются стабильными. Многие программы при обновлении будут добавлены в тестовую ветвь, что означает, что пакет должен быть протестирован до того, как будет отмечен стабильным. Несмотря на то, что ebuild для таких программ есть в репозитории Gentoo, Portage не будет обновлять их до тех пор, пока они не будут помещены в стабильную ветвь.

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

Каждая инсталляция Gentoo также придерживается определенного профиля, который содержит, помимо прочей информации, ещё и список пакетов, необходимых для нормальной работоспособности системы.

Заблокированные пакеты

Хотя последние версии Portage достаточно умны, чтобы обойти незначительные блокировки без вмешательства пользователя, иногда такие блокировки необходимо разрешить вручную.

Чтобы исправить блокировку, пользователи могут либо не устанавливать пакет, либо удалить конфликтующий пакет. В данном примере, можно отказаться от установки postfix или сперва удалить ssmtp.

Также возможно, что два пакета, которые должны быть установлены, блокируют друг друга. В этом редком случае попытайтесь выяснить, почему требуется установить их оба. В большинстве случаев достаточно оставить один из пакетов. Если это не так, то пожалуйста, сообщите об ошибке в системе слежения ошибок Gentoo.

Замаскированные пакеты

Если попытаться установить пакет, который не доступен для системы, то произойдет ошибка маскировки. Пользователи должны попытаться установить другую программу, которая доступна для системы, или дождаться когда пакет будет помечен как доступный. Всегда существует всегда причина, по которой пакет был замаскирован:

Необходимо изменить USE-флаг

Такое предупреждение или ошибка происходят, когда пакет, который требуется установить, зависит не только от другого пакета, но также требует, чтобы этот пакет был скомпилирован с особым USE-флагом (или набором USE-флагов). В данном примере, пакет app-text/feelings должен быть скомпилирован с USE=»test», но этот USE-флаг не задан в системе.

Отсутствующие зависимости

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

Неоднозначное имя ebuild

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

Циклические зависимости

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

Ошибка загрузки

Portage не смог загрузить исходный код для данного приложения и попытается продолжить установку других приложений (если это возможно). Эта ошибка может быть из-за неправильно синхронизированного зеркала или, возможно, ebuild указывает на неверное место. Также сервер, где находятся исходные коды, может временно недоступен.

Повторите действие через час, чтобы проверить, повторяется ли еще ошибка.

Защита системного профиля

Пользователь попросил удалить пакет, входящий в состав базовых пакетов системы. Он записан в профиле, как необходимый, и поэтому его не надо удалять из системы.

Ошибка проверки контрольных сумм

Это признак того, что что-то не так в репозитории Gentoo — часто, возникает из-за того, что сделана ошибка при изменении пакета в репозитории Gentoo.

Когда проверка контрольных сумм завершается ошибкой, не пытайтесь обновить их пакета лично. Запуск ebuild foo manifest не решит проблему; ситуация может ухудшиться.

Вместо этого, подождите час или два, пока репозиторий обновится. Вполне вероятно, что ошибка была замечена сразу, но может пройти некоторое время, пока исправление дойдёт до зеркал. Проверьте Bugzilla, возможно кто-то сообщил о том, что проблема существует или поспрашивайте на #gentoo ( webchat ) (IRC). Если нет, то создайте ошибку о сломанном ebuild.

После того, как ошибка была исправлена, повторно синхронизируйте репозиторий Gentoo, чтобы загрузить исправленные контрольные суммы.

Что такое USE-флаги

Идея USE-флагов

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

Это касается не только того, какие пакеты необходимо устанавливать, но и какие возможности в определённых пакетах должны поддерживаться. Если нет необходимости в OpenGL, то зачем устанавливать OpenGL и обеспечивать его поддержку в других пакетах? Если не планируется использовать KDE, зачем утруждать себя сборкой пакетов с поддержкой KDE, если они могут работать и без неё?

Чтобы помочь в решении, что устанавливать/активировать, а что нет, Gentoo предоставляет пользователю простой способ в описании его окружения. Он даёт пользователю выбор, что ему действительно нужно, а также облегчает работу с Portage для принятия более верных решений.

Определение USE-флага

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

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

Использование USE-флагов

Объявление постоянных USE-флагов

Например, для отключения поддержки KDE и Qt и включения поддержки LDAP в /etc/portage/make.conf следует указать следующие USE-флаги:

Объявление USE-флагов для отдельных пакетов

Например, чтобы включить поддержку Blu-ray только в пакете VLC:

Аналогичным образом можно запретить использование USE-флагов для определённого приложения. Например, чтобы отключить поддержку bzip2 в PHP (но оставить такую поддержку для всех остальных пакетов через определение USE-флага в файле make.conf ):

Объявление временных USE-флагов

Иногда нужно установить USE-флаг на короткое время. Вместо двойного редактирования файла /etc/portage/make.conf (сначала сделать изменение в переменной USE, а потом его отменить), просто определите переменную USE как переменную окружения. Запомните, что эти настройки будут применены только к введённой команде; пересборка или обновление этого приложения (в явном виде или при обновлении системы) отменят изменения, сделанные с помощью временного определения USE-флага.

Следующий пример временно удаляет pulseaudio из переменной USE во время установки SeaMonkey:

Приоритет

Конечно, есть приоритет в том, какие настройки будут преобладать над другими настройками USE. Последовательность для настроек USE, отсортированная по приоритету (сперва меньший приоритет):

Адаптация всей системы под новые USE-флаги

Далее, запустите очистку зависимостей Portage (depclean), чтобы удалить зависимости, которые были необходимы в «старой» системе, но теперь, с новыми USE-флагами, устарели.

После того, как эта команда будет завершена, систему можно считать настроенной в соответствии с новыми USE-флагами.

USE-флаги, специфичные для пакета

Просмотр доступных USE-флагов

emerge — не единственная утилита, которую можно использовать для этой задачи. Есть специальная утилита для получения информации о пакете под названием equery из пакета app-portage/gentoolkit.

Теперь запустите equery с аргументом uses для получения списка USE-флагов для определённого пакета. Например, для пакета gnumeric:

Удовлетворение условий REQUIRED_USE

Некоторые примеры для выражений REQUIRED_USE указаны ниже:

Возможности Portage

В Portage есть несколько дополнительных возможностей (features), которые улучшат опыт работы с Gentoo. Многие из этих возможностей полагаются на определённые программы, которые улучшают производительность, надёжность, безопасность и так далее.

Не все возможности, которые поддерживает Portage, перечислены здесь. Для полного обзора, пожалуйста, обратитесь к man-странице make.conf :

Распределённая сборка

Использование distcc

distcc — это программа для распределённой сборки по нескольким, не обязательно идентичным, машинам в сети. Клиент distcc посылает всю необходимую информацию на доступные сервера distcc (на которых работает distccd), чтобы те скомпилировали части исходного кода для клиента. В результате получается более быстрая сборка.

Больше информации о distcc (и как он работает с Gentoo) можно найти в статье Distcc.

Установка distcc

Включение поддержки distcc в Portage

Теперь запустите distcc-config и введите список доступных серверов distcc. В качестве простого примера предположим, что среди доступных серверов distcc 192.168.102 (локальный компьютер), а 192.168.1.103 и 192.168.1.104 (два «удалённых» узла):

Не забудьте также запустить демон distccd:

Кэширование собранных объектов

О ccache

ccache — это быстрый кэш компилятора. Когда программа компилируется, он будет кэшировать промежуточные результаты так, что в случае компиляции той же программы, время компиляции значительно уменьшится. В случае компиляции с ccache в первый раз, компиляция может продолжаться значительно больше по сравнению с обычной компиляцией. Однако, последующие пересборки должны быть значительно быстрее. ccache полезен только в тех случаях, когда одна и та же программа будет пересобираться много раз (или обновление одной и той же программы, что бывает чаще); поэтому она полезна, в основном, только для разработчиков программного обеспечения.

Для более подробной информации о ccache, пожалуйста, посетите их домашнюю страницу.

Установка ccache

Для установки ccache запустите следующую команду:

Включение поддержки ccache в Portage

Чтобы проверить функциональность ccache, запросите его статистику. Поскольку Portage использует другой домашний каталог для ccache, необходимо временно установить переменную CCACHE_DIR :

Использование ccache отдельно от Portage

Чтобы использовать ccache для компиляции без Portage, добавьте /usr/lib/ccache/bin/ в начало переменной PATH (до /usr/bin ). Это можно сделать, отредактировав

/.bash_profile в домашнем каталоге пользователя. Использование

/.bash_profile Настройка месторасположения ccache перед другими PATH

Поддержка двоичных пакетов

Создание прекомпилированных пакетов

Portage поддерживает установку двоичных пакетов. Несмотря на то, что Gentoo не предоставляет двоичных пакеты, Portage сам может сделать такие пакеты.

Более расширенные возможности при создании набора двоичных пакетов можно получить, используя catalyst. Более подробную информацию о catalyst можно прочитать в Catalyst FAQ.

Установка прекомпилированных пакетов

Например, чтобы установить gnumeric из прекомпилированного пакета:

Больше информации о двоичных пакетах в emerge можно найти в man-странице emerge:

Распространение двоичных пакетов для других

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

Загрузка файлов

Userfetch

Portage обычно запускается от пользователя root. Настройка FEATURES=»userfetch» позволит Portage сбросить привилегии root при загрузке исходного кода и выполнит эту операцию с правами пользователя/группы portage:portage. Это небольшое усиление безопасности.

Проверка архивов исходных файлов

Чтобы перепроверить целостность и (возможно) повторно скачать ранее удаленные/поврежденные архивы исходных файлов (distfiles) для всех установленных пакетов, выполните:

Уровни запуска

Процесс загрузки системы

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

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

Этот процесс удостоверяется, что все файловые системы (определённые в /etc/fstab ) смонтированы и готовы к использованию. Затем он выполняет несколько сценариев, находящихся в каталоге /etc/init.d/ и запускающих службы, необходимые для успешного запуска системы.

Сценарии инициализации

Как работает init

Вспомните последовательность загрузки, описанную чуть ранее: первое действие init — это монтирование всех файловых систем. Это определяется в следующей строке файла /etc/inittab :

Теперь init проверяет свой конфигурационный файл, чтобы определить, какой уровень запуска нужно запустить. Для этого из /etc/inittab считывается строка:

В приведенном примере (который подходит для подавляющего большинства пользователей Gentoo) номер уровня запуска — 3. Пользуясь этой информацией, init проверяет, что нужно выполнить для запуска уровня запуска 3:

По окончании работы openrc init принимает решение о том, какие виртуальные консоли включить и какие команды выполнить в каждой из них:

Доступные уровни запуска

В предыдущем разделе мы увидели, что init применяет нумерацию для определения уровня запуска, который надо использовать. Уровень запуска — это то состояние, в котором запущена система, он содержит набор сценариев (сценарии уровня запуска или сценарии инициализации), которые следует выполнять, при входе и выходе из определенного уровня запуска.

В Gentoo определено семь уровней запуска: три служебных и четыре определяемых пользователем. Служебные называются sysinit, shutdown и reboot. Действия, совершаемые ими, в точности соответствуют их названиям: инициализация системы, выключение системы и её перезагрузка.

Работа со сценариями инициализации

Чтобы узнать текущее состояние службы (запущена, остановлена, и так далее), можно использовать аргумент status :

Аналогично можно узнать, какие службы нуждаются в данной службе ( needsme ) или могут её использовать ( usesme или wantsme ):

Обновление уровней запуска

rc-update

Система инициализации Gentoo использует дерево зависимостей для определения служб, которые запускаются в первую очередь. Так как это очень утомительное занятие, и мы бы не хотели, чтобы пользователь занимался этим вручную, мы разработали утилиты, упрощающие управление уровнями запуска и init-скриптами.

Добавление и удаление служб

В процессе установки Gentoo вы уже добавляли сценарии инициализации в уровень запуска default. Ранее в данном документе было объяснено, что означает default. Кроме уровня запуска, сценарию rc-update требуется второй аргумент, определяющий действие: add (добавить), del (удалить) или show (показать).

Настройка служб

Почему необходима дополнительная настройка

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

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

Каталог conf.d

Такие конфигурационные файлы содержат только переменные (наподобие /etc/portage/make.conf ), облегчая настройку служб. Это также позволяет нам давать больше информации о переменных (в комментариях).

Написание сценариев инициализации

Это необходимо?

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

Не используйте сценарий инициализации, идущий со службой, если он не написан специально для Gentoo: сценарии Gentoo не совместимы со сценариями, используемыми в других дистрибутивах! То есть, если другой дистрибутив не использует OpenRC!

Структура

Основная структура сценария инициализации показана ниже.

Зависимости

Из изложенного должно быть ясно, что need — это единственная действительная настройка зависимостей, так как она влияет на то, будет ли запущен сценарий или нет. Все остальные являются больше указателями системе init, говорящими в каком порядке сценарии могут (или должны) запускаться.

Теперь, если вы взглянете на существующие сценарии инициализации Gentoo, вы заметите, что некоторые из них имеют зависимости от вещей, которые не являются сценариями. Эти вещи мы называем виртуальными.

Виртуальная зависимость — это зависимость от функций, предоставляемых службой, но не какой-то единственной службой. Сценарий инициализации может зависеть от службы журналирования, но таких достаточно много (metalogd, syslog-ng, sysklogd и тому подобное). Поскольку нельзя нуждаться в каждой из них (ни в одной нормальной системе они не запущены все сразу), мы обеспечили предоставление виртуальной зависимости всеми этими службами.

Например, давайте взглянем на информацию о зависимостях postfix.

Как можно увидеть, служба postfix:

Порядок запуска

Как было описано в предыдущем разделе, можно сказать системе init, в каком порядке она должна запускать (или останавливать) сценарии. Этот порядок поддерживается как через настройки зависимостей use и need, так и через настройки порядка before и after. Так как мы описали их ранее, давайте посмотрим на службу Portmap, как на пример такого сценария инициализации.

Также можно использовать знак «*», чтобы охватить все службы данного уровня запуска, хотя это не рекомендуется.

Стандартные функции

У start-stop-daemon есть отличная man-страница, которую можно посмотреть, если нужна дополнительная информация.

Синтаксис сценариев инициализации, применяемых в Gentoo, основан на оболочке POSIX, поэтому можно свободно использовать внутри своих скриптов sh-совместимые конструкции. Остальные конструкции, вроде тех, которые специфичны только для bash, следует выносить за пределы сценария, чтобы быть уверенным, что сценарий будет работать независимо от того, что Gentoo может сделать со своей системой init.

Добавление дополнительных параметров

Если нужно ввести в сценарий инициализации дополнительные параметры, кроме упоминавшихся, добавьте параметр в одну из следующих переменных и создайте функцию с названием, соответствующим параметру. Например, для поддержки параметра restartdelay :

Переменные для настройки служб

Для поддержки файлов конфигурации из каталога /etc/conf.d/ ничего дополнительно делать не нужно: при запуске сценария инициализации автоматически подключаются следующие файлы (то есть переменные из них становятся доступны):

Кроме того, если сценарий инициализации предоставляет виртуальную зависимость (например, net), то также подключается файл, соответствующий этой зависимости (например, /etc/conf.d/net ).

Изменение поведения уровней запуска

Кому это может быть полезным

Большинству пользователей ноутбуков знакома ситуация: дома нужен запуск net.eth0, и наоборот, в дороге запуск net.eth0 не нужен (так как сеть недоступна). В Gentoo можно изменять поведение уровней запуска по своему усмотрению.

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

Использование программного уровня (softlevel)

Прежде всего, создайте каталог для второго уровня запуска default. Например, создадим уровень запуска offline:

Добавьте необходимые сценарии в только что созданный уровень запуска. Например, чтобы получить точную копию уровня default, за исключением net.eth0:

Даже несмотря на то, что net.eth0 был удален с уровня запуска offline, udev может попытаться запустить любые устройства, которые найдёт, и запустить соответствующие службы. Данная функциональность называется hotplugging. По умолчанию, Gentoo отключает hotplugging.

Чтобы включить hotplugging, но только для конкретного набора сценариев, используйте переменную rc_hotplug в /etc/rc.conf :

Теперь необходимо отредактировать конфигурацию загрузчика, добавив новую запись для уровня запуска offline. В данной записи добавьте softlevel=offline в качестве параметра загрузки.

Использование загрузочного уровня (bootlevel)

Использование загрузочного уровня полностью аналогично использованию программного уровня. Единственная разница состоит в том, что определяется второй уровень boot вместо второго уровня default.

Переменные окружения

Введение

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

Наиболее важные переменные

В следующей таблице перечислен ряд переменных, используемых в системе Linux и описание их использования. Примеры их значений приведены после таблицы.

Ниже приведен пример, содержащий все эти переменные:

Определение переменных глобально

Каталог env.d

Другие дистрибутивы просят пользователя изменять или добавлять такие определения переменных окружения в /etc/profile или в других местах. С другой стороны, в Gentoo очень просто для пользователя (и для Portage) обслуживать и управлять переменными окружения без необходимости обращать внимание на многочисленные файлы, которые содержат переменные окружения.

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

env-update

Сценарий env-update добавляет значения из файлов /etc/env.d/ в алфавитном порядке. Имена файлов должны начинаться с двух десятичных чисел.

Можно добавить больше переменных к списку объединяемых переменных, добавив имя переменной в одну из переменных COLON_SEPARATED или SPACE_SEPARATED (также внутри файла /etc/env.d/ ).

Чтобы увидеть эффект работы env-update сразу после его запуска, выполните следующую команду, чтобы обновить окружение. Пользователи, которые устанавливали Gentoo сами, вероятно, вспомнят эту команду из инструкции по установке:

Определение переменных локально

Для пользователя

/.bashrc Дополнительный PATH для локального использования

Переменная PATH будет обновлена после выхода/входа.

Для сессии

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

/.bashrc на короткий срок.

Warning: Display title «Gentoo Linux amd64 Handbook: Работа с Gentoo» overrides earlier display title «Handbook:AMD64/Full/Working».

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • что такое linkedin в windows 10
  • что такое lilo в терминах linux
  • Что такое liko программа
  • Что такое legacy в программировании
  • что такое lcu windows 10

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
    Причина маскировки Описание