Произносим правильно
Gentoo [↗dʒɛntu:, дже́нту] — вид пингвинов из рода антарктических, известен как быстрейший среди пингвинов в подводном плавании. Некоторые граждане привыкли к произношению «Генту», но это нестрашно: далее в руководстве будет использоваться только английский вариант.
Введение или зачем лоху Gentoo
Разумеется, Gentoo имеет множество особенностей и преимуществ перед другими дистрибутивами Linux, выделяется системой управления пакетами и т.д. Всё это вместе с процессом установки хорошо описано в Gentoo Handbook[1]. И мы обо всём этом говорить не будем, потому что эта запись — для лохов (имеется в виду уровень знаний об устройстве компьютеров и операционных систем).
Такой пользователь замечателен своей стандартностью: как правило, у него 64-битная архитектура x86_64, BIOS, он хочет графическую оболочку и браузер, в котором можно щёлкать мышкой и открывать вкладки. Его не интересуют специфические варианты при установке, они лишь отвлекают внимание и делают процесс установки более запутанным. Цель этого руководства — описать максимально стандартные ходы и дать необходимый минимум информации на 1 странице для того, чтобы поставить Gentoo (с возможностью даже не загубить стоящую на компьютере Винду или другую ОС).
Последнее предупреждение: ставить Gentoo по Gentoo Handbook гораздо лучше, правильнее и безопаснее, чем по данной записи.
Казалось бы, Gentoo — выбор прошаренных господ. Но и обычным людям Gentoo может быть полезен: он шустрее популярных, простых в установке дистрибутивов. Каждая программа при установке компилируется из исходников, в результате процесс установки программы значительно дольше (например, браузер может устанавливаться несколько часов), зато после установки программа занимает меньше места и работает быстрее, чем на многих других дистрибутивах.
Я поставил Gentoo вместо Ubuntu. С тем же графическим окружением (XFCE) всё стало значительно быстрее (время загрузки приложений) и плавнее, средняя температура процессора снизилась на 10° (стало даже лучше, чем в Windows 7 с самыми энергосберегающими установками на этой же машине), время работы от батареи увеличилось раза в полтора. Взаимодействовать с системой стало на порядок приятнее, я даже не ожидал. На установку и настройку ушло 2 дня. Установка происходила на ноутбук HP Pavilion dv6 (Intel Core i3-2310M CPU 2.10 GHz, 4 Гб RAM).
В дальнейшем повествовании подразумевается, что у процессора 64-битная архитектура.
Записываем LiveUSB
Разумеется, можно записать и CD, но мы будем пользоваться USB-флэшкой, они чаще под рукой.
Нужна флэшка объёмом более 1 Гб. Вся информация с неё будет удалена, так что сохраните нужное. Будем записывать флэшку из любого Линукса (я использовал Ubuntu).
Можно записать LiveUSB и из Windows, очень просто с помощью бесплатной программы Rufus — нужно просто указать флэшку и iso-образ в программе и нажать кнопку Start.
Скачиваем установочный файл
Заходим на официальную страницу и скачиваем Minimal Installation CD (~250 Мб) для amd64. Если у вас очень старый компьютер, то архитектура может быть и 32 бит, тогда вам нужен x86. Проверьте свою разрядность в свойствах системы.
Определение раздела c флэшкой
Вставьте флэшку в USB порт. Выполните fdisk -l, в числе прочего в выводе должна быть показана и флэшка. Её легче всего знать по размеру. Я пользовался 2-Гб флэшкой и в выводе было такое:
root ~ #fdisk -l
…
Disk /dev/sdb: 2 GiB, bytes, 4063232 sectors
…
В моём случае флэшка — это /dev/sdb. Будьте очень внимательны, если у вас флэшка будет соответствовать, например, /dev/sdc, то используйте /dev/sdc вместо /dev/sdb в приведённых ниже командах.
Запись iso-образа на флэшку
Для этого раздела легче действовать из-под рута: выполните su root, чтобы сменить пользователя.
Форматируем флэшку в FAT16:
root ~ #mkdosfs -F 16 /dev/sdb1
Запишем MBR (Master Boot Record):
root ~ #dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb
В зависимости от системы, mbr.bin может располагаться и по другому адресу, например, /usr/lib/syslinux/mbr/mbr.bin. Используйте find /usr -name ‘mbr.bin’ для поиска.
Монтируем скачанный образ в /mnt/cdrom:
root ~ #root ~ #mkdir -p /mnt/cdrom
mount -o loop,ro -t iso9660 ~/Downloads/install-amd64-minimal-*.iso /mnt/cdrom
Здесь я указал предполагаемое местонахождение скачанного iso-файла.
Монтируем LiveUSB:
root ~ #root ~ #mkdir -p /mnt/usb
mount -t vfat /dev/sdb1 /mnt/usb
Копируем файлы:
root ~ #root ~ #root ~ #root ~ #root ~ #cp -r /mnt/cdrom/* /mnt/usb
mv /mnt/usb/isolinux/* /mnt/usb
mv /mnt/usb/isolinux.cfg /mnt/usb/syslinux.cfg
rm -rf /mnt/usb/isolinux*
mv /mnt/usb/memtest86 /mnt/usb/memtest
Отмонтируем iso-образ и флэшку:
root ~ #root ~ #umount /mnt/cdrom
umount /mnt/usb
Установим загрузчик syslinux:
root ~ #syslinux /dev/sdb1
Загрузочная флэшка готова.
Загрузка с LiveUSB
Прежде всего подключите сетевой кабель, чтобы после загрузки с LiveUSB сеть заработала с большой вероятностью сразу автоматически. Если не заработает, глядите сюда.
Флэшка должна быть воткнута до включения. Нам надо войти в BIOS или UEFI[2], чтобы можно было загрузиться не с жёсткого диска, а с флэшки. Однако учтите, что дальнейшие действия предполагают использование BIOS и могут немного отличаться в случае UEFI. Для того, чтобы попасть в BIOS, может быть нужно сразу после включения компьютера нажать (для верности даже лучше нажимать несколько раз) одну из клавиш Esc, Del, F10, F8, F2 и так далее. Ищите для конкретных моделей. В ноутбуках от HP можно нажать ESC и попросить загрузиться с USB flash drive. Если используется ноутбук, лучше подключить зарядку, иначе BIOS может не загружаться.
Как только настройки применены, произойдёт перезагрузка. Если LiveUSB записана правильно и происходит загрузка с неё, то должен раздаться мерзкий бип. Надо в течение 15 секунд нажать какую-нибудь кнопку, иначе пойдёт загрузка с жёсткого диска. Введите название ядра и, опционально, его параметра (см. список возможных ядер и парамеров) после пригласительного boot:
boot: gentoo
Шикарно, Вы загрузились с Gentoo LiveUSB с правами root! Проверьте, работает ли сеть (если забыли вставить сетевой кабель, то скорее всего придётся перезагрузиться):
livecd ~ #ping -c 5 ya.ru
Если нет, смотрите раздел Networking в Gentoo Handbook.
Подготовка диска к установке Gentoo
Перед началом установки необходимо правильно разметить диск с помощью gparted или fdisk.
Если вместо BIOS используется UEFI, некоторые действия может быть надо выполнять иначе. Подробнее смотрите в разделе Disks в Gentoo Handbook.
Вариант 1: с Windows вместо Linux
Самый простой вариант: на диске уже стоит Windows и Linux. Установим Gentoo вместо имеющегося Linux, диск переразмечать не будем. Здесь предполагается, что диск имеет идентификатор /dev/sda.
Посмотрим, что у нас есть на диске (вырезаны неважные колонки):
livecd ~ #fdisk -l
Device Boot Size Type
/dev/sda1 * 199M HPFS/NTFS/exFAT
/dev/sda2 186.3G HPFS/NTFS/exFAT
/dev/sda3 97.6G Extended
/dev/sda4 14G HPFS/NTFS/exFAT
/dev/sda5 2G Linux swap / Solaris
/dev/sda6 95.6G Linux
Видим, что Windows стоит на /dev/sda2, загрузчик в /dev/sda1, Linux в /dev/sda6 и swap на /dev/sda5. На /dev/sda4 стоят средства для восстановления Windows. Мы далее укажем, что хотим установить Gentoo туда, где стоит Linux, и адрес для swap оставим тот же.
Назначение типа для root
Здесь под словом root понимается корневой раздел, обозначаемый как /. Определим его тип как ext4 (неважно, каким он был до этого):
livecd ~ #mkfs.ext4 /dev/sda3
Активируем swap
livecd ~ #livecd ~ #mkswap /dev/sda6
swapon /dev/sda6
Монтируем новые разделы
livecd ~ #livecd ~ #livecd ~ #mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda2 /mnt/gentoo/boot
Готово.
Вариант 1а: к одинокой Windows
Если на машине стоит только Windows, который хочется сохранить, то нужно оттяпать у него место с помощью, например, gparted. Как это сделать — гуглите.
Вариант 2: только Gentoo
Соответствующая секция в Gentoo Handbook: Подготовка дисков.
Установка stage3
Проверка даты
Проверим, правильна ли дата:
livecd ~ #date
Если нет, то установите правильную. Например, 28 марта 2016 года, 14:55 можно поставить так:
livecd ~ #date
Скачиваем stage tarball
livecd ~ #cd /mnt/gentoo
livecd gentoo #links gentoo.org/downloads/mirrors
Откроется текстовый браузер links. Выберите зеркало из ближайшей из списка страны и зайдите в releases/amd64/autobuilds/<date>. Выбирайте свежайшую дату. Скачайте файл stage3-amd64-<date>.tar.bz2, выбрав его и нажав клавишу D или Enter.
Разархивируем stage tarball
livecd gentoo #tar xvjpf stage3-*.tar.bz2 —xattrs
USE, CFLAGS, MAKEOPTS
Время установить подходящие значения этим трём переменным.
Переменная USE — это одна из самых крутых переменных в Gentoo. Она важна при установке программ. Как уже говорилось, все программы компилируются из исходников. Это увеличивает время установки, зато позволяет ставить именно те части программ, которые нужны данной системе. В этой инструкции предполагается, что в качестве графической оболочки будет использоваться XFCE. Эта оболочка легче Gnome и KDE, но всё-таки симпатичная и гибкая. Рекомендуемое значение этой переменной для пользователя XFCE приведено чуть ниже.
Переменная CFLAGS по умолчанию имеет значение -O2 -pipe.
-O2 (буква O — Optimization, а не ноль) контролирует общий уровень оптимизации. Не рекомендуется менять без острой необходимости. Подробнее про возможные значения переменной на wiki.gentoo.org/wiki/GCC_optimization#-O.
-pipe не влияет на сгенерированный код, но ускоряет процесс компиляции.
-march=… Часто рекомендуют прописать конкретный тип процессора (например, -march=core-avx-i, -march=core-avx2, -march=corei7-avx, -march=core2, -march=pentium-m и т.д., чтобы программы компилировались именно для конкретного типа процессора. Много примеров на wiki.gentoo.org/wiki/Safe_CFLAGS). Если архитектура процессора неизвестна, в большинстве случаев можно использовать -march=native. Но лучше не менять CFLAGS, хорошо не разобравшись в смысле происходящего.
Переменная MAKEOPTS отвечает за параллелизацию выполняемых операций. Если на машине двухъядерный или четырёхъядерный процессор, обычно рекомендуется значение MAKEOPTS=»-j<количество ядер + 1>», т.е. MAKEOPTS=»-j3″ для двухъядерного и MAKEOPTS=»-j5″ для четырёхъядерного процессора.
С помощью текстового редактора nano (или другого по выбору) редактируем файл:
livecd ~ #nano -w /mnt/gentoo/etc/portage/make.conf
/mnt/gentoo/etc/portage/make.conf12345CFLAGS=»-O2 -pipe»# Для двухъядерного процессораMAKEOPTS=»-j3″# Для графической оболочки XFCEUSE=»-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar udev X»
Знак минус перед gnome и kde у переменной USE позволит компилировать программы, не утягивая за собой тяжёлые зависимости для этих графических оболочек.
Чтобы сохранить файл и закрыть редактор nano, нажмите Ctrl + O, затем Ctrl + X.
Установка основы системы
Выбираем близкие зеркала
Для файлов дистрибутива:
livecd ~ #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
По этой команде откроется псевдографическая утилита, где надо выбрать близкое зеркало, нажав Пробел. Затем выберите Save.
Для основного репозитория Gentoo:
livecd ~ #livecd ~ #mkdir /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
Копируем информацию о DNS
livecd ~ #cp -L /etc/resolv.conf /mnt/gentoo/etc/
Монтируем необходимые разделы
livecd ~ #livecd ~ #livecd ~ #livecd ~ #livecd ~ #mount -t 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
Входим в новое окружение
livecd ~ #livecd ~ #livecd ~ #chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1=»(chroot) $PS1″
С этого момента все действия будут напрямую выполняться в новом Gentoo, но ликовать ещё рано.
Обновление списка пакетов для Portage
Эта команда получит снимок текущего состояния Portage, системы управления пакетами в Gentoo.
(chroot) livecd ~ #emerge-webrsync
Возможные ошибки:
!!! Section ‘gentoo’ in repos.conf has location attribute
set to nonexistent directory: ‘/usr/portage’
!!! Repository x-portage is missing masters attribute in
/usr/portage/metadata/layout.conf
Увидев эти ошибки, я прервал операцию, нажав Ctrl + C, и сделал следующее:
(chroot) livecd ~ #(chroot) livecd ~ #(chroot) livecd ~ #mkdir /usr/portage
mkdir -p /usr/portage/metadata/
nano -w /usr/portage/metadata/layout.conf
/usr/portage/metadata/layout.conf1masters = gentoo
После этого emerge-webrsync запустился без ошибок.
Выбираем правильный профиль
(chroot) livecd ~ #eselect profile list
Вывод будет такого вида:
Available profile symlink targets:
[1] default/linux/amd64/13.0
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop
[4] default/linux/amd64/13.0/desktop/gnome
[5] default/linux/amd64/13.0/desktop/gnome/systemd
[6] default/linux/amd64/13.0/desktop/kde
[7] default/linux/amd64/13.0/desktop/kde/systemd
[8] default/linux/amd64/13.0/desktop/plasma
[9] default/linux/amd64/13.0/desktop/plasma/systemd
[10] default/linux/amd64/13.0/developer
[11] default/linux/amd64/13.0/no-multilib
[12] default/linux/amd64/13.0/systemd
[13] default/linux/amd64/13.0/x32
[14] hardened/linux/amd64
[15] hardened/linux/amd64/selinux
[16] hardened/linux/amd64/no-multilib
[17] hardened/linux/amd64/no-multilib/selinux
Выбираем вариант default/linux/amd64/13.0/desktop:
(chroot) livecd ~ #eselect profile set 3
Часовой пояс
Просмотреть доступные варианты:
(chroot) livecd ~ #ls /usr/share/zoneinfo
Например, для Москвы настройка будет такой:
(chroot) livecd ~ #echo «Europe/Moscow» > /etc/timezone
Обновим информацию о часовом поясе в системе:
(chroot) livecd ~ #emerge —config sys-libs/timezone-data
Настройка локалей
(chroot) livecd ~ #nano -w /etc/locale.gen
/etc/locale.gen12en_US.UTF-8 UTF-8ru_RU.UTF-8 UTF-8
Обновим информацию о локалях в системе:
(chroot) livecd ~ #locale-gen
Теперь просмотрим список доступных локалей:
(chroot) livecd ~ #eselect locale list
Вывод примерно таким должен быть:
Available targets for the LANG variable:
[1] C
[2] en_US.utf8 *
[3] POSIX
[4] ru_RU.utf8
[ ] (free form)
Надо выбрать en_US:
(chroot) livecd ~ #eselect locale set 2
После этих настроек в виртуальных терминалах кириллица всё равно не будет отображаться. Чтобы исправить это, смотрите раздел FAQ → Кириллица в виртуальных консолях.
Обновляем окружение
(chroot) livecd ~ #env-update && source /etc/profile && export PS1=»(chroot) $PS1″
Собираем ядро
Установка исходников
(chroot) livecd ~ #emerge —ask sys-kernel/gentoo-sources
genkernel
Дальше ядро предлагается компилировать вручную, расставляя галочки на нужные драйвера и поддержку именно того железа, из которого собран компьютер. Эта процедура очень увлекательная, но при прохождении её в первый раз велика вероятность того, что не будет работать сеть, звук, мышь и тачпад. Пересобрать ядро всегда можно после (и даже рекомендуется — ядро станет меньше, а кругозор шире), а пока воспользуемся утилитой genkernel. Установим её:
(chroot) livecd ~ #emerge —ask sys-kernel/genkernel
Теперь надо прописать /boot в /etc/fstab:
(chroot) livecd ~ #nano -w /etc/fstab
/etc/fstab1/dev/sda1 /boot ntfs defaults 0 2
То, что /boot находится на /dev/sda1, мы выяснили командой fdisk -l в пункте Вариант 1: c Windows вместо Linux.
Запускаем компиляцию ядра:
(chroot) livecd ~ #genkernel all
У меня это длилось около часа.
Если тип файловой системы не ext2 или ext3, а ntfs, как было в моём случае, то может быть нужно поставить галочку для поддержки этой системы вручную. Надо выполнить
genkernel —menuconfig all
в появившемся псевдографическом окошке выбрать поддержку NTFS, найдя её и нажав Y для выбора. Сохранить результат, компиляция продолжится. Мне этого делать не пришлось.
Драйвера
Чтобы увеличить вероятность того, что в новой системе будет работать сеть, особенно Wi-Fi, рекомендуют поставить linux-firmware:
(chroot) livecd ~ #emerge —ask sys-kernel/linux-firmware
Настройка системы
/etc/fstab
В файле /etc/fstab должны быть перечислены разделы. Для этого ещё раз смотрим вывод fdisk -l. Вот мой вариант файла /etc/fstab (сначала идёт закомментированный шаблон):
/etc/fstab# <fs> <mountpoint> <type> <opts> <dump/pass>#/dev/BOOT /boot ext2 noauto,noatime 1 2#/dev/ROOT / ext3 noatime 0 1#/dev/SWAP none swap sw 0 0#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0#/dev/fd0 /mnt/floppy auto noauto 0 0/dev/sda1 /boot ntfs defaults,noatime 0 2/dev/sda6 / ext4 noatime 0 1/dev/sda5 none swap sw 0 0/dev/cdrom /mnt/cdrom auto noauto,user 0 0
Имя машины
Нужно задать имя нашей машине:
(chroot) livecd ~ #nano -w /etc/conf.d/hostname
/etc/conf.d/hostname1hostname=»zhupel»
Имя можно сменить позднее. Кстати, необязательно выбирать жупел.
Установка netifrc
Для работы сети установим netifrc и отредактируем /etc/conf.d/net:
(chroot) livecd ~ #(chroot) livecd ~ #emerge —ask —noreplace net-misc/netifrc
nano -w /etc/conf.d/net
Пример файла, если используется dhcp (см. другие варианты):
/etc/conf.d/net12config_eth0=»dhcp»routes_eth0=»default via 192.168.0.1″
Автоподключение к сети при старте системы
(chroot) livecd ~ #cd /etc/init.d
(chroot) livecd init.d #(chroot) livecd init.d #ln -s net.lo net.eth0
rc-update add net.eth0 default
После установки Gentoo сеть может не заработать из-за того, что eth0 будет называться иначе. Подробнее об этом написано в соответствующем пункте Допиливание системы → Проверяем сеть.
/etc/hosts
(chroot) livecd ~ #nano -w /etc/hosts
/etc/hosts12127.0.0.1 имя_машины localhost::1 localhost
Имя машины мы должны были задать в шаге Настройка системы → Имя машины, его и нужно использовать.
Ставим пароль для root
Выполните команду и введите два раза пароль:
(chroot) livecd ~ #passwd
Настройка загрузки и автозагрузки
(chroot) livecd ~ #nano -w /etc/conf.d/keymaps
/etc/conf.d/keymaps1234keymap=»us»windowkeys=»YES»extended_keymaps=»»dumpkeys_charset=»»
Не надо в keymap вписывать ru, поддержку русского мы настроим позже.
Установка системных программ
System logger
Чтобы можно было залогиниться в систему:
(chroot) livecd ~ #(chroot) livecd ~ #emerge —ask app-admin/sysklogd
rc-update add sysklogd default
Программы для файловых систем
Мы форматировали диск в ext4, поэтому ставим e2fsprogs:
(chroot) livecd ~ #emerge —ask sys-fs/e2fsprogs
Сетевые программы
Если используете dhcp (для большинства):
(chroot) livecd ~ #emerge —ask net-misc/dhcpcd
Если используется PPPoE для подключения к интернету:
(chroot) livecd ~ #emerge —ask net-dialup/ppp
Загрузчик GRUB2
Чтобы при включении компьютера можно было выбрать, какую ОС запустить (если стоит что-то ещё) или с каким ядром запустить Gentoo, необходимо установить и настроить загрузчик GRUB2.
Установка загрузчика
(chroot) livecd ~ #emerge —ask sys-boot/grub:2
Настройка GRUB2
Установим загрузчик на нужный диск:
(chroot) livecd ~ #grub-install /dev/sda
Если мы хотим, чтобы grub2 нашёл Windows, надо дополнительно поставить ещё пакеты os-prober и ntfs3g:
(chroot) livecd ~ #emerge —ask —newuse sys-boot/os-prober sys-fs/ntfs3g
Генерируем конфигурационный файл:
(chroot) livecd ~ #grub-mkconfig -o /boot/grub/grub.cfg
Должны быть выведены установленные системы. Если искомой Windows там нет, значит, что-то пошло не так. Если, например, вместо Windows 7 получилось три Windows Vista, то, скорее всего, всё нормально.
Перезагрузка системы
Наступает пора проверить, удалось ли выполнить все предыдущие шаги правильно.
(chroot) livecd ~ #exit
livecd ~ #livecd ~ #livecd ~ #cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount /mnt/gentoo{/boot,/sys,/proc,}
Теперь вытащите флэшку, с которой происходила установка, скрестите пальцы и выполните
livecd ~ #reboot
Если перезагрузка прошла успешно, переходите к допиливанию. Если система не загружается, громко и нецензурно прокляните меня (если рядом нет маленьких детей) и начните всё заново, используя на сей раз официальное руководство Gentoo Handbook.
Допиливание системы
Итак, Gentoo установлен, мы в него можем войти, полдела сделано! После загрузки вводите на предложенный Login: root и установленный пароль.
Проверяем сеть
Если после успешной установки Gentoo сеть работать не будет, нужно проверить, действительно ли ваш Ethernet адаптер имеет стандартное имя eth0. При работе с LiveUSB это всегда так, а вот после установки имена могут быть разные, например, enp3s0, eno1 и т.д.
Проверить это можно командой
root ~ #ifconfig
Итак, если после установки Gentoo обнаружится, что вместо eth0 Ethernet адаптер называется eno1, то действуем так:
Меняем config_eth0 → config_eno1 и routes_eno1 → routes_eth0 в /etc/conf.d/net. Можно вручную, можно командой:
root ~ #sed -i ‘s:eth0:eno1:g’ /etc/conf.d/net
затем выполняем
root ~ #root ~ #root ~ #root ~ #ln -s net.lo net.eno1
rm /etc/init.d/net.eth0
rc-update add net.eno1 default
rc-update del net.eth0
Создаём пользователя
Всё время работать в линуксе под root опасно. Создаём обычного пользователя и задаём ему пароль:
root ~ #root ~ #useradd -m -G users,wheel,audio,video -s /bin/bash vasilisa
passwd vasilisa
Примечание: пользователя необязательно должны звать vasilisa, можете выбрать и другое имя! Точно нужны группы users и wheel. Если не добавить пользователя в audio и video, могут не работать работать звук и вебкамера.
Пользователь создан, но не надо пока в него логиниться, всё равно пока занимаемся настройкой, требующей почти всегда права root.
Устанавливаем sudo
Чтобы в дальнейшем повседневном использовании выполнять операции, требующие прав root, можно логиниться в root (например, su — или su root). А можно установить привычное sudo.
root ~ #emerge —ask app-admin/sudo
Добавить пользователю права использования sudo:
root ~ #visudo
Откроется файл /etc/sudoers, который напрямую редактировать нельзя.
/etc/sudoers12root ALL=(ALL) ALLvasilisa ALL=(ALL) ALL
Если хочется, чтобы sudo не запрашивал пароль, вторую строку надо заменить на
vasilisa ALL=(ALL) NOPASSWD:ALL
И не забывайте, что вместо vasilisa надо ввести имя пользователя, созданное в прошлом шаге.
Если при попытке войти в root su — выдаётся ошибка su: Permission denied, надо добавить пользователя в группу wheel:
root ~ #gpasswd -a vasilisa wheel
Подчищаем установочные файлы
root ~ #rm /stage3-*.tar.bz2*
Xorg
Система работает, сеть тоже, казалось бы, чего ещё для счастья надо? Конечно, графической оболочки. Прежде чем ставить саму графическую оболочку (что-нибудь из GNOME, KDE, XFCE, LXDE, Cinnamon и т.д.), поставим Xorg («иксы») для поддержки видеокарты, монитора и мыши с тачпадом.
INPUT_DEVICES
Для поддержки тачпада нужен synaptics:
/etc/portage/make.conf1INPUT_DEVICES=»evdev synaptics»
VIDEO_CARDS
Сначала надо выяснить, какая у вас графическая карта.
root ~ #lspci | grep -i vga
Дальше гуглите что-нибудь типа «gentoo название/тип карты driver», например, «gentoo intel 2nd generation», «gentoo radeon 6400M driver» и т.д. Если карты две, ищите драйвера к обеим.
Для Intel, например, надо будет в /etc/portage/make.conf добавить один из вариантов в зависимости от Generation. У меня Intel 2nd Generation, поэтому я добавил только вторую строку.
/etc/portage/make.conf12345VIDEO_CARDS=»intel» # для Intel 1st GenerationVIDEO_CARDS=»intel i915″ # для Intel 2nd and 3rd GenerationVIDEO_CARDS=»intel i965″ # для Intel 4-9th GenerationVIDEO_CARDS=»radeon» # для карт AMD/ATIVIDEO_CARDS=»nouveau» # для карт Nvidia
Если у вас карта Nvidia, читайте здесь.
Обновим @world set
root ~ #emerge —ask —changed-use —deep @world
World set заключает в себе system set и selected set. Последний содержит список выбранных пакетов, которые мы выбирали с помощью eselect. Их может оказаться довольно много в зависимости от выбора в шаге Установка основы системы → Выбираем правильный профиль. Длиться установка может более часа.
Установка Xorg
root ~ #emerge —ask x11-base/xorg-server
Завершение установки
root ~ #root ~ #env-update
source /etc/profile
XFCE — графическая оболочка
Два наиболее известных графических окружения для Linux — KDE и Gnome. В этом руководстве мы с самого начала нацелились на XFCE (установив переменную USE). Эта оболочка легче, требует меньше зависимостей, работает быстрее, что особенно чувствительно на слабых машинах. Разумеется, если Вы предпочитаете другое графическое окружение, справляйтесь с соответствующими разделами из Gentoo Handbook (например, установка и настройка GNOME, KDE; установка и настройка легковесного оконного менеджера Fluxbox). Придётся только поменять значение переменной USE.
Установка XFCE
Прежде чем приступить к установке, настроим некоторые переменные. Редактируйте /etc/portage/make.conf. Также проверьте, что USE имеет необходимые значения.
/etc/portage/make.conf12XFCE_PLUGINS=»battery brightness clock power»USE=»-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar udev X»
Я выбрал эти плагины для ноутбука. Полный список можно найти на gitweb.gentoo.org.
Сама установка (к установке будет предложено более ста пакетов, у меня заняло более часа):
root ~ #emerge —ask xfce-base/xfce4-meta xfce-extra/xfce4-notifyd
Мы явно просим указать xfce4-notifyd, потому что в противном случае virtual/notification-daemon станет использовать x11-misc/notification-daemon от GNOME, а нам ничего гномьего не надо! После окончания установки можно убрать этот пакет из выбранных:
root ~ #emerge —ask —deselect=y xfce-extra/xfce4-notifyd
Обновим переменные окружения:
root ~ #env-update && source /etc/profile
Старт XFCE
Вот теперь можно залогиниться в пользователя и при необходимости пользоваться sudo. Для этого нажмите Ctrl+D, чтобы выйти из root и появилось предложение ввести логин. Вводите его и пароль.
user ~ $echo «exec startxfce4″ > ~/.xinitrc
Теперь попробуйте запустить графическую оболочку:
user ~ $startx
Если при попытке загрузки X-сервера будут ошибки, можно попробовать поставить
root ~ #emerge —ask x11-base/xorg-drivers
Если всё в порядке, то откроется графический рабочий стол и будет предложено выбрать стандартные панели (Default Panels). Мне они нравятся, на них можно добавлять необходимые индикаторы и ярлыки. У нижней панели я ставлю прозрачность и авто-скрытие. Всё это можно сделать методом интуитивного тыканья.
Добавить русскую раскладку
Меню Applications → Keyboard → вкладка Layout → Add → Russian. English (US) пусть останется на первой строке. Там же выберите комбинацию для смены раскладки. Если она не работает, значит не запущен Consolekit, см. раздел FAQ → Горячие клавиши не работают.
Графический логин
Можно каждый раз дожидаться загрузки системы без графической оболочки, логиниться и вводить startx для запуска графического окружения рабочего стола. Многим привычнее графический вход в систему. Лично я смысла в этом не вижу и прекрасно себя чувствую, вводя startx после логина. Можно, конечно, запускать X-server автоматически.
Если всё же хочется чего-то графического, действуйте, например, так.
Полезные программы
Можно установить несколько одним махом:
root ~ #root ~ #root ~ #root ~ #root ~ #emerge —ask xfce-extra/xfce4-mixer xfce-extra/xfce4-volumed
xfce-extra/xfce4-power-manager xfce-extra/xfce4-battery-plugin
x11-terms/xfce4-terminal xfce-extra/thunar-volman
xfce-extra/thunar-archive-plugin xfce-base/xfce4-appfinder
app-editors/mousepad xfce4-xkb-plugin
Это пригодится большинству. По порядку: регулятор громкости, управление громкостью с клавиатуры, контроль энергопотребления и яркости (если ноутбук), показ параметров батареи (проценты, оставшееся время и т.п.), графический терминал, менеджер подключаемых CD и USB, архиватор для обозревателя файлов thunar, быстрый вызов программ по Alt+F2 и Alt+F3, лёгкий графический блокнот (текстовый редактор), индикатор текущей раскладки. Более обширный список смотрите на wiki.gentoo.org/wiki/Xfce.
Настройка панелей
В прошлом шаге мы установили некоторые апплеты для панелей — xfce4-mixer для громкости, xfce4-xkb-plugin для индикатора раскладки и xfce4-power-manager (нужен для ноутбука). Их удобно добавить на верхнюю панель (она уже существует, если при первом старте XFCE была нажата кнопка «Default Panels». Если нет, то можно создать её в меню Applications → Settings → Panel → ).
Для добавления апплетов на панель щёлкните на неё правой кнопкой → Panel → Add New Items → и выберите Audio Mixer, Keyboard Layouts, Power Manager Plugin.
Если щёлкнуть на значок power-manager правой кнопкой мыши, появится бегунок для регулировки яркости. Если бегунок перетаскивать, то xfce4-power-manager падает, перестают работать кнопки регулировки яркости, приходится его перезапускать. Если же бегунок перемещать, наведя курсор на полосу прокрутки и вращая колёсико мыши, то приложение не обрушивается. Как исправить это странное поведение, я не нашёл.
На нижнюю панель удобно добавить приложения. Для этого щёлкните на неё ПКМ → Panel → Add New Items → Launcher, Add. На панели появится новый значок. Щёлкните на него ПКМ → Properties → , чтобы выбрать из установленных программ или вместо плюса нажмите на чистый листок, чтобы добавить какую-то свою команду. Добавленный пункт можно редактировать.
Прочие программы
Программы в этой секции указаны с прицелом на наиболее лёгкие и простые среди аналогов, но при этом обладающие полной функциональностью и не требующие сложной установки и настройки.
Сетевой менеджер Wicd
Wicd — Wireless interface connection daemon, менеджер сетевых подключений. Подробно установка и настройка на английском на wiki.gentoo.org/wiki/Wicd.
Установка и добавление в автозагрузку:
root ~ #root ~ #emerge —ask wicd
rc-update add wicd default
Надо удалить ссылки на net.eth0 (или, например, net.eno1 и т.д., как мы выясняли в пункте Проверяем сеть).
root ~ #rc-update del net.eth0
или, например,
root ~ #rc-update del net.eno1
Наконец, добавьте в /etc/rc.conf:
/etc/rc.conf1rc_hotplug=»!net.eno1″
или rc_hotplug=»!net.eth0″, rc_hotplug=»!net.enp3s0″ и т.д.
Просмотрщик изображений
Мне нравится geeqie. Для других вариантов зайдите на packages.gentoo.org/categories/media-gfx и сделайте поиск Ctrl + F по слову «viewer». Установка geeqie:
root ~ #emerge —ask media-gfx/geeqie
PDF & Djvu viewer
Evince умеет смотреть pdf и djvu. Для Evince по умолчанию отключён флаг djvu, а флаг gnome стоит. Чтобы добавить djvu и убрать gnome, создайте файл:
/etc/portage/package.use/evince1app-text/evince -gnome djvu
Теперь устанавливайте app-text/evince и убедитесь, что используются нужные флаги:
root ~ #emerge —ask app-text/evince
Браузер
Перечислю пару популярных вариантов, есть и другие.
Можно установить Firefox или Chromium (внимание, компилироваться может 3 часа и более!):
root ~ #root ~ #emerge —ask www-client/firefox
emerge —ask www-client/chromium
А можно установить уже прекомпилированный google-chrome (у меня заняло около 5 минут):
root ~ #emerge —ask www-client/google-chrome
Почему google-chrome ставится в разы быстрее? Потому что Chrome — проект с закрытым исходным кодом, а Chromium — проект с открытым исходным кодом. В Chrome исходный код пользователю недоступен, поэтому происходит установка уже прекомпилированного пакета. Это противоречит философии Gentoo: считается, что программа должна компилироваться именно на том компьютере, на котором она будет работать, с поддержкой только того железа, которое будет доступно. Именно это позволяет программам быть легче, не иметь отягчающих ненужных зависимостей и работать быстрее. В большинстве случаев это действительно так. Однако я поставил оба браузера для сравнения. Chrome устанавливался пять минут, а Chromium — больше четырёх часов (не знаю, насколько — уснул). Разнице во времени запуска и в работе нет абсолютно никакой. Размер на диске занимают почти одинаковый:
user ~ $equery size chromium
* www-client/chromium-49.0.2623.108
Total files : 259
Total size : 170.05 MiB
user ~ $equery size google-chrome
* www-client/google-chrome-49.0.2623.108_p1
Total files : 139
Total size : 177.85 MiB
Для работы equery надо установить emerge —ask app-portage/gentoolkit.
Лично я выбрал google-chrome, хотя это на первый взгляд противоречит философии Gentoo.
Видеоплеер SMplayer
У меня почему-то vlc зависал, и я пока остановил свой выбор на SMplayer. Это графическая версия для mplayer.
root ~ #emerge —ask media-video/smplayer
Аудиоплеер moc
Я не приверженец всего консольного, но плеер moc (music on console) меня покорил. Он действительно чрезвычайно удобен для прослушивания музыки, и, разумеется, весьма легковесен.
root ~ #emerge —ask media-sound/moc
Потом запускайте его в терминале: mocp, нажмите h для списка команд, изучите его и через 5 минут сможете им пользоваться.
Torrent-клиент
Клиент Transmission, лёгкий и работает без нареканий.
root ~ #emerge —ask transmission
Словари
У меня есть подробная запись о том, как поставить консольный словарь dictd и пользоваться им в vim.
FAQ
Кириллица в виртуальных консолях
Если в виртуальной консоли (те, что открываются по Ctrl + Alt + F1…F6) кириллица не отображается корректно, чиним так (информация взята с oldnix.org и немного подредактирована).
Установим шрифты с поддержкой кириллицы:
Осторожно, после выполнения этих комманд могут сменить вид все шрифты в системе, в браузере и т.д. Исследуйте этот вопрос, если это важно. Я не уверен, что ставить нужно все пакеты.
root ~ #emerge freefonts corefonts cronyx-fonts terminus-font
Проверьте, что в /etc/locale.gen стоят правильные настройки (в этом руководстве они устанавливались в шаге Установка основы системы → Настройка локалей):
/etc/locale.gen12en_US.UTF-8 UTF-8ru_RU.UTF-8 UTF-8
Если было что-то другое, то замените и примените новые настройки к системе:
root ~ #locale-gen
Добавьте в /etc/rc.conf:
/etc/rc.conf1unicode=»YES»
Установим рабочим шрифтом шрифт с поддержкой кириллицы, заменив там переменную consolefont с помощью любимого текстового редактора:
/etc/conf.d/consolefont1consolefont=»cyr-sun16″
Включим возможность переключения по Ctrl + Shift между английской и русской раскладками в виртуальных терминалах:
/etc/conf.d/keymaps1keymap=»-u ru»
Перезапустим сервисы для применения изменений и добавим в автозапуск:
root ~ #root ~ #/etc/init.d/consolefont restart && /etc/init.d/keymaps restart
rc-update add consolefont default
Теперь проверьте, переключается ли язык в виртуальных консолях и корректно ли отображаются русские буквы. Если нет, то в файл /etc/conf.d/keymaps добавьте dumpkeys_charset=»koi8-r» и снова перезапустите /etc/init.d/keymaps restart.
Горячие клавиши не работают
Например, Ctrl + Alt + T не вызывает терминал; не работает переключение языка и вызов программ по комбинации клавиш. Эти проблемы могут возникнуть из-за того, что не запущен Consolekit. Запустите и добавьте его в автозагрузку:
root ~ #root ~ #/etc/init.d/consolekit start
rc-update add consolekit default
И перезагрузите компьютер.
Не работает Settings → Appearance
Как ни странно, дело тоже в Consolekit. Выполните действия, предложенные в прошлом вопросе о горячих клавишах.
emerge не работает
Система управления пакетами Portage иногда стесняется самостоятельно обновлять конфигурационные файлы после выполнения emerge. Есть два популярных варианта для обновления этих файлов — утилиты dispatch-conf и etc-update. Запустите любую из них, обе предоставляют интерактивный диалог. Желательно внимательно прочитать его и сверх того погуглить.
Индикатор раскладки в панели
Установить плагин:
root ~ #emerge xfce4-xkb-plugin
И добавить его на панель: Щелчок правой кнопкой мыши на панельку → Panel → Add item → Keyboard Layouts.
Suspend, shutdown нельзя выбрать
Если через меню нельзя усыпить или выключить компьютер, попробуйте запустить графическую оболочку так:
user ~ $startxfce4 —with-ck-launch
Если пункты появились, то замените значение в ~/.xinitrc:
user ~ $echo «exec startxfce4 —with-ck-launch» > ~/.xinitrc
Теперь эта команда будет выполняться при startx.
Не меняется яркость на ноуте
Откройте /etc/default/grub и добавьте следующую строку:
root ~ #nano -w /etc/default/grub
/etc/default/grub1GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash acpi_backlight=vendor»
Чтобы изменения вступили в силу, запустите:
root ~ #grub-mkconfig -o /boot/grub/grub.cfg
После перезагрузки компьютера яркость должна меняться с помощью Fn+F2 или иных комбинаций для ноутбука.
Всё равно не меняется яркость!
Файлы, отвечающие за яркость монитора, находятся тут: /sys/class/backlight/. Попробуем вручную записать туда другие значение и посмотрим, меняется ли яркость. Для этого надо быть не просто пользователем с sudo, а надо залогиниться в рута.
user ~ $su root
root ~ #cat /sys/class/backlight/*/brighntess
Будут выведены какие-то значения. Понажимайте кнопку изменения яркости и снова выведите цифры:
root ~ #cat /sys/class/backlight/*/brighntess
Если цифры таким образом не меняются, значит, не работают кнопки и их надо как-то чинить. Чтобы вручную поменять яркость, сделайте так (нужны права root). Переберите по очереди все папки в /sys/class/backlight/, чтобы понять, кто именно контролирует яркость. Показаны примеры, у вас могут быть другие названия папок. Скоее всего, нужно то, что не acpi_video*.
root ~ #root ~ #root ~ #root ~ #ls /sys/class/backlight/
echo ‘3’ > /sys/class/backlight/acpi_video0/brighntess
echo ‘3’ > /sys/class/backlight/acpi_video1/brighntess
echo ‘3’ > /sys/class/backlight/intel_backlight/brighntess
Не работает звук и вебкамера
При попытке запустить xfce4-mixer появляется ошибка:
GStreamer was unable to detect any sound devices. Some sound system specific GStreamer packages may be missing. It may also be a permissions problem.
Это может быть связано с тем, что пользователь не добавлен в группу audio. Чтобы добавить его в audio (и в video для работы вебкамеры), можно сделать так:
root ~ #root ~ #gpasswd -a vasilisa audio
gpasswd -a vasilisa video
Где вместо vasilisa нужно ввести имя пользователя.
Vi исчез в процессе установки
В какой-то момент установки система может «забыть» команду vi. Поставьте vi заново, может компилироваться полчаса — привыкайте к прелестям Gentoo!
root ~ #emerge vim
Выполнить эту команду можно будет только после emerge-webrsync.
Заключение
Может, в конце концов, возникнуть вопрос: на кой чёрт переписывать Gentoo Handbook, да причём менее подробно? Есть несколько причин:
Весь процесс — от записи LiveUSB до готовой системы с графической оболочкой и необходимыми программами — на одной странице с удобной навигацией-оглавлением.
Добавлены некоторые нюансы вроде установки и настройки sudo и т.д.
Меньше лишней информации; иногда это плохо, но всегда даны ссылки для более подробного изучения конкретного вопроса. А изучать вопрос глубже нужно не всегда. Лично я, если мне понадобится устанавливать Gentoo, буду пользоваться именно этим руководством, при необходимости справляясь с более подробной официальной документацией.
У меня в журнале появилась запись с меткой «Gentoo», таким образом я говорю всему честному интернету: «Я крутой! Я установил Gentoo!»
И напоследок — большая просьба: если заметили ошибки и неточности, пожалуйста, отпишитесь в комментариях. Также с удовольствием и Костиком отвечу на все вопросы.
Сноски
Здесь и далее ссылки даются на русскую версию Gentoo Handbook (если перевод существует), поскольку для большинства читателей, полагаю, это будет удобнее. Однако английская версия, на мой взгляд, лучше написана, а русский перевод местами неправильный. Переключайте язык на английский, пройдя по ссылке. ↩
Все мы привыкли с ранних лет к BIOS (basic input/output system) — набору программ, позволяющему управлять железом компьютера до загрузки операционной системы. На замену BIOS нынче приходит UEFI — Unified Extensible Firmware Interface, единый интерфейс расширяемой прошивки. ↩