PDA

Просмотр полной версии : Gentoo Linux



IMPERIAL
28.10.2009, 20:39
Gentoo Linux

http://i048.radikal.ru/0910/30/6688fbc51475.png

Русский сайт (http://www.gentoo.ru/) | Английский сайт (http://www.gentoo.org/) | Wiki (http://ru.wikipedia.org/wiki/Gentoo) | Страница загрузки [RU (http://www.gentoo.ru/mirrors)] [EN (http://www.gentoo.org/main/en/mirrors2.xml)]

О Gentoo

Что собственно собой представляет Gentoo Linux? Это такой Linux который вы собираете сами из исходников (source), вы скажете "А нафиг он нам нужен? Если есть Slackware, да и Debian тоже ничего". Я постараюсь ответить.
Основная идеология Gentoo не собрать Linux из исходников, вы можете также установить систему из прекомпиллированых пакетов, основной идеологией Gentoo является сборка системы только с нужными компонентами, для этого был введён флаг USE , который является, пожалуй, самым большим достоинством Gentoo в отличии от других дистрибьютивов из исходников. Ну а преимущества от Mandriva, Suse, Ubuntu и подобных дистрибьютивов можно перечислять очень долго.
Есть конечно мелкие огрехи и у Gentoo, самым серьёзным является система инициализации SysVInit, но это легко решается установкой OpenRC и распараллеливанием загрузки.
Думаю лучше за меня скажет что такое Gentoo сам разработчик, читайте дальше про философию Gentoo.


Философия Gentoo

Я начал работу над Gentoo, потому как не мог найти дистрибутива, который бы меня устраивал. Во всех Linux-дистрибутивах я заметил одну неприятную деталь - инсталляционные утилиты, управляющие установкой ПО в системе, предназначались для упрощения работы, однако на практике лишь мешали администрированию системы.
Поэтому я и создал Gentoo с её собственной системой портэжей (т.н. Portages), более совершенной, чем все системы управления ПО, существовавшие до этого. Система портэжей отличается большой гибкостью и даёт возможность пользователю успешно использовать её для решения конкретных задач независимо от поставленных целей.
Например, если вы хотите посмотреть подробности сборки пакета, вы можете посмотреть файл ebuild и получить всю необходимую информацию оттуда. Чтобы настроить параметры установки, можно воспользоваться переменной USE. Чтобы добавить новый пакет, можно просто создать новый файл ebuild для дерева портэжей. Вы также можете установить требуемый пакет командой emerge - система автоматически проследит за установкой всех необходимых пакетов, от которых зависит нужное вам приложение.
Linux-сообщество оценило новую систему портэжей, и Gentoo начал стремительно развиваться. Дистрибутив получил известность как "дистрибутив исходников", однако сутью Gentoo является вовсе не принцип "from source" (из исходников). Конечно, это важный, ключевой принцип дистрибутива, но не основной. Основным здесь является технология, позволяющая пользователю делать с системой всё что угодно, без каких либо ограничений.
Работая над этой технологией, я представлял себе произвольного пользователя ОС Linux. Что он (или она) хотел бы сделать с системой? Философия Gentoo - дистрибутив, дающий возможность делать с системой всё что угодно.
Камнем преткновения для появления Gentoo было отсутствие простого метода автоматической установки ПО из исходников, ориентированного на пользователей, с подробными инструкциями. На данный момент мы решили эту задачу практически полностью. Частично реализована поддержка прекомпилированных пакетов, хотя, с другой стороны, с момента своего появления система портэжей Gentoo поддерживала установку бинарников.
Реализация поддержки бинарных пакетов очень важна, т.к. большое количество ПО распространяется именно в бинарниках (например, в виде пакетов RPM - прим. переводчика). Если бы Gentoo не поддерживал бинарные пакеты, мы бы не смогли бы назвать его удобным дистрибутивом, позволяющим пользователю делать с системой всё, что ему придёт в голову. Впрочем, помимо "философских" причин для поддержки бинарников есть много причин практических.
Философию Gentoo можно сформулировать в нескольких предложениях. Каждый линуксоид использует компьютер для решения своих конкретных задач. Главной целью Gentoo является предоставление ПО, позволяющего пользователю выполнять свои задачи эффективно. Утилиты Gentoo должны быть удобны в использовании, должны позволить пользователю оценить по достоинству все преимущества открытого ПО вообще и Linux в частности. Такое возможно лишь при наличии огромной базы открытого ПО, отражающей все потребности современных пользователей, содержащей тысячи разнообразных программ, по возможности удобных. Если некая утилита вынуждают пользователя выполнять какие-то нестандартные действия для совершения стандартных операций - она скорее мешает работе, чем помогает. Каждый встречал подобные утилиты, неудобные в работе, лишённые ряда очевидных функций. Такое ПО противоречит философии Gentoo.
Другими словами, философия Gentoo также заключается в разработке корректного ПО. Когда утилита выполняет свои и только свои обязанности, но выполняет их в полной мере, вы можете забыть о её присутствии (что, впрочем, соответствует философии Unix вообще как таковой - прим. переводчика). Она не помешает, не попытается взаимодействовать с вами, пока вы сами не захотите этого.
В настоящее время в перспективы Gentoo входит поддержка и создание ПО, близкого к идеалу - мощных и простых в использовании утилит, способных обеспечить выполнение множества различных задач. Разве не прекрасно иметь возможности найти ПО, делающее именно то, что вы от него хотите? Разве это не вызывает чувство эстетического наслаждения? Наша задача - донести это чувство до как можно большего числа людей.


Установка


Требования

Теперь о требованиях Gentoo. По сути её можно установить почти на любой ПК( не просто так Gentoo на PS3 и на некоторые КПК устанавливают), но время установки напрямую зависит от производительности компьютера. Также нужно хорошее соединение с интернетом.


Подготовка к установке

Систему будем ставить только из минимального установочного диска, т.к. это самый верный способ установки, при таком способе установки система будет установлена из последних доступных и признанных стабильными компонентов.
Скачиваем минимальный инсталяционный образ ftp://mirror.yandex.ru/gentoo-distfiles/releases/ Размер его будет в районе 100Mb.
И записываем этот образ на диск. Если вы не очень любите консоль, то советую выделить свободный раздел для Gentoo и раздел подкачки, любой утилитой для работы c HDD. Это, пожалуй, и вся подготовка, переходим к установке.


Установка в 2 этапа


Этап 1

Загружаемся с записанного ранее диска, появится приветствие с просьбой ввести имя ядра с каким грузится, пишем gentoo и нажимаем Enter, пошла загрузка. Ждём появления терминала. Допустим вы устанавливаете Gentoo на первый SATA диск, то он будет называться sda, второй SATA диск sdb, первый IDE диск - hda, второй - hdb,. Ещё хочу сказать на счёт логических разделов, нумерация дисков идёт в следующем порядке: на диске с MBR может быть только четыре первичных(primary) раздела 1-4, далее идут логические(logic) диски, их нумерация начинается с 5 , т.е. независимо от количества первичных разделов, нумерация логических дисков всегда начинается с 5.
Вводим команды:


# fdisk /dev/sda
fdisk> p

Выведется список всех разделов и информация о них. Допустим устанавливаем ОС на диск, разметить его нужно следующим образом:


sda1 - primary - ext3 - 10 Gb (/)
sda2 - primary - swap - 2 Gb (swap)
sda3 - primary - ntfs - 168 Gb (/mnt/Windows)

Создаём SWAP раздел и подключаем его:


# mkswap /dev/sda2
# swapon /dev/sda2

Форматируем и подключаем корневой раздел:


# mkfs.ext3 /dev/sda1
# mount /dev/sda1 /mnt/gentoo

Проверяем доступность сети, возможно что она автоматически настроилась:


# /sbin/ifconfig

Если всё же сеть не настроена, читайте раздел по настройке сети в настольной книге Gentoo, там достаточно подробно и хорошо это расписано.
Переходим в корневой каталог нашей будущей системы:


# cd /mnt/gentoo

Заходим в список зеркал, находим и скачиваем архив стадий:


# links http://www.gentoo.org/main/ru/mirrors.xml

Распаковываем архив стадий:


# tar xvjpf stage3-*.tar.bz2

Вновь зайдите в список зеркал и скачайте оттуда последний снимок дерева портежей и распакуйте его:


# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

После этого обязательно выполняем копирование файла resolv.conf в нашу будущую систему, для того что бы после перехода в новую среду сеть осталась рабочей:


cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

Пожалуй ключевым моментом в установке Gentoo является настройка параметров компиляции в файле make.conf, приступаем. Открываем файл make.conf в редакторе nano:


nano /mnt/gentoo/etc/make.conf

Вот пример моего make.conf:


CFLAGS="-O2 -march=k8-sse3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
CHOST="i686-pc-linux-gnu"

USE="gnome -ipv6 -cups -kde -crypt -kdm -qt -qt3 -qt4 -ssse3"
USE="${USE} X apm directfb opengl alsa hal acpi mmx xcb sse sse2 sse3 vim-syntax"
USE="${USE} glitz cairo truetype cleartype trayicon dbus arts win32codecs pdf"
USE="${USE} fam emerald png tiff lame flac wma jpeg2k svg jpeg aac mp3 ffmpeg"
USE="${USE} automount policykit consolekit fbcondecor symlink gpm gdm gtk gnome "

LINGUAS="ru en"
VIDEO_CARDS="nvidia"
INPUT_DEVICES="keyboard mouse evdev"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles"

По поводу СFLAGS для вашего процессора лучше почитать Wiki , насчет флагов USE нужно думать самому, у меня например система настроена для Gnome, "-" перед флагом значит что не нужно собирать пакеты с поддержкой данного элемента системы, если флаг без знака - наоборот собирать с поддержкой данного элемента. Можно сказать что сразу у вас не получится найти оптимальный набор флагов USE для вашей системы. Я могу только посоветовать:


X opengl alsa hal acpi mmx xcb sse vim-syntax glitz cairo truetype cleartype trayicon dbus arts win32codecs pdf png tiff lame flac wma jpeg2k svg jpeg aac mp3 ffmpeg

Остальные флаги по вашему желанию и потребностям.
Если у вас есть тачпад то добавляем:


INPUT_DEVICES="keyboard mouse synaptics evdev"

Запись evdev не удаляем.
После записи параметров для сохранения файла нажимаем F2.

Перходим в новую систему, выполняем команды:


# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

Устанавливаем часовой пояс:


# cp /usr/share/zoneinfo/Europe/Kiev /etc/localtime

Список локаций можно посмотреть командой:


# ls /usr/share/zoneinfo/Europe/

Открываем файл /etc/conf.d/clock


# nano /etc/conf.d/clock

B присваиваем TIMEZONE значение "Europe/Kiev". Если планируем использовать Windows то еще присваиваем СLOCK значение local.
Открываем файл /etc/conf.d/hostname


# nano /etc/conf.d/hostname

Присваиваем имя хоста допустим ws, HOSTNAME="ws"
Задаём имя домена:


# echo 'dns_domain_lo="domain.ru"'>>/etc/conf.d/net

Открываем файл hosts :


# nano /etc/hosts

И между 127.0.0.1 и localhost вписываем ws.home.lan ws localhost.localdomain. Устанавливаем исходники ядра:


# emerge -av gentoo-sources

Устанавливаем v86d


# emerge -av sys-apps/v86d

Приступаем к конфигурации и установке ядра:


# cd /usr/src/linux
# make menuconfig

Обязательно устанавливаем параметры:


General setup --->
Initial RAM filesystem and RAM disk (iniyramfs/initrd) support
(/usr/share/v86d/initramfs) Initramfs source file(s)

И что бы глаза не выпадали на клавиатуру от страшной консоли включаем фреймбуфер:


Device Drivers --->
Graphics support --->
Support for frame buffer devices --->
Userspace VESA VGA graphics support

Если вы планируете использовать проприетарные драйвера для видеокарты nVidia не в коем случае не включайте nVidia Framebuffer Support, так как драйвера конфликтируют с этим фреймбуфером и не устанавливаются.
После конфигурации ядра компилируем его и устанавливаем:


# make
# make modules_install
# cp arch/i386/boot/bzImage /boot/

Устанавливаем загрузчик.


# emerge -av grub
# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Конфигурируем загрузчик, открываем файл:


# nano /boot/grub/menu.lst

C учётом допущений сделаных мной выше о структуре разделов и установленных ОС приводим этот файл к следующему виду:


default 0
timeout 30

title Gentoo Linux
root (hd0,0)
kernel /boot/bzImage1 root=/dev/sda1 ro quiet splash video=uvesafb:1024x768-32@85

title Windows 7
rootnoverify (hd0,2)
chainloader +1

Правим файл с точками монтирования разделов, открываем fstab:


# nano /etc/fstab

И приводим его к следующему виду:


/dev/sda2 / ext3 noatime 1 2
/dev/sda1 none swap sw 0 0
/dev/sda3 /mnt/Windows ntfs-3g locale=ru_RU.UTF-8,user,uid=1000,gid=100,umask=0002,fmask=0113 0 0

B создаём папку /mnt/Windows иначе раздел sda3 и устанавливаем пакет ntfs-3g не будет монтироватся.


# mkdir /mnt/Windows
# emerge -av ntfs-3g

Теперь нужно настроить сеть и установить все необходимые пакеты для её работы, сново по этому поводу читаем HandBook.
После этого можно выходить и перезагружаться:


# exit && cd
# umount /mnt/gentoo/{dev,proc,}
# reboot

Теперь базовая ситема у нас есть и инсталяционный диск нам более не нужен. Переходим ко второму этапу установки.


Этап 2

На этом этапе мы установим базовые демоны и пакеты, Xorg сервер и рабочую среду.
Для начала сделаем русификацию. Создадим дополнительные локали:


# cat /usr/share/i18n/SUPPORTED | grep -E 'ru_RU|en_US' >> /etc/locale.gen
# locale-gen

Откроем файл /etc/conf.d/consolefont:


# nano /etc/conf.d/consolefont

И поменяем шрифт "default_8x16" на "Cyr_a8x16" и сохраним файл.
Созддадим файл /etc/env.d/02locale


# nano /etc/env.d/02locale

И добавим в него две строки:


LANG="ru_RU.UTF-8"
nLC_ALL=""

Обновим окружение, перезапустим службу:


# env-update
# source /etc/profile
# /etc/init.d/consolefont restart

Устанавливаем самые необходимые сервисы и некоторые пакеты:


# energe -av sudo vixie-cron syslog-ng hal pmount

Устанавливаем автозапуск сервисов журналирования, индексирования, консольной мышы и автомонтирования:


# rc-update add syslog-ng default
# rc-update add vixie-cron default
# rc-update add gpm default
# rc-update add dbus default
# rc-update add hald default

Переходим к установке Xorg сервера и графической среды. В основной ветке портежей находятся только проверенные пакеты, по этому для установки последних версий компонентов которые находятся в оверлеях нужно установить два пакета: PortageXS - автоматизации размаскирования пакетов и Layman для управления оверлеями. Пакеты маскируются разработчиками если они еще не протестированы толком или с ними есть проблемы. Если у пакета номер версии 9999, то это значит что пакет находится в стадии разработки. Из оверлеев можно установить много чего интересного, например из оверлея kde-testing можно сейчас установить последнюю бету KDE 4.3.
Приступаем к установке выше названых пакетов:


# emerge -av PortageXS layman

Для наглядного понимания этих утилит я сделаю допущение что мы ставим последнею версию Xorg 1.6.1 и Gnome 2.26.0, которых ещё нет в основной ветке портежей.

Приступаем к подготовке оверлеев и размаскированию пакетов. Для начала добавляем оверлей x11 в котором находится последняя версия Xorg сервера, и оверлей gnome в котором находится последняя доступная версия Gnome.


# layman -a x11
# layman -a gnome

По умолчанию layman устанавливает оверлеи в /usr/portage/local/layman. После выполнения команд выше у нас в этом каталоге появятся ещё два католога /usr/portage/local/layman/x11 м /usr/portage/local/layman/gnome . Для того чтобы мы могли устанавливать пакеты из наших оверлеев путь к ним нужно прописать в make.conf. Открываем его:


# nano /etc/make.conf

И добавляем следующюю строку:


PORTDIR_OVERLAY="/usr/portage/local/layman/gnome /usr/portage/local/layman/x11"

Далее нам нужно размаскировать пакеты x11-base/xorg-server и gnome-base/gnome.
Чтобы посмотреть доступные версии нужного нам пакета вводим команду:


# autounmask x11-base/xorg-server

После определения с необходимой нам версией вводим:


# autounmask x11-base/xorg-server-1.6.1

По аналогии размаскируем Gnome


# autounmask gnome-base/gnome-2.26.0

По сути команда autounmask просто добавляет строки в файлы /etc/portage/package.keywords и /etc/portage/package.unmask . Размаскировывать этой командой гараздо удобней чем руками, так как она размаскировывает и замаскированые зависимости этих пакетов, бывает что их сотни.

После размаскировки устанавливаем:


# emerge -av xorg-server

Автоконфигурируем Xorg:


# Xorg -configure
# cp /root/xorg.conf /etc/X11/xorg.conf

Далее так как мы используем для инициализации устройств evdev, а не устаревший способ прописования устройств ввода в xorg.conf . Открываем файл /etc/X11/xorg.conf:


# nano /etc/X11/xorg.conf

И удаляем все секции InputDevice и удаляем строки с текстом InputDevice. И добовляем секцию ServerFlags:


Section "ServerFlags"
Option "AllowEmptyInput" "True"
EndSection

Устанавливаем Gnome:


# emerge -av gnome-base/gnome

Для установки KDE нужно вводить:


# emerge -av kde-base/kde-meta

После установки, для автоматического запуска Gnome при старте Xorg сервера(команда startx). Создаём скрытый файл .xinitrc в папке пользователя:


# nano ~/.xinitrc

И добавляем в него строку:


exec gnome-session

Если же нужен запуск KDE, то добавляем другую строку:


exec startkde

Для запуска Gnome Desktop Manager (GDM) при запуске системы, открываем файл /etc/conf.d/xdm :


# nano /etc/conf.d/xdm

И меняем значение перменной DISPLAYMANAGER c xdm на gdm, если же нужен запуск KDE Desktop Manager (KDM) то ставим значение этой переменной kdm.

Последний штрих, добовляем пользователя, т.к. работать под рутом опасно, можно напрочь убить систему.


# useradd -m -G users,wheel,audio,video,cdrom,cdrw,usb,plugdev -s /bin/bash <пользователь>

Устонавливаем пароль для этого пользователя:


# passwd <пользователь> <пароль>

Теперь смело перезагружаем компьютер, если все было верно сделано, то вы без проблем загрузитесь в графическую оболочкуи можете приступать к работе.


Нюансы, советы

Первый и самый простой совет: всегда читайте внимательно сообщения на экране, тогда большинство возникших проблем вы сможете решить сами, без чьей-либо помощи.Всегда старайтесь понять что вы и зачем делаете. Бывает такое что пакет по каким-то причинам не устанавливается, попробуйте размаскировать более новую версию пакета или же попробуйте установить пакет ниже версией. Для установки пакета именно той версии которая вам нужна делаем так:


# emerge -av =gnome-base/gnome-2.24.1

Если вам нужно замаскировать пакет ранее вами размаскированый то просто удаляем записи из файлов package.keywords и package.unmask(где они распаложенны и как их открыть описанно выше).
Если же нужно просто замаскировать какой либо пакет, то создаем файл /etc/portage/package.mask и в него вносим полные имена с версией маскируемых пакетов. Кстати, здесь работает простейшая математическая логика, например если мы напишем такую строку =gnome-base/gnome-2.26.0 , то замаскируется пакет только указанной вами версии, если же вы введёте =>gnome-base/gnome-2.26.0 то замаскируются все пакеты версией выше и указанной вами, если же вы введёте <gnome-base/gnome-2.26.0 то замаскируются все пакеты версией ниже вами указанной. Установите пакет gentoolkit, он вам очень пригодится.
Боятся здесь нечего, если вы будете аккуратны и внимательны то с вашими данными ничего не случится.
Не забрасывайте установочный диск, вдруг вы что-то натворили он вам поможет. С помощью него вы, например, можете пересобрать ядро системы если вы даже удалили его и ваша система на жёстком диске не грузится и из других, казалось бы смертельных случаев для ОС он вам поможет выпутаться.
Если при установке пакета сборка завершается с ошибкой о отсутствии какой-то библеотеке, Попробуйте выполнить команду из пакета gentoolkit:


# revdep-rebuild

Если же это не поможет попробуйте поискать пакет с именем как у отсутствующей библеотеке:
# emerge -s <имя_библеотеки>
Пока больше ничего в голову не приходит. И на последок: не так страшен черт как его малюют.


Плюсы и минусы

Как известно нельзя выделять положительные и отрицательные стороны просто так из ничего, только в сравнении можно выделить эти качества. Я буду сравнивать Gentoo c Ubuntu, т.к. Ubuntu, на мой взгляд, самый распрастраненный дистрибьютив.

Минусы:

Сложность установки. Без комментариев.
Устаревшая система инициализации SysVInit. Я говорил о ней в начале и это решаемо.
Сложность управления пакетами.
Необходим хороший доступ к сети интернет.

Плюсы:

Быстродействие. Мы собираем ОС только под свой компьютер без обратной совместимости со старым оборудованием и без поддержки другого оборудования, мы устанавливаем только нам необходимое и нужное.
Нет параноидальной борьбы за свободное ПО.
Нет лишних и ненужных нам вещей.
Быстрое обновление.
Полная свобода выбора, что хотим то и ставим. Испытываем беты версии, новые ядра и т.д., что душа пожелает.
Познаем линукс, учимся с ним работать и глубже понимаем его.



Автор: Daniel Robbins изначальный разработчик Gentoo
Перевод: Логинов Игорь........................................ ..

evgenreklama
26.01.2010, 12:01
есть такая противная вещь, как gentoo live cd/dvd, с которой почему-то все пытаются ставить эту самую генту. Оно конечно проще два раза кликнуть по кнопочкам - но инсталлятор у генты глючен до невозможности, руками действительно _проще_.

q2e
13.10.2011, 14:26
Подскажите почему не формируется #nano etc/conf.d/clock