Итак, вы решили установить Gentoo и не знаете с чего начать, при этом чтение мануалов вас отпугивает своим количеством и сложностью. В данном мануале я постараюсь кратко описать весь процесс установки системы, и постараюсь написать простым языком.
Начнем с того, как распространяется дистрибутив и из каких частей он состоит. Если заглянуть на официальные зеркала Gentoo, то вы может увидеть кучу различных каталогов для разных архитектур (что подчеркивает гибкость и кроссплатформенность), различные профили для сборки, набор distfiles и т.д. Как же выбрать что подходит вам? Начнем с выбора профиля, ведь версия дистрибутива обозначается версией профиля (например Gentoo 2007.0). В чем же различия между профилями? Дело в том, что конечный профиль для сборки представляет собой набор пакетов. В конечном счёте, весь набор пакетов от default-linux, x86, 2007.0 представляет собой минимальный набор пакетов необходимых для работы профиля, который используется в ссылке /etc/make.profile. Такой способ управления позволяет гибко настраивать работу различных программ на различных платформах, ведь есть не только x86, есть ещё sparc, amd и т.п. И для sparc существуют собственные аналоги gcc, ведь на бинарном уровне компилятор gcc для x86 не совместим со sparc. Конечно же стоит выбирать самый свежий профиль, т.к. в нем присутствует самый свежий набор требований. Хотя если у вас есть и более старый дистрибутив с набором distfiles, то вы легко можете синхронизироваться с официальным зеркалом и обновить систему после ее установки.
Следующее что нам предстоит выбрать это Stage. Stage это обычный архив, который содержит изначальную структуру каталогов Linux, а также некоторые файлы. Дело в том, что Gentoo отличается сильной оптимизацией работы под конкретный компьютер, поэтому, есть возможность установить «все с нуля». Всего существует три Stage. Например Stage1 представляет собой самый базовый вариант, содержащий минимальный набор команд, такие как chroot и т.п. Если почитать мануалы а официальном сайте Gentoo, то там советуют производить установку из Stage 3, т.к. установка системы из stage1 и stage2, на машину конечного пользователя, больше не поддерживается. Если вам интересно мое мнение, то я всегда использую Stage 1, и весь следующий мануал буду писать именно по сборке из этого stage.
Так же stage бывает для разных профилей и разных архитектур. Stage собирается для некоторого числа определенных архитектур процессоров. Архитектура процессора - это общее название идей, набор инструкций и регистров, поддерживаемых процессором. Имя архива содержит название типа архитектуры процессора, для которой он собран. Чтобы правильно выбрать Stage, вы должны знать тип архитектуры вашего процессора. Данную информацию можно получить, например, с сайта производителя процессора или в общедоступных энциклопедиях.
Следующий пакет который нужно иметь перед началом установки это Portage. В Gentoo существует специальная система Portage, которая отвечает за установку, обновление, отслеживание зависимостей, обслуживание и удаление пакетов. Система довольно часто обновляется, ведь она содержит скрипты для установки определенных версия программ. Portage представляет собой архив содержащий в себе базу с информацией о доступных, на текущий момент пакетах. Скачиваемсамый свежий Portage. Версия данного архива определяется датой выпуска. На официальных зеркалах архив находится в каталоге snapshots. Для управлением пакетов используется универсальный скрипт - emerge. Это команда с помощью которой выполняются все операции связанные с управлением, а так же обновлением пакетов. Например для установки Apache нужно всего лишь ввести emerge apache и систеа сама скачает и установит последнюю (по данным из локального Portage) версию apache.
Установка Gentoo производится из под уже существующей системы Gentoo - livecd соответствующий профилю той системы которую мы будем собирать. На загрузочном диске уже установлен компилятор и библиотеки, а так же базовые команды которые нам могут понадобиться для сборки нашей будущей системы. Конечно же выбирать livecd стоит с таким же профилем и такой же архитектурой что и Stage.
Итак, для начала установки нам понадобиться. Загрузочный livecd, архив Stage 1, архив Portage. Записываем это все на один диск и можно приступить к установке.
Как только закончится загрузка livecd мы попадаем в консоль. Первым делом что мы сделаем, это разобьем жесткий диск на разделы.
На данном этапе я останавливаться не буду, т.к. в интернете и на форуме полно тем по данному вопросу.
# cfdisk /dev/sda
Предположим что ваша таблица разделов выглядит так:
Файловая система Тип Точка монтирования
/dev/sda1 swap -
/dev/sda5 reiserfs /
/dev/sda6 reiserfs /var
/dev/sda7 Ext2 /boot
/dev/sda8 reiserfs /usr/portage
Форматируем разделы:
SWAP - mkswap /dev/sda1
Ext2 - mke2fs /dev/sda1
Ext3 - mke2fs -j /dev/sda1
ReiserFS - mkreiserfs /dev/sda1
JFX - mkfs.jfs /dev/sda1
XFS - mkfs.xfs /dev/sda1
Как видно из моей таблицы разделов на жестком диске, мой выбор пал на ReiserFS, так как он достаточно быстро работает с большим количеством маленьких файлов.
После успешного форматирования, монтируем корневой каталог и создаем на корневом разделе парочку каталогов, для монтирования других разделов.
# mount /dev/sda5 /mnt/gentoo
# cd /mnt/gentoo
# mkdir boot
# mkdir var
# mount /dev/sda6 /mnt/gentoo/var
Распаковываем Stage.
# ls /mnt/cdrom/stages/*
stage1-x86-2007.0.tar.bz2
# tar xvjpf /mnt/cdrom/stages/stage1-x86-2007.0.tar.bz2 /mnt/gentoo
Теперь у нас есть дерево нашей будущей системы. Монтируем к получившимся каталогам остальные файловые системы:
# mkdir /mnt/gentoo/usr/portage
# mount /dev/sda7 /mnt/gentoo/boot
# mount /dev/sda8 /mnt/gentoo/usr/portage
# mount /dev/sda6 /mnt/gentoo/var
# swapon /dev/sda1
# mount t proc none /mnt/gentoo/proc
Распаковываем снимок дерева Portage.
# ls /mnt/cdrom/snapshots/*
portage-20080108.tar.bz2
# tar xvjf /mnt/cdrom/snapshots/portage-20080108.tar.bz2 C /mnt/gentoo/usr
Пришло время указать параметры сборки. Так как Gentoo отличается от других дистрибутивов оптимизацией, существует конфигурационный файл где и выставляются все эти настройки. Все параметры по умолчанию находятся в /etc/make.globals, но добавлять изменения нужно в /etc/make.conf. Так же здесь указываются так называемые USE флаги, предназначенные для обозначения глобальных зависимостей для сборки пакетов. Например при сборке какого-нибудь пакета в зависимости попадает KDE, хотя нам его устанавливать не нужно. Мы просто добавляем в USE параметр -kde и все зависимости связанные с KDE будут автоматически отброшены.
# nano w /mnt/gentoo/etc/make.conf
Если вдруг кому-то интересен мой вариант make.conf
читать дальше »
CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
ACCEPT_KEYWORDS="~x86"
#GENTOO_MIRRORS="http://mirror.ealtai.ru/Linux/gentoo"
#SYNC="rsync://mirror.ealtai.ru/gentoo-portage"
MAKEOPTS="-j3"
AUTOCLEAN="yes"
FEATURES="sandbox ccache"
ALSA_CARDS="intel8x0"
VIDEO_CARDS="nvidia"
LINGUAS="ru"
USE="X java acl 3dfx a52 eds truetype gstreamer xv imlib mad ogg vorbis sdl chardet encode png gif bzip2 ftp cdr dvdr gtk gtk2 gnome opengl dbus hal nls nptl nptlonly ncurses ntl alsa slang userlocales unicode symlink cups mp3 jpeg samba beryl glitz ffmpeg dvdread spell qt3 javascript quicktime mikmod \
-kde -ipv6 -oss -berkdb -arts"
Почитать о том какие настройки нужно указывать в make.conf можно тут:
http://gentoo-wiki.com/Safe_Cflags.
http://gentoo-wiki.com/FAQ_USE_Flags
Итак, система готова к сборке, теперь мы можем переключиться под нашу будущую систему и начать сборку.
# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile
Приступим к сборке Stage 1.
# cd /usr/portage
# scripts/bootstrap.sh
Этот процесс может занять пару часиков. После успешной сборки Stage приступим к сборке системных пакетов. P.S. Зависимости пакетов которые будут установлены можно посмотреть в виде списка, добавив в команду префикс --pretend. Например emerge --pretend system. Таким образом вы можете точно проследить какие пакеты будут установлены и отрегулировать USE флаги в /etc/make.conf.
# emerge system
Процесс сборки можно прервать, и запустить снова. Установленные пакеты уже будут внесены в базу, и будут реально установлены. Нужно всего лишь ввести emerge system еще раз.
Распаковываем исходные коды ядра:
# emerge gentoo-sources
Собираем ядро:
# cd /usr/src/linux
# make menuconfig
# make && make modules_install
Копируем образ ядра в загрузочный раздел.
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage
# cp /usr/src/linux/System.map /boot
После сборки ядра установим некоторые утилиты, на случай если они каким-то образом не попали в system. P.S. Так как в своем варианте я использую ReiserFS я устанавливаю утилиты для данной файловой системы.
# emerge udev
# emerge reiserfsprogs
Теперь отредактируем таблицу монтирования fstab.
# nano w /etc/fstab
таблица выглядит так:
/dev/sda7 /boot ext2 noauto,noatime 1 1
/dev/sda5 / reiserfs noatime 0 0
/dev/sda1 none swap sw 0 0
/dev/sda8 /usr/portage reiserfs noatime 0 0
/dev/sda6 /var reiserfs noatime 0 0
tmpfs /tmp tmpfs defaults 0 0
Устанавливаем журнал и планировщик заданий.
# emerge syslog-ng
# rc-update add syslog-ng default
# emerge vixie-cron
# rc-update add vixie-cron default
P.S. Для того чтобы добавить init скрипт в уровни загрузки, используется утилита rc-update, использование которой мы видим выше.
Устанавливаем загрузчик:
# emerge lilo
# nano w /etc/lilo.conf
Мой вариант конфига загрузчика выглядит так:
boot=/dev/sda
prompt
timeout=150
image=/boot/bzImage
root=/dev/sda5
label=Gentoo
read-only
Для того чтобы произвести запись в MBR:
# lilo
Создадим нового пользователя.
# useradd -m -G users,wheel,audio -s /bin/bash john
Ну и самое главное, это не забыть установить пароль для root ! P.S. Заодно можно установить пароль и юзеру.
# passwd
Ну вот минимальный набор программ для работы в системе был установлен. Теперь под систему можно загрузиться. Если система при загрузке выдает какие-либо ошибки или отказывается загружаться, то скорее всего вы что-то сделали неверно.
Выходим из системы:
# exit
Ребутимся из под livecd:
Код:
# reboot
Ссылки по теме:
http://gentoo.org/
http://forums.gentoo.org/
http://gentoo-wiki.com/USE_Flags_explained
http://packages.gentoo.org/
http://gentoo-portage.com/
http://gentoo-wiki.com/HOWTO_Use_Por...y#Color_Output
Удачи.
Обновление уже установленной системы.
Так как база скриптов portage обновляется непрерывно, есть возможность иметь постоянно свежий набор пакетов. Для того чтобы синхронизировать дерево Portage с официальным деревм введем команду:
Код:
# emerge --sync
После успешной синхронизации, нужно собрать новые пакеты и удалить старые. Для этого пересоберем пакеты входящие в system и world.
Код:
# emerge system
# emerge world
# emerge --update --newuse --deep world
Следующая команда контролирует целостность пакетов и соответствующие к ним библиотеки:
# revdep-rebuild
Следующая команда чистит систему от мусора. Например вы удалили какой-то пакет, а после него остались зависимости. Выполнив данную команду вы автоматически удалите все "ненужные" пакеты. P.S. Используйте предельно аккуратно.
# emerge --depclean
P.S. В данной статье не стремились охватить весь процесс установки, это очень краткий и сжатый вариант. Если что-то не понятно или что-то указано некорректно пишите, исправим.