Referência Rápida Debian ------------------------ Osamu Aoki Paulo Rogério Ormenese (líder: pt-br) Seção A.1, `Autores' CVS, Qui Jan 18 11:54:35 UTC 2007 ------------------------------------------------------------------------------- Resumo ------ Esta Referência Rápida Debian (http://qref.sourceforge.net/) dedica-se a fornecer uma breve introdução ao sistema Debian como uma _referência rápida_. Isso é um excerto do Referência Debian (http://qref.sourceforge.net/). Nota de Copyright ----------------- Copyright (C) 2001--2005 por Osamu Aoki . Este documento pode ser usado sob os termos da GNU General Public License versão 2 ou superior. (http://www.gnu.org/copyleft/gpl.html) É concedida a permissão para fazer e distribuir cópias literais deste documento contanto que o aviso de direito de cópia (copyright) e este aviso de permissão sejam preservados em todas as cópias. É garantida a permissão para copiar e distribuir versões modificadas deste documento sob as condições da cópia literal, contanto que o trabalho derivado resultante seja totalmente distribuído sob os termos de um aviso de permissão idêntico a este. É garantida a permissão para copiar e distribuir traduções deste documento em outro idioma sob as condições acima para versões modificadas, exceto que este aviso de permissão pode ser incluído em traduções aprovadas pela Free Software Foundation em vez de no inglês original. ------------------------------------------------------------------------------- Conteúdo -------- 1. Prefácio 1.1. Convenções do documento 1.2. Básico das distribuições Debian 2. Atualizando uma distribuição para a `testing' 2.1. Transição do APT para a versão Woody 2.2. Preparação para a transição (`stable' para `testing') 2.3. Atualizar o sistema Debian 2.3.1. Melhor prática de atualização usando o `dselect' 3. Gerenciamento de pacotes Debian 3.1. Introdução 3.1.1. Ferramentas principais 3.1.2. Ferramentas úteis 3.2. Básico do gerenciamento de pacotes Debian 3.2.1. Instalar _tarefa_ com o `tasksel' ou `aptitude' 3.2.2. Configure o sistema APT 3.2.3. `dselect' 3.2.4. `aptitude' 3.2.5. Comandos `apt-cache' e `apt-get' 3.2.6. Seguindo um tipo da distribuição Debian 3.2.7. Rebaixando todos os pacotes para a `estável' 3.2.8. Visão geral do arquivo `/etc/apt/preferences' 3.3. Comandos de sobrevivência do Debian 3.3.1. Verificar bugs no Debian e procurar ajuda 3.3.2. Resolvendo problemas com atualização pelo APT 3.3.3. Resgate usando o `dpkg' 3.3.4. Recuperação dos dados de seleção de pacotes 3.3.5. Resgate do sistema após quebrar `/var' 3.3.6. Instalar um pacote em um sistema não iniciável 3.3.7. O que fazer se o comando `dpkg' estiver quebrado 3.4. Comandos de nirvana do Debian 3.4.1. Informação sobre um arquivo 3.4.2. Informação sobre um pacote 3.4.3. Instalação com APT sem acompanhamento 3.4.4. Reconfigurar pacotes instalados 3.4.5. Remover e eliminar (purge) pacotes 3.4.6. Mantendo pacotes antigos 3.4.7. Sistema híbrido `stable'/`testing'/`unstable' 3.4.8. Descartar arquivos de pacote em cache 3.4.9. Gravar/copiar a configuração do sistema 3.4.10. Portar um pacote para o sistema `stable' 3.4.11. Repositório local de pacotes 3.4.12. Converter ou instalar um pacote binário alien 3.4.13. Verificar arquivos de pacotes instalados 3.5. Outras peculiaridades do Debian 3.5.1. O comando `dpkg-divert' 3.5.2. O pacote `equivs' 3.5.3. Comandos alternativos 3.5.4. `init' System-V e níveis de execução (runlevels) 3.5.5. Serviços daemon desabilitados A. Apêndice A.1. Autores A.2. Garantias A.3. Retorno ------------------------------------------------------------------------------- 1. Prefácio ----------- _Matenha-o pequeno e simples_ (KISS) é meu princípio guia. 1.1. Convenções do documento ---------------------------- Este documento "Referência Rápida Debian" fornece informações através de pequenos comandos do shell Bash. Referência para: * uma _página de manual Unix_ é indicada na forma bash(1). * uma _página GNU TEXINFO_ é indicado na forma `info libc'. 1.2. Básico das distribuições Debian ------------------------------------ O Debian é oferecido em 3 "sabores" de distribuições : * `stable': Boa para usar em um servidor de produção. Chato para uma estação de trabalho (WS). * `testing': Boa para usar em uma WS. * `unstable': Nunca use-a cegamente. Leia pelo menos a lista de discussão chave `debian-devel-anounce@lists.debian.org' para atualizações sobre o estado do Debian. Em Março de 2002, estas três versões de distribuições correspondiam às versões de codinomes Potato (qualidade de produção), Woody (beta-teste, já bastante estável quando o lançamento era iminente), e Sid (alfa-teste). Em Agosto de 2002, logo após o lançamento do Woody, as distribuições correspondiam a Woody (qualidade de produção), Sarge (beta-teste, teria algumas arestas ruins por um tempo) e Sid (sempre alfa-teste). Quando os pacotes na `unstable' não possuem bugs críticos ao lançamento (RC) cadastrados para eles após a primeira semana ou mais, eles são automaticamente promovidos para a `testing'. Há duas maneiras de habilitá-lo a executar as últimas versões de software em um sistema. * Capítulo 2, `Atualizando uma distribuição para a `testing'' (principalmente para própositos de WS) * Seção 3.4.10, `Portar um pacote para o sistema `stable'' (principalmente para prósitos de servidor) ------------------------------------------------------------------------------- 2. Atualizando uma distribuição para a `testing' ------------------------------------------------ 2.1. Transição do APT para a versão Woody ----------------------------------------- Atualização pela rede do sistema APT e de alguns pacotes principais para a versão Woody pode ser feita como a seguir depois de incluir as fontes `stable' no arquivo `/etc/apt/sources.list' se você ainda usar o Potato. # apt-get update # apt-get install libc6 perl libdb2 debconf # apt-get install apt apt-utils dselect dpkg 2.2. Preparação para a transição (`stable' para `testing') ---------------------------------------------------------- Seguir o sabor `testing' do Debian tem o efeito colateral de fornecer atualizações de segurança muito lentamente. Então fique alerta. Atualização pela rede para `testing' pode ser feita como explicado a seguir (execute o script go-woody (http://www.debian.org/doc/manuals/debian-reference/examples/) para fazer isso em um comando): Esvazie o arquivo `sources.list' existente: # cd /etc/apt # cp -f sources.list sources.old # :>sources.list Obtenha uma lista limpa de repositórios, para `stable': # cd / # apt-setup noprobe ... selecione repositórios, acessados com métodos HTTP ou FTP Adicione a seção `testing' a essa nova lista. As linhas `deb-src' são comentadas. # cd /etc/apt # grep -e "^deb " sources.list >sources.deb # grep -e "^deb-" sources.list >sources.src # sed -e "s/stable/testing/" sources.deb \ >>sources.list # sed -e "s/stable/testing/" sources.src | \ sed -e "s/^deb-/#deb-/" >>sources.list # apt-get update # apt-get install apt apt-utils # cat >preferences <>sources.list # sed -e "s/stable/unstable/" sources.src | \ sed -e "s/^deb-/#deb-/" >>sources.list Veja Seção 3.2, `Básico do gerenciamento de pacotes Debian' para conhecer a arte do ajuste do `/etc/apt/sources.list' e do `/etc/apt/preferences'. Agora você pode atualizar a lista de pacotes e atualizar pacotes, usando métodos descritos na próxima seção. 2.3. Atualizar o sistema Debian ------------------------------- Depois de configurar os arquivos `/etc/apt/sources.list' e `/etc/apt/preferences' apropriadamente, o sistema pode ser atualizado para `testing'. Consulte Capítulo 3, `Gerenciamento de pacotes Debian' para saber o básico, e veja Seção 3.3.2, `Resolvendo problemas com atualização pelo APT' se encontrar problemas. 2.3.1. Melhor prática de atualização usando o `dselect' ------------------------------------------------------- Se um sistema tem muitos pacotes que incluem pacotes `-dev', etc., recomenda-se o método a seguir usando o `dselect' para um controle de pacotes mais refinado. # dselect update # sempre faça isso antes de atualizar # dselect select # selecione pacotes adicionais Todos os seus pacotes atuais serão selecionados quando o `dselect' iniciar. O `dselect' pode oferecer-lhe a opção de instalar pacotes adicionais, baseado em `depends', `suggests', e `recommends'. Se você não quiser adicionar nenhum pacote, simplesmente pressione `Q' para sair do `dselect' novamente. # dselect install Você precisará responder algumas questões de configuração de pacotes durante essa parte do processo, então mantenha suas notas prontas e reserve algum tempo a essa parte. Consulte Seção 3.2.3, ``dselect''. Use o `dselect'. _Ele sempre funciona :)_ Se você precisar atualizar sem o `dselect' depois do Woody, considere usar o `aptitude' e outras opções. ------------------------------------------------------------------------------- 3. Gerenciamento de pacotes Debian ---------------------------------- Este capítulo é baseado em uma versão mais velha do texto original inglês. Verificar por favor a versão inglesa demasiado. Para reduzir o tráfego de rede nos repositórios Debian, certifique-se de configurar um proxy HTTP local usando o `squid' para os pacotes os quais o download tenha sido feito através do APT e, caso necessário, define a variável de ambiente `http_proxy' ou defina o valor `http' no arquivo `/etc/apt/sources.list'. Isso melhora consideravelmente a performance de atualizações em rede, especialmente em diversas máquinas Debian em uma LAN (rede local). Apesar do recurso de pinagem do apt_preferences(5) ser poderoso, ele não resolve todos os problemas de dependências uma vez que os requerimentos das dependências tendem a puxar versões mais novas de pacotes de programas fundamentais. + O uso do método chroot é desejável para assegurar simultaneamente tanto a estabilidade do sistema quanto o acesso às últimas versões de softwares. Este capítulo é baseado em um sistema Woody mas a maioria da informação também se aplica a um sistema Potato (exceto para o apt_perferences(5) e tópicos relacionados ao arquivo `/etc/apt/preferences'). 3.1. Introdução --------------- Se ler toda a documentação para desenvolvedor é muito para você, leia este capítulo primeiro e comece a desfrutar de toda a capacidade do Debian com `testing'/`unstable' :-) 3.1.1. Ferramentas principais ----------------------------- dselect -- ferramenta de gerenciamento de pacotes orientada a menu (nível topo) dpkg -- instala pacote (centrado em arquivo-pacote) apt-get -- instala pacote (centrado em repositório de pacotes, CLI APT) tasksel -- instala tarefa (um conjunto de pacotes) aptitude -- instala pacote (pacote & tarefa, APT ncurses) deity -- APT ncurses alternativo synaptic, gsynaptic -- alternativas GUI APT Essas não são ferramentas de mesmo nível. O `dselect' roda no topo do APT (os comandos de linha são `apt-get') e `dpkg'. O APT usa `/var/lib/apt/lists/*' para rastrear pacotes disponíveis enquanto que o `dpkg' usa `/var/lib/dpkg/available'. Se você instalou pacotes diretamente usando `apt-get' ou programas similares como o `aptitude', certifique-se de atualizar o arquivo `/var/lib/dpkg/available' a partir do item de menu `[U]pdate' no `dselect' ou a partir do comando shell "`dselect update'" antes de executar `dselect select', `tasksel', ou `dpkg -l'. Como dependências de pacotes, o `apt-get' automaticamente insere pacotes com _depends_ mas deixa os pacotes com _recommends_ e _suggests_, enquanto o `dselect' oferece controle guiado por menus sob as opções desses pacotes e lhe pergunta pela escolha de pacotes baseado em _depends_, _recommends_, e _suggests_. O `aptitude' oferece a opção de inserir todos os pacotes automaticamente baseado em _depends_, _recommends_ e _suggests_. 3.1.2. Ferramentas úteis ------------------------ apt-cache - verifica o repositório de pacotes no cache local dpkg-reconfigure - reconfigura um pacote já instalado (se ele usar debconf) dpkg-source - gerencia arquivo de pacote fonte dpkg-buildpackage - automatiza a construção de um arquivo de pacote. ... 3.2. Básico do gerenciamento de pacotes Debian ---------------------------------------------- Você pode instalar um conjunto de pacotes chamados _tarefa_ ou instalar pacotes individuais ou atualizar o sistema usando ferramentas de gerenciamento de pacotes como as ferramentas citadas abaxio. 3.2.1. Instalar _tarefa_ com o `tasksel' ou `aptitude' ------------------------------------------------------ O `tasksel' é o _Instalador de Tarefas Debian_, que é oferecido como a opção "`simple'" durante o sistema de instalação. Quando se precisa instalar uma função comum que requer vários pacotes, essa é a melhor maneira de fazê-lo. Execute os comandos como a seguir: # dselect update # tasksel O `aptitude' também oferece acesso a tarefas seletivamente através de menus. Ele não somente lhe permite selecionar _tarefas_ mas também lhe permite desmarcar para instalação pacotes que fazem parte de uma _tarefa_ seletivamente atráves de um menu. 3.2.2. Configure o sistema APT ------------------------------ Se você tentar seguir um ambiente misto como descrito aqui, pode comumente chegar a alguns conflitos de dependências de pacotes. É uma boa idéia não misturar sabores. O que vem a seguir é para pessoas que desejam experimentar reconhecendo alguns riscos. Para atualização seletiva seguindo a distribuição `testing', o sistema APT (>Woody) precisa ser configurado como em Seção 2.1, `Transição do APT para a versão Woody' para usar o recurso apt_preferences(5). Primeiro, adicione os fontes para `stable', `tyesting', e `unstable' em seu arquivo `/etc/apt/sources.list'. Edite então o arquivo `/etc/apt/preferences' para definir o Pin-Priority apropriado. [1] Package: * Pin: release a=stable Pin-Priority: 500 Package: * Pin: release a=testing Pin-Priority: 600 Package: * Pin: release a=unstable Pin-Priority: 50 [1] Eu mantive a descrição por aqui como está para manter a consistência com outras partes. Se você realmente está seguindo a `testing' ou `unstable', você deve na verdade remover referências à `stable' em `/etc/apt/sources.list' e `/etc/apt/preferences'. Isso é porque a `testing' começa como uma cópia da `stable'. 3.2.3. `dselect' ---------------- Quando iniciado, o `dselect' automaticamente seleciona todos os pacotes "Requeridos", "Importantes" e "Padrão". No sistema Potato, alguns programas grandes como o teTeX e o Emacs se encaixavam nessas categorias e era melhor não instalá-los na instalação inicial manualmente desmarcando para instalação os mesmos (digitando `_'). No Woody, esses pacotes foram movidos para a categoria de pacotes "Opcional". O `dselect' possui uma interface com o usuário de certa forma estranha. Existem quatro comandos ambíguos (Maiúsculas significa MAIÚSCULAS") : Tecla-Chave Ação Q Finalizar. Confirma a seleção atual e finaliza de qualquer forma. (sobrescreve dependências) R Reverter ! Eu não queria dizer isso. D Droga ! Não me importa com o que o dselect acha. Faça isso ! U Marque todos com o estado sUgerido Com `D' e `Q', você pode selecionar seleções conflitantes a seu próprio risco. Lide com esses comandos com cuidado. Atualmente, o `dselect' é a ferrementa guiada por menus madura que oferece um controle refinado sobre as escolhas de _suggests_ e _recommends_. Adicione uma linha contendo a opção "expert" no arquivo `/etc/dpkg/dselect.cfg' para reduzir o barulho. Para uma máquina mais lenta, você pode executar o `dselect' em uma outra máquina mais rápida para encontrar os pacotes e pode usar `apt-get install' para instalá-los. O `dselect' não fornece acesso a pacotes que não sejam os preferidos pelo Pin-Priority. 3.2.4. `aptitude' ----------------- O `aptitude' é um novo instalador de pacotes guiado por menus similar ao `dselect'. Ele pode também ser usado como um comando alternativo de linha de comando no lugar do `apt-get'. Consulte a página de manual do aptitude(1). O `aptitude' aceita comandos de uma única tecla, geralmente em letras minúsculas. Tecla-Chave Ação F10 Menu ? Ajuda para as teclas de comandos u Atualiza informações dos pacotes do repositório g Faz o download e instala os pacotes selecionados q Finaliza a tela atual e salva as mudanças x Finaliza a tela atual e descarta as mudanças Enter Visualiza informações sobre um pacote O `aptitude' oferece a opção de fazer o download de todos os pacotes automaticamente baseado nos _depends_, _recommends_, e _suggests_. Você pode mudar esse comportamente escolhendo `F10 -> Opções -> Gerenciamento de Dependências' nos menus do aptitude. O `aptitude' oferece acesso a todas as versões de um pacote. 3.2.5. Comandos `apt-cache' e `apt-get' --------------------------------------- Seguindo a distribuição `testing' como descrito no exemplo acima, podemos gerenciar o sistema usando os seguintes comandos: * `apt-get -u upgrade' Esse comando segue a distribuição `testing' e atualiza todos os pacotes no sistema enquanto instala suas dependências da distribuição `testing'; * `apt-get -u dist-upgrade' Esse comando segue a distribuição `testing' e atualiza todos os pacotes do sistema enquanto instala e resolve suas dependências da distribuição `testing'. * `apt-get -u dselect-upgrade' Esse comando segue a distribuição `testing' e atualiza todos os pacotes no sistema pela seleção do `dselect'. * `apt-get -u install ' Esse comando instala o pacote e suas depedências da distribuição `testing'. * `apt-get -u install /unstable' Esse comando instala o pacote da distribuição `unstable' enquanto instala suas dependências da distribuição `testing'. * `apt-get -u install -t unstable ' Esse comando instala o pacote da distribuição `unstable' enquanto instala suas depedências também da distribuição `unstable' definindo o Pin-Priority de `unstable' para 990. * `apt-cache policy ' Esse comando checa o estado dos pacotes . * `apt-cache show | less' Esse comando checa as informações dos pacotes . * `apt-get install ' Esse comando instala a versão específica <2.2.4-1> do pacote . * `apt-get -u install ' Esse comando instala o pacote e remove o pacote . * `apt-get remove ' Esse comando remove o pacote mas mantém intactos os arquivos de configuração que tenham sido modificados/personalizados. * `apt-get remove --purge ' Esse comando remove totalmente o pacote com todos os arquivos de configuração modificados/personalizados. Nos exemplos acima, o uso da opção `-u' acima assegura que o `apt-get' exibirá uma lista de todos os pacotes que serão atualizados antes de efetuar a ação. O trecho a a seguir define a opção `-u' como padrão: $ cat >> /etc/apt/apt.conf << . //Sempre exibe pacotes a serem atualizados (-u) APT::Get::Show-Upgraded "true"; . Use a opção `-s' para simular um atualização sem na verdade fazê-la. 3.2.6. Seguindo um tipo da distribuição Debian ---------------------------------------------- Dependendo de suas preferências por um sabor do Debian a seguir, você pode mudar o exemplo de `/etc/apt/preferences' em Seção 3.2.2, `Configure o sistema APT' para se adequar a suas necessidades : seguir a estável: mude o Pin-Priority da testing para 50 seguir a testing: mantenha as confgiurações como exibidas acima seguir a testing(unstable): mude o Pin-Priority da unstable para 50 seguir a unstable(testing): mude o Pin-Priority da unstable para 800 Uma linha guia para a escolha do Pin-Priority é mover de cima para baixo na tabela acima conforme o tempo passa de um momento imediatamente após o lançamento de uma distribução para um momento do congelamento (freeze) para o próximo lançamento. Atenção: seguir o tipo `testing' do Debian possui o efeito colateral de obter atualizações de segurança muito lentamente. Caso você misture os tipos do Debian `testing' com `stable' ou `unstable' com `stable', você provavelmente irá obter também muitos pacotes-chave não intencionalmente do `testing' ou `unstable' que poderão conter bugs. Portanto, esteja avisado sobre esse problema. Exemplos do arquivo `/etc/apt/preferences' que prendem alguns pacotes chave para suas versões mais maduras enquanto seguem as versões menos maduras de outros pacotes não-essenciais estão disponíveis no subdiretórios de exemplos (http://www.debian.org/doc/manuals/debian-reference/examples/) com o nome de `preferences.testing' e `preferences.unstable'. Por outro lado, o arquivo `preferences.stable' força todos os pacotes a serem rebaixados para suas versões existentes na distribuição "estável" (um "downgrade" na verdade). 3.2.7. Rebaixando todos os pacotes para a `estável' --------------------------------------------------- Para rebaixar todos os pacotes para `stable', edite `/etc/apt/preferences' como a seguir: Package: * Pin: release a=stable Pin-Priority: 1001 e execute "`apt-get upgrade'", o que força o rebaixamento devido ao Pin-priority > 1000. Fique atento, podem haver alguns pequenos problemas com dependências. 3.2.8. Visão geral do arquivo `/etc/apt/preferences' ---------------------------------------------------- No arquivo `/etc/apt/preferences' de exemplo apresentado em Seção 3.2.2, `Configure o sistema APT', "Package: *" na primeira linha significa que esta seção se aplica a todos os pacotes. Você pode usar um nome de pacote ao invés de "*" para especificar o Pin-Priority desse pacote. Na segunda linha, "Pin: release a=stable" significa que o `apt-get' obtém o arquivo `Packages.gz' de um repositório contendo o arquivo `Relese' que contenha a linha "Archive: stable". Na última linha "Pin-Priority: 500" especifica o Pin-Priority como 500. Caso existam diversos pacotes com o mesmo nome, normalmente aquele com o valor de Pin-Priority mais alto é o que será instalado. Os significados de Pin-Priority são : * 1001 e superior: Prioridades de "downgrade" (rebaixamento de versões). O "downgrade" (rebaixamento de versão) do pacote é permitido para esta faixa de Pin-Priority. * 100 a 1000: Prioridades "Standard" (Padrão). O "downgrade" do pacote não é permitido. Alguns valores chave de Pin-Priority : * 990: a prioridade definida pela opção `--target-release>' ou `-t' do apt-get(8). * 500: a prioridade para todos os arquivos de pacotes padrão. * 100: a prioridade para os arquivos de pacotes atualmente instalados. * 0 a 99: Prioridades não-automáticas. (Estas são usadas somente caso o pacote não esteja instalado e não exista nenhuma outra versão disponível.) * menor que 0: A versão não é selecionada nunca. Os mesmos efeitos de `--target-release' podem ser obtidos configurando o arquivo `/etc/apt/apt.conf' como abaixo : # echo 'APT::Default-Release "testing";' >> /etc/apt/apt.conf A opção de linha de comando `--target-release' e a configuração no arquivo `/etc/apt/apt.conf' têm prioridade à configuração no arquivo `/etc/apt/preferences'. Seja cuidadoso com essa interferência quando estiver lidando com o arquivo `/etc/apt/preferences'. 3.3. Comandos de sobrevivência do Debian ---------------------------------------- Com esse conhecimento, é possível viver uma vida de "atualizações" _eternas_ :-) 3.3.1. Verificar bugs no Debian e procurar ajuda ------------------------------------------------ Se você está tendo problemas sobre um pacote específico, tenha certeza de verificar esses sites antes de pedir ajuda ou antes de enviar um relatório de bug. (`lynx', `links', e `w3m' funcionam igualmente bem): $ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/ # se você sabe o nome do pacote $ lynx http://bugs.debian.org/ # se você sabe o número do bug Procure no Google (www.google.com) com palavras de busca incluindo "site:debian.org". Quando tiver dúvidas, leia o manual. Configure `CDPATH' como a seguir: export CDPATH=.:/usr/local:/usr/share/doc e digite $ cd $ pager README.Debian # case esse exista $ mc 3.3.2. Resolvendo problemas com atualização pelo APT ---------------------------------------------------- Podem ocorrer problemas de dependência ao atualizar na `unstable'/`testing', como descrito em Seção 2.3, `Atualizar o sistema Debian'. Na maior parte das vezes, isso ocorre porque um pacote que será atualizado tem uma nova dependência que é desconhecida. Esses problemas são resolvidos usando # apt-get dist-upgrade Se isso não resolver, então repita um dos seguintes até que o problema se resolva: # apt-get upgrade -f # continua atualização depois do erro ... ou # apt-get dist-upgrade -f # continua atualização distribuição depois do erro Alguns scripts de atualização realmente quebrados podem causar um problema persistente. É melhor resolver esse tipo de situação inspecionando os scripts `/var/lib/dpkg/info/.{post,pre}{inst,rm}' do pacote problemático e então executar: # dpkg --configure -a # configura todos os pacotes parcialmente instalados Se um script reclamar de um arquivo de configuração inexistente, procure o arquivo de configuração correspondente em `/etc'. Se existir um com uma extensão `.new' (ou algo similar), modifique-o (`mv') para remover o sufixo. Podem ocorrer problemas de dependência ao instalar em `unstable'/`testing'. Há maneiras de enganar dependências. # apt-get install -f # anula dependências quebradas Um método alternativo para resolver essas situações é usar o pacote `equivs'. Veja `/usr/share/doc/equivs/README.Debian'. 3.3.3. Resgate usando o `dpkg' ------------------------------ A recuperação de uma falha no `dselect' (APT) pode ser feita em um sistema realmente quebrado usando apenas o `dpkg' sem o APT: # cd /var/cache/apt/archives # dpkg -i libc6* libdb2* perl* # dpkg -i apt* dpkg* debconf* # dpkg -i * # até que não ocorram erros Se estiver faltando um pacote, pegue-o a partir dos sites espelhos (http://www.debian.org/mirror/) com: # mc # use "link FTP" apontando para o servidor FTP Debian Recentemente, os pacotes atuais no servidor HTTP/FTP podem não ser localizados sob o clássico diretório `/dist', mas sob o novo diretório `/pool'. Então instale com: # dpkg -i /var/cache/apt/archives/ Para uma dependência quebrada, conserte-a ou use: # dpkg --ignore-depends=,... -i # dpkg --force-depends -i # dpkg --force-depends --purge # dpkg --force-confmiss -i # Instala arquivo de configuração faltando 3.3.4. Recuperação dos dados de seleção de pacotes -------------------------------------------------- Se o arquivo `/var/lib/dpkg/status' se corromper por alguma razão, o sistema Debian perde os dados de seleção de pacotes e é severamente prejudicado. Procure pelo antigo arquivo `/var/lib/dpkg/status' em `/var/lib/dpkg/status-old' ou `/var/backups/dpkg.status.*'. Manter `/var/backups/' em uma partição separada pode ser uma boa idéia já que esse diretório contém muitos dados importantes do sistema. Se o arquivo `/var/lib/dpkg/status' antigo não estiver disponível, você ainda pode recuperar a informação a partir dos diretórios em `/usr/share/doc/'. # ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk '{print $1 " install"}' | \ dpkg --set-selections # dselect --expert # reinstalar o sistema, de-selecione conforme necessário 3.3.5. Resgate do sistema após quebrar `/var' --------------------------------------------- Como o diretório `/var' contém dados atualizados regularmente como correio, ele é propício a ser corrompido. Separá-lo em uma partição independente limita os riscos. Se acontecer um desastre, você pode ter que recriar o diretório `/var' para resgatar seu sistema Debian. Obtenha um conteúdo esqueleto do diretório `/var' a partir de um sistema Debian mínimo funcional baseado na mesma versão Debian ou mais antiga, por exemplo `var.tar.gz (http://people.debian.org/~osamu/pub/)', e coloque-o no diretório raiz do sistema quebrado. Então # cd / # mv var var-old # se algum conteúdo útil foi deixado # tar xvzf var.tar.gz # use o arquivo esqueleto do Woody # aptitude # ou dselect Isso deve prover um sistema funcional. Você pode realizar a recuperação das seleções de pacotes usando a técnica descrita em Seção 3.3.4, `Recuperação dos dados de seleção de pacotes'. ([FIXME]: Esse procedimento precisa mais experimentos para verificar.) 3.3.6. Instalar um pacote em um sistema não iniciável ----------------------------------------------------- Inicie no Linux usando um disquete/CD de resgate do Debian ou uma partição alternativa em um sistema Linux com multi-inicialização. Monte o sistema não iniciável em `/target' e use o modo de instalação chroot do `dpkg'. # dpkg --root /target -i Então configure e resolva os problemas. Por outro lado, se a única coisa que impede de iniciar é um `lilo' quebrado, você pode iniciar usando um disco de resgate padrão do Debian. No prompt de boot, considerando que a partição de sua instalação Linux está em `/dev/hda12' e você quer o nível de execução (runlevel) 3, entre: boot: rescue root=/dev/ 3 Então você terá iniciado em um sistema quase totalmente funcional com o kernel no disquete. (Podem ocorrer problemas menores devido à falta de recursos do kernel ou módulos.) 3.3.7. O que fazer se o comando `dpkg' estiver quebrado ------------------------------------------------------- Um `dpkg' pode tornar impossível instalar qualquer arquivo `.deb'. Um procedimento como o seguinte o ajudará a recuperar-se dessa situação. (Na primeira linha, você pode substituir "links" com o comando de seu browser favorito.) $ links http:///debian/pool/main/d/dpkg/ ... baixe o dpkg__.deb bom $ su password: ***** # ar x dpkg__.deb # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz Para `i386', `http://packages.debian.org/dpkg' também pode usado como a URL. 3.4. Comandos de nirvana do Debian ---------------------------------- A _Iluminação_ com esses comandos salvará uma pessoa da eterna agonia cármica do inferno da atualização e a levará a alcançar o _nirvana_ do Debian. :-) 3.4.1. Informação sobre um arquivo ---------------------------------- Para encontrar o pacote ao qual um arquivo particular pertence: $ dpkg {-S|--search} padrão # procura pelo padrão nos pacotes instalados $ wget http://ftp.us.debian.org/debian/dists// $ zgrep -e pattern # procura o padrão-nome-de-arquivo no arquivo do debian Ou use comandos especializados de pacote: # apt-get install dlocate $ dlocate # alternativa rápida ao dpkg -L e dpkg -S ... # apt-get install auto-apt # ferramenta de instalação de pacotes sob demanda # auto-apt update # cria arquivo db para o auto-apt $ auto-apt search # procura pelo padrão em todos os pacotes, instalados ou não 3.4.2. Informação sobre um pacote --------------------------------- Procura e exibe informação a partir dos arquivos de pacotes. Certifique-se de apontar o APT para o(s) repositório(s) próprio(s) editando `/etc/apt/sources.list'. Se você deseja ver como pacotes na `testing'/`unstable' estão em comparação com os atualmente instalados, use `apt-cache policy'---muito legal. # apt-get check # atualiza o cache e verifica pacotes quebrados $ apt-cache search # procura pacote pela descrição do texto $ apt-cache policy # prioridade de pacote/informação de dists $ apt-cache show -a # exibe descrição do pacote em todas dists $ apt-cache showsrc # exibe descrição de pacote fonte determinado $ apt-cache showpkg # informação do pacote para depuração # dpkg --audit|-C # procura pacotes parcialmente instalados $ dpkg {-s|--status} ... # descrição de pacote instalado $ dpkg -l ... # estado de pacote instalado (1 linha cada) $ dpkg -L ... # lista nomes de arquivos instalados pelo pacote O `apt-cache showsrc' não foi documentado na versão Woody mas funciona :) Você também pode encontrar informação sobre pacote em (eu uso o `mc' para navegar entre eles): /var/lib/apt/lists/* /var/lib/dpkg/available A comparação dos seguintes arquivos dá informação sobre o que exatamente aconteceu nas últimas sessões de instalação. /var/lib/dpkg/status /var/backups/dpkg.status* 3.4.3. Instalação com APT sem acompanhamento -------------------------------------------- Para uma instalação sem acompanhamento, adicione a seguinte linha em `/etc/apt/apt.conf': Dpkg::Options {"--force-confold";} Isso é equivalente a executar `apt-get -q -y '. Como isso responde "yes" automaticamente a todas as perguntas, pode causar problemas, então use essa dica com cuidado. Veja apt.conf(5) e dpkg(1). Você pode configurar quaisquer pacotes particulares mais tarde seguindo Seção 3.4.4, `Reconfigurar pacotes instalados'. 3.4.4. Reconfigurar pacotes instalados -------------------------------------- Use o seguinte para reconfigurar qualquer pacote já instalado. # dpkg-reconfigure --priority= [...] # dpkg-reconfigure --all # reconfigura todos os pacotes # dpkg-reconfigure locales # gera qualquer locale extra # dpkg-reconfigure --p= xserver-xfree86 # reconfigura servidor X Faça isso para o `debconf' se você quiser mudar o modo de diálogo do `debconf' permanentemente. Alguns programas vêm com scripts de configuração especiais. apt-setup - cria /etc/apt/sources.list install-mbr - instala um gerenciador de Master Boot Record tzconfig - configura o fuso horário local gpmconfig - configura o daemon de mouse gpm eximconfig - configura o Exim (MTA) texconfig - configura o teTeX apacheconfig - configura o Apache (httpd) cvsconfig - configura o CVS sndconfig - configura o sistema de som ... update-alternatives - define o comando padrão, por exemplo, vim como vi update-rc.d - gerenciamento de script de init System-V update-menus - sistema de menus Debian ... 3.4.5. Remover e eliminar (purge) pacotes ----------------------------------------- Remover um pacote mantendo sua configuração: # apt-get remove ... # dpkg --remove ... Remover um pacote e toda sua configuração: # apt-get remove --purge ... # dpkg --purge ... 3.4.6. Mantendo pacotes antigos ------------------------------- Por exemplo, o travamento de `libc6' e `libc6-dev' para o `dselect' e `apt-get -u upgrade ' pode ser feito como a seguir: # echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections `apt-get -u install ' não será impedido por este "hold". Para manter um pacote forçando um rebaixamento automático para `apt-get -u upgrade ' ou `apt-get -u dist-upgrade', adicione o seguinte a `/etc/apt/preferences': Package: libc6 Pin: release a=stable Pin-Priority: 2000 Aqui o campo "`Package:'" não pode usar entradas como "`libc6*'". Se você precisa manter todos os pacotes binários relacionados ao pacote fonte `glibc' em uma versão sincronizada, precisa listá-los explicitamente. O seguinte listará pacotes em "hold": dpkg --get-selections "*"|grep -e "hold$" 3.4.7. Sistema híbrido `stable'/`testing'/`unstable' ---------------------------------------------------- `apt-show-versions' pode listar versões de pacotes disponíveis por distribuição. $ apt-show-versions | fgrep /testing | wc ... quantos pacotes você tem da testing $ apt-show-versions -u ... lista de pacotes atualizáveis $ apt-get install `apt-show-versions -u -b | fgrep /unstable` ... atualiza todos os pacotes unstable para suas versões mais novas 3.4.8. Descartar arquivos de pacote em cache -------------------------------------------- A instalação de pacotes com o APT deixa pacotes em cache em `/var/cache/apt/archives' e esses precisam ser excluídos. # apt-get autoclean # remove apenas os arquivos de pacotes sem uso # apt-get clean # remove todos os arquivos de pacotes em cache 3.4.9. Gravar/copiar a configuração do sistema ---------------------------------------------- Para fazer uma cópia local dos estados de seleção dos pacotes: # debconf-get-selections > # dpkg --get-selections "*" > # ou use \* `"*"' faz `' incluir entradas de pacotes para "purge" também. Você pode transferir esse arquivo para outro computador, e instalá-lo lá com: # dselect update # debconf-set-selections < # dpkg --set-selections < # apt-get -u dselect-upgrade # dselect install 3.4.10. Portar um pacote para o sistema `stable' ------------------------------------------------ Para atualizações parciais do sistema `stable', reconstruir um pacote dentro de seu ambiente usando o pacote fonte é desejável. Isso evita atualizações muito grandes de pacotes devido a suas dependências. Primeiro, adicione as seguintes entradas ao `/etc/apt/sources.list': deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free Aqui cada entrada para `deb-src' está quebrada em duas linhas devido a restrições de impressão, mas a entrada real em `sources.list' deve consistir de uma única linha. Então pegue a fonte e faça um pacote local: $ apt-get update # atualiza a lista de busca de pacotes fontes $ apt-get source $ dpkg-source -x $ cd ... inspecione pacotes necessários (Build-depends no arquivo .dsc) e instale-os também. Você também precisa do pacote "fakeroot". $ dpkg-buildpackage -rfakeroot ...ou (sem assinatura) $ dpkg-buildpackage -rfakeroot -us -uc # use "debsign" depois se necessário ...Então para instalar $ su -c "dpkg -i " Geralmente, é necessário instalar uns poucos pacotes com o sufixo "-dev" para satisfazer dependências de pacotes. O `debsign' está no pacote `devscripts'. O `auto-apt' pode facilitar a satisfação dessas dependências. O uso de `fakeroot' evita o uso desnecessário da conta root. No Woody, esses problemas de dependências podem ser simplificados. Por exemplo, para compilar um pacote `pine' de apenas fonte: # apt-get build-dep pine # apt-get source -b pine 3.4.11. Repositório local de pacotes ------------------------------------ Para criar um repositório local de pacotes que seja compatível com o APT e o sistema `dselect', é necessário criar o arquivo `Packages' e os arquivos de pacotes precisam ser colocados em uma árvore de diretórios específica. Pode-se fazer um repositório `deb' local similar a um repositório Debian oficial assim: # apt-get install dpkg-dev # cd # install -d # os pacotes físicos são localizados aqui # install -d dists//
/binary- # ls -1 | sed 's/_.*$/ / /' | uniq > # editor # ajuste e # dpkg-scanpackages / \ > dists//
/binary-/Packages # cat > dists//
/Release << EOF Archive: Version: <3.0> Component:
Origin: Label: Architecture: EOF # echo "deb file:
" \ >> /etc/apt/sources.list Alternativamente, pode-se fazer um repositório `deb' local curto e grosso: # apt-get install dpkg-dev # mkdir # mv # dpkg-scanpackages /dev/null | \ gzip - > /Packages.gz # echo "deb file: ./" >> /etc/apt/sources.list Esses repositórios podem ser acessados remotamente disponibilizando acesso a esses diretórios através de métodos HTTP ou FTP e mudando as entradas em `/etc/apt/sources.list' apropriadamente. 3.4.12. Converter ou instalar um pacote binário alien ----------------------------------------------------- O `alien' possibilita a conversão de pacotes binários providos em formatos de arquivo `rpm' da Redhat, `slp' da Stampede, `tgz' do Slackware, e `pkg' do Solaris em um pacote `deb' do Debian. Se você quiser usar um pacote de outra distribuição Linux ao invés do que tem instalado em seu sistema, você pode usar o `alien' para convertê-lo para seu formato de pacotes preferido e instalá-lo. O `alien' também suporta pacotes LSB. 3.4.13. Verificar arquivos de pacotes instalados ------------------------------------------------ `debsums' possibilita a verificação de arquivos de pacotes instalados com checksums MD5. Alguns pacotes não têm checksums MD5 disponíveis. Uma solução temporária para administradores de sistema: # cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D por Joerg Wendland (não testado). 3.5. Outras peculiaridades do Debian ------------------------------------ 3.5.1. O comando `dpkg-divert' ------------------------------ _Desvios_ (divertions) de arquivos são uma maneira de forçar o `dpkg' a não instalar um arquivo em sua localização padrão, mas em uma localização _desviada_. Os _desvios_ podem ser usados através dos scripts de pacotes Debian para desviar de um arquivo quando ele causa um conflito. Os administradores de sistema também podem usar um desvio para substituir o arquivo de configuração de um pacote, ou quando alguns arquivos (que não estão marcados como _conffiles_) precisam ser preservados pelo `dpkg', ao instalar uma versão mais nova de um pacote que contém aqueles arquivos . # dpkg-divert [--add] # adiciona "desvio" # dpkg-divert --remove # remove "desvio" Geralmente é uma boa idéia não usar o `dpkg-divert' a menos que ele seja absolutamente necessário. 3.5.2. O pacote `equivs' ------------------------ Se você compilar um programa a partir da fonte, é melhor torná-lo um pacote local debianizado real (`*.deb'). Use `equivs' como último recurso. Package: equivs Priority: extra Section: admin Description: Engana dependências de pacote Debian Este é um pacote falso que pode ser usado para criar pacotes Debian, que contém apenas informação de dependência. 3.5.3. Comandos alternativos ---------------------------- Para fazer o comando `vi' executar `vim', use `update-alternatives': # update-alternatives --display vi ... # update-alternatives --config vi Selection Command ----------------------------------------------- 1 /usr/bin/elvis-tiny 2 /usr/bin/vim *+ 3 /usr/bin/nvi Enter to keep the default[*], or type selection number: 2 Os itens no sistema de alternativas do Debian são mantidos em `/etc/alternatives' como ligações simbólicas. Para definir seu ambiente X Window favorito, aplique `update-alternatives' para `/usr/bin/x-session-manager' e `/usr/bin/x-window-manager'. `/bin/sh' é uma ligação simbólica direta para `/bin/bash' ou `/bin/dash'. É mais seguro usar `/bin/bash' para ser compatível com scripts contaminados com velho Bashismo, mas é mais disciplinado usar `/bin/dash' para reforçar a compatibilidade POSIX. A atualização para um kernel Linux 2.4 tende a definir isso para `/bin/dash'. 3.5.4. `init' System-V e níveis de execução (runlevels) ------------------------------------------------------- O nível de execução padrão em que inicializar pode ser definido em `/etc/inittab'. Diferente de outras distribuições, o Debian deixa o gerenciamento de nível de execução completamente como responsabilidade do administrador do sistema. O gerenciamento de `init' estilo System-V no Debian deve ser feito através de scripts `update-rc.d'. Iniciar `/etc/init.d/' no nível de execução 1,2,3 e parar em 4,5 com número de prioridade de seqüência 20 (normal) pode ser feito com: # update-rc.d start 20 1 2 3 . stop 20 4 5 . A remoção de ligações simbólicas enquanto o script em `init.d' ainda existe pode ser feita com: # update-rc.d -f remove Para editar níveis de execução, eu trapaceio. Eu edito as entradas manualmente usando o comando `mv' no prompt shell do `mc' ao copiar as entradas de ligação usando Alt-Enter. Por exemplo: # mv S99xdm K99xdm # desabilita xdm (X display manager) Eu também desabilito o daemon inserindo `exit 0' no início de um script `init.d' como um hack rápido. Esses são os arquivos de configuração depois de tudo. 3.5.5. Serviços daemon desabilitados ------------------------------------ A distribuição Debian considera a segurança do sistema seriamente e espera que o administrador do sistema seja competente. Assim, algumas vezes a facilidade de uso aparece como assunto secundário e muitos serviços daemon vêm com o maior nível de segurança, com os mínimos serviços (ou nenhum) disponíveis como seu estado de instalação padrão. Execute `ps aux' ou verifique os conteúdos de `/etc/init.d/*' e `/etc/inetd.conf', se tiver qualquer dúvida (sobre Exim, DHCP, ...). Verifique também `/etc/hosts.deny'. O comando `pidof' também é útil (veja pidof(8)). O X11 não permite conexões TCP/IP (remotas) por padrão nas versões recentes do Debian. O redirecionamento do X em SSH também é desabilitado. ------------------------------------------------------------------------------- A. Apêndice ----------- A.1. Autores ------------ O Referência Rápida Debian foi iniciado por Osamu Aoki como um registro pessoal de instalação que foi eventualmente chamado "Referência Rápida". Muitas partes foram extraídas dos arquivos da lista de discussão "debian-user". Além disso, também foram usados o "Manual de Instalação Debian" e "Notas de Lançamento Debian" Seguindo uma sugestão de Josip Rodin, que é muito ativo no Projeto de Documentação Debian (http://www.debian.org/doc/ddp) (DDP) e é o atual mantenedor da "Debian FAQ", esse documento foi renomeado como "Referência Debian" e foi fundido com vários capítulos da "Debian FAQ" com conteúdo de referência. Então a "Referência Rápida Debian" é formada de resumos. Esse documento foi editado, traduzido, e ampliado pelos seguintes membros do time QREF: * Originais em inglês do "Referência Rápida..." original * Osamu Aoki (líder: todos os conteúdos) * Revisão do inglês e contribuição adicional * David Sewell (líder: estilo en) * Thomas Hood (relacionado a rede) * Brian Nelson (especialmente relacionado ao X) * Jan Michael C Alonzo * Daniel Webb * Retorno de todos os tradutores * Tradução para o francês * Guillaume Erbs (líder: fr) * Rénald Casagraude * Jean-Pierre Delange * Daniel Desages * Tradução para o italiano * Davide Di Lazzaro (líder: it) * Tradução para o português (Brasil) * Paulo Rogério Ormenese (líder: pt-br) * Andre Luis Lopes * Marcio Roberto Teixeira * Rildo Taveira de Oliveira * Raphael Bittencourt Simoes Costa * Gustavo Noronha Silva (coordinator) * Tradução para o espanhol * Walter Echarri (líder: es) * José Carreiro * Tradução para o alemão * Jens Seidel (líder: de) * Willi Dyck * Stefan Schröder * Agon S. Buchholz * Tradução para o polonês---os seguintes membros do PDDP (http://debian.linux.org.pl): * Marcin Andruszkiewicz * Mariusz Centka * Bartosz Fenski (líder: pl) * Radoslaw Grzanka * Bartosz 'Xebord' Janowski * Jacek Lachowicz * Rafal Michaluk * Leonard Milcin, Jr. * Tomasz Z. Napierala * Oskar Ostafin * Tomasz Piekos * Jacek Politowski * Mateusz Prichacz * Marcin Rogowski * Pawel Rozanski * Mariusz Strzelecki * Krzysztof Scierski * Przemyslaw Adam Smiejek * Mateusz Tryka * Cezary Uchto * Krzysztof Witkowski * Bartosz Zapalowski * Tradução para o chinês (simplificado) * Hao "Lyoo" LIU * Ming Hua * Xiao Sheng Wen (l der: zh-cn) * Haifeng Chen * Xie Yanbo * easthero * Tradução para o chinês (tradicional) * Asho Yeh (líder: zh-tw) * Tang Wei Ching (ex-líder: zh-tw) * Tradução para o japonês * Shinichi Tsunoda (líder: ja) * Osamu Aoki A.2. Garantias -------------- Como eu não sou um expert, não pretendo ser totalmente compreensível quanto ao Debian ou ao Linux em geral. As considerações de segurança que faço devem ser aplicáveis apenas ao uso doméstico. Este documento não substitui nenhum guia oficial. Não se oferecem garantias de nenhum tipo. Todas as marcas registradas são de propriedade de seus respectivos donos. A.3. Retorno ------------ Comentários e adendos a esse documento são sempre bem-vindos. Por favor, envie uma mensagem para o sistema BTS Debian (http://bugs.debian.org/) relacionada ao pacote `debian-reference' ou para seus respectivos pacotes de traduções. O uso do `reportbug' facilita o envio de um relatório de bug completo. Você pode ainda enviar uma mensagem em inglês para Osamu Aoki (http://people.debian.org/~osamu/) em ou para cada tradutor em seus respectivos idiomas. ------------------------------------------------------------------------------- Referência Rápida Debian Osamu Aoki Paulo Rogério Ormenese (líder: pt-br) Seção A.1, `Autores' CVS, Qui Jan 18 11:54:35 UTC 2007