Дисклеймер

Внимание: в этом блоге могут описываться события, явления и факты при помощи ненормативной лексики. Убедитесь, что Вы готовы к этому.

среда, 13 октября 2010 г.

сделаем gentoo по-быстрому

Эта заметка была написана весьма давно с целью быстрой (ну, относительно :) ) установки системы Gentoo Linux, не напрягая головной мозг воспоминаниями и сомнениями - "а что там дальше-то?".

Подходит для тех людей, кто в мире GNU/Linux не совсем новичок и понимает, что он делает. Если у Вас такого понимания нет - дальше лучше не читать и уж тем более, не стоит пробовать. Установка ведётся с привилегиями пользователя root и  если делать что-то неосознанно и не так - можно наворотить дел и потерять кучу важных данных. Лучше их забэкапить.
Эта инструкция ни в коем случае не замена хэндбуку Gentoo. Хэндбук строго рекомендую к ознакомлению и пониманию оного.
Следование данной инструкции на моей машине моими лапками приводит к получению работоспособной системы, но за Вас и Ваше железо я отвечать не могу, поэтому Вы можете делать действия, указанные на этой странице только на Ваш страх и риск, автор статьи, то есть я, ответственности за Ваши действия не несёт.
Предупредил :)

я буду объяснять на своём примере, со своими настройками (куда что монтировать, например) и т.д. Вам не обязательно так делать - всё можно применить по аналогии без всяких проблем.

Данный метод установки - с помощью Live-CD или из уже установленного на отдельный раздел дистрибутива GNU/Linux. Например, если у Вас установлена на раздел /dev/sda1 система, SWAP на /dev/sda2 и Вы хотите установить Gentoo на /dev/sda3 или же у Вас нет установленной системы, но, например, есть live-CD ubuntu (с лайва ubuntu проще тем, что с него можно работать, пока Gentoo устанавливается) или же gentoo минимальный установочный образ (~100-120Mb)

Итак, начнём.
Для начала нужно создать разделы, куда будет устанавливаться система (gparted, cfdisk и т.п. в помощь). Если свободный раздел имеется, нужно отформатировать его:
mke2fs -t ext4 -m 1 /dev/sda3
# это мы форматнули /dev/sda3 в файловую систему ext4 с зарезервированным для суперпользователя и полезностей вроде системного журнала 1% данных. больше-то и не нужно, а если понадобится - можно будет потом поменять утилитой tune2fs

далее, нужно создать директорию и примонтировать туда раздел /dev/sda3. в этом примере я примонтирую его в /media/gentoo. (если /media/ у Вас нет - его можно создать) и перейду в директорию, куда примонтирован раздел с будущей системой:
mkdir /media/gentoo
mount /dev/sda3 /media/gentoo
cd /media/gentoo
теперь время качать stage3 и дерево портежей. на сегодняшний момент для архитектуры x86 (если нужно для других архитектур, то вот выбирайте http://mirror.yandex.ru/gentoo-distfiles/releases/) это будет так:
wget -c http://mirror.yandex.ru/gentoo-distfiles/releases/x86/current-stage3/stage3-i686-20101012.tar.bz2
wget -c http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.bz2
#после скачивания неплохо бы проверить контрольные суммы, они там лежат. проверяйте удобным для Вас способом. я качаю DIGESTS файл, отворяю, смотрю и сравниваю sha1sum

теперь распаковываем stage3 и portage:
tar -xjf stage3-i686-20101012.tar.bz2
tar -xjf portage-latest.tar.bz2 -C usr/
#именно в таком порядке, будьте внимательны
после распаковки архивчики не нужны более и можно их удалить:
rm stage3-i686-20101012.tar.bz2 portage-latest.tar.bz2
затем копируем resolv.conf (ради инета) с системы, где он уже настроен (Ваша ОС, в которой Вы работаете или же Live-CD) в gentoo:

cp /etc/resolv.conf /media/gentoo/etc/
теперь время попасть в саму Gentoo через chroot:
mount --bind /proc/ /media/gentoo/proc/
mount --bind /dev/ /media/gentoo/dev/
chroot /media/gentoo/
вот мы и в ней.
что теперь? ну, начнём с того, что пришло время правки конфигов и прочего-прочего. один из основных конфигов в gentoo - это make.conf с use-флагами, оптимизациями и так далее.
выберем профиль (набор флагов и иных особенностей грубо говоря). для начала вызовем лист профилей:
eselect profile list
в этом примере я устанавливаю десктоп KDE, так что профиль будет №4:
eselect profile set 4
теперь /etc/make.conf - для начала можно взять мой за основу, оптимизированный под desktop с KDE (замечу, в моём дублируются флаги профиля, ничего страшного в этом нет). Замечу, мой make.conf оптимизирован под мою машину, мой процессор, мою звуковую карту, видеокарту и так далее.
Вы при его использовании должны поменять CFLAGS, ALSA_CARDS и VIDEO_CARDS, если у Вас случайно не P4 Prescott, Creative Audigy ZS и видеокарта на чипе NVIDIA, соответственно.

также рекомендую сразу же установить ccache (кэш компиляции, полезен при пересборке)
emerge ccache

теперь посетим /etc/conf.d/clock:
CLOCK="local"
TIMEZONE="Europe/Moscow"
#нам важны эти две строчки - т.е. часы тут у меня в локалтайме (ещё бывает в UTC) и часовая зона по Москве. для других временных зон смотрите /usr/share/zoneinfo/
продолжая тему времени, для этого часового пояса нужно сделать:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
#аналогично и с другими, смотрим, как уже было сказано, в  /usr/share/zoneinfo/
теперь заглянем в /etc/conf.d/consolefont
CONSOLEFONT="Cyr_a8x16"
#вот так у меня. это кириллический шрифт для консоли. весь список найдёте в /usr/share/consolefonts
теперь в /etc/conf.d/hostname нужно вписать имя хоста. у меня так:
HOSTNAME="emg81pc"
затем правим /etc/conf.d/keymaps. я менял только часть опций:
KEYMAP="-u ru4"
SET_WINDOWKEYS="yes"
в /etc/conf.d/net у меня раскомментирована лишь одна строка:
config_eth0=( "adsl" )
#ибо Волга-Телеком и типа подключения такой.
в файле /etc/conf.d/rc рекомендую поправить такой параметр:
RC_PARALLEL_STARTUP="yes"
#для параллельной загрузки служб при запуске системы.
в /etc/conf.d/xdm в моём случае будет раскомментировано три строки:
CHECKVT=7
DISPLAYMANAGER="kdm"
NEEDS_HALD="yes"
#они о том, что пользовать менеджер логина KDM, которому нужен демон HAL(D) и
стартовать вся красота будет точно в 7-й виртуальной консоли (по умолчанию так)
теперь впишем ещё одну вещь насчёт локали. для этого выполним:
nano /etc/env.d/02locale
и наполним пустой файлик строками:
LC_ALL=""
LANG="ru_RU.UTF-8"
LC_NUMERIC="C"
# ну и после - ctrl-O и ctrl-X чтобы сохранить изменения и выйти из редактора nano, если с ним не работали :)
теперь в /etc/rc.conf нужно удостовериться, что мы имеем раскомментированную опцию
UNICODE="yes"
теперь нужно отредактировать весь список нужных нам локалей, которые будут поддерживаться будущей системой. для этого идём в /etc/locale.gen. в моём случае, когда требуется поддержка русского и английского языка это будет:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU ISO-8859-5
ru_RU.UTF-8 UTF-8
#остальные строки можно закомментировать или удалить.


затем нужно настроить fstab для наших разделов. т.к. у меня swap на /dev/sda2, а gentoo будет на /dev/sda3, то /etc/fstab выглядит так:

/dev/sda3 / ext4 defaults 0 0
/dev/sda2 swap swap defaults 0 0
#остальные строки закомментированы или удалены, если не используются.

теперь примемся за ядро. установим gentoo-ядро (доступны и другие, но этот для примера).
emerge gentoo-sources
ждём, пока оно скачается и распакуется в /usr/src/
после окончания этого переходим в рабочую директорию:
cd /usr/src/linux/
конфигурируем ядро:
make menuconfig
#в состав ядра обязательно вкомпиливать модули для работы корневой ФС и сопутствующие им. если Вы не знаете, как это сделать, то не нужно вызывать menuconfig - для начала можно взять мой конфиг: http://www.mediafire.com/?hj393bxi3u5sr38 в нём включено большое количество модулей и поддержка ext4 вкомпилена в ядро. собирать такое ядро дольше, но больше вероятность, что оно сразу заведётся. файл конфига необходимо будет сохранить в папке под именем .config с точкой перед именем (он станет скрытым).
затем для сборки ядра и установки модулей:
make && make modules_install
после сборки и установки модулей (полчаса-час-полтора-два, в зависимости от мощности процессора и конфига) положим ядро куда надо вручную:
cp arch/x86/boot/bzImage /boot/
теперь пересоберём систему с учётом всех изменённых нами выше конфигов и оптимизаций:
emerge --sync
env-update && source /etc/profile
emerge -e system
#это может занять несколько часов в зависимости от количества изменений, прежде всего, в make.conf и мощности процессора

ну а теперь поставим удобный и функциональный (по моему мнению, конечно) десктоп. я ставлю KDE для примера в этой статейке. Вы ставите, само собой, то, что Вам ближе :)
компиляция KDE занимает очень много времени (на моём процессоре P4 - 3.2 GHz - это занимает ночь), поэтому такие действия лучше делать перед длительным уходом от компьютера или на ночь. т.к. это всё равно надолго, то можно сразу ставить не только KDE, но и нужные программки. я делаю так:
emerge kdebase-meta kcalc kshutdown k3b firefox ktorrent yakuake ksnapshot ark thunderbird mplayer vlc rp-pppoe
#это надолго :)

после того, как все нужности сготовятся, создадим пароль суперпользователю:
passwd
#оно дважды попросит ввести его.
теперь, не отходя от кассы, сделаем пользователя. пример:
useradd -m emg81
а теперь добавим пользователя во все нужные группы (audio, cdrom, cdrw, haldaemon, plugdev ... ). можно открыть /etc/group и вписать, а можно по одной группе добавлять по такому типу:
gpasswd -a emg81 audio
теперь время создать пароль этому пользователю:
passwd emg81
аналогично как уже было сделано с рутом выше - тоже дважды попросит ввести пароль.

у меня стоит видеокарточка на чипсете nvidia. если у Вас, надеюсь, тоже то теперь время сделать:
nvidia-xconfig
eselect opengl list
eselect opengl set 1
Внимание: одно время в gentoo был такой косяк, что не все библиотеки копировались куда нужно, поэтому видеодрайвер не работал, не заводились иксы, не запускался kdm. поэтому делаем:
ln -s /usr/lib/opengl/xorg-x11/extensions/libdri.so /usr/lib/xorg/modules/extensions/libdri.so
ln -s /usr/lib/opengl/xorg-x11/extensions/libdri2.so /usr/lib/xorg/modules/extensions/libdri2.so
настраиваем adsl-инет от Волга-Телеком:
pppoe-setup
и честно отвечаем на вопросы утилиты .
теперь время добавить нужные сервисы в автозагрузку:
rc-update add xdm default
rc-update add hald default
rc-update add alsasound default
звук, конечно же, настраивается при помощи:
alsamixer
затем ставим ползунки громкости при помощи стрелочек на нужный уровень и закрепляем настройки:
alsactl store
Вот и всё. Можно перезагружаться в систему :)
Как видите, сложного ничего нет, даже я разобрался.

Комментариев нет:

Отправить комментарий