Solução de problemas

A melhor maneira de aprender sobre seu sistema Debian é consertar seus próprios problemas sempre que possível. Muitas pessoas têm dificuldade em descobrir por onde começar a procurar respostas. Aqui estão algumas das primeiras coisas que você deve procurar.

Lendo mensagens de erro

A maioria dos programas produz mensagens de erro significativas quando algo dá errado. Você deve ler esses erros e fazer uma tentativa honesta de entender o que eles querem dizer. Sempre comece a ler do início da saída, porque a primeira mensagem de erro costuma ser a causa dos erros subsequentes. (Erros no final da saída podem não ser significativos ou relevantes, uma vez que o primeiro erro foi corrigido).

Existem certas frases-chave que você deve procurar em qualquer mensagem de erro do Unix: são as traduções em inglês (ou em outra língua nativa) dos vários valores errno(3) que são retornados pelas chamadas de sistema. Por exemplo:

algumprograma: foobar: No such file or directory

Isso significa que algum programa tentou abrir um arquivo chamado foobar, mas não conseguiu porque esse arquivo não existe. Ou talvez esteja tentando criar foobar, mas não pode porque o diretório que ele precisava para escrever ainda não existe. Criar o diretório pode corrigir o problema.

bla bla bla: No such device

Este erro específico significa que um programa tentou se comunicar com um dispositivo (um arquivo no diretório /dev). O arquivo no diretório /dev existe, mas o núcleo (kernel) não tem o driver para implementar este dispositivo. Este é um problema no nível do núcleo, a não ser que o programa tenha simplesmente tentado abrir o dispositivo errado. Na maioria dos casos, você precisará carregar o driver ou obter um núcleo diferente, etc.

some file: Permission denied

Esse erro significa que seu programa tentou abrir um arquivo, mas não conseguiu devido às permissões do arquivo ou do diretório (as quais você pode ver com ls -l). Dê uma olhada nas permissões e verifique se estão corretas. Execute o comando id(1) para verificar se você está no grupo certo ou se está logado como o(a) usuário(a) certo(a).

blah blah blah: Operation not permitted

Esse erro parece superficialmente semelhante ao anterior, mas na verdade é bem diferente. Enquanto o anterior significa que as permissões do sistema de arquivos foram as responsáveis, este significa que você tentou fazer alguma chamada de sistema cuja permissão para fazer você não tem. Por exemplo, você tentou ajustar o relógio do sistema quando não estava como root. Essa é a mensagem mais genérica "você não tem permissão para fazer isso" e tem muitas e diferentes causas possíveis.

O que o log diz?

Alguns programas não produzem erros diretamente na tela, especialmente daemons ou outros processos em segundo plano. Nesse caso, quase sempre haverá algum tipo de arquivo de log (registro) gravado no sistema de arquivos que conterá erros úteis (ou não tão úteis). A localização do arquivo de log varia de acordo com o programa e muitos outros fatores.

Se for um daemon do sistema que roda na hora da inicialização, provavelmente ele registrará usando syslog(3). A localização dos arquivos de log reais, portanto, estará especificada em syslog.conf(5). No entanto, a maioria deles estará no diretório /var/log e se você não souber qual é, pode usar este truque frequentemente para ver os arquivos em ordem cronológica por hora de modificação (mtime):

$ ls -lart /var/log

Os arquivos modificados mais recentemente estarão na parte inferior da tela.

XFree86 versão 4.x tem seu próprio arquivo de log, /var/log/XFree86.0.log, o qual você deve consultar se tiver quaisquer problemas com o servidor X (incluindo o infame "Nenhuma tela encontrada" ao tentar iniciar o X).

Xorg mantém registros em /var/log/Xorg.0.log, os quais você deve consultar se tiver algum problema com o servidor X.

Se estiver fazendo algo com seu gerenciador de janelas ou outros programas cliente X, então a saída deles provavelmente não ficará visível para você imediatamente. A localização de sua saída dependerá de como você iniciou o X. Se usou startx(1) de um console, a saída provavelmente apareceu naquele console (tente Ctrl-Alt-F1 para voltar a ele, e Alt-F7 (geralmente) para voltar ao X). Se você fez login com xdm(8), o xdm cria um arquivo chamado .xsession-errors em seu diretório pessoal, procure por lá. O gdm(8) usa .gnome-erros. Os outros programas "*dm" podem ter arquivos semelhantes.

Finalmente, o núcleo Linux relata informações através de um canal especial (o buffer de anel ou "ring buffer") que o comando dmesg(1) lê. Se estiver fazendo algo envolvendo drivers ou dispositivos, você deve verificar dmesg para ver se há algum erro que possa estar relacionado ao que você está fazendo. Ele também pode registrar algumas mensagens através do syslog que depois as envia para o journald do systemd ou outro daemon de gerenciamento de syslog.

Se você estiver no sarge ou posterior, também pode habilitar o registro das mensagens do espaço de usuário(a) que ocorrem durante a inicialização do sistema. Veja bootlogd.

Estou esquecendo de alguma coisa?

Muitas vezes, os erros podem ser causados ​​pela falta de pacotes que você deveria instalar, mas ainda não instalou. Este é frequentemente o caso quando você está compilando algo e não tem os pacotes *-dev necessários instalados. Consulte a Página de desenvolvimento para obter detalhes sobre eles.

Em muitos outros casos, um pacote pode ter uma linha "sugere" (suggests) ou "recomenda" (recommends) para algum outro pacote. Se você instalou seu pacote com dselect(1), eles provavelmente foram incluídos para você, mas se você usou apt-get(8) eles foram simplesmente impressos na tela. Você pode tê-los ignorado. Por exemplo, o pacote gs (Ghostscript) recomenda o pacote gsfonts, mas não depende estritamente dele. Se seu pacote parece que está apenas parcialmente instalado, procure em "apt-cache search" ou aptitude(8) ou dselect(1) por pacotes adicionais que têm o que você precisa.

Estou sozinho(a)?

Provavelmente, se você está tendo um problema, outra pessoa já o teve antes de você (a menos que você esteja executando a instável (unstable)). Na verdade, o problema pode ter uma solução alternativa conhecida ou até mesmo uma correção. É por isso que o Sistema de rastreamento de bugs (Bug Tracking System - BTS) do Debian é tão importante. Você pode usar o pacote apt-listbugs ou o comando reportbug(1) para pesquisar problemas conhecidos e suas soluções, uma vez que tenha restringido seu problema a um pacote Debian específico. E se não encontrar sua resposta lá, pode relatar seu bug para que ele possa ser corrigido.

Você também pode usar os seguintes atalhos para ir direto para o BTS com um navegador:

https://bugs.debian.org/nomedopacote
https://bugs.debian.org/númerodobug

Preencha nomedopacote com o nome de um pacote; ou preencha númerodobug com um número de bug (eles têm 6 dígitos agora). Observe também que quando o tópico do canal em #debian diz algo como "FIXED: foobar (#999999)", isso significa que o bug envolvido era #999999 no BTS e você deve ir para https://bugs.debian.org/999999 para vê-lo.

Em caso de dúvida, procure pelo erro!

Mesmo que a primeira mensagem de erro pareça algo sem sentido para você, ela provavelmente tem significado para alguém, especialmente para o(a) programador(a) que a escreveu. Experimente colar sua mensagem de erro exata no DuckDuckGo ou em seu motor de busca preferido.


ToDo: update references to XFree86 to Wayland and Xorg