Troubleshooting/es

El objetivo de esta página es brindar a los usuarios, en particular a los nuevos, un conjunto de técnicas y herramientas para permitirles diagnosticar y resolver problemas en sus instalaciones de Gentoo con sus propios medios. Adicionalmente, para aquellos problemas que son más complicados, este artículo busca proveer a los usuarios de la habilidad de recolectar información que los ayudará, tanto a ellos como a quienes les den soporte, a resolver sus problemas con mayor facilidad.

Este artículo asume que Gentoo Handbook ha sido leído y que se posee una comprensión básica del uso de Gentoo.

Dónde conseguir ayuda
Gentoo tiene unas cuantas wikis, las cuales poseen una gran cantidad de información. Hay que tener en cuenta que algunos artículos pueden contener información vieja o desactualizada, sin embargo la lectura de los artículos de la wiki es siempre un paso crítico cuando usamos Gentoo.


 * La Wiki Oficial de Gentoo
 * Archivo de los artículos del viejo Gentoo-Wiki.com
 * Base de conocimientos, para prácticas y problemas comunes

En IRC, es el canal recomendado para problemas generales. Es probablemente el camino más rápido para obtener una respuesta.

Teniendo en cuenta que los canales de IRC requieren de una presencia activa, algunos usuarios prefieren dejar mensajes en los foros o en las listas de correo. Cuando nos responden, una notificación (usualmente por email) nos es enviada.

Cuando todo lo demás falla, y parece haber algo roto con Gentoo, el Gentoo's bug tracker es una gran herramienta para ver si algo ha sido ya reportado, o para crear nuevos reportes de error si es necesario. Es una manera muy efectiva de llegar a los Desarrolladores de Gentoo, quienes pueden utilizar el reporte para mejorar la situación problemática y resolver el problema.

Programas
Esta es una lista de herramientas que son "altamente" recomendadas:

Primeros pasos
En función de solucionar un problema, primero es necesario tener una buena comprensión del mismo. Si el problema no es claro, entonces será difícil, sino imposible, obtener una solución. Una descripción detallada y acertada del mismo es más apta para obtener la mejor solución posible.

Identificando el problema
Esta parte puede parecer muy obvia, pero sin ella, cualquier resolución de problemas será casi imposible.

Toma nota de algunas cosas:
 * 1) ¿Es un problema relacionado con el hardware o con el software?
 * 2) ¿Se ha cambiado o realizado algo recientemente, que pueda ser la causa de este problema?
 * 3) ¿Se puede recolectar información adicional sobre el problema?

Guardar cualquier clase de detalle, información yexperiencia de otras personas puede ser valioso y otorgar buenos puntos de vista.

Controladores
Problemas con los controladores de hardware es uno de los problemas más comunes que son reportados en IRC.

En primer lugar, hay que identificar qué pieza de hardware es la que está ocasionando problemas. y son valiosas herramientas para este propósito. Para ejemplificar, vamos a utilizar la tarjeta Ethernet como el dispositivo con problemas.

Determinando el controlador correcto
Primero utilizamos para buscar la información del dispositivo:

También es posible usar la opción  para obtener una notación abreviada (la que puede resultar más fácil para buscar en Internet):

El nombre de modelo y el fabricante fabricante/modelo  pueden ser utilizados para buscar el dispositivo en lugares como WikiDevi o Debian HCL, a fin de buscar el controlador correcta a utilizar en Linux.

Verificando que el controlador está cargado
Obtener el controlador es menos de la mitad de la batalla. Debemos estar seguros de que el controlador está cargado y operando correctamente.

Utilizando nuevamente a nuestro amigo, ejecutar:

Notar que acá tenemos un indicador de que el controlador está en uso ("Kernel driver in use: sky2"). En caso de no ser así, es porque ningún controlador se ha hecho cargo de este hardware. Asumiendo que el controlador fue compilado como módulo y no dentro del kernel, intenta ejecutar para cargar el módulo correcto. Si el driver fue compilado dentro del núcleo, considera compilarlo como módulo, ya que los módulos pueden cargarse con o descargarse con, lo que ahorra reiniciar el sistema mientras estamos depurando el problema.

Resolviendo problemas con el driver
Compilar el controlador como módulo y luego capturar la información generada cuando el módulo es cargado. Asegurarse primero de remover todos los módulos que depende del controlador (ver ).

El siguiente comando compara la salida de después de remover el módulo (en este ejemplo,  ) con la salida posterior a cargar el módulo nuevamente, mostrando los mensajes que se agregaron (las líneas que comienzan con +).

El problema más común es algún firmware faltante. Si se muestra un mensaje que informa al administrador acerca de algún firmware faltante, instala o el paquete con el firmware específico desde Portage. Luego de la instalación del firmware, remueve el módulo y vuelva a cargarlo nuevamente para ver si esto soluciona el problema.

Dependency graph slot conflicts
Ocasionalmente, mensajes como este se obtienen al intentar realizar emerge de un paquete:

Generalmente, esto significa que los paquetes listados tienen múltiples versiones requeridas en el gráfico de dependencias. Afortunadamente la mayoría, sino todos los casos, permiten ser resueltos actualizando manualmente a la mayor versión requerida. Entonces, asumiendo que el siguiente mensaje fue recibido:

La versión deseada más reciente es 20120520, entonces:

A menudo, es ventajoso realizar one-shot ( o  ) de todos los conflictos a la vez, ya que a veces dependen unos de otros (ver también World set).

Acá hay otro bloque de ejemplo:

No debería haber ningún problema cambiando las versiones de poppler. Notar que luater y cups-filter no requieren ninguna versión específica de poppler, pero necesitan ser recompilados con cualquier versión que se utilice:

Recolectando información adicional
Cuando buscamos ayuda, generalmente nos será requerida información adicional, como la salida de algún comando. Muchas de estas producen docenas o cientos de líneas de texto - demasiado como para pegarlo en canales de IRC, como el canal de soporte de Gentoo en Freenode. Ahí es cuando se vuelve útil: permite a los usuarios publicar links cortos que contienen la salida larga del comando.

Asegurarse de que está instalado:

Por ejemplo, para mostrar el contenido de, usar es tan simple como:

O digamos que alguien necesita la salida detallada de :

A veces es necesario redirigir stderr a stdout para que también los mensajes de error sean copiados. Esto puede realizarse así:

Esto devuelve un enlace a un sitio como pastebin que puede ser fácilmente compartido con alguien para obtener ayuda.

Cosas a considerar para compartir:


 * En caso de problemas de hardware o del kernel:


 * En caso de problemas con portage:


 * En caso de fallos en la instalación de paquetes:


 * En caso de problemas con Xorg:


 * En los casos en que es necesario brindar todos los paquetes instalados en el sistema:

Juntando cosas
Debajo tenemos una función shell que puede ser utilizada para ejecutar varios comandos y procesar su salida con un solo, de forma que solo sea necesario proveer una URL a quien nos está ayudando:

Por favor no utilice servicios de pastebin en la lista de correo gentoo-user
La mayoría de los servicios de pastebin expiran viejas urls de forma periódica (por no mencionar que los servicios de pastebin son apenas rentables y cierran todo el tiempo), mientras que los mensajes de las listas de correo son archivadas en diferentes lugares y son referenciados por años. Si la salida relevante es corta, o puede ser recortada, entonces copia y pégala en el cuerpo del email - salidas más largas pueden ir directamente adjuntadas en archivos de texto plano.

Formando una solución
Con una buena descripción del problema, un historial completo de acciones y toda clase de información (detalles del problema, información de software y hardware, logs, backtraces y más), tenemos disponible un buen conjunto de información para buscar una solución.

Generalemente, hay que repetir los siguientes pasos para llegar a la solución:


 * Obtener una idea de cuál puede ser el problema y pensar en las posibles causas.
 * Si no tenemos lugares obvios para investigar, buscar en las áreas realcionadas o preguntar a algún experto sobre eso.
 * A veces es necesario realizar suposiciones para continuar. Cuando realizamos suposiciones, hay que ponerlas a prueba: suposiciones falsas no deben hacer que usuarios y desarrolladores dejen de ver otras causas.
 * Obtener información adicional de depurado dentro del marco del problema, o realizar pruebas.

A veces esto nos guía a múltiples posibles causas. Es importante probarlas individualmente para verificar si efectivamente son las causas del problema: esto es conocido como "divide y vencerás".

Digamos que tenemos un problema como "mi navegador a veces muestra páginas en blanco cuando lo inicio" y que conocemos un montón de detalles sobre eso, entonces tenemos varias causas posibles:


 * ¿Es porque el navegador fue cerrado de forma incorrecta cuando el sistema fue reiniciado?
 * Podemos verificar esto matando el proceso y reniciándolo varias veces, cada vez chequeando si las páginas vuelven a estar en blanco al iniciar. Si esta es una causa, ¿es la causa actual o hay otras?


 * ¿Es porque una versión específica del navegador está rota?
 * Probar versiones nuevas o viejas por algunas días (o reinicios) y ver si tienen el mismo comportamiento.

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.