Меню Рубрики

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

Установка пакетов в Gentoo

Gentoo — особенный дистрибутив Linux, и выделяется он именно установкой программного обеспечения. Здесь реализована собственная система управления пакетами — portage, которая в отличие от других систем, таких как deb или rpm, предоставляет не полностью собранные, настроенные и готовые для установки пакеты, а только файлы со скриптами компиляции, установки, и последующей настройки.

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

Немного о Portage

Система portage очень похожа на систему портов FreeBSD, а еще чем-то напоминает работу pacman’а в ArchLinux. Как я сказал, здесь нет собранных пакетов, есть только исходники, патчи и файлы, описывающие что с этим всем делать. Такие файлы имеют расширение *.ebuild. По сути, база данных пакетов это система подкаталогов в /usr/protage. При обновлении базы данных просто скачиваться ее новая версия с серверов Gentoo, а старая, используемая в системе удаляется.

Список всех установленных вами пакетов хранится в файле /var/lib/portage/world. Здесь будут только те пакеты, которые вы явно устанавливали с помощью менеджера пакетов. Очень удобная вещь, можно всегда определить что в системе лишнее.

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

Это было немного матчасти, теперь перейдем непосредственно к теме статьи — установка пакетов в Gentoo.

Установка пакетов в Gentoo

Для управления пакетами в Gentoo используется собственный менеджер пакетов — emerge. Чтобы установить пакет Gentoo достаточно набрать:

emerge имя_пакета имя_пакета2

Но это самый простой вариант, emerge поддерживает множество параметров, рассмотрим только те, которые касаются установки пакетов:

  • -a — Спрашивать перед установкой;
  • -v — Показать более подробную информацию;
  • -p — Не устанавливать пакет, только показать информацию;
  • -b — Только скомпилировать пакет без установки;
  • -O — Установить пакет, не учитывая зависимости;
  • -o — установить только зависимости пакета;
  • -l —oneshot — Установить пакет, но не добавлять его в файл world;

Например, самой популярной командой, с помощью которой выполняется установка пакетов в Gentoo есть:

sudo emerge -av имя_пакета

Программа выведет всю доступную информацию о пакете, USE флаги, полное имя, размер, категорию и т д. А затем спросит нужно ли его устанавливать:

Здесь красным цветом отмечены активные USE флаги, синим неактивные, салатовым — те, которые будут активированы, например, при переустановке или обновлении.

Буква возле слова ebuild значит действие с пакетом:

  • N — будет установлен;
  • S — установка в новый слот;
  • U — обновление версии пакета;
  • D — установка более старой версии пакета;
  • R — переустановка;
  • F — необходима ручная загрузка исходников пакета;
  • f — то же самое, только файлы уже загружены;
  • B — пакет конфликтует с другими пакетами, но конфликт будет решен автоматически;
  • b — пакет конфликтует с другими пакетами, конфликт нужно решать вручную.

Дальше мы видим количество обрабатываемых пакетов и количество данных которые необходимо скачать в килобайтах.

Если установка программ в Gentoo не нужна, а нужно только посмотреть информацию о пакете можно использовать опцию -p:

sudo emerge -pv имя_пакета

Для ручного обновления системных библиотек лучше использовать опцию -l, чтобы не засорять файл world лишними записями:

sudo emerge -avl имя_пакета

Если к пакету необходимо применить дополнительные USE флаги можно указать их прямо в команде с помощью локальной переменной:

USE=»флаг1 флаг2″ sudo emerge имя_пакета

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

Иногда необходимо установить в 64х битной системе 32 битную программу или библиотеку. Например, Skype и Wine, тянут в зависимостях 32-битные библиотеки, а некоторые программы и вовсе существуют только в 32 битных версиях. Для установки 32-битных пакетов в Gentoo с недавних времен используется USE флаг — abi_x86_32. Достаточно добавить строчку в /etc/portage/package.use, и установить пакет Gentoo:

Еще такой случай, нужно установить только определенную версию пакета и не обновлять его, даже когда появиться новая. Тогда скрываем все версии выше нужной с помощью /etc/portage/package.mask, например, все версии выше 14.0.3:

sudo nano /etc/portage/package.mask

А затем устанавливаем пакет:

sudo emerge — av имя_пакета

Решение проблем с установкой пакетов в Gentoo

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

Источник

Установка и настройка Gentoo: конспект моей установки

Приспичило собрать на отдельном диске свеженькую ОС — без графики, только основные компоненты.

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

  • Intel Core i7-3770
  • Три SATA HD
    • sda — Win 10
    • sdb — Gentoo рабочая система
    • sdc — пустой диск

На руководство я не претендую и советую после прочтения конспекта обратиться к той самой Великой Книге всех гентушников — Хэндбук (далее ХБ):
https://wiki.gentoo.org/wiki/Handbook:AMD64/ru
Я лишь хочу показать, что даже для неопытного линуксоида, к которым я отношу и себя, установка Gentoo не составляет каких-то особых проблем. Добавлю, что при установке системы я нахожусь в заранее выгодном положении. Во-первых, за плечами не одна сборка этого чуда. Во-вторых, я работаю из полностью допиленной системы Gentoo. Для установки Gentoo сгодится любой дистрибутив, установленный на ПК, но можно воспользоваться Live-образами с сайта https://gentoo.org/downloads/ или http://www.system-rescue-cd.org/Download/. Вторым я сам не пользовался, но говорят, что он вполне пригоден. А Hybrid ISO (Live-DVD) вполне способен обеспечить комфортную среду для сборки системы. Самое главное, чтобы в запущенной системе работал интернет.
Итак, начну.

Первый этап установки состоит в разметке диска, на котором будет установлена свеженькая ОС. Я размечаю так, как я привык. Думаю, человек, дошедший до установки Gentoo, сам знает, как ему нужно разбивать диск.
Все действия я выполнил от имени root.

Разметил sdc на четыре раздела при помощи cfdisk — удобная программа.

Схема разделов:

  • sdc1 — 512M — под boot (тип ФС 83)
  • sdc2 — 50GB — под корень (тип ФС 83)
  • sdc3 — 413,3 — под home (тип ФС 83)
  • sdc4 — оставшиеся ровно 2G под swap (тип ФС 82)

Создал ФС на размеченном диске.

Создал директорию, в которую смонтирую корень будущей системы sdc2.

Создал на нём нужные мне директории.

У меня в проверке даты нет нужды, я работаю в настроенной системе. Но если используется какой-то Live-образ, дату нужно проверить.

И в случае несоответствия настроить: месяц, число, час, минута, год. Например:

Перешёл в директорию корня новой системы.

При помощи elinks (можно использовать хоть links, хоть wget — что душа захочет) скачал stage3 системы.

Взял архив по адресу:
releases > amd64 > autobuilds > current-stage3-amd-64 > stage3-amd64-*.tar.xz

Архив сохранен в /mnt/gentoo. Распаковал.

С этого момента начинается базовая настройка будущей системы.

Файл make.conf содержит в себе параметры компиляции пакетов, компонентов для сборки, важных путей для portage. Поскольку я ставлю ОС без всякой графики и прочего, на данном этапе мне достаточно такого конфига:

Коротко о некоторых параметрах:
CFLAGS=»-march=ivybridge -O2 -pipe» — здесь указал технологию процессора (ivybridge).
CPU_FLAGS_X86=»aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3″ — наборы инструкций процессора. Их я вычислил командой cpuid2cpuflags. Если в запущенной системе такой утилиты нет, можно сделать это после чрута, установив

MAKEOPTS=»-j6″ — имея 4-ядерный камень с 8-ю потоками выполнения, я выбрал 6 потоков компиляции. Мне хватает.
GENTOO_MIRRORS=»ftp://mirror.yandex.ru/gentoo-distfiles/» — выбрал зеркало пакетов. Всегда пользуюсь зеркалом Яндекса.
ACCEPT_KEYWORDS=»amd64″ — выбрал стабильную ветку для 64-битной системы.

amd64 — нестабильная. С x86 и

x86 всё аналогично.

Настроил дефолтный репозиторий ebuild-ов, как требует ХБ.

Скопировал информацию о действующих DNS провайдера.

Смонтировал необходимые ФС.

Чрутнулся в новую систему, обновил среду.

Команда ниже — для удобства. Советую выполнить.

Смонтировал остальные разделы уже в чруте.

Получил снимок репозитория, обновил его.

Есть новости дистрибутива. Стоит почитать.

Читать можно командой eselect news. Если не ввести номер, под которым размещена новость, будут открыты все сообщения и помечены прочитанными.

Список профилей системы.

Стоит выбрать stable профили.

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

Установить другой можно командой:

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

Можно поглядеть, какие флаги включены в профиле.

Описание флагов можно почитать тут:

Флаги задаются в переменной USE. На данном этапе никаких флагов я включать не буду.

Установил временную зону.

Список зон можно посмотреть директории:

Настроил нужные мне локали.

Выбрал системную локаль, обновил среду.

Локаль записалась сюда:

Установил сиходники ядра.

Проверил, указывает ли ссылка /usr/src/linux на директорию с исходниками ядра.

В дальнейшем список исходников можно посмотреть и выбрать так:

Для настройки ядра рекомендую обратиться к Хэндбуку, поскольку это самый сложный этап.
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel/ru

У меня имеется конфиг рабочего ядра, его я перенес в новую систему.

Скомпилировал ядро и модули.

Установил имя компьютера.

Настроил сеть. Использую статику. Вручную прописываю DNS провайдера. О других вариантах настройки лучше меня расскажет ХБ.

Сделал симлинк для запуска сетевого интерфейса, добавил его в загрузки.

Настроил системные часы. Использую систему UTC. Если на ПК стоит другая ОС, не использующая время в UTC, возникнут проблемы. Все ОС должны быть настроены на UTC. Винда, кстати, тоже умеет.

clock_systohc=»YES« — раскомментировал эту строку для синхронизации с «железным» временем.

По установке системных средств можно обратиться к ХБ.
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Tools/ru

Настроил точки монтирования.

Указал в make.conf платформу для grub2.

Добавил флаг mount для grub2 (требует os-prober)

Установил grub2 и os-prober.

Установил загрузчик на sdc, настроил конфиг.

Вышел из чрута и папки с новой системой.

Если что-то там не отмонтировалось — не беда. После перезагрузки с целевого диска я имею рабочую Gentoo без графики, с сетью, с учётной записью root и полностью готовую к настройке.

Как можно видеть, стандартная установка Gentoo едва ли вызовет сложности. И спасибо, что заглянули в мою шпаргалку!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Установка программ для linux
  • Установка программ в linux tar gz
  • Установка программ в linux simply
  • Установка программ в linux opensuse
  • Установка программ linux kali linux