Содержание
Вы когда-нибудь мечтали о 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, где пользователи могут отличаться.

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"
Создайте символическую ссылку:
fstab — автоматическое монтирование:cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default
Добавьте строки:nano /etc/fstab
Проверьте UUID через /dev/sda1 /boot vfat defaults,noatime 0 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext4 noatime,discard 0 1blkid — лучше использовать их вместо /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. Теперь — ваша система. Ваш контроль. Ваша мощь.

Заключение: Gentoo — это не дистрибутив. Это философия
Вы прошли путь от Live-USB до работающей системы. Вы не просто установили Linux — вы создали его. Каждый байт, каждая оптимизация, каждый USE-флаг — ваш выбор. Portage — не просто инструмент. Это зеркало вашей экспертизы.
Почему это стоит того?
- Производительность — ваша система компилируется под ваш процессор. Никакого «один размер для всех».
- Безопасность — вы отключаете всё лишнее. Меньше кода — меньше уязвимостей.
- Обучение — вы узнаете, как работает Linux на уровне ядра, библиотек и зависимостей.
- Контроль — вы решаете, что нужно, а что — мусор. Даже если это «не рекомендуется».
Это не для новичков. Это для тех, кто хочет понимать, а не просто использовать. Для тех, кто видит в системе не «коробку», а инструмент. Для тех, кто не боится командной строки — а любит её.
Теперь, когда система установлена — начните её совершенствовать. Установите Xfce, KDE, Wayland. Настройте драйверы. Создайте свой ebuild. Участвуйте в сообществе. Gentoo — это не конец пути. Это начало мастерства.
Ваша система. Ваш код. Ваш контроль. Это — Gentoo.
