Произносим правильно. Gentoo [↗dʒɛntu:, дже́нту] — вид пингвинов из рода антарктических, известен как быстрейший среди пингвинов в подводном плавании. Некоторые граждане привыкли к произношению «Генту», но это нестрашно: далее в руководстве будет использоваться только английский вариант.
Разумеется, 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-битная архитектура.
Разумеется, можно записать и CD, но мы будем пользоваться USB-флэшкой, они чаще под рукой.
Нужна флэшка объемом более 1 Гб. Вся информация с нее будет удалена, так что сохраните нужное. Будем записывать флэшку из любого Линукса (я использовал Ubuntu). Можно записать LiveUSB и из Windows, очень просто с помощью бесплатной программы Rufus — нужно просто указать флэшку и iso-образ в программе и нажать кнопку Start.
Заходим на официальную страницу и скачиваем Minimal Installation CD (~250 Мб) для amd64. Если у вас очень старый компьютер, то архитектура может быть и 32 бит, тогда вам нужен x86. Проверьте свою разрядность в свойствах системы.
Вставьте флэшку в USB порт. Выполните fdisk -l
, в числе прочего в выводе
должна быть показана и флэшка. Ее легче всего узнать по размеру. Я
пользовался 2-Гб флэшкой и в выводе было такое:
root ~ # | fdisk -l |
...
Disk /dev/sdb: 2 GiB, 2080374784 bytes, 4063232 sectors
...
В моем случае флэшка — это /dev/sdb. Будьте очень внимательны, если у вас флэшка будет соответствовать, например, /dev/sdc, то используйте /dev/sdc вместо /dev/sdb в приведенных ниже командах.
Для этого раздела легче действовать из-под рута: выполните 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 ~ # | mkdir -p /mnt/cdrom mount -o loop,ro -t iso9660 ~/Downloads/install-amd64-minimal-*.iso /mnt/cdrom |
Здесь я указал предполагаемое местонахождение скачанного iso-файла.
Монтируем LiveUSB:
root ~ # | mkdir -p /mnt/usb mount -t vfat /dev/sdb1 /mnt/usb |
Копируем файлы:
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 ~ # | umount /mnt/cdrom umount /mnt/usb |
Установим загрузчик syslinux
:
root ~ # | syslinux /dev/sdb1 |
Загрузочная флэшка готова.
Прежде всего подключите сетевой кабель, чтобы после загрузки с 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.
Перед началом установки необходимо правильно разметить диск с помощью gparted
или fdisk
.
Если вместо BIOS используется UEFI, некоторые действия может быть надо выполнять иначе. Подробнее смотрите в разделе Disks в Gentoo Handbook.
Самый простой вариант: на диске уже стоит Windows и Linux. Установим Gentoo вместо имеющегося Linux, диск переразмечать не будем. Здесь предполагается, что диск имеет идентификатор /dev/sda.
Посмотрим, что у нас есть на диске (вырезаны неважные колонки):
livecd ~ # | fdisk -l |
Device Boot Size Type |
Видим, что Windows стоит на /dev/sda2
, загрузчик в /dev/sda1
, Linux в /dev/sda6
и swap на /dev/sda5
. На /dev/sda4
стоят средства для восстановления Windows. Мы далее укажем, что хотим установить Gentoo туда, где стоит Linux, и адрес для swap оставим тот же.
Здесь под словом root понимается корневой раздел, обозначаемый как /
. Определим его тип как ext4
(неважно, каким он был до этого):
livecd ~ # | mkfs.ext4 /dev/sda6 |
livecd ~ # | mkswap /dev/sda5 swapon /dev/sda5 |
livecd ~ # | mount /dev/sda6 /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda1 /mnt/gentoo/boot |
Готово.
Если на машине стоит только Windows, который хочется сохранить, то нужно оттяпать у него место с помощью, например, gparted
. Как это сделать — гуглите.
Соответствующая секция в Gentoo Handbook: Подготовка дисков.
Проверим, правильна ли дата:
livecd ~ # | date |
Если нет, то установите правильную. Например, 28 марта 2016 года, 14:55 можно поставить так:
livecd ~ # | date 032814552016 |
livecd ~ # | cd /mnt/gentoo |
livecd gentoo # | links gentoo.org/downloads/mirrors |
Откроется текстовый браузер links
. Выберите зеркало из ближайшей из списка страны и зайдите в releases/amd64/autobuilds/<date>
. Выбирайте свежайшую дату. Скачайте файл stage3-amd64-<date>.tar.bz2
, выбрав его и нажав клавишу D или Enter.
livecd gentoo # | tar xvjpf stage3-*.tar.bz2 --xattrs |
Время установить подходящие значения этим трем переменным.
Переменная 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 |
1 | CFLAGS="-O2 -pipe" |
Знак минус перед gnome и kde у переменной USE позволит компилировать программы, не утягивая за собой тяжелые зависимости для этих графических оболочек.
Чтобы сохранить файл и закрыть редактор nano
, нажмите Ctrl + O, затем Ctrl + X.
Для файлов дистрибутива:
livecd ~ # | mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf |
По этой команде откроется псевдографическая утилита, где надо выбрать близкое зеркало, нажав Пробел. Затем выберите Save
.
Для основного репозитория Gentoo:
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 |
livecd ~ # | cp -L /etc/resolv.conf /mnt/gentoo/etc/ |
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 ~ # | chroot /mnt/gentoo /bin/bash source /etc/profile export PS1="(chroot) $PS1" |
С этого момента все действия будут напрямую выполняться в новом Gentoo, но ликовать еще рано.
Эта команда получит снимок текущего состояния 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 ~ # | mkdir /usr/portage mkdir -p /usr/portage/metadata/ nano -w /usr/portage/metadata/layout.conf |
1 | masters = 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 |
1 | en_US.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
. Установим ее:
(chroot) livecd ~ # | emerge --ask sys-kernel/genkernel |
Теперь надо прописать /boot в /etc/fstab:
(chroot) livecd ~ # | nano -w /etc/fstab |
1 | /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
должны быть перечислены разделы. Для этого еще раз смотрим вывод fdisk -l
. Вот мой вариант файла /etc/fstab
(сначала идет закомментированный шаблон):
1 | # <fs> <mountpoint> <type> <opts> <dump/pass> |
Нужно задать имя нашей машине:
(chroot) livecd ~ # | nano -w /etc/conf.d/hostname |
1 | hostname="zhupel" |
Имя можно сменить позднее. Кстати, необязательно выбирать жупел.
Для работы сети установим netifrc и отредактируем /etc/conf.d/net
:
(chroot) livecd ~ # | emerge --ask --noreplace net-misc/netifrc nano -w /etc/conf.d/net |
Пример файла, если используется dhcp
(см. другие варианты):
1 | config_eth0="dhcp" |
(chroot) livecd ~ # | cd /etc/init.d |
(chroot) livecd init.d # | ln -s net.lo net.eth0 rc-update add net.eth0 default |
После установки Gentoo сеть может не заработать из-за того, что eth0 будет называться иначе. Подробнее об этом написано в соответствующем пункте Допиливание системы → Проверяем сеть.
(chroot) livecd ~ # | nano -w /etc/hosts |
1 | 127.0.0.1 имя_машины localhost |
Имя машины мы должны были задать в шаге Настройка системы → Имя машины, его и нужно использовать.
Выполните команду и введите два раза пароль:
(chroot) livecd ~ # | passwd |
(chroot) livecd ~ # | nano -w /etc/conf.d/keymaps |
1 | keymap="us" |
Не надо в keymap вписывать ru, поддержку русского мы настроим позже.
Чтобы можно было залогиниться в систему:
(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 |
Чтобы при включении компьютера можно было выбрать, какую ОС запустить (если стоит что-то еще) или с каким ядром запустить Gentoo, необходимо установить и настроить загрузчик GRUB2.
(chroot) livecd ~ # | emerge --ask sys-boot/grub:2 |
Установим загрузчик на нужный диск:
(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 ~ # | 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 ~ # | 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 ~ # | useradd -m -G users,wheel,audio,video -s /bin/bash vasilisa passwd vasilisa |
Примечание: пользователя необязательно должны звать vasilisa, можете выбрать и другое имя! Точно нужны группы users и wheel. Если не добавить пользователя в audio и video, могут не работать работать звук и вебкамера.
Пользователь создан, но не надо пока в него логиниться, все равно пока занимаемся настройкой, требующей почти всегда права root.
Чтобы в дальнейшем повседневном использовании выполнять операции, требующие прав root, можно логиниться в root (например, su -
или su root
). А можно установить привычное sudo
.
root ~ # | emerge --ask app-admin/sudo |
Добавить пользователю права использования sudo:
root ~ # | visudo |
Откроется файл /etc/sudoers
, который напрямую редактировать нельзя.
1 | root 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* |
Система работает, сеть тоже, казалось бы, чего еще для счастья надо? Конечно, графической оболочки. Прежде чем ставить саму графическую оболочку (что-нибудь из GNOME, KDE, XFCE, LXDE, Cinnamon и т.д.), поставим Xorg («иксы») для поддержки видеокарты, монитора и мыши с тачпадом.
Для поддержки тачпада нужен synaptics:
1 | INPUT_DEVICES="evdev synaptics" |
Сначала надо выяснить, какая у вас графическая карта.
root ~ # | lspci | grep -i vga |
Дальше гуглите что-нибудь типа «gentoo название/тип карты driver», например, «gentoo intel 2nd generation», «gentoo radeon 6400M driver» и т.д. Если карты две, ищите драйвера к обеим.
Для Intel, например, надо будет в /etc/portage/make.conf
добавить один из вариантов в зависимости от Generation. У меня Intel 2nd Generation, поэтому я добавил только вторую строку.
1 | VIDEO_CARDS="intel" # для Intel 1st Generation |
Если у вас карта Nvidia, читайте здесь.
root ~ # | emerge --ask --changed-use --deep @world |
World set заключает в себе system set и selected set. Последний содержит список выбранных пакетов, которые мы выбирали с помощью eselect
. Их может оказаться довольно много в зависимости от выбора в шаге Установка основы системы → Выбираем правильный профиль. Длиться установка может более часа.
root ~ # | emerge --ask x11-base/xorg-server |
root ~ # | env-update source /etc/profile |
Два наиболее известных графических окружения для Linux — KDE и Gnome. В этом руководстве мы с самого начала нацелились на XFCE (установив переменную USE). Эта оболочка легче, требует меньше зависимостей, работает быстрее, что особенно чувствительно на слабых машинах. Разумеется, если Вы предпочитаете другое графическое окружение, справляйтесь с соответствующими разделами из Gentoo Handbook (например, установка и настройка GNOME, KDE; установка и настройка легковесного оконного менеджера Fluxbox). Придется только поменять значение переменной USE.
Прежде чем приступить к установке, настроим некоторые переменные. Редактируйте /etc/portage/make.conf
. Также проверьте, что USE имеет необходимые значения.
1 | XFCE_PLUGINS="battery brightness clock power" |
Я выбрал эти плагины для ноутбука. Полный список можно найти на 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 |
Вот теперь можно залогиниться в пользователя и при необходимости пользоваться 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 ~ # | 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 — Wireless interface connection daemon, менеджер сетевых подключений. Подробно установка и настройка на английском на wiki.gentoo.org/wiki/Wicd.
Установка и добавление в автозагрузку:
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
:
1 | rc_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 |
Evince
умеет смотреть pdf и djvu. Для Evince
по умолчанию отключен флаг djvu, а флаг gnome стоит. Чтобы добавить djvu и убрать gnome, создайте файл:
1 | app-text/evince -gnome djvu |
Теперь устанавливайте app-text/evince и убедитесь, что используются нужные флаги:
root ~ # | emerge --ask app-text/evince |
Перечислю пару популярных вариантов, есть и другие.
Можно установить Firefox или Chromium (внимание, компилироваться может 3 часа и более!):
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.
У меня почему-то vlc
зависал, и я пока остановил свой выбор на SMplayer
. Это графическая версия для mplayer
.
root ~ # | emerge --ask media-video/smplayer |
Я не приверженец всего консольного, но плеер moc (music on console) меня покорил. Он действительно чрезвычайно удобен для прослушивания музыки, и, разумеется, весьма легковесен.
root ~ # | emerge --ask media-sound/moc |
Потом запускайте его в терминале: mocp
, нажмите h для списка команд, изучите его и через 5 минут сможете им пользоваться.
Клиент Transmission, легкий и работает без нареканий.
root ~ # | emerge --ask transmission |
У меня есть подробная запись о том, как поставить консольный словарь dictd
и пользоваться им в vim.
Если в виртуальной консоли (те, что открываются по Ctrl + Alt + F1…F6) кириллица не отображается корректно, чиним так (информация взята с oldnix.org и немного подредактирована).
Установим шрифты с поддержкой кириллицы:
Осторожно, после выполнения этих комманд могут сменить вид все шрифты в системе, в браузере и т.д. Исследуйте этот вопрос, если это важно. Я не уверен, что ставить нужно все пакеты.
root ~ # | emerge freefonts corefonts cronyx-fonts terminus-font |
Проверьте, что в /etc/locale.gen
стоят правильные настройки (в этом
руководстве они устанавливались в шаге Установка основы системы → Настройка
локалей):
1 | en_US.UTF-8 UTF-8 |
Если было что-то другое, то замените и примените новые настройки к системе:
root ~ # | locale-gen |
Добавьте в /etc/rc.conf
:
1 | unicode="YES" |
Установим рабочим шрифтом шрифт с поддержкой кириллицы, заменив там переменную consolefont
с помощью любимого текстового редактора:
1 | consolefont="cyr-sun16" |
Включим возможность переключения по Ctrl + Shift между английской и русской раскладками в виртуальных терминалах:
1 | keymap="-u ru" |
Перезапустим сервисы для применения изменений и добавим в автозапуск:
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 ~ # | /etc/init.d/consolekit start rc-update add consolekit default |
И перезагрузите компьютер.
Как ни странно, дело тоже в Consolekit
. Выполните действия, предложенные в прошлом вопросе о горячих клавишах.
Система управления пакетами Portage иногда стесняется самостоятельно обновлять конфигурационные файлы после выполнения emerge
. Есть два популярных варианта для обновления этих файлов — утилиты dispatch-conf
и etc-update
. Запустите любую из них, обе предоставляют интерактивный диалог. Желательно внимательно прочитать его и сверх того погуглить.
Установить плагин:
root ~ # | emerge xfce4-xkb-plugin |
И добавить его на панель: Щелчок правой кнопкой мыши на панельку → Panel → Add item → Keyboard Layouts.
Если через меню нельзя усыпить или выключить компьютер, попробуйте запустить графическую оболочку так:
user ~ $ | startxfce4 --with-ck-launch |
Если пункты появились, то замените значение в ~/.xinitrc
:
user ~ $ | echo "exec startxfce4 --with-ck-launch" > ~/.xinitrc |
Теперь эта команда будет выполняться при startx
.
Откройте /etc/default/grub
и добавьте следующую строку:
root ~ # | nano -w /etc/default/grub |
1 | GRUB_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 ~ # | 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 ~ # | gpasswd -a vasilisa audio gpasswd -a vasilisa video |
Где вместо vasilisa
нужно ввести имя пользователя.
В какой-то момент установки система может «забыть» команды vi
и vim
. Поставьте vim заново, может компилироваться полчаса — привыкайте к прелестям Gentoo!
root ~ # | emerge vim |
Выполнить эту команду можно будет только после emerge-webrsync
.
Может, в конце концов, возникнуть вопрос: на кой черт переписывать Gentoo Handbook, да причем менее подробно? Есть несколько причин:
sudo
и т.д.И напоследок — большая просьба: если заметили ошибки и неточности, пожалуйста, отпишитесь в комментариях. Также с удовольствием и Костиком отвечу на все вопросы.
Здесь и далее ссылки даются на русскую версию Gentoo Handbook (если перевод существует), поскольку для большинства читателей, полагаю, это будет удобнее. Однако английская версия, на мой взгляд, лучше написана, а русский перевод местами неправильный. Переключайте язык на английский, пройдя по ссылке. ↩︎
Все мы привыкли с ранних лет к BIOS (basic input/output system) — набору программ, позволяющему управлять железом компьютера до загрузки операционной системы. На замену BIOS нынче приходит UEFI — Unified Extensible Firmware Interface, единый интерфейс расширяемой прошивки. ↩︎