Привет. Не так давно я основательно перешел на Gentoo и теперь хочу рассказать как установить ее без особой боли. Эта статья рассчитана на тех, кто уже обладает некоторым опытом в работе с Linux-системами и имеет представление о базовых командах. Процесс описан кратко, и если у Вас появляются неполадки - советую руководствоваться хэндбуком, эта же статья даст вам общее представление об установке системы. Рассматриваю установку с системой инициализации OpenRC
Скорее всего, кто то уже писал про установку Gentoo, но я решил написать свое виденье этого процесса.
В самом конце можете найти список полезных команд при работе с дистрибутивом.
Этап I: Подготовка
Если Вы хотите установить Gentoo из уже готовой системы, то сразу переходите к этапу "Установка"
Установить Gentoo можно как с Live-CD диска, так и из уже установленной системы. В целом, различия междуэтими путями минимальны.
Чтобы начать, достаточно зайти на страницу загрузок и скачать образ Live-CD.
Выбираем образ для своей архитектуры. На stage3, пока что, не обращаем никакого внимания. Дальше следует записать только что скачанный образ на флешку. В линуксе можно воспользоваться командой
dd if=/home/$USER/install-amd-minimal-*.iso of=/dev/sdX bs=4M && sync
Где sdX - целевая флешка и образ лежит в корне текущего пользователя.
Далее следует перезагрузиться и загрузиться с свежезаписанной флешки.
Поздравляю, вы готовы к установке.
Этап II: Установка базовой системы
Сейчас Вы находитесь в Live-окружении. Можно сказать, это система, обладающая всеми нужными компонентами для установки системы.
Сейчас следует разметить диски. Делайте это по своему усмотрению. Я, например, делаю это следующим образом:
- /dev/sda1: 2G
- /dev/sda2: 8G
- /dev/sda3: все остальное пространство, btrfs
Лично я провоже разметку через программу cfdisk, она присутствует в Live-CD.
После же следует отформатировать разделы:
mkfs.fat -F 32 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.btrfs /dev/sda3
Дальше нужно настроить дату и время системы. Чтобы проверить эти параметры нужно ввести команду:
date
Если время установленно неправильно, стоит его изменить:
date MMDDhhmmYYYY
MM - месяц, DD - день, hh - часы, mm - минуты, YYYY - год.
Создаем директорию /mnt/gentoo и переходим в нее.
Сейчас нам необходимо загрузить stage3 архив. Это можно сделать с помощью псевдографического браузера links
links https://www.gentoo.org/downloads/mirrors/
Перейдите в каталог releases > amd64 > autobuilds и выберите нужный архив.
Или же Вы можете скачать его с помощью wget.
Теперь архив нужно распаковать.
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
Настроим параметры компиляции.
nano /mnt/gentoo/etc/portage/make.conf
Здесь следует добавить -march=native в COMMON_FLAGS, этот параметр указывает компилятору на то, для какой архитектуры нужно собирать пакеты. Также нужно создать переменную MAKEOPTS
MAKEOPTS="-j5" Цифра после j у каждого своя, можно выставить количество ядер процессора + 1.
Также можно указать параметр CPU_FLAGS_X86
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3"
Набор инструкций можно узнать с помощью пакета cpuid2cpuflags.
Чтобы установить его сделайте следующее:
emerge cpuid2cpuflags
Дальше обязательно копируем настройки сети, без этого в системе не будет работать сеть.
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
Теперь монтируем необходимые файловые системы:
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
Если установка проходит из другой системы, то следует прописать следующее:
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
Следущим шагом мы переходим в изолированное окружение.
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1" # опциональная команда, изменяет строку приглашения.
Теперь можно создать необходимые директории boot, home (если нужно) и тд.
mkdir boot home
Монтируем разделы:
mount /dev/sda1 boot
Монтируйте, в случае необходимости, home и пр.
Теперь следует выполнить команду
emerge-webrsync
Эта команда снимет слепок репозитория Gentoo. Если при процессе происходят какие-то ошибки, проверьте системную дату и подключение к интернету.
Дальше можно обновить пакеты. Если вы установили свежий stage3 архив, то это необязательно.
emerge --sync -q
Ключ -q (--quiet) уменьшает выводы в консоль про работе emerge.
Обновляем "мир"
emerge --ask --verbose --update --deep --newuse @world
emerge -qavuDN @world # та же команда, но короче
Теперь следует выбрать профиль (профайл) системы.
root # eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/17.1 *
[2] default/linux/amd64/17.1/desktop
[3] default/linux/amd64/17.1/desktop/gnome
[4] default/linux/amd64/17.1/desktop/kde
В зависимости от того, какое окружение будете устанавливать, выбирайте нужный профиль. Если хотите установить окружение, которого нет в списке, выбирайте desktop профиль. Ну и если хотите максимального контроля над системой, оставьте профиль по умолчанию.
eselect profile set n
Где n - номер профиля.
Дальше нужно вновь обновить "мир"
emerge -qavuDN @world
Теперь начинается самое интересное - настройка переменной USE. Это самая мощная переменная, доступная пользователю в Gentoo. USE флаги могут быть глобальными и локальными. Как следует из названия, глобальные применяются для всей системы, локальные - для конкретных пакетов. Пока что настроим глобальные.
Сразу советую поставить пакет gentoolkit.
С помощью команды equery u <имя пакета> можно посмотреть USE-флаги для конкретного пакета. Очень полезная вещь, рекомендую запомнить, заменяет многократное чтение wiki.
Глобальные USE настраиваются в файле /etc/portage/make.conf
USE="X -gnome -kde gtk -qt5 networkmanager dbus -elogind -systemd jpeg"
Пример переменной. Знак минус перед флагом указывает на то, что пакеты нужно собирать без поддержки флага. Разберем эти флаги.
- X — включает у пакетов поддержку xorg
- -gnome; -kde; -qt5 — выключают поддержку gnome, kde, qt5 соответственно.
и так далее.
emerge --info | grep ^USE
Таким образом можно посмотреть текущие USE-флаги, установленные в системе.
Локальные флаги устанавливаются в файлах в директории /etc/portage/package.use/
Например:
#/etc/portage/package.use/networkmanager
net-misc/networkmanager -modemmanager
Флаг -modemmanager выключает поддержку сим-карт и тд. конкретно для пакета networkmanager.
Можете настроить переменную ACCEPT_LICENSE
# /etc/portage/make.conf
ACCEPT_LICENSE="*"
Таким образом можно избавиться от сообщений про лицензии от portage. Задавая такое значение переменно, мы принимаем любый лицензии пакетов. Если Вас не терзают по этому поводу никакие сомнения, можете смело делать.
Настроим локальное время:
echo "Europe/Moscow" > /etc/timezone
В /usr/share/zoneinfo/ Вы можете увидеть список всех доступных часвых поясов.
emerge --config sys-libs/timezone-data
Перенастроим пакет timezone-data.
Настраиваем локали.
nano /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
locale-gen
eselect locale list
...
eselect locale set n
Выбираем нужную локаль.
В файле /etc/conf.d/consolefont
CONSOLEFONT="cyr-sun16"
Для поддержки русского шрифта в консоли.
env-update && source /etc/profile
Перезагружаем окружение.
Далее начинается самое сложное - конфигурация и сборка ядра. Но, так как эти процессы различны на различных машинах, то воспользуемся автоматической конфигурацией. Но об этом позже.
emerge --ask sys-kernel/gentoo-sources
Скачиваем исходники ядра. Можете так же скачать исходники zen-ядра, xanmod и тд.
emerge --ask sys-kernel/genkernel
Устанавливаем genkernel для конфигурации ядра.
На этом этапе следует отредактировать /etc/fstab
Добавляем в него:
/dev/sda1 /boot vfat defaults 0 2
Теперь запускаем конфигурацию и сборку:
genkernel all
Запаситесь терпением, это не самый быстрый процесс.
Устанавливаем файлы прошивки
emerge --ask sys-kernel/linux-firmware
Теперь открываем /etc/fstab и редактируем его под свои нужды, у меня вышло так
/dev/sda1 /boot ext2 defaults,noatime 0 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / btrfs noatime 0 1
Редактируем /etc/conf.d/hostname . Значение указываем любое
hostname="gentoo"
Установим NetworkManager, включим его
emerge -q networkmanager
rc-update add networkmanager boot
Отредактируем /etc/hosts
127.0.0.1 gentoo.homenetwork gentoo localhost
Настраиваем пароль root'а
passwd
Если требования к паролю кажутся очень завышенными, то редактируем файл /etc/security/passwdqc.conf
min=1,1,1,1,1
Теперь следует установить пакеты для работы с файловыми системами
emerge sys-fs/dosfstools
emerge sys-fs/btrfs-progs
emerge sys-fs/e2fsprogs
Дальше настраиваем загружчик
Здесь не буду ничего описывать, ставьте нужный загрузчик для нужного типа системы. Могу порекомендовать bios, refind, systemd-boot.
Выходим из окружения, перезагружаемся
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot
Если система загрузилась, то поздравляю, Вы только что установили Gentoo! Не так страшно как казалось, не так ли?
Но это не конец, мы продожаем.
Этап III: Настройка системы
После перезагрузки мы оказываемся в рабочей системе. Если Вы хотите установить графическое окружение, то читайте дальше.
Сначала можно создать пользователя.
useradd -m -G wheel,audio,video <имя пользователя>
passwd <имя пользователя>
Ключ -m создаст директорию пользователя в /home
-G включит пользователя в указанные группы.
wheel - группа, позволяющая выполнять действия с sudo.
passwd - задаем пароль пользователю
Дальше открываем файл /etc/make.conf
Здесь нужно создать переменную VIDEO_CARDS и придать ей знаение (-я)
- radeon
- noveau — для видеокарт nvidia, не имею опыта с ними, но, вроде, этот драйвер всегда подходит.
- amdgpu
- intel
- radeonsi
Например,
VIDEO_CARDS="amdgpu radeon radeonsi"
Также указать переменную INPUT_DEVICES
INPUT_DEVICES="synaptics libinput"
Переменная указывает на драфвера для устройств ввода для Xorg.
Собираем драйвера
emerge --pretend --verbose x11-base/xorg-drivers
Ах да! Теперь уже можно удалить мусор с диска.
rm /stage3-*.tar.*
Устанавливаем xorg-server
emerge --ask x11-base/xorg-server
Теперь xorg установлен и мы можем установить какое-то окружение. Я рассмотрю следующие:
- KDE Plasma
- XFCE4
- GNOME
Если нужно что-то другое - ищите в хэндбуке.
Plasma:
Прежде всего вы можете выбрать специальный профиль для KDE, но это не обязательно.
Создаем файл /etc/portage/package.use/plasma-meta
kde-plasma/plasma-meta <use флаги>
Доступные флаги можете увидеть в wiki или же по команде equery u plasma-meta.
Советую включить флаг sddm, он сразу установит дисплейный менеджер.
Выставляете нужные флаги, собираете. Скажу сразу, Plasma собирается достаточно долго, так что потерпите.
Если во время сборки portage на что-то жалуется, то дочитайте статью до конца, там я расскажу что делать, если пакетный менеджер ругается.
XFCE4:
Мой подход таков, если я устанавливаю пакет и он требует правки USE-флагов для нескольких пакетов, то я создаю для них один файл.
Создаем /etc/portage/package.use/xfce
app-text/poppler -qt5
xfce-base/xfce4-meta <флаги>
Флаги смотрите так же, как и с KDE.
Собираете пакеты.
Устанавливаем дисплейный менеджер. Я выбираю Lightdm.
emerge lightdm display-manager-init
Настраиваем /etc/conf.d/display-manager
CHECKVT=7
DISPLAYMANAGER="lightdm"
Включаем ДМ
rc-update add display-manager default
rc-service display-manager start
GNOME:
Прочтите wiki, там расскажут гораздо лучше меня. GNOME лучше работает с systemd, но я рассказываю как настроить систему с OpenRC.
В идеале, Вы имеете полностью рабочую ОС с подключением к сети и графическим окружением. Думаю, на этом можно закончить. Снизу Вы можете увидеть краткое подведение итогов и полезные команды.
Приложение
Работа с пакетами
emerge <пакет> - установка пакета
emerge --unmerge <пакет> - удаление пакета
emerge -avuDN @world - обновление
emerge --sync - синхронизация с репозиорием
layman -a <оверлей> - добавление оверлея
layman -d <оверлей> - удаление оверлея
layman -L - список оверлеев
Оверлеи - сторонние репозитории, что-то похожее на AUR.
emerge layman
Для их установки layman.
И самое важное - что делать если portage жалуется на что-то.
Для начала, не паникуйте и внимательно прочтите вывод программы. Постарайесь просто понять, что не так, при необходимости воспользуйтесь переводчиком.
Если осмысление не помогло, читайтеэтот раздел, поможет.
Здесь можно подробно почитать про USE-флаги
Итог
Мы установили Gentoo Linux. По крайней мере, я надеюсь, что эта статья может быть хоть чем-то полезна. И помните: Gentoo сложна только в первый раз, дальше проще. Если вы поймете, что Вам нужно от системы, работать будет не так страшно. В заключение скажу, что устанавливая Gentoo, вы ступаете на путь красноглазия (шутка) и вас ждут мучения (тоже шут... хотя, в первый раз все-таки ждут). Удачи тем, кто хочет установить эту систему.
Комментарии
15:36
15:43
И есть такой вопрос: Вы используете бинарные пакеты для особо больших программ, вроде того же firefox? К примеру, для ускорения обновлений.
Сам её пробовал ещё когда надо были stage1 и 2, было весело)
15:54
>>И есть такой вопрос: Вы используете бинарные пакеты для особо больших программ, вроде того же firefox? К примеру, для ускорения обновлений.
Из бинарных у меня только либреофис. Обновления не мешают, запускаю на ночь, утром все готово.
15:47
15:49
22:17
16:11
16:30
16:35
16:45
на пингвинусе есть подобное, но там автор скромно :( обошел вопрос лицензий и GUI.
не совсем понятно зачем на бут 2 Гига да еще и на фат?
почему хомяк в свалку с корнем?...
в чем по Вашему прелесть btrfs?
не знаю как так случилось, но у меня sys-kernel/gentoo-sources
"сам" заменился sys-kernel/gentoo-kernel, чему рад вполне.
вобщем есть много мелочей которые хотелось бы перемолоть, не спора для, а расширения сознания ради.
17:05
Да этому и нет особой причины. Просто красивое число.
Память экономить не требуется.
>>а еще и на фат?
Это вышло на автомате, привычка после других дистров... Там ставил systemd-boot и он, по-моему, требовал вфат раздел.
>>почему хомяк в свалку с корнем?...
На домашнем разделе ничего важного не хранится, все на отдельном жестком диске. Поэтому не увидел причин для разделения корня и хомяка.
>>в чем по Вашему прелесть btrfs?
Честно, ставил для поддержки снапшотов, но они так и не пригодились...
А так, не увидел большой разницы между ext4 и btrfs.
>>вобщем есть много мелочей которые хотелось бы перемолоть
Всегда приятно обменяться опытом :)
17:27
это использование tmpfs - сильно прибавляет скорости системе:
fstab
tmpfs /tmp tmpfs rw,nosuid,noatime,nodev,mode=1777 0 0
tmpfs /var/tmp tmpfs rw,nosuid,noatime,nodev,size=14G,mode=1777 0 0
tmpfs /var/cache tmpfs rw,nosuid,noatime,nodev,mode=1755 0 0
#tmpfs /var/distfiles tmpfs rw,nosuid,noatime,nodev,gid=portage,mode=1775 0 0
tmpfs /home/USER/.cache tmpfs rw,nosuid,noatime,nodev,size=14G,uid=1000,gid=users,mode=1700 0 0
----
14G это вся оператива минус 2G
17:31
17:28
17:47
17:53
18:02
18:04
17:53
17:57
18:06
Не хотите ли написать такую статейку? :)
18:23
17:51
Нет, не вникал.
Но!
>> надеюсь, что эта статья может быть хоть чем-то полезна
А вот это - однозначно и безспорно!
Если кто-то делает где-то чего-то, то это кому-то нужно!
А Генту - это - офигенная альтернатива пресловутому "мэйнстриму".
Вобщем, статья очч хорошая, полная, как говорится, спасибо большое!..
За труды, однозначно, - мои(наши) благодарности!
17:54
18:11
- Наливай да Пей!
а что есть "мейнстрим" - 100500 дистрибутивов на основе Дэбиана или в "лучшем случае" Арча?
ну согласись - смишно )))
18:18
Это - про охоту
>> что есть "мейнстрим"
Систем-д-ориентированные ОСи
А так , всё - верно!..
+
18:31
>>Систем-д-ориентированные ОСи
и это главное за что я не люблю системд.
когда в зоопарк завезли розовые костыли...
проходит несколько лет, смотришь - все животные и птицы с розовыми костылями, и эти костыли уже хрен отнимешь...
привыкли они понимаешь...
была тысяча видов живности, а стало одно - "животное на розовых костылях"... с нескучными обоями...
18:19
18:10
18:34
19:00
18:49
Там рассказал про свой опыт установки
20:16
20:30
+
20:45
20:13
21:21
22:51
имхо конечно, актуальность = 0, профит = 0.
собирал когда-то и сам, было дело, многие через это проходят..
из последнего что помню: ядро 2.6, кеды 3.5, амарок (блин, версию не помню)
эхх, таких слов как сисда, знать не знал, openRC только-только родился))
год, если не сзвиздеть 2007 вроде..
но вот ностальгировать, чёт не очень получается, до сих пор чувства смешанные, в основном с привкусом не самых приятных эмоций, но..
респект ребят, читать приятно и весело.
00:15
будьте так любезны обыснить в чём "актуальность = 0" ?
первый попавшийся с головы пакет (вот пишу и сам узнаю):
LibreOffice
Gentoo stable - 7.1.7.2
Debian stable - 7.0.4-4
Arch - 7.2.5 обновился сегодня, качаем фреш.
Fedora 35 - 7.2.1
Manjaro - 7.2.4
ну... уел, уел...
----------------
или в чём актуальность? что за тебя пожевали да в рот положили?
сэкономили твои калории, время и клей для зубных протезов?
10:47
:|
12:31
Актуальность и профит от генты есть для тех, кому гента нужна.
Не каждый хочет контролировать свою систему, а иногда реально проще поставить какой-нибудь минт и радоваться, что все работает искаропки. Но, каждому свое.
18:01
23:28
17:51
21:00
22:23
Потому как на этом этапе у вас еще нет emerge.
08:20
> emerge --pretend --verbose x11-base/xorg-drivers
бочку чаю аффтору от тех, кто будет эти команды построчно копировать не читая их вывод
21:32
23:16
03:58
выдаст ошибку, ибо ничего не примонтировано.