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, поэтому:

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

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

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

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

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

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

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

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

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

О чём следует помнить при вставке:


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


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


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


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


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

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

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

Forming a solution
With a good description of the problem, a complete history of actions and all sorts of debugging data (problem details, hardware / software information, logs, backtraces and more) a good set of useful data is available to look for a solution.

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


 * Get an idea where the problem might be, think about possible causes.
 * If there are no obvious areas to look into, become more acquainted with the related areas or ask an expert more about it.
 * Sometimes it is necessary to make assumptions to proceed. When assumptions are made, put it to the test: false assumptions should not make users and developers blind of other causes.
 * Obtain additional debugging information in the area of a problem, or perform tests.

Often this will lead to multiple possible causes. It is important to test them (to verify it is the actual cause or not) and therefore test them individually; this is also known as "divide and conquer".

Let's say a problem like "my browser sometimes displays white pages when I boot" comes up and a lot of details are already known about it, then there may be number of possible causes:


 * Is this because the browser was improperly closed when the system rebooted?
 * Verify this by killing the process and pulling the plug several times, each time checking if the pages are white after booting again. If this is a cause, is it the actual cause or are there other causes?


 * Is this the result of a specific browser version being broken?
 * Try older or newer versions for a few days or reboots and see if they are broken as well.

And so on...

With the additional information, dare to think about more specific causes:


 * Does a certain pinned tab X that loads plugin Y break the system?
 * Unpin the tab so it doesn't open on launch anymore or disable the plugin, see if this keeps the problem away.


 * Graphical issues were reported as well, might this maybe mean this is caused by the video drivers?
 * Try a different version for those drivers, or alternative drivers if available.

As each possible cause is investigated, the actual cause of the problem might come closer and closer.

And in the end, if the cause is still not found, the Where to get help resources at the top of this article yield a multitude of places with people that are looking forward to help; make them happy with a careful problem description and mentioning what has already been tried so far, it'll help them help out.