Troubleshooting/ru

Цель этой страницы — предоставить пользователям, в частности новичкам, набор методов и инструментов для выявления и устранения неисправностей, связанных с самостоятельной установкой Gentoo. Кроме того, в случае более сложных проблем, данная статья стремится дать навыки по сбору информации, которые помогут пользователям и их поддержке решать проблемы целенаправленней.

В данной статье предполагается, что Gentoo Handbook было прочитано и есть общее представление об использовании Gentoo.

Где получить помощь
У Gentoo есть довольно много вики-статей, каждая из которых имеет огромное количество информации. Будьте осторожны, так как некоторые статьи могут содержать старые или устаревшие сведения, но, без сомнения, чтение вики-статей всегда очень важно, при использовании Gentoo.


 * Официальная Gentoo Wiki
 * Архив статей старой Gentoo-Wiki.com (Не рабочая)
 * База знаний по устоявшимся практикам и проблемам

В IRC рекомендуемый канал по общим вопросам. Это, возможно, самый быстрый способ получить ответ.

Так как IRC каналы требуют деятельного присутствия, некоторые пользователи могут предпочесть оставить сообщение на форуме или в списке рассылок, которые продолжают существовать после закрытия браузера. Когда появляется ответ, даётся уведомление (как правило, через электронную почту).

На худой конец, если кажется, будто что-то не так в самой Gentoo, то средство отслеживания ошибок Gentoo является хорошим ресурсом, где можно посмотреть, возможно что-то уже сообщалось, или создавать новые сообщения об ошибках в случае необходимости. Это очень действенный приём для связи с Gentoo разработчиками, которые могут использовать данное обращение для разрешения проблемной ситуации.

Программы
Ниже перечислен настоятельно рекомендуемый набор инструментов:

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

Определение проблемы
Эта часть может показаться нелёгкой, но без неё устранение неисправностей невозможно.

Обратите внимание на несколько вещей:
 * 1) Данная неисправность относится к аппаратной части или программной?
 * 2) Что было сделано или изменено недавно, могущее привести к данной неисправности?
 * 3) Возможно ли собрать дополнительную информацию о неисправности?

Сохранение любого вида подробностей, журналов, опыта других людей и иного может быть ценным и дать общее представление.

Драйверы
Проблема с драйвером для оборудования — это одна из наиболее распространенных проблем, о которых сообщается на IRC.

В первую очередь, необходимо определить, с каким оборудованием случились неполадки, для этого подойдут такие утилиты как и. В качестве примера, мы рассмотрим сетевую карту как проблемное устройство.

Определение подходящего драйвера
Для начала взглянем на и найдём информацию об устройстве:

Возможно использование  опции, чтобы дать сокращенную запись (что может упростить поиск в Интернете):

Название модели и производитель/модель  могут быть использованы для поиска устройства в WikiDevi, Debian HCL и подобных местах, чтобы подобрать подходящий драйвер для применения в Linux.

Проверка, что драйвер загружен
Заполучить драйвер — менее чем половина дела. Ведь, большая часть беды при работе с драйверами — увериться, что они загрузились и работают корректно.

Доверимся нашему другу снова, выполнив:

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

Устранение неисправностей драйвера
Соберите драйвер как модуль, а затем захватите производимый после его загрузки вывод. Удостоверьтесь, что сначала удалили все модули, зависящие от драйвера (смотрите ).

Следующая команда сравнивает вывод после удаления модуля (к примеру,  ) с выводом после его повторной загрузки, действенно показывая добавленные сообщения (строки начинающиеся с +).

К наибольшему числу неприятностей приводит отсутствие прошивки. При появлении сообщения об её отсутствии, устанавливайте или, или специальный пакет прошивок из Portage. Чтобы узнать разрешилась ли проблема после установки прошивки, произведите проверку, повторно выгрузив и загрузив модуль ядра.

Конфликт слотов в графе зависимостей
Время от времени, при попытках установить пакет, встречаются сообщения похожие на:

Это означает, как правило, что в графе зависимостей наличествует запрос на несколько версий (от набора пакетов), но, к счастью, в большинстве случаев, если не во всех, ручное обновление до самой высокой запрашиваемой версии позволяет устранить проблему. Таким образом, если предположить, что было получено следующее сообщение:

Самая последняя версия 20120520, поэтому:

Often, it's advantageous to one-shot ( or  ) all of the conflicts at once because they sometimes depend on one another (see also World set).

Ниже другой пример блокировки:

Не должно быть никаких проблем при изменении версии poppler. Заметьте, что luatex и cups-filter не требуют определенной версии poppler, но они должны быть пересобраны в независимости от используемой версии:

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

Убедитесь, что установлен:

Например, чтобы показать содержимое, воспользуйтесь просто как:

Или, скажем, кому-то нужен детализированный вывод команды :

Иногда необходимо перенаправить stderr в stdout, чтобы сообщения об ошибках также выводились. Это возможно сделать так:

Эта команда вернёт ссылку на страницу pastebin-сайта, которую можно легко отправить тому, кто способен помочь.

Полезные вещи при вставке:


 * в случае аппаратных проблем или проблем с ядром:


 * в случае проблем с portage:


 * в случае ошибки во время установки пакета:


 * в случае проблем с Xorg:


 * в случае, если необходимо предоставить все установленные пакеты в системе:

Упаковка в одну ссылку
Ниже дана shell-функция, которая может быть использована для выполнения нескольких команд, а их вывод обработается одной командой, таким образом можно обойтись всего лишь одной ссылкой для получения помощи от пользователей или разработчиков:

Пожалуйста, не используйте pastebin-сервисы в списке рассылок gentoo-user
Большинство из Pastebin-сервисов периодически уничтожают старые тексты (не говоря уже о том, что Pastebin услуги вряд ли вообще приносят выгоду, а, следовательно, часто прекращают свою деятельность), тогда как сообщения из списков рассылок архивируются в нескольких местах и доступны в течение многих лет. Если соответствующий вывод краток, или может быть урезан, тогда вставьте его в тело письма — длинный же вывод можно направить в текстовый файл и добавить в виде простого вложения.

Рождение решения
Хорошее описание проблемы, полная последовательность действий и всякого рода отладочные сведения (касающиеся проблемы подробности, информация об аппаратном/программном обеспечении, журналы, цепочки вызовов и многое другое) являются полезным набором данных, доступных для поиска решения.

В целом, повторяйте следующие шаги до получения решения:


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

Зачастую это приведёт к нескольким возможным причинам. Важно проверить их (чтобы удостовериться, что это истинная причина), а, следуя принципу "разделяй и властвуй", проверять их нужно по отдельности.

Предположим, возникла проблема вроде "мой браузер иногда отображает белые страницы при загрузке", но ведь о ней уже известно много подробностей, а значит возможно несколько причин:


 * Следствие ли это неправильного закрытия браузера, во время перезагрузки системы?
 * Проверьте это, убивая процесс и перезагрузившись несколько раз, каждый раз проверяя - белые ли страницы после загрузки. Действительная ли эта причина или есть и другие?


 * Является ли этот результат следствием поломки определенной версии браузера?
 * Попробуйте старые или новые версии за последние нескольких дней или перезагрузитесь, чтобы выяснить повторяются ли нарушения.

И так далее...

С дополнительной информацией, можно смело думать о более особенных причинах:


 * Ломает ли систему некая закреплённая вкладка X, которая загружает плагин Y?
 * Открепить вкладку, чтобы больше не открывалась при запуске или отключить плагин, и проследить, уберёт ли это проблему.


 * Было сообщение о проблемах с графикой. Возможно они вызваны видеодрайвером?
 * Попробуйте другую версию драйвера, либо альтернативные драйверы, если таковые имеются.

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

И, в конце концов, если причина до сих пор не найдена, ссылки в верхней части статьи Где получить помощь покажут множество мест, где люди настроены на помощь; сделайте их счастливыми своим тщательным описанием проблемы и сообщением, что уже было проделано для решения проблемы. Это даст им возможность помочь.