Reference.pt Br

download Reference.pt Br

of 279

Transcript of Reference.pt Br

Referncia DebianOsamu Aoki Paulo Rogrio Ormenese (lder: pt-br) Autores on page 257

CVS, Qui Jan 18 11:53:12 UTC 2007

ResumoEsta Referncia Debian (http://qref.sourceforge.net/) dedica-se a fornecer uma viso ampla do sistema Debian como um guia do usurio ps-instalao. Ela abrange muitos aspectos de administrao do sistema atravs de exemplos de comando shell. So proporcionados tutoriais bsicos, dicas, e outras informaes para temas incluindo conceitos fundamentais do sistema Debian, sugestes de instalao de sistema, administrao de pacotes Debian, o kernel Linux sob o Debian, ajustes do sistema, construo de um gateway, editores de texto, CVS, programao, e GnuPG para no-desenvolvedores.

Nota de CopyrightCopyright 20012005 por Osamu Aoki . Copyright (Captulo 2) 1996-2001 por Software in the Public Interest. Este documento pode ser usado sob os termos da GNU General Public License verso 2 ou superior. (http://www.gnu.org/copyleft/gpl.html) concedida a permisso para fazer e distribuir cpias literais deste documento contanto que o aviso de direito de cpia (copyright) e este aviso de permisso sejam preservados em todas as cpias. garantida a permisso para copiar e distribuir verses modicadas deste documento sob as condies da cpia literal, contanto que o trabalho derivado resultante seja totalmente distribudo sob os termos de um aviso de permisso idntico a este. garantida a permisso para copiar e distribuir tradues deste documento em outro idioma sob as condies acima para verses modicadas, exceto que este aviso de permisso pode ser includo em tradues aprovadas pela Free Software Foundation em vez de no ingls original.

i

Sumrio1 Prefcio 1.1 1.2 1.3 1.4 1.5 2 Documento Ocial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Convenes do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripts de exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Congurao bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bsico das distribuies Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 2 2 3 5 5 5 6 6 7 7 8 8 8 8 9 9

Fundamentos Debian 2.1 Os repositrios Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 Estruturas de diretrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribuies Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A distribuio stable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A distribuio testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A distribuio unstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . A distribuio frozen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codinomes das distribuies Debian . . . . . . . . . . . . . . . . . . . . . . Codinomes usados no passado . . . . . . . . . . . . . . . . . . . . . . . . . A origem dos codinomes . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.10 O diretrio pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.11 Notas histricas sobre a Sid . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.12 Pacotes enviados para incoming/ . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.13 Obtendo um pacote antigo . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.14 Sees de Arquiteturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.15 O cdigo-fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

SUMRIO

ii

2.2

O sistema de gerenciamento de pacotes Debian . . . . . . . . . . . . . . . . . . . . 11 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 Viso Geral dos pacotes Debian . . . . . . . . . . . . . . . . . . . . . . . . . 11 Formato de pacotes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Convenes de nomenclatura para nomes de arquivos de pacotes Debian 13

Preservao da congurao local . . . . . . . . . . . . . . . . . . . . . . . 13 Scripts de manuteno Debian . . . . . . . . . . . . . . . . . . . . . . . . . 14 Prioridade de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Pacotes virtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Dependncias de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 O signicado de Pr-dependncias . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.10 Estado do pacote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.11 Evitando que pacotes sejam atualizados . . . . . . . . . . . . . . . . . . . . 17 2.2.12 Pacotes fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.13 Construindo pacotes binrios a partir de um pacote fonte . . . . . . . . . 18 2.2.14 Criando novos pacotes Debian . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Atualizando um sistema Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.4 Mtodos para atualizar um sistema Debian . . . . . . . . . . . . . . . . . . 19 Viso geral das ferramentas de gerenciamento de pacotes . . . . . . . . . 19 dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Atualizando um sistema em execuo . . . . . . . . . . . . . . . . . . . . . 21 Arquivos .deb baixados e em cache . . . . . . . . . . . . . . . . . . . . . . 21 Mantendo registros para atualizaes . . . . . . . . . . . . . . . . . . . . . 21

O processo de inicializao Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4.1 2.4.2 2.4.3 O programa init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Nveis de execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Personalizando o processo de inicializao . . . . . . . . . . . . . . . . . . 22

2.5 2.6 2.7

Suportando diversidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Internacionalizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Debian e o kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

SUMRIO

iii

2.7.1 2.7.2 2.7.3 2.7.4 3

Compilando um kernel a partir de um fonte no Debian . . . . . . . . . . 24 Ferramentas para construir kernels personalizados . . . . . . . . . . . . . 24 Condies especiais para lidar com mdulos . . . . . . . . . . . . . . . . . 25 Desinstalao de um kernel antigo . . . . . . . . . . . . . . . . . . . . . . . 25 27

Dicas para instalao do Sistema Debian 3.1

Dicas para instalao de sistemas Linux em geral . . . . . . . . . . . . . . . . . . . 27 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 O bsico sobre a compatibilidade de hardware . . . . . . . . . . . . . . . . 27 Determinando hardware e chip set de um PC . . . . . . . . . . . . . . . . . 28 Determinando o hardware de um PC via Debian . . . . . . . . . . . . . . . 28 Determinando o hardware de um PC por meio de outros SOs . . . . . . . 29 Um mito sobre o Lilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Escolha dos disquetes de inicializao . . . . . . . . . . . . . . . . . . . . . 30 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Hosts e IP a usar para LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.1.10 Contas de usurio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.1.11 Criando sistemas de arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.1.12 Guia sobre memria DRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.1.13 Espao de troca (swap) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2 3.3 Congurao do bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Congurao do mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1 3.3.2 3.3.3 3.4 3.5 3.6 Mouses PS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Mouses USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Touch pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Congurao de NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Congurao do Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Congurao da Impressora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.6.1 3.6.2 lpr/lpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.7

Outras dicas de instalao no host . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

SUMRIO

iv

3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 4

Instalar mais alguns pacotes aps a instalao inicial . . . . . . . . . . . . 43 Mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Congurao bsica de CD-RW . . . . . . . . . . . . . . . . . . . . . . . . . 44 Memria grande e autodesligamento . . . . . . . . . . . . . . . . . . . . . 44 Estranhos problemas de acesso a alguns websites . . . . . . . . . . . . . . 45 Congurao Dialup PPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Outros arquivos de congurao para fuar em /etc/ . . . . . . . . . . . 46 47

Tutoriais do Debian 4.1

Comeando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 Login em um prompt shell como root . . . . . . . . . . . . . . . . . . . . . 47 Congurar um ambiente mnimo para novato . . . . . . . . . . . . . . . . 48 Adicionar uma conta de usurio . . . . . . . . . . . . . . . . . . . . . . . . 49 Alternar entre consoles virtuais . . . . . . . . . . . . . . . . . . . . . . . . . 49 Como desligar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Hora do jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2

Midnight Commander (MC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 Melhorar o MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Iniciar o MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Gerenciador de arquivos no MC . . . . . . . . . . . . . . . . . . . . . . . . 51 Truques de linha de comando no MC . . . . . . . . . . . . . . . . . . . . . 52 Editor no MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Visualizador no MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Recursos de auto incio no MC . . . . . . . . . . . . . . . . . . . . . . . . . 53 Sistema de arquivo virtual FTP no MC . . . . . . . . . . . . . . . . . . . . . 53

4.3

Ambiente de trabalho semelhante ao Unix . . . . . . . . . . . . . . . . . . . . . . . 53 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 Comandos de teclado especiais . . . . . . . . . . . . . . . . . . . . . . . . . 54 Comandos Unix bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 A execuo de comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Comando simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Execuo de comando e varivel de ambiente . . . . . . . . . . . . . . . . 58

SUMRIO

v

4.3.6 4.3.7 4.3.8 4.3.9

Caminho de busca de comando . . . . . . . . . . . . . . . . . . . . . . . . . 59 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Curingas (wildcards) de shell . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Valor de retorno do comando . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.3.10 Seqncias de comando tpicas . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3.11 Apelido (alias) de comando . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.4 Processamento de texto em similares a Unix . . . . . . . . . . . . . . . . . . . . . . 63 4.4.1 4.4.2 4.5 Expresses regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Expresses de substituio . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Sistema de arquivos em similares ao Unix . . . . . . . . . . . . . . . . . . . . . . . 65 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 Bsico de arquivos Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 O conceito de sistema de arquivos no Debian . . . . . . . . . . . . . . . . . 67 Permisses de acesso de arquivos e diretrios . . . . . . . . . . . . . . . . 67 Marcas de tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Ligaes (links) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Pipes nomeados (FIFOs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Soquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Arquivos de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Sistema de arquivo /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.6

Sistema X Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.6.1 4.6.2 4.6.3 Iniciar o Sistema X Window . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Menu no Sistema X Window . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Seqncia de teclado para o Sistema X Window . . . . . . . . . . . . . . . 74

4.7 5

Estudos adicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 77

Atualizando uma distribuio para a testing 5.1 5.2 5.3

Transio do APT para a verso Woody . . . . . . . . . . . . . . . . . . . . . . . . 77 Preparao para a transio (stable para testing) . . . . . . . . . . . . . . . . 78 Atualizar o sistema Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.3.1 5.3.2 Melhor prtica de atualizao usando o dselect . . . . . . . . . . . . . . 79 Prtica ruim de atualizao com o apt-get . . . . . . . . . . . . . . . . . 80

SUMRIO

vi

6

Gerenciamento de pacotes Debian 6.1

81

Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.1.1 6.1.2 Ferramentas principais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Ferramentas teis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

6.2

Bsico do gerenciamento de pacotes Debian . . . . . . . . . . . . . . . . . . . . . . 82 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.2.8 Instalar tarefa com o tasksel ou aptitude . . . . . . . . . . . . . . . . . 82 Congure o sistema APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Comandos apt-cache e apt-get . . . . . . . . . . . . . . . . . . . . . . 84 Seguindo um tipo da distribuio Debian . . . . . . . . . . . . . . . . . . . 86 Rebaixando todos os pacotes para a estvel . . . . . . . . . . . . . . . . 86 Viso geral do arquivo /etc/apt/preferences . . . . . . . . . . . . . . 87

6.3

Comandos de sobrevivncia do Debian . . . . . . . . . . . . . . . . . . . . . . . . 87 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 Vericar bugs no Debian e procurar ajuda . . . . . . . . . . . . . . . . . . . 88 Resolvendo problemas com atualizao pelo APT . . . . . . . . . . . . . . 88 Resgate usando o dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Recuperao dos dados de seleo de pacotes . . . . . . . . . . . . . . . . 90 Resgate do sistema aps quebrar /var . . . . . . . . . . . . . . . . . . . . 90 Instalar um pacote em um sistema no inicivel . . . . . . . . . . . . . . . 90 O que fazer se o comando dpkg estiver quebrado . . . . . . . . . . . . . . 91

6.4

Comandos de nirvana do Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.4.7 6.4.8 6.4.9 Informao sobre um arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Informao sobre um pacote . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Instalao com APT sem acompanhamento . . . . . . . . . . . . . . . . . . 93 Recongurar pacotes instalados . . . . . . . . . . . . . . . . . . . . . . . . 93 Remover e eliminar (purge) pacotes . . . . . . . . . . . . . . . . . . . . . . 94 Mantendo pacotes antigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Sistema hbrido stable/testing/unstable . . . . . . . . . . . . . . . 94 Descartar arquivos de pacote em cache . . . . . . . . . . . . . . . . . . . . 95 Gravar/copiar a congurao do sistema . . . . . . . . . . . . . . . . . . . 95

SUMRIO

vii

6.4.10 Portar um pacote para o sistema stable . . . . . . . . . . . . . . . . . . . 95 6.4.11 Repositrio local de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.4.12 Converter ou instalar um pacote binrio alien . . . . . . . . . . . . . . . . 97 6.4.13 Vericar arquivos de pacotes instalados . . . . . . . . . . . . . . . . . . . . 97 6.4.14 Otimizando o arquivo sources.list . . . . . . . . . . . . . . . . . . . . 97 6.5 Outras peculiaridades do Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.5.1 6.5.2 6.5.3 6.5.4 6.5.5 7 O comando dpkg-divert . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 O pacote equivs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Comandos alternativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 init System-V e nveis de execuo (runlevels) . . . . . . . . . . . . . . . 99 Servios daemon desabilitados . . . . . . . . . . . . . . . . . . . . . . . . . 100 101

O kernel Linux no Debian 7.1

Recompilao do Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.1.1 7.1.2 7.1.3 Mtodo Debian padro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Mtodo clssico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Cabealhos do kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.2

O kernel 2.4 modularizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Funo de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Sistema de arquivos EXT3 ( > 2.4.17) . . . . . . . . . . . . . . . . . . . . . . 106 Suporte Realtek RTL-8139 no kernel 2.4 . . . . . . . . . . . . . . . . . . . . 107 Suporte a porta paralela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

7.3

Ajustando o kernel pelo sistema de arquivos proc . . . . . . . . . . . . . . . . . . 107 7.3.1 7.3.2 7.3.3 Muitos arquivos abertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Intervalos de sincronizao (ush) de disco . . . . . . . . . . . . . . . . . . 108 Mquinas de pouca memria antigas e lerdas . . . . . . . . . . . . . . . . 108 109

8

Dicas Debian 8.1

Iniciando o sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.1.1 Eu esqueci a senha do root (1) . . . . . . . . . . . . . . . . . . . . . . . . 109

SUMRIO

viii

8.1.2 8.1.3 8.1.4 8.1.5 8.1.6 8.2

Eu esqueci a senha do root (2) . . . . . . . . . . . . . . . . . . . . . . . . 110 No posso iniciar o sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Deixe-me desabilitar o X na inicializao . . . . . . . . . . . . . . . . . . 111 Outros truques de inicializao com o prompt de inicializao . . . . . . . 112 Denindo parmetros de inicializao do GRUB . . . . . . . . . . . . . . . 112

Gravando atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 8.2.1 8.2.2 Gravando atividades shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Gravando atividades no X . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.3

Copiar e arquivar um subdiretrio inteiro . . . . . . . . . . . . . . . . . . . . . . . 114 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 Comandos bsicos para copiar um subdiretrio inteiro . . . . . . . . . . . 114 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 pax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 cpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 afio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8.4

Backups diferenciais e sincronizao de dados . . . . . . . . . . . . . . . . . . . . 116 8.4.1 8.4.2 8.4.3 Backup diferencial com rdiff . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Backup dirio com pdumpfs . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Backup diferencial regular com RCS . . . . . . . . . . . . . . . . . . . . . . 117

8.5

Recuperao de sistema paralizado . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 8.5.1 8.5.2 Matar um processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Alt-SysRq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8.6

Belos pequenos comandos para se lembrar . . . . . . . . . . . . . . . . . . . . . . 118 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.6.6 8.6.7 8.6.8 Paginador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Memria livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Denir a hora (BIOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Denir a hora (NTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Como controlar recursos de console como o protetor de tela . . . . . . . . 119 Procurar na base de dados administrativa . . . . . . . . . . . . . . . . . . . 120 Desabilitar o som (beep) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Mensagens de erro na tela do console . . . . . . . . . . . . . . . . . . . . . 120

SUMRIO

ix

8.6.9

Denir o console para o tipo correto . . . . . . . . . . . . . . . . . . . . . . 121

8.6.10 Voltar o console ao estador normal . . . . . . . . . . . . . . . . . . . . . . . 121 8.6.11 Converter um arquivo texto DOS para o estilo Unix . . . . . . . . . . . . . 121 8.6.12 Substituio de expresses regulares . . . . . . . . . . . . . . . . . . . . . . 122 8.6.13 Editar arquivo no local usando um script . . . . . . . . . . . . . . . . . . . 122 8.6.14 Extrair diferenas e juntar atualizaes para os arquivos fonte . . . . . . . 122 8.6.15 Converter um arquivo grande em arquivos pequenos . . . . . . . . . . . . 123 8.6.16 Extrair dados de uma tabela em arquivo texto . . . . . . . . . . . . . . . . 123 8.6.17 Pequenos scripts para ligar comandos . . . . . . . . . . . . . . . . . . . . . 124 8.6.18 Pequenos scripts para fazer loop para cada arquivo . . . . . . . . . . . . . 125 8.6.19 Loucura de script Perl curto . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 8.6.20 Obter texto ou arquivo de lista de discusso de uma pgina web . . . . . 126 8.6.21 Imprimir de forma bonita uma pgina web . . . . . . . . . . . . . . . . . . 126 8.6.22 Imprimir de forma bonita uma pgina de manual . . . . . . . . . . . . . . 127 8.6.23 Juntar dois arquivos PostScript ou PDF . . . . . . . . . . . . . . . . . . . . 127 8.6.24 Contar o tempo de um comando . . . . . . . . . . . . . . . . . . . . . . . . 127 8.6.25 Comando nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.6.26 Agendar atividade (cron, at) . . . . . . . . . . . . . . . . . . . . . . . . . 128 8.6.27 Mudana de console com screen . . . . . . . . . . . . . . . . . . . . . . . 128 8.6.28 Testes de rede bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 8.6.29 Fazer ush em mensagens do spool local . . . . . . . . . . . . . . . . . . . 130 8.6.30 Remover mensagens congeladas do spool local . . . . . . . . . . . . . . . . 130 8.6.31 Reentregar contedo mbox . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 8.6.32 Limpar contedo de arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . 131 8.6.33 Arquivos Falsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 8.6.34 chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 8.6.35 Como checar ligaes diretas (hard) . . . . . . . . . . . . . . . . . . . . . . 133 8.6.36 Usar mount em um arquivo de uma imagem de disco rgido . . . . . . . . 134 8.6.37 Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 8.6.38 Utilitrios para sistemas de arquivos no nativos . . . . . . . . . . . . . . 134 8.7 Erros tpicos a serem notados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 8.7.1 8.7.2 rm -rf .* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 rm /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

SUMRIO

x

9

Ajustando um sistema Debian 9.1

137

Inicializao do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.1.1 9.1.2 9.1.3 Personalizando os scripts init . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Personalizando o log do sistema . . . . . . . . . . . . . . . . . . . . . . . . 138 Otimizando o hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9.2

Restringindo o acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 Restringindo logins com PAM . . . . . . . . . . . . . . . . . . . . . . . . . 139 Por que o GNU su no suporta o grupo wheel . . . . . . . . . . . . . . 140 Propsitos de grupos padres . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Trabalhando de forma mais segura sudo . . . . . . . . . . . . . . . . . . 141 Restringindo acesso a servios . . . . . . . . . . . . . . . . . . . . . . . . . 142 Centralizando a autenticao LDAP . . . . . . . . . . . . . . . . . . . . . 142

9.3

Gravadores de CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.3.7 9.3.8 9.3.9 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Alternativa 1: mdulos + lilo . . . . . . . . . . . . . . . . . . . . . . . . . 143 Alternativa 2: recompilar o kernel . . . . . . . . . . . . . . . . . . . . . . . 144 Passos posteriores congurao . . . . . . . . . . . . . . . . . . . . . . . 144 Arquivo imagem de CD (inicializvel) . . . . . . . . . . . . . . . . . . . . . 145 Gravar CDs (R, RW): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Fazer um arquivo imagem de um CD . . . . . . . . . . . . . . . . . . . . . 146 Imagens de CD do Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Fazer cpia de segurana do sistema em CD-R . . . . . . . . . . . . . . . . 147

9.3.10 Copiar um CD de msicas para CD-R . . . . . . . . . . . . . . . . . . . . . 147 9.4 X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.4.6 9.4.7 Pacotes do X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Deteco de hardware para o X . . . . . . . . . . . . . . . . . . . . . . . . . 149 O servidor X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Clientes X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Sesses X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Usando o X sobre TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Conectando a um servidor X remoto xhost . . . . . . . . . . . . . . . . 156

SUMRIO

xi

9.4.8 9.4.9

Conectando a um servidor X remoto ssh . . . . . . . . . . . . . . . . . . 157 O emulador de terminal X xterm . . . . . . . . . . . . . . . . . . . . . . 157

9.4.10 Recursos do X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 9.4.11 Mapas de teclado e funes de botes do apontador no X . . . . . . . . . . 158 9.4.12 Obtendo root no X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9.4.13 Fontes TrueType no X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 9.4.14 Navegadores Web no X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 9.5 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.5.6 9.6 Bsico do SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Redirecionamento de porta para tunelamento SMTP/POP3 . . . . . . . . 165 Conectando com menos senhas RSA . . . . . . . . . . . . . . . . . . . . . 165 Lidando com clientes SSH estranhos . . . . . . . . . . . . . . . . . . . . . . 166 Congurando o ssh-agent . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Resoluo de problemas de SSH . . . . . . . . . . . . . . . . . . . . . . . . 167

Correio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.6.1 9.6.2 9.6.3 9.6.4 Agentes de transporte de correio (MTAs) . . . . . . . . . . . . . . . . . . . 167 Baixando mensagens Fetchmail . . . . . . . . . . . . . . . . . . . . . . . . 170 Processando mensagens Procmail . . . . . . . . . . . . . . . . . . . . . . 170 Lendo mensagens Mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

9.7

Localizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.7.1 9.7.2 9.7.3 9.7.4 9.7.5 9.7.6 9.7.7 9.7.8 9.7.9 Bsico da localizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Introduo a locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Ativando suporte a locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Ativando um locale especco . . . . . . . . . . . . . . . . . . . . . . . . . 174 Locale de formato de data ISO 8601 . . . . . . . . . . . . . . . . . . . . . . 175 Exemplo para os Estados Unidos (ISO-8859-1) . . . . . . . . . . . . . . . . 175 Exemplo para a Frana com o sinal de Euro (ISO-8859-15) . . . . . . . . . 175 Exemplo para um sistema X window multi-idiomas . . . . . . . . . . . . . 176

9.7.10 Mtodos de entrada X alternativos . . . . . . . . . . . . . . . . . . . . . . . 179 9.7.11 Emuladores de terminal no X . . . . . . . . . . . . . . . . . . . . . . . . . . 179

SUMRIO

xii

9.7.12 Exemplo para UTF-8 no X . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.7.13 Exemplo para UTF-8 em um console framebuffer . . . . . . . . . . . . . . 180 9.7.14 Alm dos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 10 Congurao de rede 183

10.1 Bsico de rede IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 10.2 Congurao de rede de baixo nvel . . . . . . . . . . . . . . . . . . . . . . . . . . 185 10.2.1 Congurao de rede de baixo nvel ifconfig e route . . . . . . . . . 185 10.2.2 Congurao de rede de baixo nvel ip . . . . . . . . . . . . . . . . . . . 187 10.2.3 Congurando uma interface Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . 187 10.2.4 Congurando uma interface PPP . . . . . . . . . . . . . . . . . . . . . . . . 188 10.3 Nomeando o computador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 10.3.1 Nome do sistema (Hostname) . . . . . . . . . . . . . . . . . . . . . . . . . . 191 10.3.2 Nome de correio (Mailname) . . . . . . . . . . . . . . . . . . . . . . . . . . 192 10.4 Domain Name Service (DNS) (Servio de Nome de Domnio) . . . . . . . . . . . 192 10.4.1 O resolvedor (resolver) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 10.4.2 Gerenciando informao do resolvedor de nomes resolvconf . . . . . 193 10.4.3 Colocando em cache nomes consultados dnsmasq . . . . . . . . . . . . . 193 10.4.4 Fornecendo Servio de Nome de Domnio bind . . . . . . . . . . . . . . 194 10.5 Congurando interfaces de rede usando DHCP . . . . . . . . . . . . . . . . . . . 194 10.6 Congurao de rede de alto nvel no Debian . . . . . . . . . . . . . . . . . . . . . 195 10.6.1 Congurando uma interface com um endereo IP esttico . . . . . . . . . 195 10.6.2 Congurando uma interface usando DHCP . . . . . . . . . . . . . . . . . . 196 10.6.3 Congurando uma interface Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . 196 10.6.4 Congurando uma interface PPP . . . . . . . . . . . . . . . . . . . . . . . . 196 10.6.5 Congurando uma interface PPPoE . . . . . . . . . . . . . . . . . . . . . . 197 10.6.6 Congurando mltiplas interfaces Ethernet para um gateway . . . . . . . 197 10.6.7 Congurando interfaces virtuais . . . . . . . . . . . . . . . . . . . . . . . . 198 10.7 Recongurao de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 10.8 Recongurao mgica de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 10.8.1 guessnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

SUMRIO

xiii

10.8.2 laptop-net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 10.9 Gatilhando a recongurao de rede . . . . . . . . . . . . . . . . . . . . . . . . . . 201 10.9.1 Gatilhando a congurao de rede durante a inicializao . . . . . . . . . 202 10.9.2 Gatilhando congurao de rede hotplug . . . . . . . . . . . . . . . . . 202 10.9.3 Gatilhando a congurao de rede ifplugd . . . . . . . . . . . . . . . . 203 10.9.4 Gatilhando a congurao de rede waproamd . . . . . . . . . . . . . . . 204 10.9.5 Congurao de rede e PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . 204 10.10Congurao de servio de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 10.11Resoluo de problemas com rede . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 10.12Construindo um roteador gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 10.12.1 Congurao do Netlter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 10.12.2 Gerenciar mltiplas conexes de rede . . . . . . . . . . . . . . . . . . . . . 210 11 Editores 211

11.1 Editores populares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 11.2 Editores de recuperao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.3 Emacs e Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.3.1 Dicas para o Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.3.2 Dicas para o Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.3.3 Iniciando o editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 11.3.4 Resumo de comandos do Editor (Emacs, Vim) . . . . . . . . . . . . . . . . 213 11.3.5 Congurao do Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 11.3.6 Ctags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 11.3.7 Converter uma tela com sintaxe destacada em fonte HTML . . . . . . . . 216 11.3.8 Dividir a tela com o vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 12 Sistemas de Controle de Verso 217

12.1 Concurrent Versions System (CVS) (Sistema de Verses Concorrentes) . . . . . . 217 12.1.1 Instalando um servidor CVS . . . . . . . . . . . . . . . . . . . . . . . . . . 217 12.1.2 Exemplos de sesso CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 12.1.3 Resolvendo problemas do CVS . . . . . . . . . . . . . . . . . . . . . . . . . 221 12.1.4 Comandos CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

SUMRIO

xiv

12.2 Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 12.2.1 Instalando um servidor Subversion . . . . . . . . . . . . . . . . . . . . . . 222 12.2.2 Movendo um repositrio CVS para Subversion . . . . . . . . . . . . . . . . 223 12.2.3 Exemplos de uso do Subversion . . . . . . . . . . . . . . . . . . . . . . . . 223 13 Programao 225

13.1 Onde comear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 13.2 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 13.2.1 Bash o shell interativo padro do GNU . . . . . . . . . . . . . . . . . . . 225 13.2.2 Shells POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 13.2.3 Parmetros shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 13.2.4 Redirecionamento shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 13.2.5 Condicionais de shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 13.2.6 Processamento de linha de comando . . . . . . . . . . . . . . . . . . . . . . 229 13.3 Awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 13.4 Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 13.5 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 13.6 Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 13.7 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 13.7.1 Programa C simples (gcc) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 13.7.2 Depurando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 13.7.3 Flex um Lex melhor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 13.7.4 Bison um Yacc melhor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 13.7.5 Autoconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 13.8 Preparao de documentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.8.1 Processamento de texto roff . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.8.2 SGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.8.3 TeX/LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 13.8.4 Programao Letrada (Literate Programming) . . . . . . . . . . . . . . . . 241 13.9 Empacotamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 13.9.1 Empacotando um binrio simples . . . . . . . . . . . . . . . . . . . . . . . 243 13.9.2 Empacotando com ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . 243

SUMRIO

xv

14 GnuPG

245

14.1 Instalando GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 14.2 Usando GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 14.3 Gerenciando GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 14.4 Usando GnuPG com aplicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 14.4.1 Usando GnuPG com Mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 14.4.2 Usando GnuPG com o Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 15 Suporte para o Debian 249

15.1 Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 15.2 Descobrindo o signicado de uma palavra . . . . . . . . . . . . . . . . . . . . . . 253 15.3 Descobrindo a popularidade de um pacote Debian . . . . . . . . . . . . . . . . . . 253 15.4 O sistema de gerenciamento de bugs Debian . . . . . . . . . . . . . . . . . . . . . 253 15.5 Listas de discusso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 15.6 Internet Relay Chat (IRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 15.7 Mecanismos de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 15.8 Stios Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 A Apndice 257

A.1 Autores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 A.2 Garantias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A.3 Retorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A.4 Formato do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A.5 O labirinto do Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 A.6 As citaes do Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

SUMRIO

xvi

1

Captulo 1

PrefcioEsta Referncia Debian (http://qref.sourceforge.net/) tem como objetivo oferecer uma ampla viso do sistema Debian como um guia do usurio ps-instalao. O leitor alvo algum que esteja disposto a ler scripts shell. Espero que o leitor tenha conhecimentos anteriores em sistemas Unix-like antes de ler este documento. Tomei uma deciso consciente de no explicar tudo em detalhes caso tais detalhes possam ser encontrados em uma pgina de manual, uma pgina info ou um documento HOWTO. Ao invs de explicaes completas, eu tentei oferecer informao prtica mais diretamente fornecendo as sequncias de comandos exatas no texto principal ou scripts de exemplo em http://www.debian.org/doc/manuals/debian-reference/examples/ como uma referncia. Voc deve entender o contedo dos exemplos antes de execut-los. Seu sistema pode requerer sequncias de comandos ligeiramente diferentes. Muita informao includa consiste de lembranas ou apontadores para as referncias ociais listadas em Referncias on page 249. Isto devido parcialmente a este documento ter sido originado como uma referncia rpida. Matenha-o pequeno e simples (KISS) meu princpio guia. Para ajuda com manuteno de emergncia do sistema, pule imediamente para o Comandos de sobrevivncia do Debian on page 87.

1.1

Documento Ocial

O ltimo documento ocial est nos repositrios Debian com o nome de pacote debian-reference-pt-br e est tambm disponvel em http://www.debian.org/ doc/manuals/debian-reference/. A ltima verso de desenvolvimento http://qref.sourceforge.net/Debian/. O projeto hospedado em http://qref.sourceforge.net/, onde este documento est disponvel para download nos formatos texto puro, HTML, PDF, SGML e PostScript.

Captulo 1. Prefcio

2

1.2

Convenes do documento

Este documento Referncia Debian fornece informaes atravs de pequenos comandos do shell Bash. Aqui esto algumas convenes usadas : # comando na conta root $ comando na conta do usurio ... descrio de ao Consulte Bash o shell interativo padro do GNU on page 225 para maiores informaes sobre Bash. Referncia para: uma pgina de manual Unix indicada na forma bash(1). uma pgina GNU TEXINFO indicado na forma info libc. um livro indicado na forma A linguagem de Programao C. uma URL indicada na forma http://www.debian.org/doc/manuals/ debian-reference/. um arquivo no sistema indicado na forma /usr/share/doc/Debian/reference/. As seguintes abreviaes so usadas : LDP : Projeto de Documentao Linux (http://www.tldp.org/) DDP : Projeto de Documentao Debian (http://www.debian.org/doc/) Neste documento somente URLs so exibidas para documentos LDP, mas estes podem tambm ser obtidos como um pacote e instalados em /usr/share/doc/HOWTO/. Consulte Referncias on page 249.

1.3

Scripts de exemplo

Scripts de exemplo esto disponveis no subdiretrio de exemplos (http://www.debian. org/doc/manuals/debian-reference/examples/) instalado em /usr/share/doc /Debian/reference/; para arquivos ocultos, o . inicial no nome do arquivo convertido para caixa baixa _. Uma extenso extra foi adicionada quando existem vrios scripts de exemplo alternativos.

1.4

Congurao bsica

Caso o sistema esteja instalado com o mnimo de pacotes, certique-se de executar os seguintes comandos para instalar alguns pacotes essenciais e alguns documentos chave : # aptitude install mc less ssh vim kernel-package \ manpages-dev doc-debian doc-linux-text \

Captulo 1. Prefcio

3

debian-policy developers-reference maint-guide \ apt-howto harden-doc debian-reference \ libpam-doc glibc-doc samba-doc exim4-doc-html

1.5

Bsico das distribuies Debian

O Debian oferecido em 3 sabores de distribuies : stable: Boa para usar em um servidor de produo. Chato para uma estao de trabalho (WS). Consulte A distribuio stable on page 6. testing: Boa para usar em uma WS. Consulte A distribuio testing on page 7. unstable: Nunca use-a cegamente. Consulte A distribuio unstable on page 7. Leia pelo menos a lista de discusso chave [email protected] para atualizaes sobre o estado do Debian. Em Maro de 2002, estas trs verses de distribuies correspondiam s verses de codinomes Potato (qualidade de produo), Woody (beta-teste, j bastante estvel quando o lanamento era iminente), e Sid (alfa-teste). Em Agosto de 2002, logo aps o lanamento do Woody, as distribuies correspondiam a Woody (qualidade de produo), Sarge (beta-teste, teria algumas arestas ruins por um tempo) e Sid (sempre alfa-teste). Quando os pacotes na unstable no possuem bugs crticos ao lanamento (RC) cadastrados para eles aps a primeira semana ou mais, eles so automaticamente promovidos para a testing. Consulte Os repositrios Debian on page 5; H duas maneiras de habilit-lo a executar as ltimas verses de software em um sistema. Atualizando uma distribuio para a testing on page 77 (principalmente para prpositos de WS) Portar um pacote para o sistema stable on page 95 (principalmente para prsitos de servidor) Seguir o sabor testing do Debian tem o efeito colateral de obter correes de segurana muito lentamente. Ento que alerta. Se voc misturar sabores do Debian, usando partes de testing ou unstable na stable, voc comumente ser atualizado em muitos pacotes chaves de forma no intencional a partir da testing ou unstable que podem ter bugs. Ento que alerta. Executar os sabores testing ou unstable do Debian envolve um risco aumentado de encontrar bugs srios. Esse risco pode ser gerenciado implementando um esquema de multiinicializao com um sabor mais estvel do Debian, ou implementando o truque legal de usar o chroot com o mais estvel como descrito em chroot on page 131. Esse ltimo possibilitar executar diferentes sabores do Debian simultaneamente em consoles diferentes. Aps explicar alguns fundamentos sobre a distribuio Debian em Fundamentos Debian on page 5, apresentarei alguma informao bsica para ajud-lo a viver alegremente com o ltimo

Captulo 1. Prefcio

4

software, tirando vantagem das distribuies testing e unstable do Debian. Os impacientes devem pular imediatamente para Comandos de sobrevivncia do Debian on page 87. Feliz atualizao !

5

Captulo 2

Fundamentos DebianEste captulo fornece informao fundamental sobre o sistema Debian para nodesenvolvedores. Para informao ocial, consulte : Manual de Polticas Debian Referncia do Desenvolvedor Debian Guia do Novo Desenvolvedor Debian listados em Referncias on page 249. Caso voc esteja procurando por explicaes como-fazer menos detalhadas, pule diretamente para Gerenciamento de pacotes Debian on page 81 ou para outros captulos relevantes. Este captulo baseado em documentos obtidos da FAQ Debian, altamente reorganizados para permitir que o administrador de sistemas Debian comum possa comear.

2.12.1.1

Os repositrios DebianEstruturas de diretrio

O software que foi empacotado para o Debian est disponvel em uma das diversas rvores de diretrios em cada site espelho Debian (http://www.debian.org/mirror/) atravs de FTP ou HTTP. Os seguintes diretrios podem ser encontrados em cada site espelho Debian sob o diretrio debian : dists/: Este diretrio contm as distribuies e era a maneira cannica de acessar pacotes atuais disponveis nas distribuies e pr-distribuies Debian. Alguns pacotes antigos, arquivos Contents-*.gz, e arquivos Packages.gz ainda esto aqui. pool/: A nova localizao fsica para todos os pacotes das distribuies e pr-distribuies Debian.

Captulo 2. Fundamentos Debian

6

tools/: Utilitrios DOS para criao de discos de partida, particionamento de seu disco, compactao/descompactao de arquivos e inicializao do Linux. doc/: A documentao bsica do Debian, como o FAQ, instrues do sistema de relatos de bugs, etc. indices/: O arquivo Maintainers e os arquivos override. project/: em sua maioria materiais somente para desenvolvedores, como : project/experimental/: Este diretrio contm pacotes e ferramentas que ainda esto sendo desenvolvidos, e ainda esto em estgio alpha. Os usurios no deveriam estar usando pacotes daqui porque os mesmos podem ser perigosos e causarem danos mesmo para os mais experientes. project/orphaned/: Pacotes que foram abandonados por seus antigos mantenedores e retirados da distribuio.

2.1.2

Distribuies Debian

Nomalmente existem trs distribuies Debian no diretrio dists. Elas so nomeadas a distribuio stable, a distribuio testing e a distribuio unstable. Algumas vezes existe tambm uma distribuio frozen. Cada distribuio denida como uma ligao simblica para a diretrio real com um codinome no diretrio dists.

2.1.3

A distribuio stable

As entradas de pacotes para a distribuio stable, Debian Sarge (3.1r0), so mantidas no diretrio stable (ligao simblica para sarge/): stable/main/: Este diretrio contm os pacotes que formalmente constituem a verso lanada mais recente do sistema Debian. Estes pacotes todos seguem as Linhas Guias Debian para o Software Livre (DFSG) (http://www.debian.org/social_contract#guidelines) (tambm disponvel como /usr/share/doc/debian/social-contract.txt instalado por debian-doc) e so todos livremente utilizveis e livremente distribudos. stable/non-free/: Este diretrio contm pacotes da distribuio que so restritos de alguma forma que requer que os distribuidores tenham cuidado especial com requerimentos de direitos de cpia especicados. Por exemplo, alguns pacotes possuem licenas que probem sua distribuio comercialmente. Outros podem ser redistribudos mas so de fato shareware e no software livre. As licenas de cada um desses pacotes devem ser estudadas, e possivelmente negociadas, antes que estes pacotes possam ser includos em qualquer redistribuio (por exemplo, em um CD-ROM).

Captulo 2. Fundamentos Debian

7

stable/contrib/: Este diretrio contm pacotes que atendem aos requerimentos da DFSG e podem ser livremente distribudos, mas de alguma forma dependem de um pacote que no livremente distribuvel e portanto disponvel somente na seo nonfree. Agora, alm das localizaes acima, os pacotes fsicos novos so localizados sob o diretrio pool (O diretrio pool on page 9). O estado atual dos bugs da distribuio stable relatado na pgina web Problemas da Stable (http://ftp-master.debian.org/testing/stable_probs.html).

2.1.4

A distribuio testing

As entradas de pacotes para a distribuio testing, Debian Etch, so gravadas no diretrio testing (ligao simblica para etch/) depois que os mesmos tenham passado por um certo nvel de testes na unstable. Agora, alm das localizaes acima, novos pacotes fsicos esto localizados sob o diretrio pool (O diretrio pool on page 9). Existem tambm os subdirettios main, contrib, e non-free na testing, que tm as mesmas funes como na stable. Estes pacotes devem estar sincronizados em todas as arquiteturas onde eles foram compilados e no devem ter dependncias que faam com que no seja possvel instal-los; eles tambm tm que possuir menos bugs crticos ao lanamento do que as verses atualmente na unstable. Dessa forma, esperamos que a testing esteja sempre perto de ser uma candidata ao lanamento. Maiores detalhes sobre o mecanismo da testing esto disponveis em http://www.debian.org/devel/testing. O ltimo estado da distribuio testing est relatado nestes sites : desculpas de atualizao (http://ftp-master.debian.org/testing/update_ excuses.html) problemas da testing (http://ftp-master.debian.org/testing/testing_ probs.html) bugs crticos ao lanamento (http://bugs.debian.org/release-critical/) bugs do sistema bsico (http://bugs.qa.debian.org/cgi-bin/base.cgi) bugs em pacotes standard e em tarefas (http://bugs.qa.debian.org/cgi-bin/ standard.cgi) outros bugs e notas sobre festas de matana de bugs (http://bugs.qa.debian.org/)

2.1.5

A distribuio unstable

As entradas de pacotes para a distribuio unstable, sempre com o codinome Sid, so gravadas no diretrio unstable (ligao simblica para sid/) depois que feito o upload dos mesmos para o repositrio Debian, e permanecem por l at que so movidos para testing /. Novos pacotes fsicos esto localizados sob o diretrio pool (O diretrio pool on page 9). Existem tambm subdiretrios main, contrib e non-free em unstable/, que tm as mesmas funes como na stable/.

Captulo 2. Fundamentos Debian

8

A distribuio unstable contm um snapshot do sistema de desenvolvimento mais recente. Os usurios podem usar e testar estes pacotes, mas so alertados de seu estado de preparao. A vantagem de usar a distribuio unstable que voc est sempre em dia no projeto de software Debian mas se ele quebra, voc tem que arrumar as coisas voc mesmo :-) O estado atual dos bugs da distribuio unstable relatado na pgina web Problemas da Unstable (http://ftp-master.debian.org/testing/unstable_probs.html).

2.1.6

A distribuio frozen

Quando a distribuio testing est madura o bastante, ela congelada, o que signica que nenhum cdigo novo aceito, somente correes de bugs, caso necessrio. Uma nova rvore testing tambm criada no diretrio dists e lhe atribudo um novo nome. A distribuio frozen passa por alguns meses de testes, com atualizaes intermitentes e congelamentos profundos chamados ciclos de testes. Mantemos um registro dos bugs na distribuio frozen que podem atrasar o lanamento de um pacote ou bugs que possam atrasar o lanamento por completo. Uma vez que essa contagem de bugs seja minimizada at um valor aceitvel, a distribuio frozen se torna estvel, lanada, e a distribuio stable anterior se torna obsoleta (e movida para o repositrio).

2.1.7

Codinomes das distribuies Debian

Nomes fsicos de diretrios no diretrio dists/, como sarge/ e etch/, so somente codinomes. Quando uma distribuio Debian est no estgio de desenvolvimento, ela no possui nmero de verso e sim um codinome. O propsito destes codinomes tornar o espelhamento das distribuies Debian mais fcil (caso um diretrio como unstable seja de repente mudado para stable/, o download de uma poro de coisas teria que ser feito de novo desnecessariamente). Atualmente, stable uma ligao simblica para sarge/ e testing uma ligao simblica para etch/. Isto signica que Sarge a atual distribuio estvel e Etch a atual distribuio de testes. unstable uma ligao simblica permanente para sid/, uma vez que Sid sempre a distribuio instvel.

2.1.8

Codinomes usados no passado

Outros codinomes que j foram usados so : Buzz para a verso 1.1, Rex para a verso 1.2, Bo para as verses 1.3.x, Hamm para a verso 2.0, Slink para a verso 2.1, Potato para a verso 2.2, Woody para a verso 3.0, e Sarge para a verso 3.1.

2.1.9

A origem dos codinomes

At agora eles foram personagens tirados do lme Toy Story feito pela Pixar.

Captulo 2. Fundamentos Debian

9

Buzz (Buzz Lightyear) era o homem do espao, Rex era o tiranossauro, Bo (Bo Peep) era a garota que cuidava do rebanho, Hamm era o porquinho cofre, Slink (Slinky Dog) era o cachorro de brinquedo, Potato era, claro, o Sr. Cabea de Batata, Woody era o cowboy, Sarge era o lder dos Homens do Exrcito de Plstico Verde, Etch (Etch-a-Sketch) era o blackboard, Sid era o garoto da porta ao lado que destrua os brinquedos.

2.1.10

O diretrio pool

Historicamente, os pacotes eram mantidos em um subdiretrio de dists correspondendo distribuio que os continha. Isso acabou trazendo vrios problemas, como um alto consumo de banda nos espelhos quando mudanas maiores eram feitas. Os pacotes so agoras mantidos em uma grande piscina (pool), estruturada de acordo com o nome do pacote fonte. Para que isso seja gerencivel, a piscina subdividida por sees (main, contrib e non-free) e pela primeira letra do nome do pacote fonte. Estes diretrios contm diversos arquivos: os pacotes binrios para cada arquitetura, e os pacotes fontes a partir dos quais os pacotes binrios foram gerados. Voc pode descobrir onde cada pacote colocado executando um comando como apt-cache showsrc nomemeupacote e olhando na linha Directory:. Por exemplo, os pacotes do apache esto armazenados em pool/main/a/apache/. Como h muitos pacotes lib*, esses so tratados especialmente: por exemplo, os pacotes libpaper esto armazenados em pool/main/libp/libpaper/. Os diretrios dists ainda so usados pelos arquivos de ndice usados por programas como o apt. Alm disso, no momento que escrevo, distribuies antigas no foram convertidas para usar piscinas portanto voc ver caminhos contendo nomes de distribuies como potato ou woody no campo Diretrio do cabealho. Normalmente, voc no ter que se preocupar com isto, uma vez que o novo apt e provavelmente o antigo dpkg-ftp (consulte Mtodos para atualizar um sistema Debian on page 19) iro gerenciar isso sem problemas. Caso voc queira mais informaes, veja a RFC: implementation of package pools (http://lists.debian.org/debian-devel-announce/2000/ debian-devel-announce-200010/msg00007.html).

2.1.11

Notas histricas sobre a Sid

Quando a atual Sid no existia, a organizao do site do repositrio Debian tinha uma grande falha: existia uma pressuposio de que quando uma arquitetura era criada no unstable/ atual, ela seria lanada quando esta distribuio virasse a nova stable. Para muitas arquiteturas esse no era o caso, e como resultado todos aqueles diretrios tiveram de ser movidos na poca de lanamento. Isto era impraticvel pois a movimentao comeria muita banda.

Captulo 2. Fundamentos Debian

10

Os administradores do repositrio resolveram este problema por diversos anos colocando binrios para arquiteturas no lanadas em um diretrio especial chamado sid. Para aquelas arquiteturas ainda no lanadas, a primeira vez que as mesmas foram lanadas existia uma ligao do atual stable/ para sid/, e a partir de ento elas eram criadas dentro da rvore unstable/ como de costume. Este layout era de certa forma confuso para os usurios. Com o advento das piscinas de pacotes (consulte O diretrio pool on the preceding page) durante o desenvolvimento da distribuio Woody, pacotes binrios comearam a ser armazenados em uma localizao cannica na piscina, no importando a distribuio, assim lanar uma distribuio no mais causava grade consumo de banda nos espelhos (existe, porm, uma poro de consumo gradual de banda durante o processo de desenvolvimento).

2.1.12

Pacotes enviados para incoming/

Os pacotes enviados esto primeiro localizados em http://incoming.debian.org/ antes de serem checados para assegurar que eles realmente vieram de um desenvolvedor Debian (e so colocados no subdiretrio DELAYED caso tenham sido enviados por um no-desenvolvedor (Non-Mantainer Upload - NMU)). Uma vez por dia, eles so movidos de incoming/ para unstable/. Em uma emergncia, voc pode querer instalar pacotes de incoming/ antes que eles atinjam unstable/.

2.1.13

Obtendo um pacote antigo

Enquanto a maioria das distribuies Debian atuais so mantidas sob o diretrio debian em cada site espelho Debian (http://www.debian.org/mirror/), repositrios para distribuies Debian mais antigas como a Slink so mantidos em http://archive.debian.org/ ou sob o diretrio debian-archive em cada site espelho Debian. Os pacotes antigos da testing e da unstable podem ser encontrados em http:// snapshot.debian.net/.

2.1.14

Sees de Arquiteturas

Dentro de cada rvore maior de diretrios (dists/stable/main, dists/stable /contrib, dists/stable/non-free, dists/unstable/main/, etc.), as entradas do pacote binrio residem em subdiretrios cujos nomes indicam a arquitetura do chip para o qual eles foram compilados. binary-all/, para pacotes que so independentes de arquitetura. Estes incluem, por exemplo, scripts Perl ou documentao pura. binary-plataforma/, para pacotes que executam em uma plataforma binria particular.

Captulo 2. Fundamentos Debian

11

Por favor note que os pacotes binrios atuais para a testing e unstable no mais residem nestes diretrios, mas em um diretrio de alto nvel pool. Os arquivos de ndice (Packages e Packages.gz) foram mantidos, porm, para compatibilidade anterior. Para conhecer as arquiteturas binrias suportadas atualmente, consulte as Notas de Lanamento para cada distribuio. Elas podem ser localizadas nos sites das Notas de Lanamento para a stable (http://www.debian.org/releases/stable/releasenotes) e para a testing (http://www.debian.org/releases/testing/releasenotes).

2.1.15

O cdigo-fonte

O cdigo-fonte est includo para tudo no sistema Debian. Alm disso, os termos das licenas da maioria dos programas no sistema requerem que o cdigo-fonte seja distribudo junto com os programas, ou que uma oferta para fornecer o cdigo-fonte acompanhe os programas. Normalmente o cdigo-fonte distribudo nos diretrios source, os quais so paralelos a todos os diretrios de binrios para arquiteturas especcas ou, mais recentemente, no diretrio pool (consulte O diretrio pool on page 9). Para obter o cdigo-fonte sem ter estar familiarizado com a estrutura do repositrio Debian , tente um comando como apt-get source meunomedepacote. Alguns pacotes, notavelmente pine, esto somente disponveis como pacotes fonte devido a suas limitaes de licenciamento. (Recentemente o pacote pine-tracker foi fornecido para facilitar a instalao do Pine.) Os procedimentos descritos em Portar um pacote para o sistema stable on page 95 e Empacotamento on page 243 fornecem meios para construir um pacote manualmente. O cdigo-fonte pode ou no estar disponvel para pacotes nos diretrios contrib e non-free, os quais no so formalmente parte do sistema Debian.

2.22.2.1

O sistema de gerenciamento de pacotes DebianViso Geral dos pacotes Debian

Pacotes geralmente contm todos os arquivos necessrios para implementar um conjunto de comandos relacionados ou recursos. Existem dois tipos de pacotes Debian : Pacotes binrios, os quais contm executveis, arquivos de congurao, pginas de manual/info, informao de copyright e outra documentao. Estes pacotes so distribudos em um formato de arquivo especco Debian (consulte Formato de pacotes Debian on the following page); eles so normalmente identicados por terem uma extenso de arquivo .deb. Pacotes binrios podem ser desempacotados usando o utilitrio Debian dpkg; detalhes so dados em sua pgina de manual. Pacotes fonte, os quais consistem de um arquivo .dsc descrevendo o pacote fonte (incluindo os nomes dos arquivos a seguir), um arquivo .orig.tar.gz que contm o

Captulo 2. Fundamentos Debian

12

fonte original no modicado em formato tar e compactado com o gzip, e normalmente um arquivo .diff.gz que contm as mudanas especcas do Debian feitas em relao ao fonte original. O utilitrio dpkg-source empacota e desempacota arquivos fonte Debian; detalhes so fornecidos em sua pgina de manual. A instalao de software pelo sistema de pacotes utiliza dependncias que so cuidadosamente especicadas pelos mantenedores dos pacotes. Estas dependncias esto documentadas no arquivo control associado a cada pacote. Por exemplo, o pacote contendo o compilador GNU C (gcc) depende do pacote binutils que inclui o ligador e o montador. Caso um usurio tente instalar o gcc sem ter instalado primeiro o binutils, o sistema de gerenciamento de pacotes (dpkg) emitir uma mensagem de erro dizendo que ele precisa tambm do binutils e parar de instalar o gcc. (Porm, esta facilidade pode ser circulada pelo usurio insistente, consulte dpkg(8).) Para detalhes adicionais, consulte Dependncias de pacotes on page 15 abaixo. As ferramentas de empacotamento Debian podem ser usadas para : manipular e gerenciar pacotes ou partes de pacotes, auxiliar o usurio na separao de pacotes que devem ser transmitidos atravs de uma mdia de tamanho limitado, como disquetes, auxiliar desenvolvedores na construo de repositrios de pacotes, e auxiliar usurios na instalao de pacotes que se encontram em um site repositrio Debian.

2.2.2

Formato de pacotes Debian

Um pacote Debian, ou um arquivo Debian, contm os arquivos executveis, bibliotecas e documentao associada a um programa em particular ou a uma sute ou conjunto de programas relacionados. Normalmente, um arquivo Debian tem um nome de arquivo nalizando em .deb. 1 Os detalhes do formato de pacote binrio Debian esto descritos na pgina de manual deb(5). Devido a este formato interno estar sujeito a mudanas (entre verses maiores do Debian), sempre utilize o dpkg-deb(1) para manipular arquivos .deb. Pelo menos para a distribuio Sarge, todos os arquivos Debian so manipulveis pelos comandos Unix padres ar e tar, mesmo quando comandos dpkg no esto disponveis.1 O projeto debian-installer introduziu nomes de arquivos de pacotes que terminam em .udeb. Resumidamente, isso um formato micro-.deb que no precisa seguir a poltica Debian exatamente, faltando contedos como documentao e dedicado a ser usado apenas pelo debian-installer, o novo instalador Debian que est sendo desenvolvido para o lanamento do Sarge. Os formatos de arquivo .deb e .udeb so idnticos. O programa udpkg usado para manipular pacotes .udeb tem capacidade mais limitada que o dpkg padro e suporta menos relacionamentos entre pacotes. A diferena no nome porque os mantenedores de repositrios Debian no estavam contentes com .debs no repositrio que no seguiam a poltica, ento um nome diferente foi escolhido para destacar isso e diminuir a possibilidade das pessoas instal-los inconscientemente em sistemas reais. Os .udebs so usados em um ramdisk inicial durante a instalao bsica apenas para criar um sistema Debian muito restrito.

Captulo 2. Fundamentos Debian

13

2.2.3

Convenes de nomenclatura para nomes de arquivos de pacotes Debian

Os nomes de arquivos de pacotes Debian seguem a seguinte conveno : foo_NmeroDeVerso-NmeroDeRevisoDebian.deb onde foo representa o nome do pacote. Como uma checagem, pode-se determinar o nome do pacote associado a um arquivo Debian em particular (arquivo .deb) em uma das seguintes maneiras : inspecione o arquivo Packages no diretrio onde o mesmo foi armazenado em um site repositrio Debian . Este arquivo contm uma estrofe descrevendo cada pacote; o primeiro campo de cada estrofe o nome formal do pacote. use o comando dpkg --info foo_VVV-RRR.deb (onde VVV e RRR so a verso e a reviso do pacote em questo, respectivamente). Isto exibe, entre outras coisas, o nome do pacote do arquivo sendo desempacotado. O componente VVV o nmero de verso especicado pelo desenvolvedor original (upstream). No existem padres ditando nmeros de verso, portanto eles podem ter formatos to diferentes como 19990513 e 1.3.8pre1. O componente RRR um nmero de reviso Debian e especicado pelo desenvolvedor Debian (ou um usurio individual caso o mesmo escolha construir o pacote ele mesmo). Este nmero corresponde ao nvel de reviso do pacote Debian; portanto, um novo nvel de reviso geralmente signica mudanas no Makele Debian (debian/rules), no arquivo de controle Debian (debian/control), nos scripts de instalao ou remoo (debian/p*) ou nos arquivos de congurao usados pelo pacote.

2.2.4

Preservao da congurao local

A preservao dos arquivos congurveis pelo usurio habilitada atravs do mecanismo confles do Debian. Arquivos de congurao do usurio (normalmente colocados em /etc /) so especicados no conffiles dentro do sistema de pacotes Debian. O sistema de gerenciamento de pacotes garante a no sobreescrita destes arquivos quando o pacote atualizado. Para determinar exatamente quais arquivos so preservados durante uma atualizao, execute : dpkg --status pacote e olhe em Confles:. Detalhes sobre o contedo de um arquivo confffiles Debian so fornecidos no Manual de Polticas Debian, seo 11.7 (consulte Referncias on page 249).

Captulo 2. Fundamentos Debian

14

2.2.5

Scripts de manuteno Debian

Os scripts de manuteno Debian so scripts executveis que so automaticamente executados antes ou depois que um pacote instalado. Junto com um arquivo de nome control, todos esses arquivos so parte da seo control de um arquivo Debian. Os arquivo individuais so: preinst Este script executado antes que seu pacote seja desempacotado de seu arquivo Debian (.deb). Muitos scripts preinst param servios para os pacotes que esto sendo atualizados at que sua instalao ou atualizao esteja completa (seguindo a execuo com sucesso do script postinst). postinst Este script tipicamente completa qualquer congurao requerida de um pacote uma vez que o mesmo tenha sido desempacotado de seu arquivo Debian (.deb). Geralmente, scripts postinst fazem perguntas aos usurios e/ou avisam o usurio que caso o mesmo aceite valores padres ele dever se lembrar de voltar e recongurar o pacote conforme a necessidade. Muitos scripts postinst executam ento quaisquer comandos necessrios para iniciar ou reiniciar um servio uma vez que o novo pacote foi instalado ou atualizado. prerm Este script tipicamente pra quaisquer daemons que esto associados com um pacote. Ele executado antes da remoo de arquivos associados com um pacote. postrm Este script tipicamente modica ligaes ou outros arquivos associados com um pacote e/ou remove arquivos criados pelo pacote. (Consulte tambm Pacotes virtuais on the next page.) Atualmente todos os arquivos de controle podem ser encontrados no /var/lib/dpkg/info. Os arquivos relevantes ao pacote foo iniciam com o nome foo e possuem extenses de arquivos preinst, postinst, etc, de acordo. O arquivo foo.list neste diretrio lista todos os arquivos que foram instalados com o pacote foo. (Note que a localizao destes arquivos algo interno do dpkg, e pode estar sujeita a mudanas.)

2.2.6

Prioridade de pacotes

A cada pacote Debian atribudo uma prioridade pelos mantenedores da distribuio, como um auxlio ao sistema de gerenciamento de pacotes. As prioridades so : Pacotes Required so necessrios para o funcionamento correto do sistema. Isso inclui todas as ferramentas necessrias para reparar defeitos no sistema. Voc no deve remover esses pacotes ou seu sistema pode vir a se tornar completamente quebrado e voc poder provavelmente no ser capaz de usar o dpkg para colocar as coisas de volta em seus lugares. Sistemas somente com pacotes Required so provavelmente inutilizveis para muitos propsitos, mas possuem funcionalidade o suciente para permitir que o administrador do sistema inicie o sistema e instale mais software.

Captulo 2. Fundamentos Debian

15

Pacotes Important devem ser encontrados em qualquer sistema parecido com Unix. Outros pacotes sem os quais o sistema no funcionar bem ou no ser muito til se encaixam aqui. Isso no inclui o Emacs ou X11 ou TeX ou quaisquer outras grandes aplicaes. Esses pacotes constituem somente a infraestrutura mnima. Pacotes Standard so padro em qualquer sistema Linux, incluindo um sistema em modo caracter razoavelmente pequeno mas no muito limitado. Isso o que ser instalado por padro caso os usurios no selecionem mais nada. Isso no inclui muitas grandes aplicaes, mas inclui o Emacs (ele mais uma pea da infraestrutura do que uma aplicao) e um subconjunto razovel do Tex e LaTeX (caso isso seja possvel sem o X). Pacotes Optional incluem todos aqueles pacotes que voc poderia razoavelmente querer instalar mesmo caso no esteja familiarizado com eles e caso voc no possua requerimentos especializados. Isso inclui X11, uma distribuio completa TeX e uma poro de aplicaes. Pacotes Extra so pacotes que conitam com outros pacotes com prioridades mais altas provavelmente, tero pouco uso para usurios que no so familiarizados a eles, ou tm requerimentos especiais que no os deixam ser encaixados em Optional.

2.2.7

Pacotes virtuais

Um pacote virtual um nome genrico que se aplica a qualquer um de um grupo de pacotes, todos os quais oferecem funcionalidade bsica similar. Por exemplo, os programas tin e trn so leitores de notcias e devem portanto satisfazer quaisquer dependncias de um programa que requer um leitor de notcias no sistema para que funcione ou seja til. portanto dito que eles fornecem um pacote virtual chamado news-reader. Similarmente, o exim e o sendmail oferecem ambos a funcionalidade de um agente de transporte de mensagens, portanto dito que eles fornecem o pacote virtual mail-transport-agent. Caso um dos dois esteja instalado, ento qualquer programa que depende da instalao de um agente de transporte de mensagens estar satisfeito pela existncia desse pacote virtual. O Debian possui um mecanismo que, se mais de um pacote que fornece o mesmo pacote virtual estiver instalado em um sistema, o administrador do sistema pode denir um como o pacote preferido. O comando relevante update-alternatives e descrito mais adiante em Comandos alternativos on page 98.

2.2.8

Dependncias de pacotes

O sistema de pacotes Debian possui uma faixa de dependncias de pacotes que desenvolvida para indicar (com uma sinalizao nica) o nvel no qual o Programa A pode operar independentemente da existncia do Programa B em um dado sistema :

Captulo 2. Fundamentos Debian

16

O Pacote A depende do Pacote B se B precisar absolutamente estar instalado para que A possa ser executado. Em alguns casos, A depende no somente de B, mas de uma verso especca de B. Nestes casos, a dependncia da verso normalmente um limite mnimo, no sentido de que A depende em qualquer verso de B mais recente do que alguma verso especicada. O Pacote A recomenda o Pacote B caso o mantenedor do pacote julgue que a maioria dos usurios no iriam querer A sem tambm ter a funcionalidade fornecida por B. O Pacote A sugere o Pacote B caso B contenha arquivos que estejam relacionados a (e normalmente melhorem) a funcionalidade de A. O Pacote A conita com o Pacote B quando A no funciona caso B esteja instalado no sistema. Na maioria das vezes, conitos so casos onde A contm arquivos que so uma melhora daqueles em B. Conicts (conita) so normalmente combinados com replaces (substitui). O Pacote A substitui o Pacote B quando arquivos instalados por B so removidos e (em alguns casos) sobrescritos por arquivos em A. O Pacote A fornece o Pacote B quando todos os arquivos e as funcionalidades de B esto incorporadas em A. Este mecanismo oferece uma maneira para usurios com pouco espao em disco obterem somente aquela parte do pacote A que realmente precisam. Informao mais detalhada sobre o uso de cada um desses termos pode ser encontrada no Manual de Empacotamento e no Manual de Polticas. Note que o dselect possui um controle mais renado sobre os pacotes especicados por recomendaes e sugestes do que o apt-get, o qual simplesmente pega todos os pacotes especicados como dependncias e deixa para trs os pacotes especicados como recomendados e sugestes. Ambos os programas em sua forma moderna usam o APT como motor.

2.2.9

O signicado de Pr-dependncias

Pre-depends (pr-dependncias) uma dependncia especial. No caso de um pacote comum, o dpkg ir desempacotar seu arquivo (ou seja, seu arquivo .deb) independentemente dos arquivos dos quais este depende existirem ou no no sistema. Desempacotar signica que o dpkg ir extrair os arquivos de seu arquivo que foi criado para ser instalado em seu sistema e coloc-los nos lugares. Caso estes pacotes dependam da existncia de outros pacotes em seu sistema, o dpkg se recusar a completar a instalao (executando sua ao congure) at que os outros pacotes sejam instalados. Porm, para alguns pacotes, o dpkg se recusar at mesmo a desempacot-los at que certas dependncias estejam resolvidas. dito que tais pacotes pr-dependem da presena de outro(s) pacote(s). O projeto Debian forneceu este mecanismo para suportar a atualizao segura do formato a.out para o formato ELF, onde a ordem na qual os pacotes eram desempacotados era crtica. Existem outras situaes de grandes atualizaes onde este mtodo til, por exemplo, para pacotes com prioridade required e sua dependncia libc.

Captulo 2. Fundamentos Debian

17

Novamente, informao mais detalhada sobre isso pode ser encontrada no Manual de Empacotamento.

2.2.10

Estado do pacote

O estado do pacote pode ser unknow, install, remove, purge ou hold. Estas ags want dizem o que o usurio quis fazer com o pacote (como indicado pelas aes do usurio na seo Selecionar do dselect ou pelas invocaes diretas do dpkg). Seus signicados so : unknown - o usurio nunca indicou se ele queria o pacote. install - o usurio quer o pacote instalado ou atualizado. remove - o usurio quer o pacote removido, mas no quer remover quaisquer arquivos de congurao. purge - o usurio quer que o pacote seja removido completamente, incluindo os arquivos de congurao. hold - o usurio quer que esse pacote no seja processado, ou seja, ele quer manter a verso atual no estado atual seja este qual for.

2.2.11

Evitando que pacotes sejam atualizados

Existem dois mecanismos para evitar que pacotes sejam atualizados : atravs do dpkg ou, comeando no Woody, atravs do APT. Com o dpkg, exporte primeiro a lista de selees de pacotes : dpkg --get-selections \* > selections.txt Edite ento o arquivo resultante selections.txt mudando a linha contendo o pacote que voc desejaria evitar que fosse atualizado, por exemplo, libc6, disso: libc6 para isso : libc6 hold install

Salve o arquivo e recarregue-o na base de dados do dpkg usando : dpkg --set-selections < selections.txt Ou, caso voc conhea o nome do pacote a ser mantido (hold), simplesmente execute :

Captulo 2. Fundamentos Debian

18

echo libc6 hold | dpkg --set-selections Este processo mantm pacotes no processo de instalao de cada arquivo de pacote. O mesmo efeito pode ser obtido atravs do dselect. Simplesmente entre na tela [S]elecionar, encontre o pacote que voc deseja manter em seu estado atual e pressione a tecla = (ou H). As modicaes sero vlidas imediatamente depois que voc sair da tela [S]elecionar. O sistema APT na distribuio Woody possui um novo mecanismo alternativo para manter pacotes durante o processo de obteno do arquivo usando Pin-Prioriry. Consulte a pgina de manual apt_preferences(5), e tambm http://www.debian.org/doc/manuals/ apt-howto/ ou o pacote apt-howto; Viso geral do arquivo /etc/apt/preferences on page 87 tambm contm uma explicao breve.

2.2.12

Pacotes fonte

Pacotes fonte so distribudos em um diretrio chamado source e voc pode fazer o download dos mesmos manualmente ou use apt-get source foo para obt-los (consulte a pgina de manual apt-get(8) para maiores informaes sobre como congurar o APT para fazer isso).

2.2.13

Construindo pacotes binrios a partir de um pacote fonte

Para um pacote foo, voc precisar de todos os arquivos foo_*.dsc, foo_*.tar.gz e foo_*.diff.gz para compilar o fonte (nota: no existe .diff.gz para um pacote nativo Debian). Uma vez que voc os tenha, caso voc possua o pacote dpkg-dev instalado, o comando dpkg-source -x foo_verso-reviso.dsc ir extrair o pacote em um diretrio chamado foo-verso. Execute os seguintes comandos para criar o pacote binrio: $ cd foo-verso $ su -c "apt-get update ; apt-get install fakeroot" $ dpkg-buildpackage -rfakeroot -us -uc E ento, # su -c "dpkg -i ../foo_verso-reviso_arquit.deb" para instalar o novo pacote construdo. Veja Portar um pacote para o sistema stable on page 95.

Captulo 2. Fundamentos Debian

19

2.2.14

Criando novos pacotes Debian

Para uma descrio mais detalhada, leia o Guia dos Novos Mantenedores, disponvel no pacote maint-guide ou em http://www.debian.org/doc/manuals/maint-guide/.

2.3

Atualizando um sistema Debian

Um dos objetivos do Debian oferecer um caminho de atualizao consistente e um processo de atualizao seguro, e ns sempre fazemos o mximo possvel para que uma nova verso seja facilmente atualizvel para quem atualiza da verso anterior. Pacotes iro alertar o usurio quando existirem notcias importantes durante o processo de atualizao e iro frequentemente oferecer uma soluo para um possvel problema. Voc deve tambm ler as Notas de Lanamento, o documento que descreve os detalhes de atualizaes especcas, fornecido em todos os CDs Debian e disponvel na WWW em http:// www.debian.org/releases/stable/releasenotes ou http://www.debian.org/ releases/testing/releasenotes. Um guia prtico para atualizaes est disponvel em Gerenciamento de pacotes Debian on page 81. Esta seo descreve os detalhes fundamentais.

2.3.1

Mtodos para atualizar um sistema Debian

possvel simplesmente executar uma chamada FTP annima ou usar o wget em um repositrio Debian, procurar atentamente at que seja encontrado o arquivo desejado, fazer o download do mesmo e nalmente instal-lo usando o dpkg. Note que o dpkg ir instalar arquivos de atualizao em seus lugares, mesmo em um sistema em execuo. Algumas vezes, um pacote revisado ir requerer a instalao de uma nova verso revisada de outros pacotes e neste caso a instalao ir falhar at que/a menos que os outros pacotes sejam instalados. Muitas pessoas acham que este mtodo consome muito tempo, uma vez que o Debian se desenvolve to rapidamente tipicamente, uma dzia ou mais pacotes so disponibilizados toda semana. Este nmero maior logo antes de um lanamento de uma verso maior. Para lidar com esta avalanche, muitas pessoas preferem usar um programa automatizado para atualizar. Diversas ferramentas de gerenciamento de pacotes especializadas esto disponveis para este propsito.

2.3.2

Viso geral das ferramentas de gerenciamento de pacotes

O sistema de gerenciamento de pacotes possui dois objetivos : a manipulao do arquivo de pacote propriamente dito e obteno de arquivos de pacotes do repositrio Debian. O dpkg executa a primeira tarefa e o APT e o dselect a ltima.

Captulo 2. Fundamentos Debian

20

2.3.3 dpkgEste o principal programa para manipular arquivos de pacotes; leia dpkg(8) para um descrio completa. O dpkg fornecido com diversos programas suplementares primitivos. dpkg-deb: Manipula arquivos .deb. dpkg-deb(1) dpkg-ftp: Um antigo comando de obteno de arquivos de pacotes. dpkg-ftp(1) dpkg-mountable: Um antigo comando de obteno de arquivos de pacotes. dpkg-mountable(1) dpkg-split: Divide um pacote grande em arquivos menores. dpkg-split(1) O dpkg-ftp e dpkg-mountable caram obsoletos com a introduo do sistema APT.

2.3.4

APT

O APT (Advanced Packaging Tool) uma avanada interface para o sistema de gerenciamento de pacotes Debian, consistindo de vrios programas cujos nomes tipicamente comeam com apt-. O apt-get, apt-cache e o apt-cdrom so ferramentas de linha de comando para gerenciar pacotes. Eles tambm funcionam como programas back-end do usurio para outras ferramentas, como o dselect e o aptitude. Para maiores informaes, instale o pacote apt e leia apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5), apt_preferences(5) (Woody), e /usr/share/doc/apt/guide.html/index.html. Uma fonte alternativa de informao o APT HOWTO (http://www.debian.org/doc/ manuals/apt-howto/). Este pode ser instalado pelo pacote apt-howto em /usr/share /doc/Debian/apt-howto/. apt-get upgrade e apt-get dist-upgrade instalam apenas os pacotes listados em Depends: e ignoram os pacotes listados em Recommends: e Suggests:. Para evitar isso use o dselect.

2.3.5 dselectEste programa uma interface de usurio baseada em menus para o sistema de gerenciamento de pacotes Debian. Ele particularmente til para primeiras instalaes e atualizaes em larga escala. Veja dselect on page 83 Para maiores informaes, instale o pacote install-doc e leia /usr/share/doc /install-doc/dselect-beginner.en.html ou Documentao para Iniciantes do dselect (http://www.debian.org/releases/woody/i386/dselect-beginner).

Captulo 2. Fundamentos Debian

21

2.3.6

Atualizando um sistema em execuo

O kernel (sistema de arquivos) em sistemas Debian suporta a troca de arquivos mesmo quando estes esto sendo usados. Oferecemos tambm um programa chamado start-stop-daemon que usado para iniciar daemons em tempo de inicializao da mquina ou para parar daemons quando o nvel de execuo do kernel mudado (exemplo, de multiusurio para usurio nico ou para halt). O mesmo programa usado pelos scripts de instalao quando um novo pacote contendo um daemon instalado, para parar daemons em execuo, e reinici-los quando necessrio. Note que o sistema Debian no requer o uso do modo de usurio nico para atualizar um sistema em execuo.

2.3.7

Arquivos .deb baixados e em cache

Caso voc tenha feito o download de arquivos para seu disco (o que no absolutamente necessrio, veja acima a descrio de dpkg-ftp ou APT), depois de instalar os pacotes voc pode remov-los de seu sistema. Caso o APT seja usado, esses arquivos so colocados em cache no diretrio /var/cache/apt /archives/. Voc pode apag-los depos da instalao (apt-get clean) ou copi-los para o diretrio /var/cache/apt/archives/ de outra mquina para economizar tempo de download durante instalaes subseqentes.

2.3.8

Mantendo registros para atualizaes

O dpkg mantm um registro dos pacotes que foram desempacotados, congurados, removidos e/ou expurgados, mas no mantm (atualmente) um log da atividade do terminal que ocorreu enquanto um pacote esteve sendo manipulado. A maneira mais simples de contornar isso executar suas sesses dpkg, dselect, apt-get, etc., dentro do programa script(1).

2.42.4.1

O processo de inicializao DebianO programa init

Como todos os Unices, o Debian inicia executando o programa init. O arquivo de congurao para o init (que /etc/inittab) especica que o primeiro script a ser executado deve ser o /etc/init.d/rcS. Esse script executa todos os scripts em /etc/rcS.d/ atravs do source ou fork de subprocessos, dependendo de sua extenso de arquivo, para executar a inicializao como a checagem e a montagem de sistemas de arquivos, carregamento de mdulos, incio de servios de rede, congurao do relgio, etc. Ento, por compatibilidade, ele tambm executa os arquivos (exceto aqueles com um . em seu nome) em /etc/rc.boot . Quaisquer

Captulo 2. Fundamentos Debian

22

scripts no diretrio posterior so normalmente reservados para o uso do administrador do sistema e us-los em pacotes obsoleto. Veja Inicializao do sistema on page 137 e Nveis de execuo de Sistema e scripts init.d (http://www.debian.org/doc/debian-policy/ ch-opersys#s-sysvinit) no Manual de Polticas Debian para maiores informaes.

2.4.2

Nveis de execuo

Depois de completar o processo de inicializao, o init executa todos os scripts de inicializao em um diretrio especicado pelo nvel de execuo padro (este nvel de execuo dado pela entrada para o id em /etc/inittab. Como a maioria dos Unices compatveis com System V, o Linux possui 7 nveis de execuo : 0 (parar o sistema), 1 (modo de usurio nico), 2 through 5 (vrios modos multiusurio), e 6 (reinicia o sistema). Sistemas Debian vm com o valor id=2, o que indica que o nvel de execuo padro ser 2 quando o estado multiusurio for iniciado e que os scripts em /etc/rc2.d/ sero executados. De fato, os scripts em quaisquer dos diretrios em /etc/rcN.d/ so apenas ligaes simblicas que apontam para scripts em /etc/init.d/. Porm, os nomes dos arquivos em cada um dos diretrios /etc/rcN.d/ so selecionados para indicar a maneira que os scripts em /etc /init.d/ sero executados. Especicamente, antes de entrar em qualquer nvel de execuo, todos os scripts iniciados com K so executados; esses scripts matam (param) servios. Ento todos os scripts iniciados com S so executados; esses scripts iniciam servios. O nmero de dois dgitos seguido de K ou S indica a ordem na qual o script executado. Scripts de menor valor numrico so executados primeiro. Esse mtodo funciona porque todos os scripts em /etc/init.d/ aceitam um argumento que pode ser start (iniciar), stop (parar), reload (recarregar), restart (reiniciar) ou forcereload (forar-recarregar) e iro portanto cumprir a tarefa indicada pelo argumento. Esses scripts podem ser usados mesmo depois que um sistema tenha sido iniciado para controlar vrios processos. Por exemplo, com o argumento reload o comando # /etc/init.d/exim4 reload envia ao daemon exim4 um sinal para que o mesmo releia seu arquivo de congurao.

2.4.3

Personalizando o processo de inicializao

O Debian no utiliza o diretrio rc.local no estilo BSD para perso