unix 2012-01-01 12-08-01
Распространенные вопросы о Gentoo Linux
Как произносится слово Gentoo, и что оно означает?
Gentoo (Хинду) это вид маленького и быстрого пингвина, произносится по-английски как "gen-too" (джин-туу). Научное название пингвина - Pygoscelis papua. Имя Gentoo было дано пингвину жителями Фолклендских (Мальвинских) Островов (Islas Malvinas). По-русски прижилось произношение Gentoo как "генту".
Что делает Gentoo особенным?
Gentoo использует похожую на порты BSD систему, называемую Portage (англ.). Portage - это система управления пакетами, дающая огромную гибкость при установке и сопровождении программного обеспечения в системе Gentoo. Она предоставляет поддержку директив времени компиляции (с помощью USE-флагов), условные зависимости, сведения о пакете перед его установкой, безопасную установку (через "песочницу") и удаление ПО, системные профили, защиту конфигурационных файлов, а также многие другие возможности.
С Gentoo вы можете построить всю свою систему из исходных кодов, используя необходимую вам оптимизацию. Вы полностью контролируете, какие пакеты устанавливать, а какие нет. Gentoo предоставляет множество вариантов установки, удовлетворяющие вашим запросам, поэтому его называют метадистрибутивом.
Gentoo активно развивается. Поддерживается высокий темп разработки: заплатки быстро включаются в основное дерево проекта, документация обновляется ежедневно, часто добавляются новые функции в Portage, а официальные выпуски выходят дважды в год.
3. Установка
Все работает очень нестабильно, мои флаги оптимизации "-O9 -ffast-math -fomit-frame-pointer". В чем проблема?
Не пробуйте использовать что-либо выше, чем -O3 т.к. это не поддерживается текущими версиями gcc. Очень агрессивная оптимизация иногда заставляет компилятор изменять ассемблерный код так, что он уже выполняет несколько другие действия, чем предполагалось.
Попробуйте компилировать с флагами CFLAGS -O2 -march=<your_arch> прежде чем сообщать об ошибках.
Как изменить пароль root (или любого другого пользователя)?
Используйте passwd, чтобы сменить пароль пользователя, под именем которого вы вошли. Как root, вы можете сменить пароль любого пользователя в системе командой passwd username. Дополнительные параметры смотрите на странице: man passwd.
Как добавить обычного пользователя?
Команда adduser username добавит пользователя с именем "username". Однако, такой метод не даст пользователю некоторые права которые вы, возможно, хотите ему предоставить, поэтому предпочтительней использовать:
Листинг 3.1: Использование useradd
# useradd -m -G users,audio,wheel username
В итоге в системе появится пользователь с именем "username". Параметр audio добавит его в группу audio и позволит пользователю работать со звуковыми платами. Параметр wheel добавит пользователя в группу wheel, которая позволит ему запускать команду su, чтобы получить привилегии суперпользователя.
Почему пользователь не может получить права root командой su?
В целях безопасности, пользователи могут выполнять команду su, только если они состоят в группе wheel. Чтобы добавить пользователя в группу wheel, выполните следующую команду из-под root:
Листинг 3.2: Добавление пользователя в группу wheel
# gpasswd -a username wheel
Как отключить devfs?
Gentoo может работать с devfs, udev, а так же поддерживает статический /dev. С появлением ядра 2.6, которое стабильно на большинстве архитектур, рекомендуется использовать udev. Информацию по настройке udev можно найти в Руководстве по udev.
Если вы хотите использовать статический /dev, установите параметр RC_DEVICES="static" в /etc/conf.d/rc.
Могу ли я обновить Gentoo без переустановки?
На самом деле, нет разницы между разными версиями после их установки. Gentoo 1.4 и старше основаны на glibc-2.3.x. Поэтому, выполнив emerge --sync && emerge -uDN world, вы приведете свою систему в самое актуальное состояние (latest Gentoo). Различия между отдельными версиями Gentoo заключаются в установочных носителях и прекомпилированных пакетах. Подробнее о профилях и о их роли при обновлении смотрите в руководстве по обновлению Gentoo.
Ядро не загружается (правильно), что мне теперь делать?
Вы не обязаны повторять каждый шаг установки, но понимание ядра и связанных с ним этапов установки необходимо. Предположим, вы установили Gentoo на /dev/hda1 (точка монтирования /boot) и /dev/hda3 (точка монтирования /) с разделом подкачки /dev/hda2:
Листинг 3.3: Конфигурация ядра
Загрузитесь с установочного CD и дождитесь приглашения
командной строки
Сначала примонтируем все разделы:
# mount /dev/hda3 /mnt/gentoo
# mount /dev/hda1 /mnt/gentoo/boot
# swapon /dev/hda2
# mount -t proc none /mnt/gentoo/proc
Затем перейдем в вашу систему командой chroot
и настроим ядро:
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# cd /usr/src/linux
# make menuconfig
Отметьте/уберите все что по вашему вы отметили/убрали неправильно
в прошлый раз
Затем выходите и откомпилируйте ядро:
# make && make modules_install
Теперь замените bzImage новой его версией:
# cp arch/i386/boot/bzImage /boot/<kernel_name>
Если используете LILO, выполните lilo; пользователи GRUB - пропустите этот шаг:
# /sbin/lilo
Теперь выйдите из среды chroot и перезагрузитесь.
# exit
# umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
# reboot
С другой стороны, проблема может быть с вашим загрузчиком; тогда поступите так же, только вместо конфигурирования/компилирования ядра перенастройте свой загрузчик (его перекомпиляция не нужна).
Мой прокси-сервер требует аутентификации, что делать?
Чтобы Portage автоматически использовал реквизиты, определите их в /etc/make.conf:
Листинг 3.4: /etc/make.conf
HTTP_PROXY="http://username:password@yourproxybox.org:portnumber"
FTP_PROXY="ftp://username:password@yourproxybox.org:portnumber"
RSYNC_PROXY="rsync://username:password@yourproxybox.server:portnumber"
Как записать ISO файл на компакт-диск?
Вам необходимо записать его в raw-режиме. Это означает что вам нужно НЕ просто поместить его на CD, а интерпретировать сам файл как CD.
Существует множество утилит для записи CD; рассказывать о них всех будет сизифовым трудом. Однако описать несколько популярных никогда не повредит:
Используя EasyCD Creator, выберите File, Record CD from CD image. Затем поменяйте тип файла на ISO image file. Найдите ISO-файл и кликните Open. При нажатии на Start recording, ISO образ будет записан на диск.
Используя Nero Burning ROM, закройте мастер, автоматически появляющийся при запуске, нажмите Burn Image из меню File. Выберите необходимый образ и нажмите Open. Теперь нажмите кнопку Burn и наблюдайте за процессом прожига вашего нового CD.
Используя cdrecord, просто наберите cdrecord dev=/dev/hdc (заменив /dev/hdc именем своего CD-RW привода), а затем имя ISO образа :)
Используя K3B, выберите Tools > CD > Burn CD Image. Затем найдите ISO образ, используя окно 'Image to Burn'. Наконец, Нажмите Start.
В Mac OS X Panther, запуститеDisk Utility из Applications/Utilities, нажмите Open из меню Images, в главном окне выберите примонтированный образ диска и нажмите Burn в меню Images.
В Mac OS X Jaguar, запустите Disk Copy из Applications/Utilities, выберите Burn Image из меню File, найдите образ ISO и нажмите кнопку Burn.
Какой диск/стадию надо использовать с моим процессором?
Для начала надо узнать, что за процессор вы используете. Предположим, что это Pentium-M. Теперь необходимо найти, с какими инструкциями процессора он совместим. Вы можете проконсультироваться на сайте производителя, однако обычно достаточно погуглить :-).
Если вы не уверены, выберите "меньший" файл CD/stage, например, от i686 или даже универсальный x86 (или эквивалентный в своей архитектуре). Так вы можете быть уверены, что ваша система точно заработает, но будет работать не так быстро, как если бы она была скомпилирована с использованием флагов оптимизации.
Учтите, что существует намного больше параметров, чем те с которыми скомпилированы бинарные пакеты Gentoo. Чтобы правильно выставить -march, ознакомьтесь с gcc guide.
Я не могу выйти в интернет после перезагрузки. В чем может быть дело?
Для начала проверьте, правильно ли определилась ваша сетевая карта ядром. Выполните ifconfig -a, найдите eth0 или wlan0 (если у вас беспроводная карта). Возможно, потребуется загрузить специфичный модуль ядра, чтобы ядро правильно опознало вашу сетевую карту. Если так, то убедитесь, что эти модули ядра перечислены в /etc/modules.autoload.d/kernel-2.6 (или kernel-2.4, если вы до сих пор используете ядро 2.4).
Если вы забыли включить поддержку вашей карты в ядро, придется его переконфигурировать (и пересобрать).
Если ваша сетевая карта найдена ядром, но настроена на использование DHCP, то вы могли забыть установить dhcpd (emerge dhcpcd). Необходимо загрузиться с установочного CD, чтобы установить dhcpcd.
О том, как восстановить вашу систему, используя установочный CD, смотрите здесь.
Я хочу загрузить Windows из GRUB или LILO, но вижу только черный экран. Что делать?
Это известная проблема. Windows отказывается грузиться и показывает черный/пустой экран, если установлен не на первый жесткий диск. Чтобы исправить ситуацию, надо, используя настройку загрузчика, "надурить" Windows, чтобы она "думала" что установлена на первый жесткий диск. Учтите, что в следующем примере Gentoo установлен на hda (первый диск), а Windows на hdb (второй). Подправьте ваш конфигурационный файл соответственно.
Листинг 3.5: Пример двойной загрузки для Windows в grub.conf
title Windows XP
map (hd1) (hd0)
map (hd0) (hd1)
rootnoverify (hd1,0)
chainloader +1
Листинг 3.6: Пример двойной загрузки для Windows в lilo.conf
other=/dev/hdb1
label=WindowsXP
table=/dev/hdb
map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80
Это заставит Windows поверить, что она установлена на первый жесткий диск, и грузиться без проблем. Дополнительную информацию можно найти в разделе Документация GRUB и в man lilo.conf, смотря, какой загрузчик используете.
Как установить Gentoo, используя файл Stage1 или Stage2?
Настольная книга Gentoo только объясняет, как установить ОС, используя файл stage3. Однако, все еще осталась возможность установки из stage1 или stage2. Возможность оставлена для нужд разработчиков (команда Release Engineering начинает со stage1, чтобы получить stage3), но не обязательна к использования пользователями: файл stage3 тоже очень хорошо подходит для самогенерации системы. Вам потребуется соединение с Интернетом.
Самогенерация (bootstrapping) - построение набора инструментов (библиотека Си и компилятор) для системы, после чего устанавливаются пакеты, входящие в ядро системы. Чтобы сгенерировать систему, выполните установку со stage3. Перед главой настройка ядра, отредактируйте сценарий bootstrap.sh под ваши нужды, а затем выполните его:
Листинг 3.7: Самогенерация системы
# cd /usr/portage/scripts
# vi bootstrap.sh
# ./bootstrap.sh
Затем пересоберите все ключевые системные пакеты только что собранным набором (библиотека - компилятор). Нам необходимо пересобрать их т.к. в файле stage3 они уже есть:
Листинг 3.8: Пересборка ключевых системных пакетов
# emerge -e system
Теперь можно переходить к настройке ядра. Прекомпилированные пакеты GRP больше использовать нельзя.
4. Управление пакетами
В каком формате хранятся пакеты?
Пакеты не "хранятся". Вместо этого Gentoo предоставляет набор сценариев, которые могут разрешать зависимости, закачивать исходный код, и компилировать версию пакета именно под ваши нужды. В общем, мы собираем двоичные файлы только для выпусков (версий) и снимков (snapshots). Gentoo Ebuild HOWTO (англ.) рассказывает о содержимом сценариев ebuild в деталях.
Для полных ISO-выпусков, мы создаем полный набор двоичных пакетов в расширенном .tbz2 формате, который совместим с .tar.bz2 и включает метаинформацию, присоединенную к концу файла. Они могут использоваться для быстрой и эффективной установки работающей (правда, не очень оптимизированной) версии пакета.
Также возможно создать RPM (файлы Redhat package manager) средствами Gentoo, но на данный момент нельзя использовать уже готовые RPM для установки.
Я хочу выполнить сценарий ./configure сам. Возможно ли это?
Да, но это не так просто, и не рекомендуется. Т.к. вы все равно должны понимать, как работает Portage, то лучше сделайте заплатку для ebuld-файла, выполняющую то, что вы хотите, и положите ebuild-файл в оверлей Portage (для этого он и существует). Такой подход более подходит для поддержки, и обычно легче. Чтобы узнать больше, см. Ebuild HOWTO (англ.).
Как использовать emerge, если я за межсетевым экраном?
Смотрите вопросы о proxy, rsync, и Закачка исходных кодов вручную.
Что делать, если rsync мне не подходит?
Если вы за межсетевым экраном, который не пропускает rsync трафик, то вы можете использовать emerge-webrsync, который закачает и установит снимок дерева Portage через обычный HTTP. Обратите внимание на раздел proxy этого документа, чтобы выяснить, как закачивать исходные коды и снимки Portage через прокси-сервер.
У меня дома лишь слабое модемное подключение. Могу ли я скачать исходные коды в другом месте, а затем добавить их в систему?
Конечно. Выполните emerge --pretend package, чтобы понять, какие программы необходимо установить. Чтобы увидеть, какие исходные коды необходимо скачать и откуда, выполните emerge -fp package. Закачайте исходники, и принесите их на любом носителе домой. Скопируйте их в /usr/portage/distfiles/, затем просто наберите emerge package. Но имейте в виду: это нудное занятие.
Исходные коды хранятся в /usr/portage/distfiles. Безопасно ли удалить их?
Удаление этих файлов никак не повлияет на каждодневную производительность. Однако лучше оставить самые последние версии файлов; часто несколько файлов ebuild выпускаются с расчетом на одну и ту же версию исходных кодов. В таком случае, если вы удалили архивы с исходными текстами, а затем решили обновить ПО, потребуется заново скачать нужные исходники через Интернет. Существуют программы, разработанные пользователями, для удаления всех исходников, кроме самых последних версий. Заметьте, они хоть и работают, но официально не поддерживаются. Используйте их на свой страх и риск.
Что находится в /var/tmp/portage? Можно ли удалить файлы и каталоги из /var/tmp/portage?
Во время компиляции, Gentoo сохраняет исходники пакетов в /var/tmp/portage. Эти файлы и каталоги обычно удаляются после успешной установки, но не всегда. Можете спокойно очищать этот каталог, если emerge не запущен. Чтобы быть уверенным, всегда выполняйте pgrep emerge перед отчисткой каталога.
5. Использование
Как установить международную раскладку клавиатуры?
Отредактируйте переменную KEYMAP в файле /etc/conf.d/keymaps. Чтобы консоль заработала правильно с расширенными знаками вашей раскладки, вам может также потребоваться настроить переменные CONSOLETRANSLATION и CONSOLEFONT у себя в /etc/conf.d/consolefont (за дальнейшими сведениями о локализации своей среды обращайтесь к нашему руководству по локализации (англ.). Затем выполните перезагрузку (reboot), или перезапустите сценарии keymaps и consolefont:
Листинг 5.1: Перезагрузка keymaps
# /etc/init.d/keymaps restart
# /etc/init.d/consolefont restart
Разрешение имен DNS работает только у суперпользователя.
У файла /etc/resolv.conf неправильно выставлены права; Выполните chmod, как описано ниже:
Листинг 5.2: Смена прав /etc/resolv.conf
# chmod 0644 /etc/resolv.conf
Почему мой пользователь не может использовать свой файл crontab?
Вы должны внести своего пользователя в группу cron.
Как включить numlock при загрузке?
Если вы работаете в командной строке, вам всего лишь необходимо выполнить rc-update add numlock default &&/etc/init.d/numlock start.
Каждый GUI предоставляет собственные средства для этого; смотрите раздел справки или руководство.
Как сделать очистку терминала при выходе?
Для этого добавьте clear в ваш сценарий ~/.bash_logout:
Листинг 5.3: Очистка терминала при выходе
$ echo clear >> ~/.bash_logout
Если вы хотите, чтобы у новых пользователей это работало автоматически, добавьте ту же строку в /etc/skel/.bash_logout:
Листинг 5.4: Очистка экрана при выходе у новых пользователей
# echo clear >> /etc/skel/.bash_logout
Не удается запускать X приложения из-под root'а (после su)
Похоже, что эта проблема появляется только при графическом входе. Пользователи, использующие startx, с ней не сталкиваются. Проблема в Gentoo's PAM, однако выход довольно прост: добавьте следующую строку в файл /etc/profile.
Листинг 5.5: Экспорт XAUTHORITY
export XAUTHORITY="${HOME}/.Xauthority"
6. Сопровождение
ReiserFS и порча файловых систем - как исправить, и т.п.
Если раздел с ReiserFS испорчен, попытайтесь загрузится с установочного диска Gentoo и выполните reiserfsck --rebuild-tree на испорченной файловой системе. Эта команда предназначена для восстановления файловой системы, но все же из-за ее повреждения некоторые файлы или каталоги могут быть утеряны.
7. Разработка
Где оставлять сообщения об ошибках?
Используйте нашу систему Bugzilla. Если вы не уверены в актуальности ошибки, можете зайти на канал #gentoo в сети IRC FreeNode
Как часто появляются новые стабильные выпуски?
Пакеты Gentoo обычно обновляются вскоре после обновления основного кода программы. А если речь идет о том, как часто выходят файлы стадий/профили/выпуски ISO самого дистрибутива, смотрите страницу Release Engineering Project (англ.) Новые стабильные версии анонсируются в списке рассылки gentoo-announce. Смотрите вопрос об обновлении.
Мой динамик орет как сумасшедший. Как выключить динамик в консоли?
Консольные звуки можно выключить, используя setterm:
Листинг 7.1: Использование setterm
# setterm -blength 0
Если вы хотите, чтобы звуки выключались при загрузке, поместите эту команду в сценарий /etc/conf.d/local.start. Однако, это избавит вас от звуков только в текущем терминале. Чтобы выключить звук и на других терминалах, перенаправьте вывод команды на нужный терминал:
Листинг 7.2: Использование setterm (bis)
# setterm -blength 0 >/dev/vc/1
Нужно заменить /dev/vc/1 на терминал, в котором вы хотите выключить звук.
8. Ресурсы
Где найти информацию о Gentoo Linux?
Официальная документация Gentoo находится по адресу http://www.gentoo.org/doc/ru/.
Могу ли я купить CD с Gentoo Linux?
Установочные диски для всех поддерживаемых архитектур имеются в нашем магазине Gentoo. При покупке дисков в нашем магазине, вы поддерживаете разработку дистрибутива. Поэтому, если можно, покупайте диски у нас.
Также список продавцов находится на странице загрузки Gentoo Linux.
В этом списке нет ответа на мой вопрос. Что делать?
В первую очередь, просмотрите соответствующую документацию, если это не помогло, в Google можно найти всевозможные списки рассылки Gentoo. Чтобы искать в списках рассылки Gentoo, наберите "lists.gentoo.org что-то-там" в строке поиска. Если все попытки тщетны, и вы готовы просто покончить с Gentoo, сходите на irc канал: #gentoo on irc.freenode.net.