Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Аватара пользователя
fossil

Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение fossil »

Доброго времени суток!



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 можно тут:

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:



Код:

Создадим нового пользователя.



Код:

Код: Выделить всё

# useradd -m -G users,wheel,audio -s /bin/bash john

Ну и самое главное, это не забыть установить пароль для root ! P.S. Заодно можно установить пароль и юзеру.



Код:

Код: Выделить всё

# passwd

Ну вот минимальный набор программ для работы в системе был установлен. Теперь под систему можно загрузиться. Если система при загрузке выдает какие-либо ошибки или отказывается загружаться, то скорее всего вы что-то сделали неверно.



Выходим из системы:



Код:

Ребутимся из под 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




Удачи.



P.S. В данной статье я не стремился охватить весь процесс установки, это очень краткий и сжатый вариант. Если что-то не понятно или я что-то указал некорректно пишите, исправим.
Аватара пользователя
ruslandh

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение ruslandh »

По-моему. правильнее размещать статью на wiki, ав форуме сделать ссылку.

http://wiki.oszone.net/index.php.htm/Категория:Linux
Аватара пользователя
fossil

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение fossil »

Пост-установочный мануал.



Обновление уже установленной системы.

Так как база скриптов portage обновляется непрерывно, есть возможность иметь постоянно свежий набор пакетов. Для того чтобы синхронизировать дерево Portage с официальным деревм введем команду:



Код:

Код: Выделить всё

# emerge --sync

После успешной синхронизации, нужно собрать новые пакеты и удалить старые. Для этого пересоберем пакеты входящие в system и world.



Код:

Код: Выделить всё

# emerge system
# emerge world
# emerge --update --newuse --deep world

Следующая команда контролирует целостность пакетов и соответствующие к ним библиотеки:



Код:

Код: Выделить всё

# revdep-rebuild

Следующая команда чистит систему от мусора. Например вы удалили какой-то пакет, а после него остались зависимости. Выполнив данную команду вы автоматически удалите все "ненужные" пакеты. P.S. Используйте предельно аккуратно.



Код:

Код: Выделить всё

# emerge --depclean
Аватара пользователя
mapcoxog

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение mapcoxog »

Спасибо, попробуем на досуге и Gentoo собрать, давно хотел.



Могут возникнуть какие-нибудь проблемы при установке на ноут Toshiba Satellite A110?
Аватара пользователя
fossil

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение fossil »

Я никогда на такой бук не устанавливал. Если будут, пишите, будем решать.
Аватара пользователя
SantaXP

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение SantaXP »

Эм... А Gentoo всегда так ставится, или можно проще? Мне интересно просто, ибо даже FreeBSD ставить легче на мой взгляд. Изображение
Аватара пользователя
fossil

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение fossil »

Цитата mapcoxog:



SantaXP, из stage3 вроде проще
Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1




Из stage3 быстрее. При сборке stage3 пропускается этап сборки bootstrap.sh.




Цитата:



А Gentoo всегда так ставится, или можно проще?



С выхода профиля 2006.0 в livecd появился инсталлятор. Если интересно, то на офф. сайте написано как им пользоваться. Никогда им не пользовался, и никогда не запускал, поэтому не в курсе как там и что устанавливается. Вообще я считаю что для Gentoo инсталлятор это излишество, ведь смысл этого дистрибутива сборка с оптимизацией, а какой в этом смысл если за тебя все делает инсталятор и ты не знаешь какие настройки и какие пакеты были собраны.

На сколько я знаю из тех кто давно использует Gentoo, никто не пользуется инсталлятором.




Цитата:



Мне интересно просто, ибо даже FreeBSD ставить легче на мой взгляд.



На мой взгляд FreeBSD довольно просто устанавливается, все понятно. Да и я не считаю установку Gentoo сложной, все предельно просто, если разобраться.
Аватара пользователя
Student00

Re: Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1

Сообщение Student00 »

Цитата fossil:



С выхода профиля 2006.0 в livecd появился инсталлятор. Если интересно, то на офф. сайте написано как им пользоваться. Никогда им не пользовался, и никогда не запускал, поэтому не в курсе как там и что устанавливается.
Gentoo - Краткий мануал по установке Gentoo GNU/Linux из Stage1




Пытался поставить через графический инсталлятор - он тупит на этапе монтирование отформатированных разделов, видимо не врубается что нужно чрутится в /mnt/gentoo. У кого-нибудь есть позитивный опыт общения с ним?
Ответить

Вернуться в «Общий по Linux»