This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
FAQ
Данный FAQ — это набор вопросов и ответов, составленный по материалам списка рассылки gentoo-dev и канала Gentoo на Freenode Internet Relay Chat (IRC).
Введение
Обратите внимание, что многие из этих вопросов объясняются в официальных документах и руководствах Gentoo. Это просто список часто задаваемых вопросов. Для изучения работы Gentoo и GNU/Linux вообще, а также поиска ответов на вопросы, не освещенные в данной статье, можно обратиться к документации и man-страницам.
Приступаем к настройке
Как произносится слово Gentoo, и что оно означает?
Gentoo произносится как “gen-too” (джен-ту), буква “g” в слове “Gentoo” — мягкая, как в слове “gentle” (джентл). (Информация о произношении актуальна для английского языка. Распространенные русские варианты: Гéнту и Гентý. — Прим. пер.) Научное имя пингвина Gentoo — Pygoscelis papua. Имя Gentoo было дано пингвину населением Фолклендских островов.
Что делает Gentoo особенным?
Gentoo использует систему, похожую на порты BSD, называемую Portage. Portage — это система управления пакетами, которая позволяет достичь большой гибкости при установке и поддержке программного обеспечения в системе Gentoo. В ней есть поддержка параметров во время компиляции (с помощью USE-флагов), условные зависимости, информация об устанавливаемых пакетах, безопасная установка программного обеспечения (с помощью песочницы), системные профили, защита файлов конфигурации, а также многие другие возможности.
По умолчанию в Gentoo вся система собирается из исходного кода, используя выбранные пользователем параметры оптимизации. Пользователь имеет полный контроль над тем, какие пакеты устанавливать, а какие нет. В Gentoo многое можно выбрать самому, собрав систему в соответствии со своими предпочтениями. Поэтому Gentoo называют метадистрибутивом.
Gentoo активно развивается. Весь дистрибутив разрабатывается в быстром темпе: патчи к пакетам быстро интегрируются в основное дерево, документация обновляется ежедневно, новые возможности часто добавляются в Portage, а официальные релизы происходят дважды в год.
Установка
Все реально нестабильно, если использовать оптимизации '-O9 -ffast-math -fomit-frame-pointer'. Что происходит?
Не пытайтесь использовать уровни оптимизации выше -O3
, это все равно не поддерживается актуальными версиями gcc. Очень агрессивные оптимизации иногда заставляют компилятор ускорять ассемблерный код так, что программа делает уже не совсем то же, что без оптимизаций.
Попробуйте компиляцию с CFLAGS -O2 -march=<архитектура_системы>
перед тем, как отправлять нам отчет об ошибке.
Как изменить пароль root (или любого другого пользователя)?
Для изменения пароля пользователя, под учетной записью которого вошли в систему, можно использовать passwd. Пользователь root может изменять пароль любого пользователя командой passwd имя_пользователя. Для получения списка дополнительных опций и настроек выполните команду man passwd.
Как добавить обычного пользователя?
Команда useradd larry добавляет пользователя larry. Однако при использовании данного метода созданный пользователь не получит многих прав, которые необходимы для нормальной работы, так что следующая команда предпочтительней:
root #
useradd -m -G users,audio,wheel larry
Данная команда создаст пользователя с именем larry. Параметр -G
приведет к включению пользователя в группы:
users
стандартную группу интерактивных пользователей системыaudio
позволит пользователю получить доступ к аудиоустройствамwheel
даст возможность выполнять команду su, для получения root привилегий (если известен пароль root).
Не выходит получить права root’а с помощью команды su. Из-за чего это может происходить?
По причинам, связанным с безопасностью, пользователи могут использовать команду su для повышения прав только, если они состоят в группе wheel. Чтобы добавить пользователя username к группе wheel, выполните следующую команду от пользователя root:
root #
gpasswd -a <username> wheel
Можно ли обновить Gentoo с одного выпуска до другого без переустановки?
После установки между разными выпусками нет, в сущности, никаких различий. Система Gentoo версии 1.4 или более поздней основана на glibc-2.3.x
(или выше). Поэтому после выполнения команды emerge --sync && emerge -uDN @world ваша система станет «самой новой системой Gentoo». Разница между отдельными выпусками заключается только в различных установочных носителях и заранее скомпилированных пакетах. Более детальная информация о профилях и их роли в обновлении системы находится в руководстве по обновлению Gentoo.
Обратите внимание, что команда emerge -uDN @world обновит установленные пакеты и их зависимости, но не обновит зависимости времени сборки (пакеты, которые нужны только при сборке, и не нужны для работы установленного приложения). Для их обновления добавьте параметр --with-bdeps=y
.
Ядро не загружается, что делать?
Не обязательно повторять всю установку целиком. Однако необходимо изучить ядро и все связанные с ним шаги. Предположим, что Gentoo установлена на /dev/sda1 (/boot) и /dev/sda3 (/), а с /dev/sda2 начинается пространство swap.
Загрузиться с установочного и CD, и дождаться появления приглашения командной строки.
Сначала подключим mount все разделы:
root #
mount /dev/sda3 /mnt/gentoo
root #
mount /dev/sda1 /mnt/gentoo/boot
root #
swapon /dev/sda2
root #
mount -t proc proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
Войдите в режим chroot окружения Gentoo и настройте ядро:
root #
chroot /mnt/gentoo /bin/bash
root #
env-update && source /etc/profile
root #
cd /usr/src/linux
root #
make menuconfig
Снимите или установите те настройки, которые были неправильно выбраны в предыдущей попытке, выйдите и скомпилируйте ядро:
root #
make && make modules_install
Скопируйте файл bzImage, перезаписав предыдущее:
root #
cp arch/i386/boot/bzImage /boot/<kernel_name>
Если используется загрузчик LILO, запустите повторно lilo - пользователи GRUB могут пропустить этот шаг:
root #
/sbin/lilo
Выйдите из режима chroot и перезагрузите систему.
root #
exit
root #
umount -l /mnt/gentoo/dev /mnt/gentoo/sys
root #
umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
root #
reboot
С другой стороны, если проблема заключается в настройке загрузчика, то выполните те же действия, но вместо настройки и компиляции ядра измените настройку загрузчика (перекомпиляция загрузчика, как правило, не нужна).
Мой прокси требует аутентификацию, что делать?
Чтобы Portage автоматически использовал эту схему, запишите её в /etc/portage/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"
Помните, что прокси-сервер должен поддерживать метод CONNECT для портов rsync.
Как записать файл ISO?
ISO-файлы должны записываться в raw режиме. Это значит, что файл не должен просто быть просто размещен на CD-диске, а должен сам интерпретироваться как весь диск.
Существует много приложений для записи CD; попытка описать их все будет Сизифовым трудом. Но описание некоторых наиболее популярных из них не навредит:
- В EasyCD Creator выберите Файл, Записать CD из образа. Далее замените Все файлы на Файлы ISO-образов. После этого найдите ISO-файл на диске и кликните Открыть. После выбора Начать запись ISO-файл будет корректно записан на CD/DVD.
- В Nero Burning ROM, отклоните предложение мастера настройки, который автоматически всплывает, и выберите Записать образ из вкладки Файл. Выберите образ, который собираетесь записать и нажмите Открыть. Теперь нажмите на кнопку Записать и наблюдайте, как новенький образ Gentoo записывается.
- Для cdrecord, просто введите cdrecord dev=/dev/cdrom (замените /dev/cdrom путь до CDROM привода) путём до ISO-файла.
- В K3B, выберите Инструменты → CD → Записать образ. Затем укажите путь к ISO в поле 'Образ'. Нажмите Старт, чтобы начать запись.
- В Mac OS X Panther, запустите Disk Utility из Приложения/Утилиты, выберите Открыть из меню Образы, выберите смонтированный образ диска в главном окне и нажмите Запись в меню Образы.
- В Mac OS X Jaguar, запустите Disk Copy из Приложения/Утилиты, выберите Записать образ из меню Файл, укажите путь к ISO и нажмите кнопку Записать.
Какой CD-диск/stage-архив стоит выбрать для моего процессора?
Для начала, определите, какой процессор у компьютера, на который будет установлена Gentoo (например, Pentium-M). После этого определите, с какой архитектурой он совместим (на уровне инструкций процессора), чтобы найти подходящий установочный диск и stage-архив. Обычно вся необходимая информация присутствует на официальном сайте производителя, хотя запрос в поисковой системе бывает более эффективен.
Когда информация не очень понятна, выбирайте более 'низкую версию' установочного диска/архива stage: к примеру, i686 или даже общую x86 (или эквивалент для системной архитектуры). Это даст некоторую уверенность, что система будет работать, пусть и не будет включать некоторые оптимизации.
Обратите внимание, что существует гораздо больше вариантов архитектур, чем в бинарном виде поставляется Gentoo. См. Руководство по GCC для выставления флага -march
.
Интернет не работает после перезагрузки. Что я делаю не так?
Для начала, проверьте, что сетевая плата првильно определяется ядром. Выполните ifconfig -a и посмотрите на сетевые интерфейсы. В выводе команды должно присутствовать что-то типа eth0, eno1, enp2s0, enp0s8, wlan0 (для некоторых wifi-сетевых плат). Определённые модули ядра могут быть необходимы, чтоб ядро правильно определяло сетевую плату. В этом случае, проверьте, что необходимые модули перечислены в файле /etc/conf.d/modules.
Если поддержка установленной сетевой платы не была включена в используемое ядро, нужно будет переконфигурировать и, в некоторых случаях, пересобрать ядро.
Если сетевая плата "определяется" ядром, но интерфейс был настроен на использование DHCP, есть вероятность, что DHCP-клиент не был установлен. В Gentoo доступно много много DHCP-клиентов, чаще всего используется dhcpcd. Если необходимо получить работающий доступ в интернет, перезагрузитесь с установочного CD и установите net-misc/dhcpcd.
Информация по восстановлению системы с установочного диска также доступна здесь.
Можно сделать двойную загрузку с Windows или другой операционной системой?
Да! Вероятно, самый быстрый способ сделать это, установить GRUB2 и sys-boot/os-prober. Почитайте об этом в статье GRUB2 и конкретно о двойной загрузке при помощи GRUB2 в этой части статьи.
При попытке загрузки Windows из GRUB Legacy или LILO отображается только чёрный экран. Что делать?
Это известная проблема и применима только к старым загрузчикам, таким как GRUB Legacy и LILO. Windows отказывается загружаться с любого жесткого диска, кроме первого, и показывает пустой/черный экран. Чтобы избежать этого нужно заставить Windows "поверить", что она находится на первом жёстком диске с помощью небольшой модификации настроек загрузчика. Обратите внимание, что в примере ниже Gentoo установлена на /dev/sda (первый диск), а Windows - на /dev/sdb (второй диск). Измените конфигурацию как необходимо:
title Windows XP map (hd1) (hd0) map (hd0) (hd1) rootnoverify (hd1,0) chainloader +1
Пример выше действителен для GRUB Legacy, но не для GRUB2. Для информации по поводу двойной загрузки с Windows в GRUB2 смотрите GRUB2.
other=/dev/sdb1 label=WindowsXP table=/dev/sdb map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80
Это заставит Windows думать, что она установлена на первом жётском диске и загружаться без проблем. Больше информации можно найти в официальной документации GRUB и в man lilo.conf.
Как установить Gentoo с использованием архива stage1 или stage2?
Настольная книга Gentoo описывает установку с использованием только stage3-архива. Однако, Gentoo всё ещё поддерживает установку из архивов stage1 и stage2. Это используется в процессе разработки (команда разработки релизов начинает со stage1 для получения stage3), но не должно использоваться обычными пользователями: архив stage3 может быть очень хорошо использован для бутстрапа системы. Необходимо рабочее интернет-соединение.
Бустраппинг (Bootstrapping) подразумевает компиляцию toolchain (библиотеки С и компилятора) для системы, после чего устанавливаются все системные пакеты. Для бутстрапа системы производите обычную установку из stage3. Перед частью "Настройка ядра" может быть необходимо изменить скрипт bootstrap.sh под себя:
root #
cd /usr/portage/scripts
root #
vi bootstrap.sh
После изменения выполните скрпит:
root #
./bootstrap.sh
После этого переустановите все системные пакеты с использованием свежеустановленного toolchain. Их переустановка требуется из-за того, что архив stage3 уже предоставлял их:
root #
emerge -e @system
Теперь продолжайте установку системы с шага "Настройка ядра".
Работа с пакетами
В каком виде распространяются пакеты?
Пакеты не "хранятся". Вместо этого Gentoo предоставляет набор скриптов, которые могут разрешать зависимости, скачивать исходный код и компилировать версию пакета с учётом требований пользователя. В общем случае, Gentoo поставляет бинарные файлы только для релизов и снапшотов.Gentoo Developer Manual детально описывает содержимое ebuild-скриптов.
Для полных ISO релизов, полный набор бинарных пакетов будет создан, используя улучшенный формат .tbz2, который совместим с мета-ниформацией .tar.bz2, которая находится в конце файла. Это может быть использовано для того, чтобы установить рабочую (хотя и не полностью оптимизированную) версию пакета быстро и эффективно.
Можно создавать RPM (файлы пакетного менеджера Red Hat), используя Gentoo Portage, однако, на данный момент не возможно использовать существующие RPM файлы для установки пакетов.
Я хочу выполнять шаг ./configure сам. Могу ли я?
Да, но это непросто и не рекомендуется. Так как метод воплощения этой задумки в жизнь требует хорошего понимания 'внутренностей' Portage и команд. Вместо этого рекомендуется создать изменённый (патченный) как пользователю необходимо ebuild и разместить его в оверлее Portage (как раз для этого оверлеи и существуют). Это гораздо лучшее решение для последующей поддержки, и обычно это проще воплотить в жизнь. Смотрите Gentoo Developer Manual для получения большей информации.
Что если rsync не работает у меня?
При использовании файрволла, который не разрешает проходить трафику rsync через порт 873, команда emerge-webrsync может быть использована для обновления снимка Portage по протоколу HTTP. Смотрите этот раздел для получения информации о том, как загружать исходный код приложений и снимки дерева Portage через прокси.
У меня дома медленное (или отсутствует) интернет-соединение. Могу ли я скачать исходники где-то ещё и потом поместить их в систему?
Определённо. Выполните emerge --pretend package/atom чтобы посмотреть, какие программы будут установлены. Чтоб найти исходники для этих пакетов и информацию, откуда их скачать, выполните emerge -fp package/atom. Загрузите их и принесите домой на каком-нибудь носителе. Поместите их в каталог /usr/portage/distfiles/ и просто запустите emerge package/atom. Будьте осторожны: это может быть очень утомительный процесс.
Архивы с исходным кодом накапливаются в /usr/portage/distfiles/. Безопасно ли будет удалить эти файлы?
Удаление этих файлов не окажет негативного эффекта на производительности. Однако, может быть мудро сохранять последние версии файлов; чаще всего несколько ebuild выпускается для одной и той же версии программы. Если архив удалён, а обновление или переустановка программы необходимы, архив надо будет загрузить из интернета ещё раз.
Используйте скрипт eclean из пакета app-portage/gentoolkit для управления содержимым папки /usr/portage/distfiles/ и некоторых других. Смотрите man eclean и статью о Gentoolkit для получения большей информации о его использовании.
Что находится в /var/tmp/portage? Безопасно ли удалять файлы и каталоги из /var/tmp/portage?
Во время компиляции Gentoo сохраняет файлы исходного кода пакета в /var/tmp/portage. Эти файлы обычно удаляются после успешной установки, но иногда это не работает. Удалять файлы оттуда безопасно только если emerge не запущен. Обязательно проверяйте pgrep emerge перед тем, как очистить этот каталог.
Использование
Как мне настроить интернациональную раскладку клавиатуры?
Измените переменную keymap
в /etc/conf.d/keymaps. Чтобы консоль правильно показывала расширенную таблицу символов также стоит настроить переменные consolefont
и consoletransation
в /etc/conf.d/consolefont (для дальнейшей информации по локализации окрущения смотрите инструкцию по локализации). Затем перезагрузитесь с помощью reboot или перезапустите срипты keymaps и consolefont:
root #
/etc/init.d/keymaps restart
root #
/etc/init.d/consolefont restart
Разрешение DNS имени работает только у root
/etc/resolv.conf имеет неправильные права; chmod исправит это:
root #
chmod 0644 /etc/resolv.conf
Почему мой пользователь не может использовать собственный crontab?
Добавьте этого пользователя в группу cron:
root #
gpasswd -a <username> cron
Как мне заставить numlock включаться при загрузке?
Следующая команда добавит сервис numlock к уровню загрузки по умолчанию, что будет включать numlock при загрузке.
root #
rc-update add numlock default
root #
/etc/init.d/numlock start
Каждый GUI имеет собственные инструменты для вещей такого типа; пожалуйста, проверьте раздел справки или обратитесь за помощью к онлайн-документации для используемого GUI.
Как автоматически очищать терминал после выхода?
Чтобы терминал автоматически ошичищался, добавьте clear в файл ~/.bash_logout :
user $
echo clear >> ~/.bash_logout
Чтобы эта функция автоматически добавлялась каждому новому пользователю, добавьте то же самое в файл /etc/skel/.bash_logout :
root #
echo clear >> /etc/skel/.bash_logout
Техобслуживание
Проблемы с ReiserFS и повреждением файловой системы - как исправить их и т.д.
Если ReiserFS раздел повреждён, попробуйте загрузиться с установочного диска Gentoo и выполнить reiserfsck --rebuild-tree на повреждённой файловой системе. Это должно исправить её состояние, хотя могут исчезнуть некоторые сильно повреждённые файлы.
Разработка
Куда сообщать о багах?
Используйте сайт Bugzilla для сообщения об ошибках. Спрашивайте на канале #gentoo в сети Freenode IRC, если не уверены, действительно ли проблема является багом, или что-то было сделано не так.
Как часто выпускаются новые релизы?
Пакеты Gentoo обычно обновляются через небольшое время после того, как их авторы выпускают новое обновление. Чтоб узнать, когда Gentoo выпустит новое обновление архива stage/профиля/установочного ISO образа, смотрите страницу Release Engineering Project. О новых релизах сообщается в списке рассылки gentoo-announce. Смотрите этот раздел для получения большего количества информации.
В консоли мой pc-спикер орёт как сумасшедший. Как его отключить?
'Бипы' могут быть отключены с помощью setterm, например:
root #
setterm -blength 0
Чтоб отключать бипы при каждой загрузке, поместите данную команду в файл /etc/conf.d/local.start. Правда, это отключит бипы только для текущего терминала. Для отключения бипов для остальных терминалов используйте перенаправление вывода в нужный терминал. Например, так:
root #
setterm -blength 0 > /dev/vc/1
Замените /dev/vc/1 на терминал, для которого нужно отключить спикер.
Ссылки
Где я могу найти больше информации о Gentoo Linux?
Большая часть официальной документации Gentoo может быть найдена здесь, на этой Wiki.
Могу ли я купить установочный диск Gentoo Linux?
Пользователи, которые не могут скачать и записать установочный диск самостоятельно, могут найти его в одном из наших официальных магазинов. Но большая часть магазинов перестала предлагать установочные CD и DVD так как они очень быстро устаревают.
Официальные магазины перечислены на странице магазинов.
Этот FAQ не смог ответить на мой вопрос. Что делать?
Полезно сперва будет просмотреть относящуюся к теме документацию. Если и это не помогло, разнообразные списки рассылки Gentoo Linux можно найти здесь. Если всё это не помогает, или просто если хочется поболтать с опытными в Gentoo людьми, заходите на канал #gentoo на Freenode IRC.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Daniel Robbins, Colin Morey, John P. Davis, Eric Stockbridge, Stoyan Zhekov, Carl Anderson, Jorge Paulo, Benny Chuang, Jonathan Smith, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.