[УСТАРЕЛО] Gentoo: краткий обзор и HOWTO INSTALL

  • VolandVoland 28.02.2011
    Доброго времени суток, Пингвинус! По просьбе пользователей Akellacom (http://pingvinus.ru/user/akellacom) и Cowpland (http://pingvinus.ru/user/cowpland) излагаю свое впечатление об OS GNU/Linux Gentoo.
    Сразу хочу пояснить — я не асс и на Gentoo смотрю пока еще удивленно раскрыв рот, время от времени произнося: «Ой, а ты чего это такое???». Это намек на то, дорогие Пингвинщики, что от сложных вопросов я могу прийти в уныние. Также инструкции, которые приведены мной ниже не совсем верны (за то, что я сделал с USE флагами, необходимо карать всеми доступными способами, но я планирую все оптимизировать) И так, приступим...
  • VolandVoland 28.02.2011
    Во-первых я был напуган тем, что система распространяется в виде двух основных архивов - stage3 и portage - исходные коды и базовая система. Последний раз я видел инсталлятор в Gentoo 2007 или даже 2006. В начале я сетовал на отсутствие программы-установщика, теперь понимаю, что все так, как и должно быть. Следует заметить, что для установки Gentoo необходимо хорошее подключение с интернету (мне хватило 3G USB модема) и уже установленный дистрибутив какого-нибудь линукса на жестком диске. Или же Live-DVD с какими нибудь дистрибутивом. Главное, чтобы вы могли поднять в нем интернет и монтировать разделы. Я опишу лишь установку на своей машине, а "слышащий, да услышит", читающий, да почитает Gentoo Handbook (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml). Для установки и разбороа полетов с системой portage хэндбук - это незаменимая книга.
  • VolandVoland 28.02.2011
    Основная соль в Gentoo приходится на файл /etc/make.conf и конкретно на USE флаги. USE - это переменная, которая говорит программе emerge поддержка чего должна быть собрана в компилируемом пакете и какие зависимости за собой тянуть. Если нам не нужна поддержка KDE и Qt то USE флаг будет USE="-kde -qt (остальные флаги)". Настроить эту переменную можно глобально в make.conf или локально
    USE="-kde -qt (остальные флаги)" emerge имя_пакета
    Это как плюс, так и минус системы:
    [+] можно собрать ОС исключительно под свои нужды и с поддержкой только необходимых библиотек
    [-] (?+) новичкам в таких открытых ОС будет работать сложновато и придется много гуглить первое время
    Безусловно является плюсом то, что большинство настроек производится вручную, что обязывает вникать в систему и изучать ее изнутри. За 2 года пользования Debian я могу сказать: друзья, я ничего не знал о линуксе до знакомства с Gentoo и Slackware! Но Слака - это отдельная история...
  • VolandVoland 28.02.2011
    Gentoo - это система на века. Ты устанавливаешь ее и после этого тебе остается лишь обновлять систему время от времени. Стабильная, простая (серьезно) в эксплуатировании. Наверное одна из лучших ОС семейства Unix-Like на базе Linux. Система Portage (http://ru.wikipedia.org/wiki/Portage) сама отслеживает и скачивает с зеркала необходимые зависимости для того или иного приложения. В Slackware например все отслеживание зависимостей ложится на плечи администратора, что неплохо с одной стороны для изучения Linux, но плохо для продуктивного ежедневного использования на Desktop.
  • VolandVoland 28.02.2011
    Теперь я хочу провести краткую экскурсию по установке Gentoo Linux. Еще раз предупреждаю - мой мануал не вполне верен, пользуйтесь гуглом и поддержкой знающих людей. Я написал инструкцию лишь для того, чтобы вам проще было понять английский Gentoo Handbook (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml). И так...

    Руководство: Gentoo Linux Install

  • VolandVoland 28.02.2011
    Gentoo я устанавливал из уже имеющейся OS Debian. Всего в моем ПК 3 жестких диска:
    - IDE железка с виндой (на ней же загрузочный сектор)
    - SATA железка с Debian
    - SATA железка с Gentoo (в начале она была пустая)
    Потому мой рассказ будет вестись именно с этого ракурса.
    Прежде всего я скачал два архива Gentoo: stage3 и portage. Для архитектуры x86 привожу ссылки:
    - Зеркало Yandex (http://mirror.yandex.ru/gentoo-distfiles/ef=)
    - Stage3 (http://mirror.yandex.ru/gentoo-distfiles/releases/x86/current-stage3/)
    - Portage (http://mirror.yandex.ru/gentoo-distfiles/releases/snapshots/current/)
    Необходимо скачать архив portage-latest.tar.bz2 (это последнее обновление). Теперь можно приступить к нарезке диска.
    Как уже говорилось ранее, установку я буду описывать относительно Debian. Вы можете проводить установку даже с любого Live-DVD, лишь бы могли поднять в этом Live инет. И так, я нахожусь в Debian на устройстве sda, чистый диск для Gentoo — sdb. За схему я решил взять стандартную разбивку:
    - /dev/sdb1 ext2 /boot (с меткой boot) 1 Gb
    - /dev/sdb2 swap 1Gb
    - /dev/sdb3 ext3 все оставшееся место
    Размеры и кол-во разделов могут варьироваться в зависимости от нужд пользователя. В Gentoo Handbook приводится мануал по использованию fdisk (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=4#fdisk) для разбиения жесткого диска. Новички, заклинаю вас — вопреки крикам труъ линуксойдов о всех прелестях консоли, используйте утилиту типа gparted. Это не вижу смысла рыться в консоли там, где гуй значительно лучше. Как бы то ни было, диск разбит и нам необходимо примонтировать его и распаковать базовую систему. Теперь уже открываем эмулятор терминала, делаем su root и работаем рутом. Для начала создадим необходимые папки:
    mkdir /mnt/gentoo
    mount -t auto /dev/sdb3 /mnt/gentoo
    mkdir /mnt/gentoo/boot
    mount -t auto /dev/sdb1 /mnt/gentoo/boot
    Перед распаковкой необходимо проверить корректность даты и времени. Если что-то не так — настраиваем. Далее распаковываем базовую систему на устройство:
    tar xvjpf /путь/до/stage3.tar.bz2 -C /mnt/gentoo
    tar xvjf /путь/до/portage-latest.tar.bz2 -C /mnt/gentoo/usr
  • VolandVoland 28.02.2011
    Сразу же настроим опции для компилятора:
    mkdir /mnt/gentoo/usr/portage/local
    nano /mnt/gentoo/etc/make.conf
    В make.conf необходимо указать начальные параметры — опции компиляции, USE флаги. Изначально я сделал так:
    # These settings were set by the catalyst build script that automatically
    # built this stage.
    # Please consult /usr/share/portage/config/make.conf.example for a more
    # detailed example.
    CFLAGS="-O2 -march=i686 -pipe"
    CXXFLAGS="${CFLAGS}"
    
    # WARNING: Changing your CHOST is not something that should be done lightly.
    # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
    CHOST="i686-pc-linux-gnu"
    
    # Number of jobs for your compiler
    MAKEOPTS="-j3"
    
    # Mirrors, what you like for your OS
    
    SYNC="rsync://mirror.yandex.ru/gentoo-portage"
    GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles"
    
    ACCEPT_KEYWORDS="~x86"
    FEATURES = "ccache"
    PKGDIR="/usr/portage/packages"
    PORTAGE_TMPDIR="/var/tmp"
    PORTDIR="/usr/portage"
    PORTAGE_CONFIGROOT="/"
    PORTDIR_OVERLAY="/usr/portage/local"
    INPUT_DEVICES="keyboard mouse vmouse"
    VIDEO_CARDS="nvidia"
    LINGUAS="ru"
    
    USE="X a52 aac acl acpi alsa berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus doc dri dts dvd dvdr emboss encode exif fam firefox flac fontconfig fortran gdbm gdu gif gnome gpm gtk iconv ipv6 jpeg kde kdrive lcms ldap libnotify mad mikmod mng modules mp3 mp4 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png policykit ppds pppd python tk qt3support qt4 readline sdl session sip spell sqlite ssl startup-notification svg sysfs tcpd tiff truetype udev unicode usb vorbis wav x86 xcb xml xorg xulrunner xv xvid zlib jadetex x264 static-libs sasl apache2 gd mysql mysqli hal"

    MAKEOPTS="-j3" - это опция -j для программы make. Она говорит сколько процессов назначать при компиляции. Если одно ядро установите j2, если 2 ядра, то j3, и так далее. Число ядер процессора +1.
    Опции
    VIDEO_CARDS=""
    ALSA_CARDS=""
    говорят о поддержке видео и звуковых карт.

    Возможные значения можно посмотреть в
    nano /usr/portage/profiles/desc/video_cards.desc
    nano /usr/portage/profiles/desc/alsa_cards.desc
    Однако устанавливать эти значения на данном этапе не обязательно.
  • VolandVoland 28.02.2011
    Теперь (в OS, в которой мы находимся, долже нбыть подключен интернет) мы копируем информацию о DNS и примонтируем необходимые разделы:
    cp -L /etc/resolv.conf /mnt/gentoo/etc/
    mount -t proc proc /mnt/gentoo/proc
    mount -o bind /dev /mnt/gentoo/dev
    mount -t devpts devpts /mnt/gentoo/dev/pts
    mount -t tmpfs shm /mnt/gentoo/dev/shm
    Все, можно чрутиться в Gentoo. Колдуем:
    chroot /mnt/gentoo /bin/bash
    env-update
    source /etc/profile
    export PS1="(chroot) $PS1"
  • VolandVoland 28.02.2011
    Обновим дерево портежей:
    # emerge --sync

    Выведем список профилей установки:
    # eselect profile list
    Available profile symlink targets:
      [1]   default/linux/x86/10.0 *
      [2]   default/linux/x86/10.0/desktop
      [3]   default/linux/x86/10.0/server
    Поскольку мне необходим был десктоп, я выбрал профиль default/linux/x86/10.0/desktop командой:
    eselect profile set 2
    Тут уже все от нужд и предпочтений пользователя зависит. В /etc/locale.gen я добавил локали:
    en_US.UTF-8 UTF-8
    en_US ISO-8859-1
    ru_RU.KOI8-R KOI8-R
    ru_RU.UTF-8 UTF-8
    ru_RU ISO-8859-5
    ru_RU.CP1251 CP1251
    Затем выполняем:
    locale-gen
  • VolandVoland 28.02.2011
    И переходим к настройке ядра. Устанавливаем временную зону:
    ls /usr/share/zoneinfo
    cp /usr/share/zoneinfo/GMT /etc/localtime
    echo "GMT" > /etc/timezone
    Далее выполняем:
    emerge portage
    etc-update
    И загружаем исходники ядра и устанавливаем нужные программы:
    emerge gentoo-sources
    emerge gentoolkit
    # по желанию ставим прогу для управления USE
    emerge -u ufed
    Гораздо лучше, чем я, вам о ядре расскажет
    - Gentoo Handbook (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7)
    Дам лишь пару рекомендаций:
    1) поддержка SATA IDE дисков должна быть вкомпилирована в ядро, А не выполнена модулем. Иначе система просто не загрузится.
    2) устанавливайте нормальным способом:
    после конфигурирования ядра колдуем:
    make bzImage
    make modules
    make modules_install
    make install
    3) если вы будете использовать бинарники драйверов от nVidia, то отключите в ядре поддержку nVidia карт (погуглите на эту тему, не ленитесь!).
    Отключить поддержку nVidia можно тут:
    Device Drivers --->
        Graphics support  --->
            Support for frame buffer devices --->
                < >   nVidia Framebuffer Support
                < >   nVidia Riva support
    Если что-то не будет получаться, то все проблемы будут решаться пересборкой ядра.
  • VolandVoland 28.02.2011
    И так, ядро собрано. Нам необходимо поднять fstab.
    # nano /etc/fstab
    /dev/sdb1   /boot        ext2    defaults,noatime     1 2
    /dev/sdb2   none         swap    sw                   0 0
    /dev/sdb3   /            ext3    noatime              0 1
    /dev/sr0  /mnt/cdrom   auto    noauto,user          0 0
    proc        /proc        proc    defaults             0 0
    shm         /dev/shm     tmpfs   nodev,nosuid,noexec  0 0
    Так выглядит мой файл с разделами. Тут уже все зависит от вашей разметки.

    Теперь займемся настройкой основных параметров. Установим имя хоста (нашей машины). Я нескромно назвал ее hacker:
    # nano /etc/conf.d/hostname
    HOSTNAME="hacker"

    Домен для сети (я оставил по хэндбуку, но DHCP не использовал):
    # nano /etc/conf.d/net
    dns_domain_lo="homenetwork"
    config_eth0=( "dhcp" )

    И добавляем в демоны
    # rc-update add net.eth0 default

    Настраиваем hosts:
    nano -w /etc/hosts
    127.0.0.1     hacker.homenetwork hacker localhost

    Устанавливаем пароль рута командой:
    # passwd

    Если нужно, то редактируем
    /etc/rc.conf
    /etc/conf.d/keymaps

    Настраиваем часы (это НЕ правильно, гуглим на эту тему. Просто таблетку я пока не нашел):
    nano /etc/conf.d/hwclock
    clock="local"
    clock_systohc="NO"
    clock_args=""

    Устанавливаем необходимые программы. Во-первых:
    # emerge ccache

    # emerge syslog-ng
    # rc-update add syslog-ng default

    # emerge vixie-cron
    # rc-update add vixie-cron default

    # emerge mlocate
    # USE="-gtk" emerge evms
    # emerge dhcpcd
    # emerge ppp
    # emerge wvdial

    Поскольку граб я использую дебиановский, то я в gentoo его не поднимал, а просто дописал загрузку генты. Если кому-то нужен граб, то курим тут (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10)

    Установка базовой системы закончена.

    # exit
    # cd
    # umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
    # reboot
Эта тема закрыта. Новые ответы добавлять нельзя.
← Все темы