Блог / Статьи

Полезная информация для вашего хостинга

Как установить Gentoo с Portage — пошаговое руководство для опытных пользователей Linux (2025)

Как установить Gentoo с Portage — пошаговое руководство для опытных пользователей Linux (2025)

Вы когда-нибудь мечтали о Linux-системе, которая не просто работает — а ваша? Не просто установленная, а созданная вами, шаг за шагом, с каждой библиотекой, каждым флагом компиляции, каждым модулем ядра? Это не фантазия — это Gentoo Linux. И ключ к этой свободе — Portage, пакетный менеджер, который превращает установку в искусство, а конфигурацию — в философию.

В этой статье мы не просто перечислим команды. Мы погрузимся в суть. Вы узнаете, почему зависимости — это не проблема, а мощнейший инструмент, почему Portage — это не просто emerge, а целая экосистема, и как, шаг за шагом, вы создадите систему, которая будет работать быстрее, стабильнее и точнее, чем любая готовая дистрибуция. Готовы? Тогда начнём.

Что такое зависимости пакетов и почему они — основа гибкости Linux

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

В Linux нет монолитных программ. Каждое приложение — это композиция из десятков, а иногда и сотен небольших компонентов. Графический интерфейс? Он использует библиотеки GTK или Qt. Звук? ALSA или PulseAudio. Сетевое соединение? Библиотеки OpenSSL, libcurl, glibc. И если вы установите Firefox — он не приедет с этими библиотеками внутри. Он запросит их у системы.

Зависимость — это объявление: «Для работы мне нужны X, Y, Z». Менеджеры пакетов — это архитекторы, которые читают эти объявления и строят систему, соединяя все элементы. Но в разных дистрибутивах подходы разные:

  • APT (Debian/Ubuntu) — устанавливает предкомпилированные бинарники. Быстро, но мало гибкости.
  • DNF/YUM (Fedora/RHEL) — тоже бинарники, но с более сложной системой репозиториев.
  • Pacman (Arch) — бинарники + простая зависимость. Быстро, но без глубокой настройки.
  • Portage (Gentoo)исходный код. Каждый пакет собирается вашим компилятором, с вашими флагами, с вашими включёнными функциями. Зависимости здесь — не просто список, а дерево решений.

Почему это важно? Потому что зависимости в Gentoo — это ваша возможность оптимизировать каждую строчку кода. Вы можете отключить поддержку Bluetooth в KDE, если не используете его — и сэкономить 200 МБ памяти и час компиляции. Вы можете включить AVX-512 в GCC — и получить 15% прирост производительности в научных вычислениях. Это не «можно», это — обязанность опытного администратора.

Portage: не пакетный менеджер — а инструмент мастерства

Если другие менеджеры — это молоток, то Portage — это станок с ЧПУ. Он не просто устанавливает пакеты. Он создаёт их.

Portage — это система управления пакетами, написанная на Python и Bash, которая использует ebuilds — скрипты, описывающие, как собрать пакет из исходников. Каждый ebuild — это рецепт: где скачать исходники, какие зависимости нужны, какие флаги можно включить, какие патчи применить, как скомпилировать, куда установить файлы.

Ключевые возможности Portage:

  • USE-флаги — ваш главный инструмент контроля. USE="jpeg png -bluetooth -cups" — вы включаете поддержку JPEG и PNG, но отключаете Bluetooth и печать. Никакого мусора.
  • Кастомизация компиляции — вы задаёте CFLAGS, CXXFLAGS, MAKEOPTS — и каждый пакет компилируется под ваш процессор, с оптимизациями, которые другие дистрибутивы даже не знают существуют.
  • Автоматическое разрешение зависимостей — Portage строит дерево зависимостей и решает конфликты. Если вы хотите установить firefox, он сам определит: нужен GTK3, нужен NSS, нужен ICU, нужен libvpx — и установит всё, что нужно, без вашего вмешательства.
  • Квази-ролевая система — вы можете установить пакеты как системные/usr), как пользовательские/opt), или даже как виртуальные (например, virtual/jre — может быть OpenJDK или Oracle JDK).
  • Экспериментальная гибкость — вы можете использовать ~amd64 (стабильный) или ** (экспериментальный) — и точно знать, что именно вы получаете.

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

От Live-USB до рабочей системы: Пошаговое руководство по установке Gentoo с Portage

Теперь — самое главное. Мы пройдём каждый этап как настоящие мастера. Не просто команды — понимание.

1. Подготовка к установке: Создание среды для творчества

Установка Gentoo — это не «клик-клик-готово». Это инженерный процесс. Начните с официального Live USB-образа. Выберите образ amd64 (для 64-битных процессоров Intel/AMD) или arm64 (для Raspberry Pi, Apple Silicon и т.д.).

Запишите образ с помощью dd или Rufus (на Windows):

dd if=gentoo-livecd-amd64.iso of=/dev/sdX bs=4M status=progress oflag=sync

Важно! Замените /dev/sdX на ваш USB-накопитель (проверьте через lsblk!). Загрузитесь с него. Убедитесь, что есть интернет:

ping -c 4 8.8.8.8

Если нет — настройте Wi-Fi через wpa_supplicant или подключите кабель. Без интернета — ни один пакет не скачается. Это не ошибка — это философия: вы получаете только то, что сами выбрали, и только когда это нужно.

 

2. Разметка диска: Архитектура вашей системы

Теперь — разметка. Это как проектирование фундамента дома. Неправильно — и система будет нестабильна.

Откройте fdisk или parted:

fdisk /dev/sda

Создайте следующие разделы (рекомендуемые размеры для современной системы):

 

  • /boot — 512 МБ, тип EFI System (если UEFI) или Linux (если BIOS). Файловая система: vfat (для EFI) или ext4.
  • swap — 2–8 ГБ (в зависимости от ОЗУ). Тип: Linux swap.
  • / (корневой) — остальное место. Файловая система: ext4 или btrfs (если нужна снапшоты).

Пример команд для создания файловых систем:

mkfs.vfat -F32 /dev/sda1      # /boot (UEFI)
mkswap /dev/sda2              # swap
swapon /dev/sda2              # активируем
mkfs.ext4 /dev/sda3           # корневой раздел

Почему отдельный /boot? Потому что некоторые загрузчики (особенно старые) не умеют читать LVM, RAID или шифрование. Отдельный раздел — это гарантия, что загрузчик увидит ядро.

 

3. Монтирование разделов: Превращаем пространство в систему

Теперь мы «вставляем» разделы в единую иерархию. Это как собрать кубик Рубика — каждый элемент на своём месте.

mount /dev/sda3 /mnt/gentoo
mkdir -p /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot

Если вы используете LVM или шифрование — это сложнее. Но мы пока в простом сценарии. Главное — монтировать в правильную структуру. Корневой раздел — в /mnt/gentoo, boot — в /mnt/gentoo/boot

4. Скачивание и установка Stage3-архива: Первый слой вашей системы

Stage3 — это базовый набор, который уже содержит минимальную систему: libc, gcc, coreutils, bash. Это не ядро, не графика — это основа.

Перейдите в директорию и скачайте актуальный Stage3:

cd /mnt/gentoo
wget https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-hardened-nomultilib-*.tar.xz

Важно! Выбирайте hardened (если нужна безопасность), nomultilib (если 64-битная система без 32-битной совместимости), systemd или openrc — в зависимости от ваших предпочтений. Список доступных образов: https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64/

 Распаковываем с сохранением прав и атрибутов:

tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

Что делает --xattrs-include='*.*'? Сохраняет расширенные атрибуты (SELinux, ACL). Что делает --numeric-owner? Использует числовые UID/GID — это критично при монтировании с Live-CD, где пользователи могут отличаться.


gentoo03

 

5. Настройка компилятора и переменных: Мастер-настройка Portage

Файл /mnt/gentoo/etc/portage/make.conf — это сердце вашей будущей системы. Здесь вы задаёте, как Portage будет собирать ВСЁ.

Создайте или отредактируйте файл:

nano /mnt/gentoo/etc/portage/make.conf

Пример оптимизированной конфигурации для Intel Core i7/i9 или AMD Ryzen:

# Компилятор и оптимизация
CFLAGS="-march=native -O2 -pipe -fno-plt"
CXXFLAGS="${CFLAGS}"

# Оптимизация сборки
MAKEOPTS="-j$(nproc)"  # Автоматически использует все ядра

# USE-флаги по умолчанию — выбирайте осознанно!
USE="gtk -gnome -qt5 -bluetooth -cups -pulseaudio -wayland"

# Система инициализации (выберите одну)
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_ELOG_CLASSES="info warn error log"
EMERGE_DEFAULT_OPTS="--jobs=4 --load-average=8 --keep-going"

# Скорость скачивания
GENTOO_MIRRORS="https://distfiles.gentoo.org"

# Сборка в tmpfs (если есть много ОЗУ)
PORTAGE_TMPDIR="/var/tmp/portage"

Пояснения:

  • -march=native — компилятор оптимизирует код под ваш конкретный процессор (AVX2, AVX-512, SSE4.2 и т.д.). Это даёт 5–20% прироста производительности.
  • -O2 — стандартный уровень оптимизации. -O3 может быть нестабильным.
  • -pipe — использует трубы вместо временных файлов, ускоряет сборку.
  • -fno-plt — улучшает производительность вызовов функций.
  • MAKEOPTS="-j$(nproc)" — автоматически использует количество ядер. Если у вас 8 ядер — сборка идёт на 8 потоках.
  • USE="gtk -gnome -pulseaudio" — вы включаете только то, что нужно. Отключаете всё лишнее. Это ключ к лёгкости.

Не бойтесь экспериментировать. Позже вы сможете изменить USE-флаги и пересобрать систему — Portage умеет это делать без переустановки.

6. Настройка системы и вход в chroot: Погружение в новую реальность

Теперь мы «переносим» систему в изолированную среду — chroot (change root). Это как войти в космический корабль и отключить внешнюю среду.

Смонтируем виртуальные файловые системы:

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
mount --bind /run /mnt/gentoo/run

Входим в chroot:

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

Теперь вы — не пользователь Live-CD. Вы — суперпользователь Gentoo. Все команды будут выполняться в вашей будущей системе. Проверьте:

pwd
# / (а не /mnt/gentoo)

whoami
# root

 

 

7. Настройка Portage и установка ядра: Сердце системы

Теперь — самое важное: обновим дерево пакетов и установим ядро.

Синхронизация деревьев:

emerge-webrsync

Это скачает последний набор ebuild-файлов. Если вы хотите «живой» синхронизацию — используйте emerge --sync (но требует rsync).

 

Выбор профиля:

eselect profile list

Вы увидите список. Для сервера — default/linux/amd64/17.1/server. Для десктопа — default/linux/amd64/17.1/desktop/gnome или default/linux/amd64/17.1/desktop/plasma. Выберите свой:

eselect profile set 5

Установка ядра:

emerge sys-kernel/gentoo-sources

Это скачает исходники ядра Linux (обычно последнюю стабильную версию). Теперь — настройка:

cd /usr/src/linux
make menuconfig

Это графический интерфейс (в терминале!) для настройки ядра. Вот что обязательно включить: 

 

  • Device Drivers → Generic Driver Options → Maintain a devtmpfs filesystem to mount at /dev — критично!
  • File systems → Ext4 filesystem support — если вы используете ext4.
  • File systems → NTFS filesystem support — если нужно монтировать Windows-диски.
  • Processor type and features → MTRR (Memory Type Range Register) support — для производительности видеокарты.
  • Device Drivers → ATA/ATAPI/MFM/RLL support → ATA SFF support → Intel PIIX/ICH SATA support — для SATA-дисков.
  • Device Drivers → Network device support → Ethernet driver support — выберите вашу сетевую карту (Intel, Realtek, Broadcom).
  • Device Drivers → Character devices → Serial drivers → 8250/16550 serial ports support — для консоли.

Сохраните как .config. Теперь соберём:

make -j$(nproc)
make modules_install
make install

Что делает make install? Копирует ядро (vmlinuz) и систему модулей в /boot, а также создаёт config и System.map. Это — ваше ядро. Без него система не загрузится.

 

8. Установка начальных пакетов и загрузчика: Путь к загрузке

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

emerge sys-kernel/linux-firmware
emerge sys-apps/util-linux sys-boot/grub

linux-firmware — драйверы для Wi-Fi, видеокарт, сетевых карт. Без них ваша Wi-Fi-карта не заработает. 

grub — загрузчик. Установим его на диск:

grub-install /dev/sda

Создадим конфигурацию:

grub-mkconfig -o /boot/grub/grub.cfg

Если вы используете UEFI — убедитесь, что раздел /boot смонтирован и содержит EFI-файлы. Если вы используете LVM или RAID — потребуются дополнительные пакеты (sys-fs/lvm2, sys-fs/mdadm). 

9. Настройка сети и системных параметров: Делаем систему живой

Теперь — настройка, чтобы система «знала», кто она и как общается.

Имя хоста:

nano /etc/conf.d/hostname

Добавьте:

hostname="my-gentoo-desktop"

Сеть (если DHCP):

nano /etc/conf.d/net

Добавьте:

config_eth0="dhcp"

Создайте символическую ссылку:

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default
fstab — автоматическое монтирование:
nano /etc/fstab
Добавьте строки:
/dev/sda1   /boot           vfat    defaults,noatime      0 2
/dev/sda2   none            swap    sw                      0 0
/dev/sda3   /               ext4    noatime,discard         0 1
Проверьте UUID через blkid — лучше использовать их вместо /dev/sdX, потому что порядок дисков может меняться. 

 

Локали и часовой пояс:

echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
eselect locale list
eselect locale set 2

Установите часовой пояс:

ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

 

10. Перезагрузка: Встреча с вашей системой

Пора выйти из chroot и перезагрузиться.

exit
umount -R /mnt/gentoo
reboot

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

Снимите USB, включите компьютер. Вы должны увидеть меню GRUB — и загрузиться в вашу созданную вами Gentoo.

Войдите как root. Поздравляем! Вы только что установили Gentoo. Теперь — ваша система. Ваш контроль. Ваша мощь.

gentoo02

Заключение: Gentoo — это не дистрибутив. Это философия

Вы прошли путь от Live-USB до работающей системы. Вы не просто установили Linux — вы создали его. Каждый байт, каждая оптимизация, каждый USE-флаг — ваш выбор. Portage — не просто инструмент. Это зеркало вашей экспертизы.

Почему это стоит того?

  • Производительность — ваша система компилируется под ваш процессор. Никакого «один размер для всех».
  • Безопасность — вы отключаете всё лишнее. Меньше кода — меньше уязвимостей.
  • Обучение — вы узнаете, как работает Linux на уровне ядра, библиотек и зависимостей.
  • Контроль — вы решаете, что нужно, а что — мусор. Даже если это «не рекомендуется».

Это не для новичков. Это для тех, кто хочет понимать, а не просто использовать. Для тех, кто видит в системе не «коробку», а инструмент. Для тех, кто не боится командной строки — а любит её.

Теперь, когда система установлена — начните её совершенствовать. Установите Xfce, KDE, Wayland. Настройте драйверы. Создайте свой ebuild. Участвуйте в сообществе. Gentoo — это не конец пути. Это начало мастерства.

Ваша система. Ваш код. Ваш контроль. Это — Gentoo.