Gentoo Linux – дистрибутив, который может быть автоматически оптимизирован и приспособлен для применения практически в любой области в соответствии с вашими требованиями. Наивысшая производительность, настраиваемость и высококлассное сообщество пользователей и разработчиков – вот отличительные черты Gentoo.
Благодаря технологии портежей, Gentoo Linux станет идеальным защищенным сервером, рабочей станцией разработчика, профессиональной настольной системой, системой для игр, встроенной системой или чем-либо другим – всем, чем вы пожелаете. Из-за практически неограниченной способности дистрибутива подстраиваться под нужды пользователя, мы называем Gentoo Linux "метадистрибутивом".
Итак, вы решили установить 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 можно тут:
Итак, система готова к сборке, теперь мы можем переключиться под нашу будущую систему и начать сборку.
Код:
Код: Выделить всё
# 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 defaultP.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Ссылки по теме:
Удачи.
P.S. В данной статье я не стремился охватить весь процесс установки, это очень краткий и сжатый вариант. Если что-то не понятно или я что-то указал некорректно пишите, исправим.

