Debian-Reference PT

Fazer download em txt, pdf ou txt
Fazer download em txt, pdf ou txt
Você está na página 1de 500

Referncias Debian Osamu Aoki Copyright 2007-2012 Osamu Aoki Este Debian Reference (v2) (2013-03-27 04:23:22 UTC)

) destina-se a disponibilizar uma viso ampla do sistema Debian como um guia de ps-instalao para o utilizador. Cobre muitos aspectos da administrao do sistema atravs de exemplos de comandos de consola para no-programadores. Resumo Este livro livre: voc pode redistribu-lo e/ou modific-lo sob os termos da licena GNU General Public License de qualquer verso em conformidade com as directivas Debian Free Software Guidelines (DFSG). --------------------------------------------------------------------ndice Prefcio 1. Aviso 2. O que o Debian 3. Acerca deste documento 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. Regras orientadoras Pr-requisitos Convenes popcon O tamanho do pacote Relatrios de bugs deste documento

4. Algumas citaes para os novos utilizadores 1. Manuais de GNU/Linux 1.1. Bsico da consola 1.1.1. A linha de comandos da shell 1.1.2. A linha de comandos shell sob X 1.1.3. A conta root 1.1.4. A linha de comandos shell do root 1.1.5. GUI de ferramentas de administrao do sistema 1.1.6. Consolas virtuais 1.1.7. Como abandonar a linha de comandos 1.1.8. Como desligar o sistema 1.1.9. Recuperar uma consola s 1.1.10. Sugestes de pacotes adicionais para o novato 1.1.11. Uma conta de utilizador extra 1.1.12. Configurao do sudo 1.1.13. Hora de brincar 1.2. Sistema de ficheiros tipo Unix 1.2.1. Noes bsicas de ficheiros Unix. 1.2.2. Internos do sistema de ficheiros

1.2.3. Permisses do sistema de ficheiros 1.2.4. Controlo de permisses para ficheiros acabados de criar: umask 1.2.5. Permisses para grupos de utilizadores (group) 1.2.6. Marcas temporais (Timetamps) 1.2.7. Links (ligaes) 1.2.8. Pipes com nome (FIFOs) 1.2.9. Sockets 1.2.10. Ficheiros de dispositivo 1.2.11. Ficheiros de dispositivos especiais 1.2.12. procfs e sysfs 1.2.13. tmpfs 1.3. Midnight Commander (MC) 1.3.1. 1.3.2. 1.3.3. 1.3.4. 1.3.5. 1.3.6. 1.3.7. 1.3.8. Personalizao do MC Iniciar o MC Gestor de ficheiros no MC Truques de linha de comandos no MC O editor interno em MC O visualizador interno no MC Funcionalidades de auto-arranque do MC Sistema de ficheiros virtual FTP no MC

1.4. O ambiente de trabalho estilo Unix bsico 1.4.1. A shell de login 1.4.2. Personalizar bash 1.4.3. Teclas especiais 1.4.4. Operaes do rato ao estilo Unix 1.4.5. O pager 1.4.6. O editor de texto 1.4.7. Definir um editor de texto predefinido 1.4.8. Personalizar o vim 1.4.9. Gravar as actividades da shell 1.4.10. Comandos bsicos de Unix 1.5. O comando simples da shell 1.5.1. Execuo do comando e varivel de ambiente 1.5.2. Varivel "$LANG" 1.5.3. Varivel "$PATH" 1.5.4. Varivel "$HOME" 1.5.5. Opes da linha de comandos 1.5.6. Glob da shell 1.5.7. Valor de retorno do comando 1.5.8. Sequncias de comandos tpicas e redireccionamento da shell 1.5.9. Comando alias 1.6. Processamento de texto estilo Unix 1.6.1. 1.6.2. 1.6.3. 1.6.4. 1.6.5. 1.6.6. Ferramentas de texto de Unix Expresses regulares Expresses de substituio Substituio global com expresses regulares Extrair dados de tabela de ficheiro de texto Trechos de script para canalizar comandos em pipe

2. Gesto de pacotes Debian

2.1. Pr-requisitos da gesto de pacotes 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. Configurao de pacotes Precaues bsicas A vida com actualizaes eternas Bsico do arquivos Debian Debian 100% software livre Dependncias de pacote O fluxo de eventos da gesto de pacotes Primeira resposta a problemas com a gesto de pacotes

2.2. Operaes bsicas de gesto de pacotes 2.2.1. apt-get / apt-cache contra o aptitude 2.2.2. Operaes bsicas de gesto de pacotes com a linha de comandos 2.2.3. Uso interactivo do aptitude 2.2.4. Teclas de atalho do aptitude 2.2.5. Vistas de pacote no aptitude 2.2.6. Opes do mtodo de pesquisa com o aptitude 2.2.7. A frmula regex do aptitude 2.2.8. Resoluo de dependncias do aptitude 2.2.9. Logs de actividade de pacotes 2.3. Exemplos de operaes do aptitude 2.3.1. Listagem de pacotes com correspondncia por expresso regular nos nomes de pacotes 2.3.2. Explorar com a correspondncia de expresso regular 2.3.3. Purgar pacotes removidos definitivamente 2.3.4. Acertar o estado auto/manual de instalao 2.3.5. Actualizao total ao sistema 2.4. Operaes de gesto avanada de pacotes 2.4.1. Operaes de gesto avanada de pacotes com linha de comandos 2.4.2. Verificao dos ficheiros pacotes instalados 2.4.3. Salvaguardar para problemas de pacotes. 2.4.4. Procurar nos meta-dados do pacote 2.5. Os interiores da gesto de pacotes Debian 2.5.1. Meta dados do arquivo 2.5.2. Ficheiro "Release" de nvel de topo e autenticidade: 2.5.3. Ficheiros "Release" do nvel de arquivo 2.5.4. Obter os meta dados do pacote 2.5.5. O estado dos pacote para o APT 2.5.6. O estado dos pacote para o aptitude 2.5.7. Copias locais dos pacotes obtidos 2.5.8. Nomes de ficheiros de pacotes Debian 2.5.9. O comando dpkg 2.5.10. O comando update-alternative 2.5.11. O comando dpkg-statoverride 2.5.12. O comando dpkg-divert 2.6. Recuperao de um sistema danificado 2.6.1. Incompatibilidade com configuraies antigas de

utilizador 2.6.2. Pacotes diferentes com ficheiros sobrepostos 2.6.3. Corrigir script problemtico de pacote 2.6.4. Recuperao com o comando dpkg 2.6.5. Recuperar dados de seleco de pacotes 2.7. Dicas para a gesto de pacotes 2.7.1. Como escolher os pacotes Debian 2.7.2. Pacotes de fontes de arquivos misturados 2.7.3. Moldar a verso candidata 2.7.4. Actualizaes e Backports 2.7.5. Bloquear pacotes instalados por "Recomendados" 2.7.6. Acompanhar testing com alguns pacotes de unstable 2.7.7. Acompanhar unstable com alguns pacotes de experimental 2.7.8. Descarga e actualizao automtica de pacotes 2.7.9. Limitar a largura de banda de descarga para o APT 2.7.10. Downgrade de emergncia 2.7.11. Quem fez o upload do pacote? 2.7.12. O pacote equivs 2.7.13. Portar um pacote para o sistema stable 2.7.14. Servidor proxy para o APT 2.7.15. Pequeno arquivo de pacotes pblico 2.7.16. Gravar e copiar a configurao do sistema 2.7.17. Converter e instalar um pacote binrio aliengena 2.7.18. Extrair um pacote sem o dpkg 2.7.19. Mais leituras sobre a gesto de pacotes 3. A inicializao do sistema 3.1. 3.2. 3.3. 3.4. 3.5. Uma viso geral do processo de arranque Estgio 1: a BIOS Estgio 2: o gestor de arranque Estgio 3: o mini-sistema Debian Estgio 4: o sistema Debian normal 3.5.1. O significado do runlevel 3.5.2. A configurao do runlevel 3.5.3. O exemplo de gesto do runlevel 3.5.4. O parmetro predefinido para cada script de init 3.5.5. O nome da mquina 3.5.6. O sistema de ficheiros 3.5.7. Inicializao da interface de rede 3.5.8. Inicializao do servio de rede 3.5.9. A mensagem do sistema 3.5.10. A mensagem do kernel 3.5.11. O sistema udev 3.5.12. A inicializao de mdulos do kernel 4. Autenticao 4.1. 4.2. 4.3. 4.4. 4.5. Autenticao normal de Unix Gerir informao de conta e palavra-passe Boa palavra-passe Criar palavra-passe encriptada PAM e NSS 4.5.1. Ficheiros de configurao acedidos pelo PAM e NSS 4.5.2. O moderno sistema de gesto centralizado 4.5.3. "Porque o su do GNU no suporta o grupo wheel"

4.5.4. Regras de palavra-passe rigorosas 4.6. Outros controles de acesso 4.6.1. 4.6.2. 4.6.3. 4.6.4. sudo PolicyKit SELinux Restringindo acesso a alguns servios de servidor

4.7. Segurana da autenticao 4.7.1. 4.7.2. 4.7.3. 4.7.4. Palavra-passe segura sobre a Internet Shell Segura Medidas de segurana extra para a Internet Tornar a palavra-passe do root segura

5. Configurao de rede 5.1. A infra-estrutura de rede bsica 5.1.1. 5.1.2. 5.1.3. 5.1.4. 5.1.5. O A O A O nome de domnio resoluo de nome de mquina nome da interface de rede gama de endereos de rede para a LAN suporte a dispositivos de rede

5.2. A configurao moderna de rede para desktop 5.2.1. Ferramentas GUI de configurao de rede 5.3. A ligao e antiga configurao de rede 5.4. O mtodo de ligao de rede (antigo) 5.4.1. 5.4.2. 5.4.3. 5.4.4. 5.4.5. A A A A A ligao ligao ligao ligao ligao DHCP com Ethernet de IP esttico com a Ethernet PPP com o pppconfig PPP alternativa com o wvdialconf PPPoE com o pppoeconf

5.5. A configurao bsica de rede com ifupdown (legacy) 5.5.1. A sintaxe simplificada de comando 5.5.2. A sintaxe bsica de "/etc/network/interfaces" 5.5.3. A interface de rede loopback 5.5.4. A interface de rede servida por DHCP 5.5.5. A interface de rede com IP esttico 5.5.6. O bsico da interface de rede sem fios 5.5.7. A interface LAN wireless com WPA/WPA2 5.5.8. A interface LAN wireless com WEP 5.5.9. A ligao PPP 5.5.10. A ligao PPP alternativa 5.5.11. A ligao PPPoE 5.5.12. O estado de configurao de rede do ifupdown 5.5.13. A reconfigurao de rede bsica 5.5.14. O pacote ifupdown-extra 5.6. A configurao de rede avanada com ifupdown (antigo) 5.6.1. O pacote ifplugd 5.6.2. O pacote ifmetric

5.6.3. 5.6.4. 5.6.5. 5.6.6. 5.6.7. 5.6.8.

A interface virtual A sintaxe de comando avanada A estrofe de mapeamento A configurao manual da rede comutvel Scripts com o sistema ifupdown Mapeando com guessnet

5.7. A configurao de rede de baixo nvel 5.7.1. Comandos iproute2 5.7.2. Operaes de rede seguras de baixo nvel 5.8. Optimizao da rede 5.8.1. Encontrar o MTU ptimo 5.8.2. Definir o MTU 5.8.3. Optimizao WAN TCP 5.9. Infra-estrutura netfilter 6. Aplicaes de rede 6.1. Navegadores web 6.1.1. Configurao do explorador 6.2. O sistema de correio electrnico (mail) 6.2.1. Noes bsicas de mail 6.2.2. Bases dos servios de mail modernos 6.2.3. A estratgia de configurao de mail para estao de trabalho 6.3. Agente de transporte de mail (MTA) 6.3.1. 6.3.2. 6.3.3. 6.3.4. A configurao do exim4 A configurao do postfix com SASL A configurao do endereo de mail Operaes MTA bsicas

6.4. Agente utilizador de mail (MUA) 6.4.1. MUA bsico Mutt 6.5. O adquiridor de mail remoto e utilitrio de reencaminhamento 6.5.1. configurao do getmail 6.5.2. configurao do fetchmail 6.6. Agente de entrega de mail (MDA) com filtro 6.6.1. configurao do maildrop 6.6.2. configurao do procmail 6.6.3. Re-entregar o contedo da mbox 6.7. Servidor POP3/IMAP4 6.8. O servidor de impresso e utilitrio 6.9. O servidor de acesso remoto e utilitrio (SSH) 6.9.1. Bases do SSH

6.9.2. 6.9.3. 6.9.4. 6.9.5. 6.9.6. 6.9.7.

Reencaminhamento de portos para SMTP/POP3 em tnel Ligar sem palavras-passe remotas Lidar com clientes SSH aliengenas Configurar o ssh-agent Como desligar o sistema remoto em SSH Depurar problemas no SSH

6.10. Outras aplicaes de servidor de rede 6.11. Outros clientes de aplicao de rede 6.12. Os diagnsticos dos daemons do sistema 7. O Sistema X Window 7.1. Pacotes chave 7.2. Definir o ambiente de trabalho 7.2.1. Menu Debian 7.2.2. Menu Freedesktop.org 7.2.3. Menu Debian sob o ambiente de trabalho GNOME 7.3. A relao servidor/cliente 7.4. O servidor X 7.4.1. A (re)configurao do servidor X 7.4.2. Os mtodos de ligao do servidor X 7.5. Iniciando o X Window System 7.5.1. 7.5.2. 7.5.3. 7.5.4. 7.5.5. Iniciar uma sesso X com o gdm3 Personalizar a sesso X (mtodo clssico) Personalizar a sesso X (mtodo novo) Ligar um cliente X remoto via SSH Terminal X seguro via Internet

7.6. Fonts (tipos de letra) para o X Window 7.6.1. Fonts (tipos de letra) bsicas 7.6.2. Fonts (tipos de letra) adicionais 7.6.3. fonts CJK 7.7. Aplicaes do X 7.7.1. Aplicaes de escritrio do X 7.7.2. aplicaes utilitrias do X 7.8. As trivialidades do X 7.8.1. no 7.8.2. 7.8.3. 7.8.4. 8. I18N e L10N 8.1. A entrada do teclado 8.1.1. O suporte a mtodo de entrada com IBus 8.1.2. Um exemplo para Japons 8.1.3. Desactivar o mtodo de entrada Mapas de teclas e mapas de botes do apontador (rato) X Clientes X Clssicos O emulador de terminal X - xterm Correr clientes X como root

8.2. O mostrador de resultados 8.3. O locale 8.3.1. 8.3.2. 8.3.3. 8.3.4. 8.3.5. 8.3.6. 8.3.7. 8.3.8. Bases de codificao Fundamentos para o locale UTF-8 A reconfigurao do locale O valor da varivel de ambiente "$LANG" O locale especfico apenas sob X Window Codificao de nomes de ficheiros Mensagens localizadas e documentao traduzida Efeitos do locale

9. Dicas do sistema 9.1. O programa screen 9.1.1. O cenrio de utilizao para o screen(1) 9.1.2. ligaes de teclas para o comando screen 9.2. Gravao de dados e apresentao 9.2.1. O daemon de log 9.2.2. Analizador de log 9.2.3. Gravar as actividades da shell de modo limpo 9.2.4. Amostragem personalizada de dados em texto 9.2.5. Amostragem personalizada de hora e data 9.2.6. Echo de shell colorido 9.2.7. Comandos coloridos 9.2.8. Recordando as actividades do editor para repeties complexas 9.2.9. Gravar a imagem grfica de uma aplicao X 9.2.10. Gravar alteraes em ficheiros de configurao 9.3. Dicas de armazenamento de dados 9.3.1. Utilizao do espao em disco 9.3.2. Configurao das parties do disco 9.3.3. Aceder a partio usando UUID 9.3.4. Configurao do sistema de ficheiros 9.3.5. Criao do sistema de ficheiros e verificao de integridade 9.3.6. Optimizao do sistema de ficheiros por opes de montagem 9.3.7. Optimizao do sistema de ficheiros atravs do superblock 9.3.8. Optimizao do disco rgido 9.3.9. Optimizao de disco de estado slido (SSD) 9.3.10. Usar SMART para prever falhas no disco rgido 9.3.11. Especifique o directrio de armazenamento temporrio atravs de $TMPDIR 9.3.12. Expandir o espao de armazenamento utilizvel via LVM 9.3.13. Expandir o espao de armazenamento utilizvel ao montar outra partio 9.3.14. Expandir o espao de armazenamento utilizvel ao fazer bind-mount para outro directrio 9.3.15. Expandir o espao de armazenamento utilizvel usando links simblicos 9.3.16. Expandir o espao de armazenamento utilizvel usando aufs

9.4. Dicas de encriptao de dados 9.4.1. 9.4.2. 9.4.3. 9.4.4. Encriptao de discos amovveis com dm-crypt/LUKS Partio swap encriptada com dm-crypt Encriptar ficheiros automaticamente com eCryptfs Montar eCryptfs automaticamente

9.5. Monitorizar, controlar e iniciar as actividades de programas 9.5.1. Temporizando um processo 9.5.2. A prioridade de agendamento 9.5.3. O comando ps 9.5.4. O comando top 9.5.5. Listar ficheiros abertos por um processo 9.5.6. Rastear as actividades de programas 9.5.7. Identificao de um processo usando ficheiros ou sockets 9.5.8. Repetir um comando com um intervalo constante 9.5.9. Repetindo um ciclo de comandos sobre ficheiros 9.5.10. Arrancar um programa a partir da GUI 9.5.11. Personalizar o programa a ser iniciado 9.5.12. Matar um processo 9.5.13. Agendar tarefas uma vez 9.5.14. Agendar tarefas regularmente 9.5.15. Tecla Alt-SysRq 9.6. Dicas de manuteno do sistema 9.6.1. Quem est no sistema? 9.6.2. Avisar todos 9.6.3. Identificao do hardware 9.6.4. Configurao do hardware 9.6.5. Hora do sistema e do hardware 9.6.6. A configurao do terminal 9.6.7. A infraestrutura de som 9.6.8. Desactivar o protector de ecr (screensaver) 9.6.9. Desactivar os sons de beep 9.6.10. Utilizao da memria 9.6.11. Segurana do sistema e verificao de integridade 9.7. O kernel 9.7.1. Kernel Linux 2.6 9.7.2. Parmetros do kernel 9.7.3. Cabealhos do kernel 9.7.4. Compilar o kernel e mdulos relacionados 9.7.5. Compilar cdigo-fonte do kernel: a recomendao da equipa do kernel de Debian 9.7.6. Controladores de hardware e firmware 9.8. Sistema virtualizado 9.8.1. 9.8.2. 9.8.3. 9.8.4. 9.8.5. Ferramentas de virtualizao Fluxo de trabalho da virtualizao Montar o ficheiro de imagem de disco virtual Sistema chroot Sistemas de vrios ambientes de trabalho

10. Gesto de dados

10.1. Partilhar, copiar e arquivar 10.1.1. Ferramentas de arquivo e compresso 10.1.2. Ferramentas de cpia de sincronizao 10.1.3. Idiomas para o arquivo 10.1.4. Idiomas para a cpia 10.1.5. Idiomas para a seleco de ficheiros 10.1.6. Salvaguarda (backup) e recuperao 10.1.7. Suites de utilitrios de backup 10.1.8. Um script de exemplo para salvaguarda ao sistema 10.1.9. Um script de cpia para a salvaguarda de dados 10.1.10. Dispositivo de armazenamento amovvel 10.1.11. Escolha de sistema de ficheiros para partilhar dados 10.1.12. Partilhando dados via rede 10.1.13. Meio de arquivo 10.2. A imagem de disco 10.2.1. 10.2.2. 10.2.3. 10.2.4. 10.2.5. 10.2.6. 10.2.7. 10.2.8. Criando o ficheiro de imagem de disco Escrever directamente no disco Montar o ficheiro de imagem de disco Limpar um ficheiro de imagem de disco Criar um ficheiro de imagem de disco vazio Criar o ficheiro de imagem ISO9660 Escrever directamente para o CD/DVD-R/RW Montar o ficheiro de imagem ISO9660

10.3. Os dados binrios 10.3.1. Ver e editar dados binrios 10.3.2. Manipular ficheiros sem montar o disco 10.3.3. Redundncia de dados 10.3.4. Recuperao de ficheiros e dados e anlise forense 10.3.5. Dividir um ficheiro grande em ficheiros pequenos 10.3.6. Limpar contedo de ficheiro 10.3.7. Ficheiros dummy 10.3.8. apagar um disco rgido inteiro 10.3.9. Apagar uma rea no utilizada do disco rgido 10.3.10. Recuperar ficheiros apagados mas ainda abertos 10.3.11. Procurar todos os hardlinks 10.3.12. Consumo invisvel do espao do disco 10.4. Infraestrutura da segurana de dados 10.4.1. 10.4.2. 10.4.3. 10.4.4. 10.4.5. Gesto de chaves para GnuPG Usa GnuPG em ficheiros Usar GnuPG com o Mutt Usar GnuPG com o Vim O valor de controlo MD5

10.5. Ferramentas de fuso de cdigo fonte 10.5.1. Extrair as diferenas para ficheiros fonte 10.5.2. Fundir actualizaes para ficheiros de fonte 10.5.3. Actualizar via fuso-de-3-vias 10.6. Sistemas de controle de verso 10.6.1. Comparao dos comandos VCS

10.7. CVS 10.7.1. Configurao de repositrio CVS 10.7.2. Acesso local ao CVS 10.7.3. Acesso remoto ao CVS com pserver 10.7.4. Acesso remoto ao CVS com ssh 10.7.5. Importar uma nova fonte para o CVS 10.7.6. Permisses de ficheiros no repositrio CVS 10.7.7. Fluxo de trabalho do CVS 10.7.8. Ficheiros mais recentes do CVS 10.7.9. Administrao do CVS 10.7.10. Bit de execuo para verificao do CVS 10.8. Subversion 10.8.1. 10.8.2. 10.8.3. 10.8.4. 10.8.5. 10.8.6. 10.8.7. 10.9. Git 10.9.1. 10.9.2. 10.9.3. 10.9.4. 10.9.5. Configurao do cliente Git Referncias do Git Comandos do Git Git para o repositrio Subversion Git para gravar o histrico de configurao Configurao do repositrio Subversion Acesso ao Subversion via servidor Apache2 Acesso local ao Subversion pelo grupo Acesso remoto ao Subversion via SSH Estrutura de directrios do Subversion importar uma nova fonte para o Subversion Fluxo de trabalho do Subversion

11. Converso de dados 11.1. Ferramentas de converso de dados em texto 11.1.1. 11.1.2. 11.1.3. 11.1.4. 11.1.5. 11.1.6. 11.1.7. 11.1.8. Converter um ficheiro de texto com o iconv Verifica ficheiro se UTF-8 com o iconv Converter os nomes dos ficheiros com o iconv converso EOL Converso de TAB Editores com auto-converso Extraco de texto simples Destacar e formatar dados de texto simples

11.2. Dados XML 11.2.1. Dicas bsicas para XML 11.2.2. Processamento de XML 11.2.3. A extraco de dados de XML 11.3. Dados imprimveis 11.3.1. 11.3.2. 11.3.3. 11.3.4. Ghostscript Juntar dois ficheiros PS ou PDF Utilitrios de dados imprimveis Imprimir com o CUPS

11.4. Formatao de texto

11.4.1. 11.4.2. 11.4.3. 11.4.4.

formatao de texto roff TeX/LaTeX Impresso bonita de um manual Criar um manual

11.5. A converso de dados de mail 11.5.1. Noes bsicas de dados de mail 11.6. Ferramentas de dados grficos 11.7. Converso de dados variados 12. Programao 12.1. O script de shell 12.1.1. Compatibilidade da shell do POSIX 12.1.2. Parmetros da shell 12.1.3. Condicionais da shell 12.1.4. Ciclos (loops) da shell 12.1.5. A sequncia de processamento da linha de comandos da shell 12.1.6. Programas utilitrios para script de shell 12.1.7. Dilogo do script de shell 12.1.8. Exemplo de script de shell com zenity 12.2. Make 12.3. C 12.3.1. Programa C simples (gcc) 12.4. Depurao 12.4.1. 12.4.2. 12.4.3. 12.4.4. 12.4.5. 12.4.6. 12.4.7. 12.4.8. 12.4.9. Execuo gdb bsica Depurar o pacote Debian Obter um backtrace Comandos gdb avanados Depurar Erros do X Verificar a dependncia em bibliotecas Ferramentas de deteco de fugas de memria Ferramentas de anlise de cdigo esttico Desassemblar binrio

12.5. Flex um Lex melhor. 12.6. Bison um Yacc melhor 12.7. Autoconf 12.7.1. Compilar e instalar um programa 12.7.2. Desinstalar um programa 12.8. A loucura dos scripts curtos de Perl 12.9. Web 12.10. A traduo do cdigo-fonte 12.11. Criar um pacote Debian A. Apndice A.1. o labirinto Debian A.2. Histria do Copyright A.3. Formato do documento

Lista de Tabelas 1.1. 1.2. 1.3. 1.4. 1.5. Lista de pacotes de programas interessantes em modo de texto Lista de pacotes de documentao informativa Lista de utilizao de directrios chave Lista do primeiro caractere da sada de "ls -l" O modo numrico para permisses de ficheiros em comandos chmod (1) 1.6. Exemplos do valor umask 1.7. Lista de grupos notveis disponibilizados pelo sistema para acesso a ficheiros 1.8. Lista de grupos notveis disponibilizados pelo sistema para execues de comandos particulares 1.9. Lista dos tipos de marcas temporais 1.10. Lista de ficheiros de dispositivos especiais 1.11. As teclas de atalho do MC 1.12. A reaco tecla enter no MC 1.13. Lista de programas da shell 1.14. Lista de teclas de atalho para bash 1.15. Lista de operaes de rato ao estilo Unix 1.16. lista dos comandos Unix bsicos 1.17. 3 partes do valor locale 1.18. Lista de recomendaes de locale 1.19. Lista de valores "$HOME" 1.20. Padres glob da shell 1.21. Cdigos de sada do comando 1.22. Idiomas de comandos de shell 1.23. Descritores de ficheiro predefinido 1.24. Meta-caracteres para BRE e ERE 1.25. A expresso de substituio 1.26. Lista de trechos de script para canalizar comandos em pipe 2.1. Lista de ferramentas de gesto de pacotes Debian 2.2. Lista de sites de arquivos Debian 2.3. Lista de rea de arquivo Debian 2.4. A relao entre suite e nome de cdigo 2.5. Lista de sites web chave para resolver problemas com um pacote especfico. 2.6. Operaes bsicas de gesto de pacotes com a linha de comandos utilizando aptitude(8) e apt-get(8) / apt-cache(8). 2.7. Opes de comando notveis para o aptitude(8) 2.8. Lista de teclas de atalho do aptitude 2.9. Lista de vistas para o aptitude 2.10. A categorizao das vista de pacotes standard 2.11. Lista da frmula regex do aptitude 2.12. Os ficheiros log para actividades de pacotes 2.13. Lista de operaes de gesto avanada de pacotes 2.14. O contedo dos meta dados do arquivo Debian 2.15. A estrutura de nomes dos pacotes Debian 2.16. Os caracteres utilizveis para cada componente nos nomes de pacotes Debian 2.17. Ficheiros notveis criados pelo dpkg 2.18. Lista de valores notveis de Pin-Priority para a tcnica de apt-pinning. 2.19. Lista de ferramentas proxy especiais para arquivos Debian 3.1. Lista de gestores de arranque 3.2. O significado dos parmetros do GRUB 3.3. Lista de utilitrios de arranque para o sistema Debian 3.4. Lista de runlevels e descrio da sua utilizao 3.5. Lista de nveis de erro do kernel

4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8.

3 ficheiros de configurao importantes para pam_unix(8) A segunda entrada no contedo de "/etc/passwd" Lista de comandos para gerir informao de conta Lista de ferramentas para gerar palavras-passe Lista de sistemas PAM e NSS notveis Lista de ficheiros de configurao acedidos pelo PAM Lista de servios e portos inseguros e seguros Lista de ferramentas para disponibilizar medidas de segurana extra 5.1. Lista de ferramentas de configurao de rede 5.2. Lista de gamas de endereos de rede 5.3. Lista de mtodos de ligao de rede e caminhos de ligao 5.4. Lista de configuraes de ligao de rede 5.5. Lista de ligaes de rede annimas 5.6. Lista de ficheiros de configurao para a ligao PPP com pppconfig 5.7. Lista de ficheiros de configurao para a ligao PPP com wvdialconf 5.8. Lista de ficheiros de configurao para a ligao PPPoE com pppoeconf 5.9. Lista de comandos de configurao de rede bsicos com ifupdown 5.10. Lista de estrofes em "/etc/network/interfaces" 5.11. Lista de siglas para WLAN 5.12. Lista de terminologia para dispositivos de rede 5.13. Lista de comandos avanados de configurao de rede com ifupdown 5.14. Lista de variveis de ambiente passadas pelo sistema ifupdown 5.15. Tabela de traduo dos comandos obsoletos net-tools para os novos comandos iproute2 5.16. Lista de comandos de rede de baixo nvel 5.17. Lista de ferramentas de optimizao de rede 5.18. Regras bsicas para o valor MTU ptimo 5.19. Lista de ferramentas de firewall 6.1. Lista de exploradores web 6.2. Lista de pacotes de plugins de navegadores 6.3. Lista de pacotes bsicos relacionados com agente de transporte de mail para estao de trabalho 6.4. Lista de escolhas para pacotes de agente de transporte de mail (MTA) no arquivo Debian. 6.5. Lista dos manuais importantes do postfix 6.6. Lista de ficheiros de configurao relacionados com endereos de mail 6.7. Lista de operaes MTA bsicas 6.8. Lista de agentes utilizador de mail (MUA) 6.9. Lista de adquiridores de mail remoto e utilitrios de reencaminhamento 6.10. Lista de MDA com filtro 6.11. Lista de Servidores POP3/IMAP4 6.12. Lista de servidores de impressoras e utilitrios 6.13. Lista de servidores de acesso remoto e utilitrios 6.14. Lista de protocolos e mtodos de autenticao do SSH 6.15. Lista de ficheiros de configurao do SSH 6.16. Lista de exemplos de arranque do cliente SSH 6.17. Lista de clientes SSH para outras plataformas 6.18. Lista de outras aplicaes de servidor de rede 6.19. Lista de clientes de aplicao de rede 6.20. Lista de RFCs populares 7.1. Lista de (meta)pacotes chave para o X Window 7.2. Lista de terminologia de servidor/cliente 7.3. Lista de mtodos de ligao ao servidor X

7.4. 7.5. 7.6. 7.7.

Tabela de pacotes para suportar fonts do sistema X Window Tabela de fonts PostScript Type 1 correspondentes Tabela de fonts correspondentes a TrueType Tabela de palavras chave usadas em nomes de fonts CJK para indicar os tipos de fonts. 7.8. lista de aplicaes X de escritrio bsicas 7.9. Lista de aplicaes X utilitrias bsicas 8.1. Lista de mtodos de configurao do teclado 8.2. Lista de suportes a mtodo de entrada com IBus 9.1. Lista de programas para suportar ligaes rede interrompidas 9.2. Lista de ligaes de teclas para o screen 9.3. Lista de analisadores de log do sistema 9.4. Mostrar exemplos de hora e data para o comando "ls -l" para wheezy 9.5. Lista de ferramentas grficas de manipulao de imagens 9.6. Lista de pacotes para gravar histrico de configurao em VCS 9.7. Lista de pacotes de gesto de parties do disco 9.8. Lista de pacotes de gesto de sistemas de ficheiros 9.9. Lista de utilitrios de encriptao de dados 9.10. Lista de ferramentas para monitorizar e controlar as actividades de programas 9.11. Lista de valores nice para a prioridade de agendamento 9.12. Lista dos estilos do comando ps 9.13. Lista de comandos para o top 9.14. Lista dos sinais frequentemente usados para o comando kill 9.15. Lista de teclas de comando SAK 9.16. Lista de ferramenta de identificao de hardware 9.17. Lista de ferramentas de configurao do hardware 9.18. Lista de pacotes de som 9.19. Lista de comandos para desactivar o protector de ecr 9.20. Lista dos tamanhos de memria reportados 9.21. Lista de ferramentas para segurana do sistema e verificao de integridade 9.22. Lista de pacotes chave a serem instalados para a recompilao do kernel no sistema Debian 9.23. Lista de ferramentas de virtualizao 10.1. Lista de ferramentas de arquivo e compresso 10.2. Lista de ferramentas de cpia e sincronizao 10.3. Lista de suites utilitrias de salvaguarda 10.4. Lista de hipteses de sistemas de ficheiros para dispositivos de armazenamento amovveis com cenrios de utilizao tpica 10.5. Lista de servios de rede para escolher com o cenrio de utilizao tpico 10.6. Lista de pacote para ver e editar dados binrios 10.7. Lista de pacotes para ler e escrever ficheiros sem montar o disco. 10.8. Lista de ferramentas para adicionar redundncia de dados a ficheiros 10.9. Lista de pacotes para recuperao de ficheiros e dados e anlise forense 10.10. Lista de ferramentas de infraestrutura da segurana de dados 10.11. Lista de comandos do GNU Privacy Guard para gesto de chaves 10.12. Lista do significado do cdigo de confiana 10.13. Lista de comandos do GNU Privacy Guard em ficheiros 10.14. Lista de ferramentas de fuso de cdigo fonte 10.15. lista de ferramentas de sistemas de controle de verso 10.16. Comparao dos comandos VCS nativos 10.17. Opes notveis para comandos CVS (use como primeiro argumento (s) para o cvs(1)) 10.18. Opes notveis para os comandos do Subversion (use como

primeiro argumento) para o svn(1)) 10.19. Lista de pacotes e comandos relacionados com o git 11.1. Lista de ferramentas de converso de dados em texto 11.2. Lista de valores de codificao e a sua utilizao 11.3. Lista de estilos EOL para diferentes plataformas 11.4. Lista de comandos de converso de TAB dos pacotes bsdmainutils e coreutils 11.5. Lista de ferramentas para extraco de dados de texto simples 11.6. Lista de ferramentas para destacar dados em texto simples 11.7. Lista de entidades predefinidas para XML 11.8. Lista de ferramentas XML 11.9. Lista de ferramentas DSSL 11.10. Lista de ferramentas de extraco de dados de XML 11.11. Lista de ferramentas de impresso bonita de XML 11.12. Lista de interpretadores PostScript Ghostscript 11.13. Lista de utilitrios de dados imprimveis 11.14. Lista de ferramentas de formatao de texto 11.15. Lista de pacotes para ajudar a criar o manual (manpage) 11.16. Lista de pacotes para ajudar na converso de dados de mail 11.17. Lista de ferramentas de dados grficos 11.18. Lista de ferramentas de converso de dados variados 12.1. Lista de pacotes para ajudar a programar 12.2. Lista dos 'bashisms' tpicos 12.3. Lista de parmetros da shell 12.4. Lista de expanses de parmetros de shell 12.5. Lista de substituies de parmetros de shell chave 12.6. Lista de operadores de comparao de ficheiros na expresso condicional 12.7. Lista de operadores de comparao de strings na expresso condicional 12.8. Lista de pacotes que contm programas utilitrios pequenos para scripts de shell 12.9. Lista de programas de interface de utilizador 12.10. Lista de variveis automticas do make 12.11. Lista de expanses da varivel do make 12.12. Lista de comandos gdb avanados 12.13. Lista de ferramentas de deteco de fugas de memria 12.14. Lista de ferramentas para anlise de cdigo esttico 12.15. Lista de geradores de anlise LALR compatveis com Yacc 12.16. Lista de ferramentas de traduo de cdigo-fonte Prefcio ndice 1. Aviso 2. O que o Debian 3. Acerca deste documento 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. Regras orientadoras Pr-requisitos Convenes popcon O tamanho do pacote Relatrios de bugs deste documento

4. Algumas citaes para os novos utilizadores A Referncia Debian (verso 2) (http://www.debian.org/doc/manuals/ debian-reference/) (2013-03-27 04:23:22 UTC) destina-se a

disponibilizar uma viso ampla da administrao do sistema Debian como um guia de ps-instalao para o utilizador. Destina-se ao leitor que est disposto a aprender scripts de consola mas no est pronto para ler todo o cdigo-fonte em C para descobrir como o sistema GNU (http://en.wikipedia.org/wiki/GNU) /Linux (http:// en.wikipedia.org/wiki/Linux) funciona. 1. Aviso Todas as garantias so renunciadas. Todas as marcas so propriedade dos seus respectivos donos de marca. O prprio sistema Debian um alvo em movimento. Isto torna difcil manter a sua documentao actualizada e correcta. Apesar de ter sido utilizada a verso actual de desenvolvimento do sistema Debian como base para escrever isto, alguns contedos podem j estar ultrapassados quando estiver a ler isto. Por favor veja este documento como uma referncia secundria. Este documento no substitui quaisquer guias oficiais. O autor e participantes no tomam responsabilidade pelas consequncias de erros, omisses ou ambiguidades neste documento. 2. O que o Debian O Projecto Debian (http://www.debian.org) uma associao de indivduos que tm como causa comum a criao de um sistema operativo livre. A sua distribuio caracterizada pelo seguinte. * Compromisso com a liberdade do software: Debian Social Contract e Debian Free Software Guidelines (DFSG) (http:// www.debian.org/social_contract) * Esforo distribudo de voluntrios no-remunerados atravs da Internet: http://www.debian.org (http://www.debian.org) * Grande nmero de softwares pr-compilados de alta qualidade * Foco em estabilidade e segurana com acesso fcil a actualizaes de segurana * Foco na actualizao tranquila para os softwares mais recentes com os arquivos unstable e testing * Grande nmero de arquitecturas de hardware suportadas As peas de Software Livre em Debian vm de GNU (http:// en.wikipedia.org/wiki/GNU) , Linux (http://en.wikipedia.org/wiki/ Linux) , BSD (http://en.wikipedia.org/wiki/ Berkeley_Software_Distribution) , X (http://en.wikipedia.org/wiki /X_Window_System) , ISC (http://en.wikipedia.org/wiki/ Internet_Systems_Consortium) , Apache (http://en.wikipedia.org/ wiki/Apache_Software_Foundation) , Ghostscript (http:// en.wikipedia.org/wiki/Ghostscript) , Common Unix Printing System (http://en.wikipedia.org/wiki/Common_Unix_Printing_System) , Samba (http://en.wikipedia.org/wiki/Samba_(software)) , GNOME (http://en.wikipedia.org/wiki/GNOME) , KDE (http:// en.wikipedia.org/wiki/KDE) , Mozilla (http://en.wikipedia.org/

wiki/Mozilla) , OpenOffice.org (http://en.wikipedia.org/wiki/ OpenOffice.org) , Vim (http://en.wikipedia.org/wiki/Vim_ (text_editor)) , TeX (http://en.wikipedia.org/wiki/TeX) , LaTeX (http://en.wikipedia.org/wiki/LaTeX) , DocBook (http:// en.wikipedia.org/wiki/DocBook) , Perl (http://en.wikipedia.org/ wiki/Perl) , Python (http://en.wikipedia.org/wiki/Python_ (programming_language)) , Tcl (http://en.wikipedia.org/wiki/Tcl) , Java (http://en.wikipedia.org/wiki/Java_(programming_language)) , Ruby (http://en.wikipedia.org/wiki/Ruby_(programming_language)) , PHP (http://en.wikipedia.org/wiki/PHP) , Berkeley DB (http:// en.wikipedia.org/wiki/Berkeley_DB) , MySQL (http:// en.wikipedia.org/wiki/MySQL) , PostgreSQL (http:// en.wikipedia.org/wiki/PostgreSQL) , Exim (http://en.wikipedia.org /wiki/Exim) , Postfix (http://en.wikipedia.org/wiki/Postfix_ (software)) , Mutt (http://en.wikipedia.org/wiki/Mutt_ (e-mail_client)) , FreeBSD (http://en.wikipedia.org/wiki/FreeBSD) , OpenBSD (http://en.wikipedia.org/wiki/OpenBSD) , Plan 9 (http:/ /en.wikipedia.org/wiki/Plan_9_from_Bell_Labs) e muitos mais projectos de software livre independentes. Debian integra esta diversidade de Software Livre num sistema. 3. Acerca deste documento 3.1. Regras orientadoras Foram seguidas as seguintes regras de orientao ao compilar este documento. * Dar uma viso geral e saltar casos no comuns. (Imagem Geral) * Manter Curto e Simples. (Principio KISS) * No reinventar a roda. (Utilizar apontadores para as referncias existentes) * Foco nas ferramentas no-GUI e consolas. (Utilizar exemplos de shell) * Ser objectivo. (Utilizar popcon (http://popcon.debian.org/) etc.) Dica Eu tentei elucidar aspectos hierrquicos e nveis mais baixos do sistema. 3.2. Pr-requisitos Ateno Espera-se que se esforce a procurar respostas por si prprio e para alm desta documentao. Este documento apenas oferece pontos de arranque eficientes. Voc tem de procurar a soluo por si a partir de fontes primrias. * O site Debian em http://www.debian.org (http:// www.debian.org) para informao geral

* A documentao sob o directrio "/usr/share/doc/ <nome_do_pacote>" * O manual de estilo Unix: "dpkg -L <nome_de_pacote> |grep '/ man/man.*/'" * A pgina info estilo GNU: "dpkg -L <nome_do_pacote> |grep '/ info/'" * Relatrios de bugs http://bugs.debian.org/<package_name> (http://bugs.debian.org/) * O Debian Wiki em http://wiki.debian.org/ (http:// wiki.debian.org/) para os tpicos especficos e em movimento. * Os HOWTOs de The Linux Documentation Project (TLDP) em http:/ /tldp.org/ (http://tldp.org/) * The Single UNIX Specification de Open Group's The UNIX System Home Page em http://www.unix.org/ (http://www.unix.org/) * A enciclopdia livre Wikipedia em http://www.wikipedia.org/ (http://www.wikipedia.org/) Nota Para documentao detalhada, pode necessitar instalar o correspondente pacote de documentao chamado com o sufixo "-doc". 3.3. Convenes Este documento fornece informao atravs do seguinte estilo de apresentao simplificado com exemplos de comandos de shell bash (1). # <comando na conta do root> $ <comando na conta do utilizador> Estas 'prompts' da shell distinguem a conta utilizada e correspondem a definir variveis de ambiente como: "PS1='\$'" e "PS2=' '". Estes valores so escolhidos para bem da legibilidade deste documento e no so tpicos do sistema instalado. Nota Veja o significado das variveis de ambiente "$PS1" e "$PS2" em bash(1). A aco necessria do administrador do sistema escrita em sentido imperativo, p.e. "Carregue na tecla Enter aps escrever cada string de comando na shell." A coluna descrio e semelhantes na tabela podem conter um sintagma nominal seguido da conveno de descrio curta do pacote (http://www.debian.org/doc/manuals/developers-reference/ best-pkging-practices#bpp-desc-basics) que deixa cair os artigos como "um" e "o". Pode em alternativa conter uma frase no infinitivo tal como um sintagma nominal sem o antecedente "para" seguindo a conveno de descrio curta de comando das

'manpages'. Isto pode parecer esquisito para algumas pessoas mas so as minhas escolhas intencionais de estilo para manter esta documentao o mais simples possvel. Estes sintagmas nominais no comeam por maiscula nem terminam com ponto final seguindo esta conveno de descrio curta. Nota Substantivos prprios incluindo os nomes de comandos mantm maiscula/minscula sem respeitarem a sua localizao. Um bloco de comandos citado num pargrafo de texto referido pelo tipo de letra de dactilografia entre aspas, tal como "aptitude safe-upgrade". Os dados em texto de um ficheiro de configurao citados num pargrafo de texto so referidos em tipo de letra de mquina de escrever entre aspas, tal como "deb-src". Um comando mquina de da manpage informao referenciado pelo seu nome em tipo de letra de escrever seguido opcionalmente pelo nmero de seco em parntesis, tal como bash(1). encorajado a obter ao escrever o seguinte.

$ man 1 bash Uma manpage referida pelo seu nome em tipo de letra de mquina de escrever seguido pelo seu nmero de seco da manpage em parntesis, tal como sources.list(5). Voc encorajado a obter informao ao escrever o seguinte. $ man 5 sources.list Uma pgina info referenciada pelo seu comando em tipo de letra de mquina de escrever entre aspas, tal como "info make". Voc encorajado a obter informao ao escrever o seguinte. $ info make Um nome de ficheiro referenciado em tipo de letra de mquina de escrever entre aspas, tal como "/etc/passwd". Para os ficheiros de configurao, voc encorajado a obter informao ao escrever o seguinte. $ sensible-pager "/etc/passwd" Um nome de directrio referenciado em tipo de letra de mquina de escrever entre aspas, tal como "/etc/init.d/". Voc encorajado a explorar o seu contedo ao escrever o seguinte. $ mc "/etc/init.d/" Um nome de pacote referenciado pelo seu nome em tipo de letra de mquina de escrever, tal como vim. Voc encorajado a obter informao ao escrever o seguinte. $ dpkg -L vim $ apt-cache show vim $ aptitude show vim

Uma documentao pode indicar a sua localizao pelo nome de ficheiro em tipo de letra de dactilografia entre aspas, tal como "/usr/share/doc/sysv-rc/README.runlevels.gz" e "/usr/share/doc/ base-passwd/users-and-groups.html"; ou pelo seu URL (http:// en.wikipedia.org/wiki/Uniform_Resource_Locator) , tal como http:/ /www.debian.org (http://www.debian.org) . Voc encorajado a ler a documentao ao escrever o seguinte. $ zcat "/usr/share/doc/sysv-rc/README.runlevels.gz" | sensible-pager $ sensible-browser "/usr/share/doc/base-passwd/users-and-groups.html" $ sensible-browse "http://www.debian.org" Uma varivel de ambiente referenciada pelo seu nome com um "$" inicial em tipo de letra de mquina de escrever, entre aspas, tal como "$TERM". Voc encorajado a obter o seu valor actual ao escrever o seguinte. $ echo "$TERM" 3.4. popcon Os dados popcon (http://popcon.debian.org/) so apresentados como a medida objectiva da popularidade de cada pacote. Foi descarregado em 2012-11-26 14:28:42 UTC e contm a submisso total de 129766 relatrios sobre 126956 pacotes binrios e 23 arquitecturas. Nota Por favor note que o arquivo amd64 unstable contm actualmente apenas 39011 pacotes. Os dados popcon contm relatrios de muitas instalaes de sistemas antigos. O nmero de popcon precedido de "V:" para "votos" calculado por "1000 * (as submisses popcon para o pacote executado recentemente no PC) / (o total de submisses de popcon)". O nmero de popcon precedido de "I:" para "instalaes" calculado por "1000 * (as submisses popcon para o pacote instalado no PC) / (o total de submisses de popcon)". Nota As figuras do popcon no devem ser consideradas como medidas absolutas da importncia dos pacotes. Existem muitos factores que podem desviar as estatsticas. Por exemplo, um sistema que participa no popcon pode ter directrios montados como o "/bin" com a opo "noatime" para melhoria da performance do sistema e efectivamente desactivar os "votos" de tal sistema. 3.5. O tamanho do pacote Os dados de tamanho do pacote so tambm apresentados como a medida objectiva para cada pacote. So baseados no "Installed-Size:" reportado pelo comando "apt-cache show" ou pelo "aptitude show" (actualmente na amd64 arquitectura para o lanamento unstable). O tamanho reportado est em KB (Kilobyte (http://en.wikipedia.org/wiki/Kibibyte) = unidade para 1024 bytes).

Nota Um pacote com um tamanho de pacote numericamente pequeno pode indicar que o pacote no lanamento unstable um pacote dummy que instala outros pacotes com contedos significativos por dependncia. O pacote dummy activa uma transio suave ou diviso do pacote. Nota Um tamanho de pacote seguido por "(*)" indica que o pacote no lanamento unstable est em falta e em vez dele usado o tamanho do pacote para o lanamento experimental. 3.6. Relatrios de bugs deste documento Se encontrar quaisquer problemas neste documento por favor preencha um relatrios de bug contra o pacote debian-reference utilizando o reportbug(1) . Por favor inclua sugestes de correco com "diff -u" sobre a verso de texto ou cdigo-fonte. 4. Algumas citaes para os novos utilizadores Aqui esto algumas citaes interessantes da lista de email Debian que podem ajudar a elucidar novos utilizadores. * "Isto Unix. D-lhe corda suficiente para se enforcar." --Miquel van Smoorenburg <miquels em cistron.nl> * "Unix amigo do utilizador... Apenas selectivo sobre quem so os seus amigos." --- Tollef Fog Heen <tollef at add.no> Captulo 1. Manuais de GNU/Linux Eu acho que nova lngua ajuda, voc suavemente, aprender um sistema de computador como aprender uma estrangeira. Apesar dos livros e documentao darem tem que praticar tambm. De modo a ajud-lo a iniciar elaborei alguns pontos bsicos.

O design poderoso da Debian (http://www.debian.org) GNU (http:// en.wikipedia.org/wiki/GNU) /Linux (http://en.wikipedia.org/wiki/ Linux) vem do sistema operativo Unix (http://en.wikipedia.org/ wiki/Unix) , isto , um sistema operativo multi-utilizador (http: //en.wikipedia.org/wiki/Multi-user) e multi-tarefa (http:// en.wikipedia.org/wiki/Computer_multitasking) . Voc necessita aprender a tirar vantagem do poder destas funcionalidades e semelhanas entre Unix e GNU/Linux. No se esconda dos textos orientados ao Unix e no se guie somente nos textos de GNU/Linux, por isto rouba-lhe muita informao til. Nota Se voc tem usado qualquer sistema de tipo Unix (http:// en.wikipedia.org/wiki/Unix-like) com ferramentas de linha de comandos, provavelmente j sabe tudo o que eu explico aqui. Por favor use isto como um teste de realidade e refrescamento. 1.1. Bsico da consola

1.1.1. A linha de comandos da shell Aps arrancar o sistema, -lhe apresentado o ecr de login baseado em caracteres se voc no instalou o X Window System (http://en.wikipedia.org/wiki/X_Window_System) com um gestor de visualizao como o gdm3. Suponha que o nome da sua mquina foo, o aviso de login parece-se com o seguinte. foo login: Se instalou um ambiente GUI (http://en.wikipedia.org/wiki/ Graphical_user_interface) , como o GNOME (http://en.wikipedia.org /wiki/GNOME) ou KDE (http://en.wikipedia.org/wiki/KDE) , ento pode ir para uma prompt de login ao pressionar Ctrl-Alt-F1, e pode regressar ao ambiente GUI com Alt-F7 (para mais informao veja em baixo Seco1.1.6, Consolas virtuais). Na prompt de login, escreva o seu nome de utilizador, p.e. penguin, e carregue na tecla Enter, depois escreva a sua palavra-passe e carregue novamente na tecla Enter. Nota Seguindo a tradio do Unix, o nome de utilizador e palavra-passe do sistema Debian so sensveis a maisculas/minsculas. O nome de utilizador geralmente escolhido apenas em minsculas. A primeira conta de utilizador normalmente criada durante a instalao. Podem ser criadas contas de utilizador adicionais com adduser(8) pelo root. O sistema inicia com a mensagem de boas vindas armazenada em "/ etc/motd" (Mensagem do Dia) e apresenta uma prompt de comandos. Debian GNU/Linux lenny/sid foo tty1 foo login: penguin Password: Last login: Sun Apr 22 09:29:34 2007 on tty1 Linux snoopy 2.6.20-1-amd64 #1 SMP Sun Apr 15 20:25:49 UTC 2007 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. foo:~$ Aqui, a parte principal da mensagem de boas vindas pode ser personalizada ao editar o ficheiro "/etc/motd.tail". A primeira linha gerada a partir de informao do sistema usando "uname -snrvm". Voc est agora na shell (http://en.wikipedia.org/wiki/Shell_ (computing)) . A shell interpreta os seus comandos. 1.1.2. A linha de comandos shell sob X Se voc instalou o X Window System (http://en.wikipedia.org/wiki/ X_Window_System) com um gestor de ecr como o gdm3 do GNOME

(http://en.wikipedia.org/wiki/GNOME) ao seleccionar a tarefa "Ambiente de Trabalho" durante a instalao, -lhe apresentado o ecr de login grfico aps arrancar o sistema. Escreva o seu nome de utilizador e a sua palavra-passe para iniciar sesso na conta de utilizador no-privilegiado. Use a tecla Tab para navegar entre nome de utilizador e a palavra-passe ou utilize o rato e o clique principal. Voc pode obter uma linha de comandos no X ao iniciar um programa x-terminal-emulator tal como o gnome-terminal(1), rxvt(1) ou o xterm(1). No ambiente de trabalho GNOME, clicar em "Aplicaes" "Acessrios" "Consola". Pode ver tambm a seco Seco1.1.6, Consolas virtuais . Em alguns Ambientes de Trabalho (como o fluxbox), pode no existir um ponto de partida bvio para o menu. Se isto acontecer, tente clicar (boto direito) no centro do ecr e espere que aparea um menu. 1.1.3. A conta root A conta root tambm chamada como de super utilizador (http:// en.wikipedia.org/wiki/Superuser) ou de utilizador privilegiado. A partir desta conta, voc pode executar as seguintes tarefas de administrao do sistema: * Ler, escrever e remover quaisquer ficheiros no sistema independentemente das suas permisses * Definir o dono e permisses de quaisquer ficheiros no sistema * Definir a palavra-passe de quaisquer utilizadores no privilegiados do sistema. * Fazer login em qualquer conta sem a sua palavra-passe Este poder ilimitado da conta root requer que voc seja atento e responsvel quando a utilizar. Ateno Nunca partilhe a palavra-passe de root com outros. Nota As permisses de um ficheiro (incluindo dispositivos de hardware como CD-ROM etc. os quais so apenas outros ficheiros para o sistema Debian) podem torn-lo no-utilizvel ou inacessvel para utilizadores no-root. Apesar da utilizao da conta root ser um modo rpido de testar este tipo de situao, a sua resoluo deve ser feita atravs da definio correcta das permisses do ficheiro e membros dos grupos de utilizadores. (veja Seco1.2.3, Permisses do sistema de ficheiros). 1.1.4. A linha de comandos shell do root Aqui esto alguns mtodos bsicos de ganhar a prompt da shell de root ao utilizar a palavra-passe do root:

* Escreva root na prompt de login baseada em caracteres. * Clique "Aplicaes" "Acessrios" "Terminal de Root", no ambiente de trabalho GNOME. * Escreva "su -l" na prompt da shell de qualquer utilizador. o Isto no preserva o ambiente do utilizador actual. * Escreva "su" na prompt de shell de qualquer utilizador. o Isto preserva algum do ambiente do utilizador actual. 1.1.5. GUI de ferramentas de administrao do sistema Quando o menu do seu ambiente de trabalho no iniciar automaticamente as ferramentas GUI de administrao do sistema com os privilgios apropriados, voc pode inici-las a partir da prompt da shell de root do emulador dum terminal X, tal como o gnome-terminal(1), rxvt(1), ou xterm(1). Veja Seco1.1.4, A linha de comandos shell do root e Seco7.8.4, Correr clientes X como root. Ateno Nunca inicie o gestor de ecr/sesso X com a conta root ao escrever root na prompt do gestor de ecr/sesso como o gdm3(1). Ateno Nunca execute programas GUI remotos que no sejam confiveis no X Window quando mostrada informao critica porque pode "espiar" o seu ecr X. 1.1.6. Consolas virtuais Por omisso no sistema Debian existem disponveis seis consolas de caracteres alternveis tipo VT100 (http://en.wikipedia.org/ wiki/VT100) para arrancar a shell de comandos directamente na mquina Linux. A menos que voc esteja num ambiente GUI, voc pode mudar entre consolas virtuais ao pressionar Left-Alt-key e simultaneamente numa das teclas F1 F6. Cada consola de caracteres permite um login independente para a conta e oferece um ambiente multi-utilizador. Este ambiente multi-utilizador uma funcionalidade excelente do Unix, e muito viciante. Se voc est no X Window System, pode ganhar acesso consola 1 pressionando as teclas Ctrl-Alt-F1, isto , a tecla-Ctrl-esquerda, a tecla-Alt-esquerda, e a tecla-F1 pressionadas em conjunto. Pode regressar ao X Window System, que normalmente corre na consola virtual 7, pressionando Alt-F7. Voc pode, em alternativa, mudar para outra consola virtual, por exemplo para a consola 1, a partir da linha de comandos. # chvt 1 1.1.7. Como abandonar a linha de comandos Escreva Ctrl-D, isto , a tecla-Ctrl-esquerda e a tecla d

pressionadas ao mesmo tempo, na linha de comandos para fechar a actividade da shell. Se estiver na consola de caracteres, com isto, voc retorna ao aviso de login. Mesmo que estes caracteres de controle sejam referidos como "control D" com letra maiscula, voc no precisa de pressionar a tecla Shift. A expresso curta, ^D, tambm usada para Ctrl-D. Em alternativa pode escrever "exit". Se estiver no x-terminal-emulator(1), com isto pode fechar a janela do x-terminal-emulator. 1.1.8. Como desligar o sistema Tal como qualquer outro SO moderno onde operar ficheiros involve colocar dados em cache (http://en.wikipedia.org/wiki/Cache) em memria para melhorar a performance, o sistema Debian precisa de um processo apropriado de desligar antes que a energia possa ser, em segurana, desligada. Isto para manter a integridade dos ficheiros, ao forar todas as alteraes em memria a serem escritas no disco. Se estiver disponvel software de controle de energia, o processo de desligar desliga automaticamente a energia do sistema. (Caso contrrio, voc pode ter de pressionar o boto de energia por alguns segundos aps o procedimento de desligar.) Voc pode desligar o sistema sob o modo normal de multi-utilizador a partir da linha de comandos. # shutdown -h now Voc pode desligar o sistema sob o modo nico-utilizador a partir da linha de comandos. # poweroff -i -f Em alternativa, voc pode pressionar Ctrl-Alt-Delete (A tecla-Ctrl-esquerda, a tecla-Alt-esquerda, e Delete pressionadas ao mesmo tempo) para desligar o sistema se "/etc/inittab" contiver "ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now". Veja inittab(5) para detalhes. Veja a Seco6.9.6, Como desligar o sistema remoto em SSH. 1.1.9. Recuperar uma consola s Quando o ecr fica estranho aps fazer coisas estranhas tal como "cat <algum-ficheiro-binrio>", escreva "reset" na linha de comandos. Voc poder no ver o comando a aparecer quando o escreve. Tambm pode utilizar "clear" para limpar o ecr. 1.1.10. Sugestes de pacotes adicionais para o novato Apesar de mesmo uma instalao mnima do sistema Debian sem quaisquer tarefas de ambiente de trabalho disponibilizar as funcionalidades bsicas do Unix, uma boa ideia instalar alguns pacotes baseados em linha de comandos e terminais de caracteres baseados em curses tais como o mc e o vim com o apt-get(8) para os iniciantes comearem, com o seguinte: # apt-get update ...

# apt-get install mc vim sudo ... Se j tiver estes pacotes instalados, no sero instalados novos pacotes. Tabela 1.1. Lista de pacotes de programas interessantes em modo de texto +-----------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+--------------| | |V:100, I:261 | |Um gestor de | |mc (http:// |(http:// |1300 (http:// |ficheiro de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|ecr completo | |/sid/mc) |/popcon.php? |/m/mc.html) |em modo de | | |package=mc) | |texto | |-------------------+-------------+----------------------+--------------| | |V:432, I:741 | |Um programa | |sudo (http:// |(http:// |1844 (http:// |para permitir | |packages.debian.org|qa.debian.org|packages.qa.debian.org|privilgios de| |/sid/sudo) |/popcon.php? |/s/sudo.html) |root limitados| | |package=sudo)| |aos | | | | |utilizadores | |-------------------+-------------+----------------------+--------------| | | | |O editor de | | |V:168, I:400 | |texto de Unix | |vim (http:// |(http:// |1877 (http:// |Vi IMproved, | |packages.debian.org|qa.debian.org|packages.qa.debian.org|um editor de | |/sid/vim) |/popcon.php? |/v/vim.html) |texto para | | |package=vim) | |programadores | | | | |(verso | | | | |standard) | |-------------------+-------------+----------------------+--------------| | | | |O editor de | | |V:118, I:951 | |texto de Unix | |vim-tiny (http:// |(http:// |830 (http:// |Vi IMproved, | |packages.debian.org|qa.debian.org|packages.qa.debian.org|um editor de | |/sid/vim-tiny) |/popcon.php? |/v/vim-tiny.html) |texto para | | |package= | |programadores | | |vim-tiny) | |(verso | | | | |compacta) | |-------------------+-------------+----------------------+--------------| | | | |Emacs do | | |V:49, I:101 | |Projecto GNU, | |emacs23 (http:// |(http:// |13035 (http:// |o editor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|texto | |/sid/emacs23) |/popcon.php? |/e/emacs23.html) |extensvel | | |package= | |baseado em | | |emacs23) | |Lisp (verso | | | | |23) | |-------------------+-------------+----------------------+--------------| | |V:283, I:869 | | | |w3m (http:// |(http:// |2082 (http:// |Navegadores de| |packages.debian.org|qa.debian.org|packages.qa.debian.org|WWW de modo de| |/sid/w3m) |/popcon.php? |/w/w3m.html) |texto | | |package=w3m) | | | |-------------------+-------------+----------------------+--------------| | |V:24, I:37 | |O | |gpm (http:// |(http:// |499 (http:// |cortar-e-colar|

|packages.debian.org|qa.debian.org|packages.qa.debian.org|estilo Unix na| |/sid/gpm) |/popcon.php? |/g/gpm.html) |consola de | | |package=gpm) | |texto (daemon)| +-----------------------------------------------------------------------+ Pode ser uma boa ideia ler algumas documentaes informativas. Tabela 1.2. Lista de pacotes de documentao informativa +-----------------------------------------------------------------------------------+ |pacote |popcon |tamanho |desc rio | |---------------------+---------------------+--------------------------+------------| | | | |Docu mentao | |doc-debian (http:// |I:847 (http:// |142 (http:// |do P rojecto | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/d/ |Debi an, (FAQ | |sid/doc-debian) |popcon.php?package= |doc-debian.html) |do D ebian) e | | |doc-debian) | |outr os | | | | |docu mentos | |---------------------+---------------------+--------------------------+------------| | |I:86 (http:// | |Manu al de | |debian-policy (http:/|qa.debian.org/ |3648 (http:// |Polti cas | |/packages.debian.org/|popcon.php?package= |packages.qa.debian.org/d/ |Debi an e | |sid/debian-policy) |debian-policy) |debian-policy.html) |docu mentos | | | | |rela cionados | |---------------------+---------------------+--------------------------+------------| |developers-reference |I:11 (http:// | |Guia s e | |(http:// |qa.debian.org/ |1046 (http:// |info rmao | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/d/ |para | |sid/ |developers-reference)|developers-reference.html)|prog ramadores| |developers-reference)| | |de Debian | |---------------------+---------------------+--------------------------+------------| |maint-guide (http:// |I:8 (http:// |699 (http:// |Guia dos | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/m/ |Novo s | |sid/maint-guide) |popcon.php?package= |maint-guide.html) |Main tainers |

| |maint-guide) | |de D ebian | |---------------------+---------------------+--------------------------+------------| |debian-history (http:|I:2 (http:// |4306 (http:// |Histr ia do | |//packages.debian.org|qa.debian.org/ |packages.qa.debian.org/d/ |Proj ecto | |/sid/debian-history) |popcon.php?package= |debian-history.html) |Debi an | | |debian-history) | | | |---------------------+---------------------+--------------------------+------------| |debian-faq (http:// |I:798 (http:// |1151 (http:// | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/d/ |FAQ do Debian| |sid/debian-faq) |popcon.php?package= |debian-faq.html) | | | |debian-faq) | | | |---------------------+---------------------+--------------------------+------------| |sysadmin-guide (http:|I:2 (http:// |964 (http:// |O Gu ia do | |//packages.debian.org|qa.debian.org/ |packages.qa.debian.org/s/ |Admi nistrador| |/sid/sysadmin-guide) |popcon.php?package= |sysadmin-guide.html) |de S istema | | |sysadmin-guide) | |Debi an | +-----------------------------------------------------------------------------------+ Voc pode instalar alguns destes pacotes com o seguinte. # apt-get install nome_do_pacote 1.1.11. Uma conta de utilizador extra Se voc no deseja usar a sua conta de utilizador principal para as seguintes actividades de treino, voc pode criar uma conta de utilizador para treinos, por exemplo fish, fazendo o seguinte: # adduser fish Responder a todas as questes. Isto cria uma nova conta chamada fish. Aps praticar, voc pode remover esta conta de utilizador e o seu directrio home fazendo o seguinte: # deluser --remove-home fish 1.1.12. Configurao do sudo Para a tpica estao de trabalho de um nico utilizador como o ambiente de trabalho do sistema Debian no PC porttil, comum

implementar uma configurao simples do sudo(8) como se segue para permitir ao utilizador no-privilegiado, ex. penguin, ganhar privilgios administrativos apenas com a sua palavra passe de utilizador mas sem a palavra passe do root. # echo "penguin ALL=(ALL) ALL" >> /etc/sudoers Em alternativa, tambm comum fazer como se segue para permitir a um utilizador no privilegiado, ex. penguin, ganhar privilgios administrativos sem qualquer palavra-passe. # echo "penguin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers Este truque s deve ser usado na estao de trabalho de um nico utilizador qual voc administre e onde voc o nico utilizador. Ateno No configure assim as contas de utilizadores normais numa estao de trabalho multi-utilizador porque seria muito mau para a segurana do sistema. Cuidado A palavra-passe e a conta penguin no exemplo em cima requer tanta proteco como a palavra-passe do root e a conta do root. Cuidado O privilgio administrativo neste contexto pertence a algum autorizado a executar as tarefas de administrao do sistema numa estao de trabalho. Nunca d tais privilgios a um gestor do departamento Administrativo da sua firma ou ao seu chefe a menos que eles sejam autorizados e capazes. Nota Para disponibilizar privilgios de acesso a dispositivos limitados e ficheiros limitados, voc deve considerar usar o group para disponibilizar acesso limitado em vez de usar os privilgios do root via sudo(8). Nota Com uma configurao melhor pensada e cuidada, o sudo(8) pode garantir privilgios administrativos limitados a outros utilizadores num sistema partilhado sem partilhar a palavra passe do root. Isto pode ajudar com as responsabilidades com mquinas com mltiplos administradores para que voc possa saber quem fez o qu. Por outro lado, voc pode querer que mais ningum tenha tais privilgios. 1.1.13. Hora de brincar Agora voc est pronto para brincar com o sistema Debian sem riscos desde que use a conta de utilizador sem-privilgios. Isto porque o sistema Debian , mesmo aps uma instalao predefinida, configurado com permisses de ficheiros apropriadas que previne os utilizadores no privilegiados de danificarem o

sistema. claro, podem ainda existir alguns buracos que possam ser explorados mas aqueles que se preocupam com estes problemas no deveriam ler esta seco e deveriam ler o Manual de Segurana Debian (http://www.debian.org/doc/manuals/securing-debian-howto/) . Ns aprendemos o sistema Debian como um sistema tipo Unix (http:/ /en.wikipedia.org/wiki/Unix-like) com o seguinte: * Seco1.2, Sistema de ficheiros tipo Unix (conceitos bsicos) * Seco1.3, Midnight Commander (MC) (mtodo de sobrevivncia) * Seco1.4, O ambiente de trabalho estilo Unix bsico (mtodo bsico) * Seco1.5, O comando simples da shell (mecanismo da shell) * Seco1.6, Processamento de texto estilo Unix (mtodo de processamento de texto) 1.2. Sistema de ficheiros tipo Unix No GNU/Linux e noutros sistemas operativos tipo Unix (http:// en.wikipedia.org/wiki/Unix-like) , os ficheiros (http:// en.wikipedia.org/wiki/Computer_file) esto organizados em directrios (http://en.wikipedia.org/wiki/Directory_ (file_systems)) . Todos os ficheiros e directrios esto organizados numa grande rvore que nasce em "/". chamada uma rvore porque se voc desenhar o sistema de ficheiros, parece-se com uma rvore mas est de cabea para baixo. Estes ficheiros e directrios podem estar espalhados por vrios dispositivos. mount(8) serve para anexar o sistema de ficheiros encontrado num dispositivo grande rvore de ficheiros. Reciprocamente, umount(8) desanexa-os novamente. Nos kernel Linux recentes, o mount(8) com algumas opes pode unir parte de uma rvore de ficheiros noutro lugar ou pode montar um sistema de ficheiros como partilhado, privado, escravo ou no-unvel. As opes do mount suportadas para cada sistema de ficheiros esto disponveis em "/share/doc/linux-doc-2.6.*/Documentation/ filesystems/". Os directrios no sistema Unix so chamados pastas nalguns outros sistemas. Por favor note tambm que no existe conceito para drive tal como "A:" em qualquer sistema Unix. Existe um sistema de ficheiros, e tudo est includo nele. Esta uma enorme vantagem em comparao com o Windows. 1.2.1. Noes bsicas de ficheiros Unix. Aqui esto algumas noes bsicas de ficheiros Unix: * Os nomes de ficheiro so sensveis a maisculas/minsculas. Isto , "MEUFICHEIRO" e "MeuFicheiro" so ficheiros diferentes. * O directrio raiz significa a raiz do sistema de ficheiros e

referido simplesmente como "/". No confundir isto com o directrio pessoal do utilizador root: "/root". * Todos os directrios tm um nome que pode conter quaisquer letras ou smbolos excepto "/". O directrio raiz uma excepo. O seu nome "/" (pronuncia-se "slash" ou "o directrio raiz") e no pode ser renomeado. * Cada ficheiro ou directrio designado por um nome de ficheiro totalmente qualificado, nome de ficheiro absoluto, ou caminho, que fornece a sequncia de directrios que tm de ser percorridos para o alcanar. Estes trs termos so sinnimos. * Todos os nomes de ficheiro totalmente qualificados comeam com o directrio "/", e existe um "/" entre cada directrio ou ficheiro no nome do ficheiro. O primeiro "/" o directrio de nvel de topo, e os outros "/"' separam sucessivamente os sub-directrios, at que se chegue ltima entrada que o nome real do ficheiro. As palavras utilizadas aqui conseguem ser confusas. Veja o seguinte nome de ficheiro completamente qualificado como um exemplo: "/usr/share/ keytables/us.map.gz". No entanto, as pessoas tambm se referem ao seu nome base sozinho "us.map.gz" como um nome de ficheiro. * O directrio raiz tem algumas ramificaes, tais como "/etc/" e "/usr/". Estes sub-directrios por sua vez ramificam-se em mais sub-directrios, tais como "/etc/init.d/" e "/usr/local/ ". O todo, visto em conjunto, a chamada rvore de directrios. Voc pode pensar num nome de ficheiro absoluto como um caminho desde a base da rvore ("/") at ao fim de um ramo (um ficheiro). Tambm pode ouvir pessoas falar da rvore de directrios como se fosse uma rvore de famlia juntando todos os descendentes directos numa nica figura chamada de directrio raiz ("/"): assim, os sub-directrios tm pais, e um caminho mostra a linhagem completa de um ficheiro. Existem tambm caminhos relativos que comeam algures noutro ponto que no o directrio raiz. Deve lembrar-se que o directrio "../" refere-se ao directrio pai. Esta terminologia tambm se aplica a outras estruturas semelhantes a directrios, como estruturas hierrquicas de dados. * No existe componente especial no nome de caminho que corresponde a um dispositivos fsico, tal como o seu disco rgido. Isto difere de RT-11 (http://en.wikipedia.org/wiki/ RT-11) , CP/M (http://en.wikipedia.org/wiki/CP/M) , OpenVMS (http://en.wikipedia.org/wiki/OpenVMS) , MS-DOS (http:// en.wikipedia.org/wiki/MS-DOS) , AmigaOS (http:// en.wikipedia.org/wiki/AmigaOS) , e Microsoft Windows (http:// en.wikipedia.org/wiki/Microsoft_Windows) , onde o caminho contm um nome de dispositivo tal como "C:\". (No entanto, existem entradas nos directrios que referem-se a dispositivos fsicos como parte do sistema de ficheiros normal. Veja Seco1.2.2, Internos do sistema de ficheiros .) Nota Apesar de voc poder usar quase todas as letras ou smbolos num

nome de ficheiro, na prtica m ideia faz-lo. melhor evitar quaisquer caracteres que geralmente tm significados especiais na linha de comandos, incluindo espaos, tabs, novas linhas, e outros caracteres especiais: { } ( ) [ ] ' ` " \ / > < | ; ! # & ^ * % @ $ . Se voc deseja separar palavras num nome, as boas escolhas so o ponto, trao e underscore. Voc tambm pode capitalizar cada palavra assim "ComoEsteExemplo". Os utilizadores avanados de Linux procuram evitar espaos nos nomes de ficheiros. Nota A palavra "root" pode significar o "utilizador root" ou o "directrio raiz (root)". O contexto da sua utilizao deve torn-lo claro. Nota A palavra caminho (path) usada no apenas para o nome-de-ficheiro totalmente qualificado como em cima mas tambm para o caminho de busca de comandos. O significado pretendido geralmente claro a partir do contexto. As melhores prticas detalhadas para a hierarquia de ficheiros esto descritas no Filesystem Hierarchy Standard ("/usr/share/doc /debian-policy/fhs/fhs-2.3.txt.gz" e hier(7)). Voc deve lembrar-se dos seguintes factos como princpio: Tabela 1.3. Lista de utilizao de directrios chave +---------------------------------------------------------------+ |directrio|utilizao do directrio | |----------+----------------------------------------------------| |/ |o directrio raiz | |----------+----------------------------------------------------| |/etc/ |ficheiros de configurao de todo o sistema | |----------+----------------------------------------------------| |/var/log/ |ficheiros log do sistema | |----------+----------------------------------------------------| |/home/ |todos os directrios home de todos os utilizadores | | |no privilegiados. | +---------------------------------------------------------------+ 1.2.2. Internos do sistema de ficheiros Seguindo a tradio do Unix, o sistema Debian GNU/Linux disponibiliza o sistema de ficheiros (http://en.wikipedia.org/ wiki/File_system) sob o qual residem os dados fsicos em discos rigdos e outros dispositivos de armazenamento, e a interaco com os dispositivos de hardware como ecrs de consola e consolas srie remotas so representados num modo unificado sob "/dev/". Cada ficheiro, directrio, 'named pipe' (um modo de dois programas partilharem dados), ou dispositivo fsico num sistema Debian GNU/Linux tem uma estrutura de dados chamada inode (http:/ /en.wikipedia.org/wiki/Inode) que descreve os seus atributos associados como o utilizador que o possui (o dono), o grupo a que pertence, a hora do ltimo acesso, etc. Se voc estiver mesmo interessado, veja "/usr/include/linux/fs.h" para uma definio

exacta de "struct inode" no sistema Debian GNU/Linux. A ideia de representar praticamente tudo no sistema de ficheiros foi uma inovao do Unix, e os modernos kernel Linux desenvolveram esta ideia ainda mais. Actualmente, at informao sobre os processos que correm no computador pode ser encontrada no sistema de ficheiros. Esta representao abstracta e unificada de entidades fsicas e processos internos muito poderosa porque permite-nos utilizar o mesmo comando para o mesmo tipo de operao em muitos dispositivos totalmente diferentes. mesmo possvel alterar o modo como o kernel funciona ao escrever dados em ficheiros especiais que esto ligados a processos em execuo. Dica Se necessitar identificar a correspondncia entre a rvore de ficheiros e a entrada fsica, execute mount(8) sem argumentos. 1.2.3. Permisses do sistema de ficheiros As Permisses de sistemas de ficheiros (http://en.wikipedia.org/ wiki/File_system_permissions) de sistemas tipo-Unix (http:// en.wikipedia.org/wiki/Unix-like) so definidas por trs categorias de utilizadores afectados: * O utilizador que dono do ficheiro (u) * Outros utilizadores no grupo ao qual o ficheiro pertence (g) * Todos os outros utilizadores (o) tambm referido como "mundo" e "todos" Para o ficheiro, cada permisso correspondente permite as seguintes aces: * A permisso read (r) permite ao dono examinar o contedo do ficheiro. * A permisso write (w) permite ao dono modificar o ficheiro. * A permisso execute (x) permite ao dono correr o ficheiro como um comando. Para o directrio, cada permisso correspondente permite as seguintes aces: * A permisso read (r) permite ao dono listar o contedo do directrio. * A permisso write (w) permite ao dono adicionar ou remover ficheiros no directrio. * A permisso execute (x) permite ao dono aceder aos ficheiro no directrio. Aqui, a permisso execute num directrio significa no s permitir a leitura dos ficheiros nesse directrio mas tambm permitir visualizar os seus atributos, tais como o tamanho e a hora de modificao.

ls(1) utilizado para mostrar informao de permisses (e mais) para ficheiros e directrios. Quando invocado com a opo "-l", mostra a seguinte informao na ordem apresentada: * Tipo de ficheiro (primeiro caractere) * Permisso de acesso do ficheiro (nove caracteres, consistindo em trs caracteres cada para utilizador, grupo, e outros por esta ordem) * Nmero de hard links para o ficheiro * Nome do utilizador dono do ficheiro * Nome do grupo ao qual o ficheiro pertence * Tamanho do ficheiro em caracteres (bytes) * Data e hora do ficheiro (mtime) * Nome do ficheiro Tabela 1.4. Lista do primeiro caractere da sada de "ls -l" +----------------------------------------+ |caractere|significado | |---------+------------------------------| ||ficheiro normal | |---------+------------------------------| |d |directrio | |---------+------------------------------| |l |link simblico | |---------+------------------------------| |c |n de dispositivo de caractere| |---------+------------------------------| |b |n de dispositivo de bloco | |---------+------------------------------| |p |named pipe | |---------+------------------------------| |s |socket | +----------------------------------------+ chown(1) utilizado a partir da conta de root para alterar o dono do ficheiro. chgrp(1) utilizado a partir da conta do dono do ficheiro ou da conta root para alterar o grupo do ficheiro. chmod(1) usado a partir da conta do dono do ficheiro ou da conta root para alterar as permisses de acesso ao ficheiro ou directrio. A sintaxe bsica para manipular o ficheiro foo a seguinte: # chown <novo_dono> foo # chgrp <novo_grupo> foo # chmod [ugoa][+-=][rwxXst][,...] foo Por exemplo, voc pode fazer com que uma rvore de directrios tenha como dono o utilizador foo e seja partilhada pelo grupo bar com o seguinte:

# cd /qualquer/localizao/ # chown -R foo:bar . # chmod -R ug+rwX,o=rX . Existem mais trs bits especiais de permisses. * O bit set user ID (s ou S em vez do x do utilizador) * O bit set group ID (s ou S em vez do x do grupo) * O bit sticky (t ou T em vez do x dos outros) Aqui o resultado de "ls -l" para estes bits capitalizado se a execuo de bits escondidos por estes resultados estiverem no definidos. Definir set user ID num ficheiro executvel permite a um utilizador executar o ficheiro executvel com o ID do dono do ficheiro (por exemplo root). De modo semelhante, definir set group ID num ficheiro executvel permite a um utilizador executar o ficheiro executvel com o ID de grupo do ficheiro (por exemplo root). Porque estas definies podem causar riscos de segurana, activ-las requer precaues extra. Definir set group ID num directrio activa o esquema de criao de ficheiros ao estilo BSD (http://en.wikipedia.org/wiki/ Berkeley_Software_Distribution) onde todos os ficheiros criados no directrio pertencem ao grupo do directrio. Definir o sticky bit num directrio previne que um ficheiro nesse directrio seja removido por um utilizador que no seja o dono do ficheiro. De modo a tornar o contedo de um ficheiro seguro em directrios onde todos tm acesso de escrita, como o "/tmp" ou em directrios onde um grupo tem acesso de escrita, no basta reiniciar a permisso de escrita do ficheiro mas tambm definir o sticky bit no directrio. Caso contrrio, o ficheiro pode ser removido e pode ser criado um novo ficheiro com o mesmo nome por qualquer utilizador que tenha acesso de escrita no directrio. Aqui esto alguns exemplos interessantes de permisses de ficheiros: $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/exim4 crw------T 1 root root 108, 0 Oct 16 20:57 /dev/ppp -rw-r--r-- 1 root root 2761 Aug 30 10:38 /etc/passwd -rw-r----- 1 root shadow 1695 Aug 30 10:38 /etc/shadow -rwsr-xr-x 1 root root 973824 Sep 23 20:04 /usr/sbin/exim4 $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src drwxrwxrwt 14 root root 20480 Oct 16 21:25 /tmp drwxrwsr-x 10 root staff 4096 Sep 29 22:50 /usr/local drwxr-xr-x 10 root root 4096 Oct 11 00:28 /usr/src drwxrwsr-x 2 root mail 4096 Oct 15 21:40 /var/mail drwxrwxrwt 3 root root 4096 Oct 16 21:20 /var/tmp Existe um modo numrico alternativo para descrever as permisses do ficheiro com o chmod(1). Este modo numrico utiliza 3 ou 4 dgitos em numerao octal (radix=8). Tabela 1.5. O modo numrico para permisses de ficheiros em comandos chmod(1)

+---------------------------------------------------------------+ |digito |significado | |-----------+---------------------------------------------------| |1 digito |soma de set user ID (=4), set group ID (=2), e | |opcional |sticky bit (=1) | |-----------+---------------------------------------------------| |2 digito |soma das permisses leitura (=4), escrita (=2), e | | |executvel (=1) para o utilizador | |-----------+---------------------------------------------------| |3 digito |idem para grupo | |-----------+---------------------------------------------------| |4 digito |idem para outros | +---------------------------------------------------------------+ Isto parece complicado mas na verdade bastante simples. Se observar as primeiras colunas (2-10) do resultado do comando "ls -l" e l-las como uma representao binria (radix=2) das permisses do ficheiros ("-" sendo "0" e "rwx" sendo "1"), os ltimos trs dgitos do valor de modo numrico para si devero fazer sentido como uma representao octal (radix=8) das permisses do ficheiro. Por exemplo, tente o seguinte: $ touch foo bar $ chmod u=rw,go=r foo $ chmod 644 bar $ ls -l foo bar -rw-r--r-- 1 penguin penguin 0 Oct 16 21:39 bar -rw-r--r-- 1 penguin penguin 0 Oct 16 21:35 foo Dica Se necessitar aceder a informao mostrada por "ls -l" num script da shell, voc deve utilizar comandos pertinentes como test(1), stat(1) e readlink(1). Os comandos da prpria shell como "[" ou "test" tambm podem ser utilizados. 1.2.4. Controlo de permisses para ficheiros acabados de criar: umask As permisses que so aplicadas ao criar ficheiros e directrios novos restringida pelo comando embutido da shell umask. Veja dash(1), bash(1), e builtins(7). (permisses de ficheiros) = (permisses de ficheiros pedidas) & ~(valor umask) Tabela 1.6. Exemplos do valor umask +---------------------------------------------------------------+ |umask|permisses do |permisses do |utilizao | | |ficheiro criadas|directrio criadas| | |-----+----------------+------------------+---------------------| | | | |apenas pode ser | |0022 |-rw-r--r-|-rwxr-xr-x |escrito pelo | | | | |utilizador | |-----+----------------+------------------+---------------------| |0002 |-rw-rw-r-|-rwxrwxr-x |pode ser escrito pelo| | | | |grupo |

+---------------------------------------------------------------+ O sistema Debian usa um esquema de grupo privado de utilizadores (UPG). Um UPG criado sempre que um novo utilizador adicionado ao sistema. Um UPG tem o mesmo nome que o utilizador para o qual foi criado e esse utilizador o nico membro do UPG. O esquema UPG torna seguro definir a umask para 0002 j que cada utilizador tem o seu prprio grupo privado. (Em algumas variantes de Unix, bastante comum configurar os utilizadores normais a pertencerem a um nico grupo users e por segurana uma boa ideia definir a umask para 0022 nesses casos.) Dica Active UPG ao colocar "umask 002" no ficheiro ~/.bashrc. 1.2.5. Permisses para grupos de utilizadores (group) De modo a fazer com que as permisses de um grupo sejam aplicadas a um determinado utilizador, esse utilizador precisa de se tornar um membro do grupo usando "sudo vigr". Nota Em alternativa, pode adicionar dinamicamente utilizadores aos grupos durante o processo de autenticao ao adicionar a linha "auth optional pam_group.so" a "/etc/pam.d/common-auth" e configurar "/etc/security/group.conf". (Veja Captulo4, Autenticao.) Os dispositivos de hardware so apenas outro tipo de ficheiros no sistema Debian. Se tiver problemas a aceder a dispositivos como o CD-ROM e memrias USB a partir de uma conta de utilizador, voc deve tornar esse utilizador um membro do grupo relevante. Alguns grupos notveis disponibilizados pelo sistema permitem aos seus membros aceder a ficheiros e dispositivos particulares sem privilgios de root. Tabela 1.7. Lista de grupos notveis disponibilizados pelo sistema para acesso a ficheiros +---------------------------------------------------------------+ |grupo |descrio para ficheiros e dispositivos acessveis | |-------+-------------------------------------------------------| |dialout|acesso completo e directo a portas srie ("/dev/ttyS | | |[0-3]") | |-------+-------------------------------------------------------| |dip |Acesso limitado a portas srie para ligao Dialup IP a| | |peers de confiana | |-------+-------------------------------------------------------| |cdrom |drives CD-ROM, DVD+/-RW | |-------+-------------------------------------------------------| |audio |dispositivo de udio | |-------+-------------------------------------------------------| |video |dispositivo de vdeo | |-------+-------------------------------------------------------| |scanner|scanner(s) | |-------+-------------------------------------------------------|

|adm |logs (relatrios) de monitorizao do sistema | |-------+-------------------------------------------------------| |staff |alguns directrios para trabalho administrativo jnior:| | |"/usr/local", "/home" | +---------------------------------------------------------------+ Dica Voc necessita pertencer ao grupo dialout para reconfigurar o modem, ligar para qualquer lado, etc. Mas se o root criar ficheiros de configurao pr-definidos para peers de confiana em "/etc/ppp/peers/", voc apenas precisa de pertencer ao grupo dip para criar uma ligao Dialup IP para esses peers de confiana utilizando os comandos pppd(8), pon(1), e poff(1). Alguns grupos notveis disponibilizados pelo sistema permitem aos seus membros executar comandos particulares sem privilgios de root. Tabela 1.8. Lista de grupos notveis disponibilizados pelo sistema para execues de comandos particulares +---------------------------------------------------------------+ |grupo |comandos acessveis | |-------+-------------------------------------------------------| |sudo |executar sudo sem a sua palavra-passe | |-------+-------------------------------------------------------| |lpadmin|executar comandos para adicionar, modificar e remover | | |impressoras das bases de dados de impressoras | +---------------------------------------------------------------+ Para a listagem completa dos utilizadores e grupos disponibilizados pelo sistema, veja a verso recente do documento "Utilizadores e Grupos" em "/usr/share/doc/base-passwd/ users-and-groups.html" disponibilizado pelo pacote base-passwd. Para comandos de gesto para o sistema de utilizador e grupo veja passwd(5), group(5), shadow(5), newgrp(1), vipw(8), vigr(8), e pam_group(8) 1.2.6. Marcas temporais (Timetamps) Existem trs tipos de marcas temporais para um ficheiro de GNU/ Linux. Tabela 1.9. Lista dos tipos de marcas temporais +--------------------------------------------------------+ |tipo |significado | |-----+--------------------------------------------------| |mtime|a hora de modificao do ficheiro (ls -l) | |-----+--------------------------------------------------| |ctime|a hora de alterao de estado do ficheiro (ls -lc)| |-----+--------------------------------------------------| |atime|a hora do ltimo acesso ao ficheiro (ls -lu) | +--------------------------------------------------------+

Nota ctime no o tempo de criao do ficheiro. * Sobrescrever um ficheiro altera todos os atributos mtime, ctime, e atime do ficheiro. * Alterar o dono ou as permisses de um ficheiro altera os atributos ctime e atime do ficheiro. * Ler um ficheiro altera o atime do ficheiro. Nota Mesmo a simples leitura de um ficheiro no sistema Debian causa normalmente uma operao de escrita no ficheiro para actualizar a informao atime no inode. Montar um sistema de ficheiros com as opes "noatime" ou "relatime" faz com que o sistema salte esta operao e resulte num acesso mais rpido ao ficheiro para leitura. Isto geralmente recomendado para portteis, porque reduz a actividade do disco rgido e poupa energia. Veja mount(8) . Utilize o comando touch(1) para alterar as marcas temporais de ficheiros existentes. Para marcas temporais, o comando ls gera diferentes strings sob o locale no-Ingls ("pt_PT.UTF-8") a partir do antigo ("C"). $ LANG=pt_PT.UTF-8 ls -l foo -rw-rw-r-- 1 penguin penguin 0 oct. 16 21:35 foo $ LANG=C ls -l foo -rw-rw-r-- 1 penguin penguin 0 Oct 16 21:35 foo Dica Veja Seco9.2.5, Amostragem personalizada de hora e data para personalizar a sada do "ls -l". 1.2.7. Links (ligaes) Existem dois mtodos de associar um ficheiro "foo" com um nome de ficheiro diferente "bar". * Hard link (http://en.wikipedia.org/wiki/Hard_link) o Duplicar nome para um ficheiro existente o "ln foo bar" * Link Simblico ou symlink (http://en.wikipedia.org/wiki/ Symbolic_link) o Ficheiro especial que aponta para outro ficheiro pelo nome o "ln -s foo bar" Veja o seguinte exemplo para alteraes nas contagens do link e as diferenas subtis nos resultados do comando rm.

$ umask 002 $ echo "Contedo Original" > $ ls -li foo 1449840 -rw-rw-r-- 1 penguin $ ln foo bar # hard link $ ln -s foo baz # symlink $ ls -li foo bar baz 1449840 -rw-rw-r-- 2 penguin 1450180 lrwxrwxrwx 1 penguin 1449840 -rw-rw-r-- 2 penguin $ rm foo $ echo "Novo Contedo" > foo $ ls -li foo bar baz 1449840 -rw-rw-r-- 1 penguin 1450180 lrwxrwxrwx 1 penguin 1450183 -rw-rw-r-- 1 penguin $ cat bar Contedo Original $ cat baz Novo Contedo

foo penguin 17 Oct 16 21:42 foo

penguin 17 Oct 16 21:42 bar penguin 3 Oct 16 21:47 baz -> foo penguin 17 Oct 16 21:42 foo

penguin 17 Oct 16 21:42 bar penguin 3 Oct 16 21:47 baz -> foo penguin 12 Oct 16 21:48 foo

O hardlink pode ser feito dentro do mesmo sistema de ficheiros e partilhar o mesmo nmero de inode tal como o ls(1) com a opo "-i" revela. O link simblico tem sempre permisses nominais de acesso ao ficheiro "rwxrwxrwx", conforme mostrado no exemplo acima, com as permisses de acesso efectivas ditadas pelas permisses do ficheiro para o qual aponta. Cuidado Geralmente boa ideia, de todo, no criar links simblicos complicados ou hardlinks a menos que tenha uma boa razo. Podem causar pesadelos onde a combinao lgica dos links simblicos resulta em ciclos viciosos no sistema de ficheiros. Nota Geralmente prefervel utilizar links simblicos em vez de hard links, a menos que tenha boas razes para usar um hardlink. O directrio "." liga ao directrio onde ele aparece, assim a contagem de link de qualquer novo directrio comea em 2. O directrio ".." liga ao directrio pai, assim a contagem de link do directrio aumenta com a adio de novos sub-directrios. Se est a mudar do Windows para Linux, em breve ir ficar claro o quo bem desenhado est a ligao de nomes de ficheiros em Unix, comparada com o equivalente mais prximo em Windows de "atalhos". Devido a estar implementado no sistema de ficheiros, as aplicaes no conseguem ver nenhuma diferena entre o link para um ficheiro e o original. No caso dos hardlinks, no h realmente nenhuma diferena. 1.2.8. Pipes com nome (FIFOs) Um pipe com nome (http://en.wikipedia.org/wiki/Named_pipe) um ficheiro que age como um pipe. Voc coloca algo no ficheiro, e

sai pelo outro lado. Por isso chamado um FIFO, ou Primeiro-a-Entrar-Primeiro-a-Sair: a primeira coisa que voc coloca no pipe a primeira coisa a sair pelo outro lado. Se voc escrever para um pipe com nome, o processo que escreve para o pipe no termina at que a informao que est a ser escrita para o pipe seja lida a partir do pipe. Se voc ler a partir de um pipe com nome, o processo que l espera at que no haja mais nada para ler antes de terminar. O tamanho do pipe sempre zero -- no armazena dados, apenas faz a ligao entre dois processos como o "|" da shell. No entanto, como este pipe tem um nome, os dois processos no tm de estar na mesma linha de comando ou mesmo serem executados pelo mesmo utilizador. Os pipes foram uma inovao de muita influncia do Unix. Por exemplo, tente o seguinte: $ cd; mkfifo mypipe $ echo "hello" >mypipe & # put into background [1] 8022 $ ls -l mypipe prw-rw-r-- 1 penguin penguin 0 Oct 16 21:49 mypipe $ cat mypipe hello [1]+ Done echo "hello" >mypipe $ ls mypipe mypipe $ rm mypipe 1.2.9. Sockets Os sockets so usados extensivamente por toda a comunicao da Internet, bases de dados, e pelo prprio sistema operativo. So semelhantes a pipes com nome (FIFO) e permitem aos processos trocarem informao mesmo entre computadores diferentes. Para o socket, esses processos no precisam de estar a correr ao mesmo tempo, nem correrem como filhos do mesmo processo pai. Isto o destino da comunicao inter-processo (IPC) (http:// en.wikipedia.org/wiki/Inter-process_communication) . A troca de informao pode ocorrer sobre a rede entre mquinas diferentes. Os dois mais comuns so o socket de Internet (http:// en.wikipedia.org/wiki/Internet_socket) e o socket de domnio Unix (http://en.wikipedia.org/wiki/Unix_domain_socket) . Dica "netstat -an" d uma viso geral, muito til, dos sockets que esto abertos num determinado sistema. 1.2.10. Ficheiros de dispositivo Os ficheiros de Dispositivos (http://en.wikipedia.org/wiki/ Device_file) referem-se a dispositivos fsicos ou virtuais no seu sistema, como o seu disco rgido, placa grfica, monitor ou teclado. Um exemplo de dispositivo virtual a consola, que representada por "/dev/console". Existem 2 tipos de ficheiros de dispositivo * Dispositivo de Caractere

o Acedido por um caractere de cada vez o 1 caractere = 1 byte o Ex, teclado, porta srie, ... * Dispositivo de Bloco o acedido em unidades maiores chamadas blocos o 1 bloco > 1 byte o Ex, o disco rgido, ... Voc pode ler e escrever nos ficheiros de dispositivo, embora o ficheiro possa muito bem conter dados binrios que podem ser uma salada incompreensvel para humanos. Escrever dados directamente nestes ficheiros por vezes til para diagnosticar problemas com ligaes de hardware. Por exemplo, voc pode despejar um ficheiro de texto para um dispositivo de impressora "/dev/lp0" ou enviar comandos de modem para a porta srie apropriada "/dev/ttyS0". Mas, a menos que isto seja feito com cuidado, pode causar problemas maiores. Portanto seja cauteloso. Nota Para o acesso normal a uma impressora, use lp(1). Os nmeros de ns de dispositivo so mostrados ao executar ls(1) como se segue. $ ls -l /dev/sda /dev/sr0 /dev/ttyS0 /dev/zero brw-rw---T 1 root disk 8, 0 Oct 16 20:57 brw-rw---T+ 1 root cdrom 11, 0 Oct 16 21:53 crw-rw---T 1 root dialout 4, 64 Oct 16 20:57 crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/sda /dev/sr0 /dev/ttyS0 /dev/zero

* "/dev/sda" tem o nmero maior de dispositivo 8 e o nmero menor de dispositivo 0. Isto acessvel para leitura e escrita ao utilizador que pertencer ao grupo disk. * "/dev/sr0" tem o nmero maior de dispositivo 11 e o nmero menor de dispositivo 0. Isto acessvel para leitura e escrita ao utilizador que pertencer ao grupo cdrom. * "/dev/ttyS0" tem o nmero maior de dispositivo 4 e o nmero menor de dispositivo 64. Isto acessvel para leitura e escrita ao utilizador que pertencer ao grupo dialout. * "/dev/zero" tem o nmero 1 no dispositivo maior e o nmero 5 no nmero de dispositivo menor. Isto acessvel para leitura /escrita a todos. No sistema Linux moderno, o sistema de ficheiros sob "/dev/" povoado automaticamente pelo mecanismo udev(7). 1.2.11. Ficheiros de dispositivos especiais Existem alguns ficheiros de dispositivos especiais.

Tabela 1.10. Lista de ficheiros de dispositivos especiais +---------------------------------------------------------------+ |ficheiro de|aco |descrio da resposta | |dispositivo| | | |-----------+--------+------------------------------------------| |/dev/null |ler |retorna o "caractere de fim-de-ficheiro | | | |(EOF)" | |-----------+--------+------------------------------------------| |/dev/null |escrever|retorna nada (um poo de despejo de dados | | | |sem fundo) | |-----------+--------+------------------------------------------| |/dev/zero |ler |retorna "o caractere \0 (NULO)" (no o | | | |mesmo que o nmero zero em ASCII) | |-----------+--------+------------------------------------------| | | |retorna caracteres aleatrios a partir de | |/dev/random|ler |um verdadeiro gerador de nmeros | | | |aleatrios, entregando entropia real | | | |(lento) | |-----------+--------+------------------------------------------| |/dev/ | |retorna caracteres aleatrios a partir de | |urandom |ler |um gerador de nmeros pseudo-aleatrios | | | |criptograficamente seguros | |-----------+--------+------------------------------------------| |/dev/full |escrever|retorna o erro de disco cheio (ENOSPC) | +---------------------------------------------------------------+ Estes so usados frequentemente em conjunto com o redireccionamento da shell (veja Seco1.5.8, Sequncias de comandos tpicas e redireccionamento da shell). 1.2.12. procfs e sysfs Os procfs (http://en.wikipedia.org/wiki/Procfs) e sysfs (http:// en.wikipedia.org/wiki/Sysfs) montados em "/proc" e "/sys" so os pseudo-sistemas-de-ficheiros e expem estruturas de dados internas do kernel ao espao de utilizador. Por outras palavras, estas entradas so virtuais, significando que elas agem como uma janela de convenincia s operaes do sistema operativo. O directrio "/proc" contm (entre outras coisas) um sub-directrio para cada processo em execuo no sistema, o qual tem o nome do ID do processo (PID). Os utilitrios do sistema que acedem informao de processos, como o ps(1), obtm a sua informao a partir desta estrutura de directrios. Os directrios sob "/proc/sys/" contm uma interface para alterar certos parmetros do kernel durante o funcionamento. (Voc pode fazer o mesmo atravs do comando especializado sysctl(8) ou do seu ficheiro de configurao/pr-carregamento "/etc/ sysctrl.conf".) Nota O kernel Linux pode queixar-se de "Demasiados ficheiros abertos". Voc pode corrigir a partir da shell de root isto, aumentando o valor "file-max" para uma valor maior, p.e. "echo "65536" > /proc /sys/fs/file-max" (Isto era necessrio em kernel mais antigos).

As pessoas frequentemente assustam-se quando notam num ficheiro em particular - "/proc/kcore" - o qual geralmente enorme. Isto (mais ou menos) uma cpia do contedo da memria do seu computador. usado para depurao do kernel. um ficheiro virtual que aponta para a memria do computador, portanto no se preocupe com o seu tamanho. O directrio em "/sys" contm estruturas de dados do kernel exportadas, os seus atributos, e as suas ligaes entre eles. Tambm contm a interface para alterar certos parmetros do kernel durante o funcionamento. Veja "proc.txt(.gz)", "sysfs.txt(.gz)" e outros documentos relacionados na documentao do kernel Linux ("/usr/share/doc/ linux-doc-2.6.*/Documentation/filesystems/*") disponibilizados pelo pacote linux-doc-2.6.*. 1.2.13. tmpfs Otmpfs (http://en.wikipedia.org/wiki/Tmpfs#Linux) um sistema de ficheiros temporrio o qual mantm todos os ficheiros na memria virtual (http://en.wikipedia.org/wiki/Virtual_memory) . Os dados de tmpfs na cache de pginas (http://en.wikipedia.org/wiki/ Page_cache) da memria pode ser ir para o espao swap (http:// en.wikipedia.org/wiki/Paging) no disco, conforme necessrio. O directrio "/run" montado como tmpfs no inicio do processo de arranque. Isto habilita a escrita mesmo que o directrio "/ esteja montado como apenas-leitura. Esta a nova localizao para o armazenamento de ficheiros de estado transientes e substitui vrias outras localizaes descritas na Filesystem Hierarchy Standard (http://en.wikipedia.org/wiki/ Filesystem_Hierarchy_Standard) , verso 2.3: * "/var/run" "/run" * "/var/lock" "/run/lock" * "/dev/shm" "/run/shm" Veja "tmpfs.txt(.gz)" na documentao do kernel Linux ("/usr/ share/doc/linux-doc-*/Documentation/filesystems/*") disponibilizada pelo pacote linux-doc-*. 1.3. Midnight Commander (MC) Midnight Commander (MC) (http://en.wikipedia.org/wiki/ Midnight_Commander) um "Canivete Suo" GNU para a consola Linux e para outros ambientes de terminal. Isto oferece aos novatos uma experincia de consola movida por menus o que mais fcil de aprender do que os comandos standard do Unix. Pode necessitar instalar o pacote Midnight Commander que intitulado de "mc" com o seguinte: $ sudo apt-get install mc Utilize o comando mc(1) para explorar o sistema Debian. Esta a melhor maneira de aprender. Por favor explore algumas

localizaes interessantes apenas usando as teclas do cursor e Enter. * "/etc" e os seus sub-directrios * e"/var/log" os seus sub-directrios * "/usr/share/doc" os seus sub-directrios * "/sbin" e "/bin" 1.3.1. Personalizao do MC De modo a fazer o MC mudar o directrio de trabalho ao sair e cd para o directrio, eu sugiro modificar o "~/.bashrc" para incluir um script disponibilizado pelo pacote mc. . /usr/lib/mc/mc.sh Veja mc(1) (sob a opo "-P") para a razo. (Se voc no compreende exactamente o que estou a falar aqui, pode fazer isto mais tarde.) 1.3.2. Iniciar o MC O MC pode ser iniciado com o seguinte: $ mc O MC toma conta de operaes de ficheiros atravs do seu menu, requerendo esforos mnimos do utilizador. Carregue em F1 para obter ajuda. Voc pode brincar com o MC apenas com as teclas de cursor e teclas de funo. Nota Em algumas consolas como o gnome-terminal(1), as funes das teclas podem ser roubadas pelo programa de consola. Voc pode desactivar estas funcionalidades em "Editar" "Atalhos do Teclado" para o gnome-terminal. Se encontrar problemas com a codificao de caracteres que mostram caracteres com lixo, adicionar "-a" linha de comandos do MC pode ajudar a prevenir problemas. Se isto no limpar os seus problemas no ecr com o MC, veja Seco9.6.6, A configurao do terminal. 1.3.3. Gestor de ficheiros no MC O predefinido so dois painis de directrios que contm listas de ficheiros. Outro modo til definir a janela da direita para "informao" para ver informaes de privilgios de acesso a ficheiros, etc. De seguida existem algumas teclas de atalho essenciais. Com o daemon gpm(8) em execuo, tambm se pode usar um rato em consolas de caracteres no Linux. (Certifique-se que carrega na tecla shift para obter o comportamento normal de cortar e colar no MC.) Tabela 1.11. As teclas de atalho do MC

+---------------------------------------------------------------+ |tecla |tecla de atalho | |-----------+---------------------------------------------------| |F1 |menu de ajuda | |-----------+---------------------------------------------------| |F3 |visualizador interno de ficheiros | |-----------+---------------------------------------------------| |F4 |editor interno | |-----------+---------------------------------------------------| |F9 |activar o menu de desenrolar | |-----------+---------------------------------------------------| |F10 |sair do Midnight Commander | |-----------+---------------------------------------------------| |Tab |mover entre duas janelas | |-----------+---------------------------------------------------| |Insert ou |marcar o ficheiro para uma operao de mltiplos | |Ctrl-T |ficheiros como uma cpia | |-----------+---------------------------------------------------| |Del |apagar o ficheiro (tenha cuidado -- configure o MC | | |para modo de apagar seguro) | |-----------+---------------------------------------------------| |Teclas do |auto-explicativo | |cursor | | +---------------------------------------------------------------+ 1.3.4. Truques de linha de comandos no MC * O comando cd altera o directrio mostrado no ecr seleccionado. * Ctrl-Enter ou Alt-Enter copia um nome de ficheiro para a linha de comandos. Utilize isto com os comandos cp(1) e mv(1) em conjunto com a edio de linha de comandos. * Alt-Tab mostra escolhas de expanso de nomes de ficheiros da shell. * Pode-se especificar os directrios de inicio para ambas janelas como argumentos ao MC; por exemplo, "mc /etc /root". * Esc + n-key Fn (i.e., Esc + 1 F1, etc.; Esc + 0 F10) * Carregar em Esc antes da tecla tem o mesmo efeito que carregar em Alt e na tecla em conjunto; isto , carregar em Esc + c para Alt-C. Esc chamada uma meta-tecla e por vezes mencionada como "M-". 1.3.5. O editor interno em MC O editor interno tem um esquema de cortar-e-colar interessante. Pressionar F3 marca o inicio da seleco, um segundo F3 marca o final da seleco e destaca a seleco. Depois voc pode mover o cursor. Se pressionar F6, a rea seleccionada movida para a localizao do cursor. Se pressionar F5, a rea seleccionada copiada e inserida na localizao do cursor. F2 salva o ficheiro. F10 f-lo sair. A maioria das teclas do cursor funcionam de modo intuitivo.

Este editor pode ser iniciado directamente num ficheiro usando um dos seguintes comandos. $ mc -e ficheiro_a_editar $ mcedit ficheiro_a_editar Este no um editor de vrias janelas, mas podem-se utilizar vrias consolas de Linux para se conseguir o mesmo efeito. Para copiar entre janelas, utilize as teclas Alt-F<n> para mudar entre consolas virtuais utilize "FicheiroInserir ficheiro" ou "FicheiroCopiar para ficheiro" para mover uma poro de um ficheiro para outro ficheiro. Este editor interno pode ser substitudo por qualquer editor externo escolha. Alm disso, muitos programas utilizam as variveis de ambiente "$EDITOR" ou "$VISUAL" para decidir que editor utilizar. Se voc no est confortvel com o vim(1) ou com o nano(1), voc pode definir para o "mcedit" adicionando as seguintes linhas ao "~ /.bashrc". export EDITOR=mcedit export VISUAL=mcedit Eu recomendo definir isto para "vim" se possvel. Se voc no est confortvel com o vim(1), pode continuar a utilizar o mcedit(1) para a maioria das tarefas de manuteno do sistema. 1.3.6. O visualizador interno no MC MC um visualizador muito inteligente. Esta uma grande ferramenta para procurar palavras em documentos. Eu uso sempre isto para ficheiros no directrio "/usr/share/doc". Esta a maneira mais rpida para navegar por entre grandes quantidadede informao de Linux. Este visualizador pode ser iniciado directamente usando um dos seguintes comandos: $ mc -v caminho/para/nome_de_ficheiro_a_visualizar $ mcview caminho/para/nome_de_ficheiro_a_visualizar 1.3.7. Funcionalidades de auto-arranque do MC Carregue em Enter num ficheiro, e o programa apropriado lida com o contedo do ficheiro (veja Seco9.5.11, Personalizar o programa a ser iniciado). Esta uma funcionalidade muito conveniente do MC. Tabela 1.12. A reaco tecla enter no MC +---------------------------------------------------------------+ |tipo de ficheiro |reaco tecla enter | |-----------------------+---------------------------------------| |ficheiro executvel |executa comando | |-----------------------+---------------------------------------| |ficheiro man |canaliza o contedo para software de |

| |visualizao | |-----------------------+---------------------------------------| |ficheiro html |canaliza o contedo para explorador web| |-----------------------+---------------------------------------| |ficheiros "*.tar.gz" e |explora o seu contedo como sendo um | |"*.deb" |sub-directrio | +---------------------------------------------------------------+ De modo a permitir esta visualizao e funcionalidades de ficheiros virtuais , os ficheiros a visualizar no devem ser definidos como executveis. Mude o seu estado com o chmod(1) ou via menu ficheiro do MC. 1.3.8. Sistema de ficheiros virtual FTP no MC O MC pode ser utilizado para aceder a ficheiros pela Internet usando FTP. V ao menu pressionando F9, e depois escreva "p" para activar o sistema de ficheiros virtual FTP. Insira um URL no formato "nome-de-utilizador:[email protected]", o que obtm um directrio remoto que aparece como se fosse local. Tente "[http.us.debian.org/debian]" como URL e explore o arquivo Debian. 1.4. O ambiente de trabalho estilo Unix bsico Apesar do MC lhe permitir fazer quase tudo, muito importante aprender a utilizar as ferramentas de linha de comandos invocadas a partir da prompt da shell e familiarizar-se com o ambiente de trabalho do tipo Unix. 1.4.1. A shell de login Voc pode seleccionar a sua shell de login com chsh(1). Tabela 1.13. Lista de programas da shell +------------------------------------------------------------------------------------+ | | | |Shell| | |pacote |popcon |tamanho |do |descrio | | | | |POSIX| | |-------------------+-------------+----------------------+-----+---------------------| | |V:904, I:999 | | |Bash (http:/ / | |bash (http:// |(http:// |3941 (http:// | |en.wikipedia .org/wiki/| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |Bash) : a GN U Bourne | |/sid/bash) |/popcon.php? |/b/bash.html) | |Again SHell (o | | |package=bash)| | |standard de facto) | |-------------------+-------------+----------------------+-----+------------

----------| | | | | |Shell TENEX C (http://| | |V:34, I:126 | | |en.wikipedia .org/wiki/| |tcsh (http:// |(http:// |1378 (http:// | |Tcsh) : uma verso | |packages.debian.org|qa.debian.org|packages.qa.debian.org|No |melhorada de B erkeley | |/sid/tcsh) |/popcon.php? |/t/tcsh.html) | |csh (http:// | | |package=tcsh)| | |en.wikipedia .org/wiki/| | | | | |C_shell) | |-------------------+-------------+----------------------+-----+---------------------| | |V:800, I:848 | | |Shell Almqui st (http:/| |dash (http:// |(http:// |212 (http:// | |/en.wikipedi a.org/wiki| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |/Almquist_sh ell) , bom| |/sid/dash) |/popcon.php? |/d/dash.html) | |para scripts da shell | | |package=dash)| | | | |-------------------+-------------+----------------------+-----+---------------------| | |V:32, I:68 | | |Z shell (htt p:// | |zsh (http:// |(http:// |11462 (http:// | |en.wikipedia .org/wiki/| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |Z_shell) : a shell | |/sid/zsh) |/popcon.php? |/z/zsh.html) | |standard com muitas | | |package=zsh) | | |melhorias | |-------------------+-------------+----------------------+-----+---------------------| | |V:3, I:18 | | |verso de domni o | |pdksh (http:// |(http:// |41 (http:// | |pblico da Kor n shell | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |(http:// | |/sid/pdksh) |/popcon.php? |/p/pdksh.html) | |en.wikipedia .org/wiki/| | |package= | | |Korn_shell) | | |pdksh) | | | | |-------------------+-------------+----------------------+-----+---------------------| | | | | |OpenBSD (htt p:// | | |V:5, I:18 | | |en.wikipedia .org/wiki/| |csh (http:// |(http:// |340 (http:// | |OpenBSD) she

ll C, uma | |packages.debian.org|qa.debian.org|packages.qa.debian.org|No |verso do Berkel ey csh| |/sid/csh) |/popcon.php? |/c/csh.html) | |(http:// | | |package=csh) | | |en.wikipedia .org/wiki/| | | | | |C_shell) | |-------------------+-------------+----------------------+-----+---------------------| | | | | |shell Standalone | | |V:2, I:8 | | |(http:// | |sash (http:// |(http:// |946 (http:// | |en.wikipedia .org/wiki/| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |Stand-alone_ shell) com| |/sid/sash) |/popcon.php? |/s/sash.html) | |comandos emb utidos | | |package=sash)| | |(No se destin a a "/ | | | | | |bin/sh" stan dard) | |-------------------+-------------+----------------------+-----+---------------------| | |V:7, I:26 | | |a real, verso AT&T da| |ksh (http:// |(http:// |3128 (http:// | |Korn shell ( http:// | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |en.wikipedia .org/wiki/| |/sid/ksh) |/popcon.php? |/k/ksh.html) | |Korn_shell) | | |package=ksh) | | | | |-------------------+-------------+----------------------+-----+---------------------| | | | | |implementao da rc | | |V:0, I:10 | | |shell (http: // | |rc (http:// |(http:// |169 (http:// | |en.wikipedia .org/wiki/| |packages.debian.org|qa.debian.org|packages.qa.debian.org|No |Rc) sw AT&T Pl an 9 | |/sid/rc) |/popcon.php? |/r/rc.html) | |(http:// | | |package=rc) | | |en.wikipedia .org/wiki/| | | | | |Plan_9_from_ Bell_Labs)| |-------------------+-------------+----------------------+-----+---------------------| | |V:0, I:0 | | | | |posh (http:// |(http:// |201 (http:// | |Policy-compl iant | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Sim |Ordinary SHe

ll (deriva| |/sid/posh) |/popcon.php? |/p/posh.html) | |da pdksh) | | |package=posh)| | | | +------------------------------------------------------------------------------------+ Neste captulo do tutorial, a shell interactiva significa sempre bash. 1.4.2. Personalizar bash Voc pode personalizar o comportamento da bash(1) em "~/.bashrc". Por exemplo, tente o seguinte. # CD ao sair do MC . /usr/lib/mc/mc.sh # define CDPATH para uma correcta CDPATH=.:/usr/share/doc:~:~/Desktop:~ export CDPATH PATH="${PATH}":/usr/sbin:/sbin # define PATH para incluir o bin utilizador, caso exista if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" fi export PATH EDITOR=vim export EDITOR Dica Pode encontrar mais dicas de personalizao da bash, como os Seco9.2.7, Comandos coloridos, em Captulo9, Dicas do sistema. 1.4.3. Teclas especiais No ambiente do tipo Unix (http://en.wikipedia.org/wiki/Unix-like) , existem algumas combinaes de teclas que tm significados especiais. Por favor note que numa consola de caracteres normal do Linux, apenas as teclas Ctrl e Alt do lado esquerdo funcionam como se espera. Aqui esto algumas combinaes de teclas notveis para lembrar. Tabela 1.14. Lista de teclas de atalho para bash +---------------------------------------------------------------+ |tecla |descrio do atalho da tecla | |------------------------+--------------------------------------| |Ctrl-U |apagar a linha antes do cursor | |------------------------+--------------------------------------| |Ctrl-H |apagar um caractere antes do cursor | |------------------------+--------------------------------------| |Ctrl-D |termina a entrada (sai da shell se |

| |estiver a usar uma shell) | |------------------------+--------------------------------------| |Ctrl-C |termina um programa em funcionamento | |------------------------+--------------------------------------| |Ctrl-Z |pra temporariamente o programa ao | | |mov-lo para segundo plano | |------------------------+--------------------------------------| |Ctrl-S |pra a sada para o ecr | |------------------------+--------------------------------------| |Ctrl-Q |reactiva a sada para o ecr | |------------------------+--------------------------------------| |Ctrl-Alt-Del |reinicia/pra o sistema, veja inittab | | |(5) | |------------------------+--------------------------------------| |Left-Alt-key |meta-tecla para o Emacs e a UI | |(opcionalmente, |semelhante | |tecla-do-Windows) | | |------------------------+--------------------------------------| |Seta-para-cima |inicia a busca no histrico de | | |comandos em bash | |------------------------+--------------------------------------| |Ctrl-R |inicia o histrico de comandos | | |incremental em bash | |------------------------+--------------------------------------| |Tab |completa a entrada do nome de ficheiro| | |para a linha de comandos em bash | |------------------------+--------------------------------------| |Ctrl-V Tab |entrada Tab sem expanso para a linha | | |de comandos em bash | +---------------------------------------------------------------+ Dica A funcionalidade do terminal de Ctrl-S pode ser desactivada usando stty(1). 1.4.4. Operaes do rato ao estilo Unix As operaes do rato ao estilo Unix so baseadas num sistema de rato de 3 botes. Tabela 1.15. Lista de operaes de rato ao estilo Unix +---------------------------------------------------------------+ |aco |resposta | |--------------------------+------------------------------------| |Clique-esquerdo-e-arrastar|seleccionar e copiar para a rea de | |do rato |transferncia | |--------------------------+------------------------------------| |Clique-esquerdo |selecciona o incio da seleco | |--------------------------+------------------------------------| |Clique-direito |selecciona o fim da seleco e copia| | |para a rea de transferncia | |--------------------------+------------------------------------| |Clique-central |cola a rea de transferncia no | | |cursor | +---------------------------------------------------------------+

A roda central nos modernos ratos de roda considerada o boto central do rato e pode ser usada como terceiro boto ou clique-central. Clicar nos botes esquerdo e direito ao mesmo tempo serve como clique-central em situaes de sistema de rato de 2 botes. De modo a usar o rato em consolas de caracteres de Linux, voc necessita ter o daemon gpm(8) a correr. 1.4.5. O pager O less(1) o paginador avanado (navegador de contedo de ficheiros). Carregue em "h" para ajuda. Pode fazer muito mais do que o more(1) e pode ser ampliado ao executar "eval $(lesspipe)" ou "eval $(lessfile)" no script de arranque de shell. Veja mais em "/usr/share/doc/lessf/LESSOPEN". A opo "-R" permite sada em caracteres em bruto e activa sequncias de escape de cores ANSI. Veja less(1). 1.4.6. O editor de texto Voc deve tornar-se conhecedor de uma das variantes dos programas Vim (http://en.wikipedia.org/wiki/Vim_(text_editor)) ou Emacs (http://en.wikipedia.org/wiki/Emacs) que so populares em sistemas tipo Unix. Eu acho que habituar-se aos comandos do Vim a coisa certa a fazer, pois o editor Vim est sempre presente no mundo Linux/ Unix. (Na verdade, o vi original ou o novo nvi so programas que vai encontrar em todo o lado. Eu escolho o Vim para novatos porque bastante semelhante e mais poderoso j que lhe oferece ajuda atravs da tecla F1 .) Por sua vez voc pode escolher o Emacs (http://en.wikipedia.org/ wiki/Emacs) ou o XEmacs (http://en.wikipedia.org/wiki/XEmacs) como o seu editor favorito, essa realmente uma outra boa escolha, particularmente para programao. O Emacs tem tambm um leque de outras funcionalidades, incluindo funcionar como um leitor de news, editor de directrio, programa de mail, etc. Quando usado para programao ou edio de scripts de shell, inteligente para reconhecer o formato daquilo em que voc est a trabalhar, e tenta disponibilizar assistncia. Algumas pessoas afirmam que o nico programa que necessitam em Linux o Emacs. 10 minutos a aprender Emacs agora pode poupar-lhe horas mais tarde. Ter o manual do Emacs GNU para referncia quando se aprende Emacs altamente recomendado. Todos estes programas vm normalmente com um programa tutor para que voc aprenda a us-los pela prtica. Arranque o Vim ao escrever "vim" e carregue an tecla F1. Voc dever ler pelo menos as primeiras 35 linhas. Depois faa o curso de treino online ao mover o cursor para "|tutor|" e pressionar Ctrl-]. Nota Os bons editores, como o Vim e o Emacs, podem ser utilizados para lidar correctamente com UTF-8 e outros textos com codificaes exticas, com a opo prpria no x-terminal-emulator em X com o locale UTF-8 e com definies de tipo de letra apropriadas. Por favor consulte a sua documentao acerca de texto multi-byte. 1.4.7. Definir um editor de texto predefinido

Debian vem com um nmero de editores diferentes. Ns recomendamos instalar o pacote vim, como mencionado anteriormente. Debian disponibiliza acesso unificado ao editor predefinido do sistema atravs do comando "/usr/bin/editor" para que outros programas (p.e., reportbug(1)) possam invoc-lo. Voc pode alter-lo com o seguinte: $ sudo update-alternatives --config editor A escolha de "/usr/bin/vim.basic" em vez de "/usr/bin/vim.tiny" uma recomendao minha para novatos pois suporta destaque de sintaxe. Dica Muitos programas utilizam as variveis de ambiente "$EDITOR" ou "$VISUAL" para decidir qual o editor que vai utilizar (veja Seco1.3.5, O editor interno em MC e Seco9.5.11, Personalizar o programa a ser iniciado). Para consistncia no sistema Debian, defina estas para "/usr/bin/editor". (Historicamente, "$EDITOR" era "ed" e "$VISUAL" era "vi".) 1.4.8. Personalizar o vim Voc pode personalizar o comportamento do vim(1) em "~/.vimrc". Por exemplo, tente o seguinte: " ------------------------------" Local configuration " set nocompatible set nopaste set pastetoggle=<f2> syn on if $USER == "root" set nomodeline set noswapfile else set modeline set swapfile endif " filler to avoid the line above being recognized as a modeline " filler " filler 1.4.9. Gravar as actividades da shell O resultado do comando na shell pode sair fora do seu ecr e ficar perdido para sempre. boa prtica registar em log as actividades da shell num ficheiro para rever mais tarde. Este tipo de registo essencial quando executa quaisquer tarefas de administrao do sistema. O mtodo bsico de gravar a actividade da shell corr-la sob script(1). Por exemplo, tente o seguinte:

$ script Script iniciado, ficheiro typescript Faz quaisquer comandos de shell sob script. Carregue em Ctrl-D para terminar o script. $ vim typescript Veja Seco9.2.3, Gravar as actividades da shell de modo limpo . 1.4.10. Comandos bsicos de Unix Vamos aprender comandos bsicos do Unix. Aqui Eu uso "Unix" no seu sentido genrico. Geralmente qualquer SO clone do Unix oferece comandos equivalentes. O sistema Debian no excepo. No se preocupe se alguns comandos no funcionarem como deseja por agora. Se for utilizado alias na shell, as sadas dos comandos correspondentes sero diferentes. Estes exemplos no se destinam a ser executados por esta ordem. Tente os seguintes comandos a partir da conta de utilizador no-privilegiado. Tabela 1.16. lista dos comandos Unix bsicos +---------------------------------------------------------------+ |comando |descrio | |-----------------+---------------------------------------------| |pwd |mostrar o nome do directrio actual | |-----------------+---------------------------------------------| |whoami |mostrar o nome do utilizador actual | |-----------------+---------------------------------------------| |id |mostrar a identidade do utilizador actual | | |(nome, uid, gid, e grupos associados) | |-----------------+---------------------------------------------| |file <foo> |mostrar o tipo de ficheiro para o ficheiro " | | |<foo>" | |-----------------+---------------------------------------------| |type -p |mostrar a localizao de um ficheiro do | |<nome_do_comando>|comando "<nome_do_comando>" | |-----------------+---------------------------------------------| |which |, , | |<nome_do_comando>| | |-----------------+---------------------------------------------| |type |mostrar informao do comando " | |<nome_do_comando>|<nome_do_comando>" | |-----------------+---------------------------------------------| |apropos |mostrar comandos relacionados com a " | |<palavra_chave> |<palavra_chave>" | |-----------------+---------------------------------------------| |man -k |, , | |<palavra_chave> | | |-----------------+---------------------------------------------| |whatis |mostrar a explicao de uma linha para o | |<nome_do_comando>|comando "<nome_do_comando>" | |-----------------+---------------------------------------------| |man -a |mostrar a explicao do comando " |

|<nome_do_comando>|<nome_do_comando>" (estilo Unix) | |-----------------+---------------------------------------------| |info |mostrar uma explicao longa do comando " | |<nome_do_comando>|<nome_do_comando>" (estilo GNU) | |-----------------+---------------------------------------------| |ls |listar o contedo do directrio (ficheiros e | | |directrios no escondidos) | |-----------------+---------------------------------------------| |ls -a |listar o contedo do directrio (todos os | | |ficheiros e directrios) | |-----------------+---------------------------------------------| | |listar o contedo do directrio (quase todos | |ls -A |os ficheiros e directrios, isto , salta o | | |".." e ".") | |-----------------+---------------------------------------------| |ls -la |listar todo o contedo do directrio com | | |informao detalhada | |-----------------+---------------------------------------------| |ls -lai |listar todo o contedo do directrio com | | |nmero de inode e informao detalhada | |-----------------+---------------------------------------------| |ls -d |listar todos os directrios sob o directrio | | |actual | |-----------------+---------------------------------------------| |tree |mostrar o contedo da rvore de ficheiros | |-----------------+---------------------------------------------| |lsof <foo> |listar o estado aberto do ficheiro "<foo>" | |-----------------+---------------------------------------------| |lsof -p <pid> |listar ficheiros abertos pelo processo de ID:| | |"<pid>" | |-----------------+---------------------------------------------| |mkdir <foo> |criar um novo directrio "<foo>" no | | |directrio actual | |-----------------+---------------------------------------------| |rmdir <foo> |remover um directrio "<foo>" no directrio | | |actual | |-----------------+---------------------------------------------| | |mudar o directrio para o directrio "<foo>" | |cd <foo> |no directrio actual ou no directrio listado| | |na varivel "$CDPATH" | |-----------------+---------------------------------------------| |cd / |mudar o directrio para o directrio raiz | |-----------------+---------------------------------------------| |cd |mudar para o directrio home do utilizador | | |actual | |-----------------+---------------------------------------------| |cd /<foo> |mudar para o directrio de caminho absoluto "| | |/<foo>" | |-----------------+---------------------------------------------| |cd .. |mudar para o directrio pai | |-----------------+---------------------------------------------| |cd ~<foo> |mudar para o directrio home do utilizador " | | |<foo>" | |-----------------+---------------------------------------------| |cd |mudar para o directrio anterior | |-----------------+---------------------------------------------| |</etc/motd pager |mostrar o contedo de "/etc/motd" utilizando | | |o paginador predefinido | |-----------------+---------------------------------------------| |touch <junkfile> |criar um ficheiro vazio "<junkfile>" |

|-----------------+---------------------------------------------| |cp <foo> <bar> |copiar um ficheiro "<foo>" existente para um | | |novo ficheiro "<bar>" | |-----------------+---------------------------------------------| |rm <junkfile> |remover um ficheiro "<junkfile>" | |-----------------+---------------------------------------------| | |renomear um ficheiro "<foo>" existente para | |mv <foo> <bar> |um novo nome "<bar>" ("<bar>" no pode | | |existir) | |-----------------+---------------------------------------------| | |mover um ficheiro "<foo>" existente para uma | |mv <foo> <bar> |nova localizao <bar>/<foo>" (o directrio "| | |<bar>" tem de existir) | |-----------------+---------------------------------------------| | |mover um ficheiro existente "<foo>" para uma | |mv <foo> <bar>/ |nova localizao com um novo nome "<bar>/ | |<baz> |<baz>" (o directrio "<bar>" tem de existir | | |mas o directrio "<bar>/<baz>" no pode | | |existir) | |-----------------+---------------------------------------------| | |tornar um ficheiro existente "<foo>" proibido| |chmod 600 <foo> |de ser lido e ser escrito por outras pessoas | | |(no executvel para todos) | |-----------------+---------------------------------------------| | |tornar um ficheiro existente "<foo>" | |chmod 644 <foo> |permissvel de ser lido mas proibido de ser | | |escrito por outras pessoas (no executvel | | |para todos) | |-----------------+---------------------------------------------| | |tornar um ficheiro existente "<foo>" | |chmod 755 <foo> |permissvel de ser lido mas proibido de ser | | |escrito por outras pessoas (executvel para | | |todos) | |-----------------+---------------------------------------------| |find . -name |procurar nomes de ficheiros correspondentes | |<padro> |usando um "<padro>" de shell (lento) | |-----------------+---------------------------------------------| |locate -d . |procurar nomes de ficheiros correspondentes | |<padro> |usando um "<padro>" de shell (mais rpido | | |usando uma base de dados gerada regularmente)| |-----------------+---------------------------------------------| |grep -e "<padro>|procurar um "<padro>" em todos os ficheiros | |" *.html |terminados com ".html" no directrio actual e| | |mostra-os todos | |-----------------+---------------------------------------------| |top |mostrar informao de processos usando ecr | | |completo, carregue em "q" para sair | |-----------------+---------------------------------------------| |ps aux | pager |mostrar informao dos processos a correr | | |usando sada ao estilo BSD | |-----------------+---------------------------------------------| |ps -ef | pager |mostrar informao dos processos a correr | | |usando sada ao estilo Unix system-V | |-----------------+---------------------------------------------| |ps aux | grep -e |mostrar todos os processos que correm "exim" | |"[e]xim4*" |e "exim4" | |-----------------+---------------------------------------------| |ps axf | pager |mostrar a informao de todos os processos a | | |correr com sada em arte de ACSII | |-----------------+---------------------------------------------|

|kill <1234> |matar todos os processos identificados pelo | | |ID de processo: "<1234>" | |-----------------+---------------------------------------------| |gzip <foo> |comprimir "<foo>" para criar "<foo>.gz" | | |usando a codificao Lempel-Ziv (LZ77) | |-----------------+---------------------------------------------| |gunzip <foo>.gz |descomprimir "<foo>.gz" para criar "<foo>" | |-----------------+---------------------------------------------| | |comprimir "<foo>" para criar "<foo>.bz2" | | |usando o algoritmo de compresso de texto | |bzip2 <foo> |organizado em blocos Burrows-Wheeler, e | | |codificao Huffman (melhor compresso que | | |gzip) | |-----------------+---------------------------------------------| |bunzip2 <foo>.bz2|descomprimir "<foo>.bz2" para criar "<foo>" | |-----------------+---------------------------------------------| | |comprimir "<foo>" para criar "<foo>.xz" | |xz <foo> |usando o algoritmo de cadeia | | |LempelZivMarkov (melhor compresso que | | |bzip2) | |-----------------+---------------------------------------------| |unxz <foo>.xz |descomprimir "<foo>.xz" para criar "<foo>" | |-----------------+---------------------------------------------| |tar -xvf |extrair ficheiros do arquivo "<foo>.tar" | |<foo>.tar | | |-----------------+---------------------------------------------| |tar -xvzf |extrair ficheiros do arquivo gzipado " | |<foo>.tar.gz |<foo>.tar.gz" | |-----------------+---------------------------------------------| |tar -xvjf |extrair ficheiros do arquivo "<foo>.tar.bz2" | |<foo>.tar.bz2 | | |-----------------+---------------------------------------------| |tar -xvJf |extrair ficheiros do arquivo "<foo>.tar.xz" | |<foo>.tar.xz | | |-----------------+---------------------------------------------| |tar -cvf |arquivar o contedo da pasta "<bar>/" no | |<foo>.tar <bar>/ |arquivo "<foo>.tar" | |-----------------+---------------------------------------------| |tar -cvzf |arquivar o contedo da pasta "<bar>/" no | |<foo>.tar.gz |arquivo comprimido "<foo>.tar.gz" | |<bar>/ | | |-----------------+---------------------------------------------| |tar -cvjf |arquivar o contedo da pasta "<bar>/" no | |<foo>.tar.bz2 |arquivo "<foo>.tar.bz2" | |<bar>/ | | |-----------------+---------------------------------------------| |tar -cvJf |arquivar o contedo da pasta "<bar>/" no | |<foo>.tar.xz |arquivo "<foo>.tar.xz" | |<bar>/ | | |-----------------+---------------------------------------------| |zcat README.gz | |mostrar o contedo do "README.gz" comprimido | |pager |usando o paginador predefinido | |-----------------+---------------------------------------------| |zcat README.gz > |criar o ficheiro "foo" com o contedo | |foo |descomprimido de "README.gz" | |-----------------+---------------------------------------------| |zcat README.gz >>|acrescentar o contedo descomprimido de | |foo |"README.gz" ao final do ficheiro "foo" (se | | |ele no existir, primeiro criado) | +---------------------------------------------------------------+

Nota Unix tem a tradio de esconder os nomes de ficheiros que comeam por ".". Eles so tradicionalmente ficheiros que contm informao de configurao e preferncias do utilizador. Nota Para o comando cd, veja builtins(7). Nota O paginador predefinido da vastido do sistema Debian o more(1) , o qual no pode deslocar para trs. A instalar o pacote less usando o comando "apt-get install less", o less(1) torna-se o paginador predefinido e voc pode deslocar para trs com as teclas do cursor. Nota O "[" e "]" na expresso regular do comando "ps aux | grep -e " [e]xim4*"" em cima activam grep para evitar a correspondncia consigo prprio. O "4*" na expresso regular significa 0 ou mais repeties do caractere "4" assim activa o grep a corresponder a ambos "exim" e "exim4". Apesar de "*" ser usado no glob de nome de ficheiro da shell e na expresso regular, os seus significados so diferentes. Aprenda a expresso regular a partir do grep(1). Por favor percorra os directrios e espreite no sistema usando os comandos em cima como treino. Se voc tiver questes sobre qualquer comando de consola, por favor certifique-se de ler o manual dele. Por exemplo, tente o seguinte: $ $ $ $ $ man man man man man man bash builtins grep ls

Pode ser um pouco difcil de habituar-se ao estilo dos manuais, porque so bastante concisos, particularmente os mais antigos, muito tradicionais. Mas assim que se habituar a eles, vai apreciar a sua brevidade. Por favor note que muitos comandos do tipo Unix incluindo os GNU e BSD mostram informao breve de ajuda se os invocar numa das seguintes formas (ou sem argumentos nalguns casos). $ <nome_do_comando> --help $ <nome_do_comando> -h 1.5. O comando simples da shell Agora voc tem alguma prtica de como utilizar o sistema Debian. Vamos ver mais fundo no mecanismo da execuo de comandos no sistema Debian. Aqui, eu simplifiiquei a realidade para o novato.

Veja bash(1) para a explicao exacta. Um comando simples uma sequncia de componentes. 1. Atribuies de variveis (opcional) 2. Nome do comando 3. Argumentos (opcional) 4. Re-direces (opcional: > , >> , < , << , etc.) 5. Operador de controle (opcional: && , || , <nova-linha> , ; , & , ( , ) ) 1.5.1. Execuo do comando e varivel de ambiente Os valores de algumas variveis de ambiente (http:// en.wikipedia.org/wiki/Environment_variable) modificam o comportamento de alguns comandos de Unix. Os valores predefinidos das variveis de ambiente so definidos inicialmente pelo sistema PAM e depois alguns deles podem ser redefinidos por alguns programas. * O gestor de ecr como o gdm3 redefine variveis de ambiente * A shell nos seus cdigos de arranque redefine variveis de ambiente em "~/bash_profile" e "~/.bashrc". 1.5.2. Varivel "$LANG" O valor completo do locale dado varivel "$LANG" consiste em 3 partes: "xx_YY.ZZZZ". Tabela 1.17. 3 partes do valor locale +---------------------------------------------------------------+ |valor |significado | |locale | | |-------+-------------------------------------------------------| |xx |cdigos de idioma ISO 639 (minsculas) como em "en" | | |(http://en.wikipedia.org/wiki/ISO_639) | |-------+-------------------------------------------------------| |YY |cdigos de idioma ISO 3166 (maisculas) como em "US" | | |(http://en.wikipedia.org/wiki/ISO_3166-3) | |-------+-------------------------------------------------------| |ZZZZ |conjunto de codificao, definido sempre como "UTF-8" | | |(http://en.wikipedia.org/wiki/Codeset) | +---------------------------------------------------------------+ Para cdigos de idioma e cdigos de pases, veja a informao pertinente em "info gettext". Para o conjunto de codificao no sistema Debian moderno, voc dever sempre defini-lo para UTF-8 a menos que queira especificamente usar o histrico tendo boas razes e conhecimentos para o fazer.

Para mais detalhes sobre configurao do locale, veja Seco8.3, O locale. Nota O "LANG=en_US" no "LANG=C" nem "LANG=en_US.UTF-8". "LANG= en_US.ISO-8859-1" (veja Seco8.3.1, Bases de codificao). Tabela 1.18. Lista de recomendaes de locale +----------------------------------------------------+ |recomendao de locale|Idioma (rea) | |----------------------+-----------------------------| |en_US.UTF-8 |Ingls(EUA) | |----------------------+-----------------------------| |en_GB.UTF-8 |Ingls(Gr-Bretanha) | |----------------------+-----------------------------| |fr_FR.UTF-8 |Francs(Frana) | |----------------------+-----------------------------| |de_DE.UTF-8 |Alemo(Alemanha) | |----------------------+-----------------------------| |it_IT.UTF-8 |Italiano(Itlia) | |----------------------+-----------------------------| |es_ES.UTF-8 |Espanhol(Espanha) | |----------------------+-----------------------------| |ca_ES.UTF-8 |Catalo(Espanha) | |----------------------+-----------------------------| |sv_SE.UTF-8 |Sueco(Sucia) | |----------------------+-----------------------------| |pt_BR.UTF-8 |Portugus(Brasil) | |----------------------+-----------------------------| |ru_RU.UTF-8 |Russo(Rssia) | |----------------------+-----------------------------| |zh_CN.UTF-8 |Chins(Rep._Popular_da_China)| |----------------------+-----------------------------| |zh_TW.UTF-8 |Chins(Taiwan_R.O.C.) | |----------------------+-----------------------------| |ja_JP.UTF-8 |Japons(Japo) | |----------------------+-----------------------------| |ko_KR.UTF-8 |Coreano(Repblica_da_Coreia) | |----------------------+-----------------------------| |vi_VN.UTF-8 |Vietnamita(Vietname) | +----------------------------------------------------+ A execuo de comando tpica utiliza uma sequncia de linha de shell como o seguinte. $ date Sun Jun 3 10:27:39 JST 2007 $ LANG=fr_FR.UTF-8 date dimanche 3 juin 2007, 10:27:33 (UTC+0900) Aqui, o programa date(1) executado com diferentes valores da varivel de ambiente "$LANG". * Para o primeiro comando, "$LANG" definida para o valor locale (http://en.wikipedia.org/wiki/Locale) predefinido do sistema "en_US.UTF-8".

* Para o segundo comando, "$LANG" definida para o valor locale (http://en.wikipedia.org/wiki/Locale) UTF-8 Francs "fr_FR.UTF-8". A maioria das execues de comandos geralmente no tm definies de variveis de ambiente precedentes. Para o exemplo acima, voc pode executar em alternativa o seguinte: $ LANG=fr_FR.UTF-8 $ date dimanche 3 juin 2007, 10:27:33 (UTC+0900) Como pode ver aqui, o resultado do comando afectado pela varivel de ambiente para produzir a sada em Francs. Se desejar que a varivel de ambiente seja hereditria aos sub-processos (p.e. quando chama um script de shell), ento necessita de export-la com o seguinte. $ export LANG Dica Se utilizar um ambiente que no seja em Ingls quando preencher um relatrio de bug, uma boa ideia correr e verificar o comando com "LANG=en_US.UTF-8" Veja locale(5) e locale(7) para "$LANG" e variveis de ambiente relacionadas. Nota Eu recomendo configurar o ambiente do sistema apenas pela varivel "$LANG" e no mexer em variveis "$LC_*" a menos que seja absolutamente necessrio. 1.5.3. Varivel "$PATH" Quando voc escreve um comando na shell, a shell procura o comando na lista de directrios contida na varivel de ambiente "$PATH". O valor da varivel de ambiente "$PATH" tambm chamado o caminho de procura da shell. Na instalao Debian, por omisso, a varivel de ambiente "$PATH" das contas de utilizadores pode no incluir "/sbin" nem "/usr/ sbin". Por exemplo, o comando ifconfig necessita ser chamado com o caminho completo como "/sbin/ifconfig". (De modo idntico, o comando ip est localizado em "/bin".) Pode alterar a varivel de ambiente "$PATH" da shell Bash pelos ficheiros "~/.bash_profile" ou "~/.bashrc". 1.5.4. Varivel "$HOME" Muitos comandos armazenam configurao especfica do utilizador no directrio home, do utilizador, e mudam o seu comportamento de acordo com o seu contedo. O directrio de utilizador identificado pela varivel de ambiente "$HOME". Tabela 1.19. Lista de valores "$HOME"

+---------------------------------------------------------------+ |valor de "$HOME" |situao de execuo do programa | |-------------------+-------------------------------------------| |/ |programa executado pelo processo de init | | |(daemon) | |-------------------+-------------------------------------------| |/root |programa executado a partir da shell de | | |root normal | |-------------------+-------------------------------------------| |/home/ |programa executado a partir da shell de | |<utilizador_normal>|utilizador normal | |-------------------+-------------------------------------------| |/home/ |programa executado a partir menu do | |<utilizador_normal>|ambiente GUI do utilizador normal | |-------------------+-------------------------------------------| |/home/ |programa executado como root com o | |<utilizador_normal>|"programa sudo" | |-------------------+-------------------------------------------| |/root |programa executado como root com o | | |"programa sudo -H" | +---------------------------------------------------------------+ Dica A shell expande "~/" para o directrio home do utilizador actual, isto , "$HOME/". A shell expande "~foo/" para o directrio home de foo, isto , "/home/foo/". 1.5.5. Opes da linha de comandos Alguns comandos recebem argumentos. Os argumentos que comeam com um "-" ou "--" so chamados opes e controlam o comportamento do comando. $ date Mon Oct 27 23:02:09 CET 2003 $ date -R Mon, 27 Oct 2003 23:02:40 +0100 Aqui o argumento de linha de comandos "-R" altera o comportamento de date(1) para gerar uma string da data compatvel com RFC2822 (http://tools.ietf.org/html/rfc2822) . 1.5.6. Glob da shell Frequentemente deseja trabalhar com um conjunto de ficheiros sem os digitar a todos. O padro de expanso do nome de ficheiro utilizando a glob da shell , (por vezes referida como wildcards), facilita esta necessidade. Tabela 1.20. Padres glob da shell +---------------------------------------------------------------+ |padro glob|descrio de regra de correspondncia | |da shell | | |-----------+---------------------------------------------------| |* |nome de ficheiro (segmento) no iniciado por "." | |-----------+---------------------------------------------------| |.* |nome de ficheiro (segmento) iniciado por "." |

|-----------+---------------------------------------------------| |? |exactamente um caractere | |-----------+---------------------------------------------------| |[] |exactamente um caractere com qualquer caractere | | |envolvido em colchetes | |-----------+---------------------------------------------------| |[a-z] |exactamente um caractere com qualquer caractere | | |entre "a" e "z" | |-----------+---------------------------------------------------| |[^] |exactamente um caractere que no seja qualquer | | |caractere envolvido em colchetes (excluindo "^") | +---------------------------------------------------------------+ Por exemplo, tente o seguinte: $ mkdir junk; cd junk; touch 1.txt 2.txt 3.c 4.h .5.txt ..6.txt $ echo *.txt 1.txt 2.txt $ echo * 1.txt 2.txt 3.c 4.h $ echo *.[hc] 3.c 4.h $ echo .* . .. .5.txt ..6.txt $ echo .*[^.]* .5.txt ..6.txt $ echo [^1-3]* 4.h $ cd ..; rm -rf junk Veja glob(7). Nota Ao contrrio da expanso de nome de ficheiro da shell, o padro de shell "*" testado em find(1) com o teste "-name" etc., corresponde ao "." inicial do nome de ficheiro. (Nova funcionalidade POSIX (http://en.wikipedia.org/wiki/POSIX) ) Nota BASH pode ser moldado a alterar o seu comportamento de glob com as suas opes shopt embutidas como as "dotglob", "noglob", "nocaseglob", "nullglob", "nocaseglob", "extglob", etc. Veja bash (1). 1.5.7. Valor de retorno do comando Cada comando retorna o seu estado de sada (varivel: "$?") como o valor de retorno. Tabela 1.21. Cdigos de sada do comando +---------------------------------------------------------------+ |estado de sada do |valor de retorno |valor de retorno | |comando |numrico |lgico | |---------------------+---------------------+-------------------| |sucesso |zero, 0 |TRUE | |---------------------+---------------------+-------------------|

|erro |no-zero, -1 |FALSE | +---------------------------------------------------------------+ Por exemplo, tente o seguinte. $ [ 1 = 1 ] ; echo $? 0 $ [ 1 = 2 ] ; echo $? 1 Nota Por favor note que, no contexto lgico da shell, sucesso tratado como o VERDADEIRO lgico o qual tem 0 (zero) como valor. De certa maneira isto no intuitivo e necessita ser lembrado aqui. 1.5.8. Sequncias de comandos tpicas e redireccionamento da shell Vamos tentar lembrar os seguintes idiomas de comando de shell escritos numa linha como parte de um comando de shell. Tabela 1.22. Idiomas de comandos de shell +---------------------------------------------------------------+ |idioma do |descrio | |comando | | |-----------+---------------------------------------------------| |comando & |execuo em segundo plano do comando na sub-shell | |-----------+---------------------------------------------------| |comando1 | |liga em pipe a sada standard do comando1 entrada| |comando2 |standard do comando2 (execuo concorrente) | |-----------+---------------------------------------------------| |comando1 2>|liga em pipe a sadas standard e o erro standard do| |&1 | |comando1 entrada standard do comando2 (execuo | |comando2 |concorrente) | |-----------+---------------------------------------------------| |comando1 ; |executa o comando1 e o comando2 sequencialmente | |comando2 | | |-----------+---------------------------------------------------| |comando1 &&|executa o comando1; se tiver sucesso, executa o | |comando2 |comando2 sequencialmente (retorna sucesso se ambos | | |comando1 e comando2 tiverem sucesso) | |-----------+---------------------------------------------------| |comando1 |||executa o comando1; se no tiver sucesso, executa o| |comando2 |comando2 sequencialmente (retorna sucesso se o | | |comando1 ou o comando2 tiverem sucesso. | |-----------+---------------------------------------------------| |comando > |redirecciona a sada standard do comando para o | |foo |ficheiro foo (sobrescreve) | |-----------+---------------------------------------------------| |comando 2> |redirecciona o erro standard do comando para o | |foo |ficheiro foo (sobrescreve) | |-----------+---------------------------------------------------| |comando >> |redirecciona a sada standard do comando para o | |foo |ficheiro foo (acrescenta) | |-----------+---------------------------------------------------| |comando 2>>|redirecciona o erro standard do comando para o | |foo |ficheiro foo (acrescenta) |

|-----------+---------------------------------------------------| |comando > |redirecciona ambos sada standard e erro standard | |foo 2>&1 |do comando para o ficheiro "foo" | |-----------+---------------------------------------------------| |comando < |redirecciona a entrada standard do comando para o | |foo |ficheiro foo | |-----------+---------------------------------------------------| |comando << |redirecciona a entrada standard do comando para as | |delimitador|seguintes linhas at que o "delimitador" seja | | |atingido (documentar aqui) | |-----------+---------------------------------------------------| | |redirecciona a entrada standard do comando para as | |comando <<-|seguintes linhas at que o "delimitador" seja | |delimitador|atingido (aqui documento, os caracteres tab de | | |inicio so retirados das linhas de entrada) | +---------------------------------------------------------------+ O sistema Debian um sistema de multi-tarefa. Os trabalhos em segundo plano permitem aos utilizadores correrem vrios programas numa nica shell. A gesto dos processos em segundo plano envolve os embutidos da shell: jobs, fg, bg, e kill. Por favor leia as seces de bash(1) sob "SINAIS", "CONTROLE DE TAREFAS", e builtins(1). Por exemplo, tente o seguinte: $ </etc/motd pager $ pager </etc/motd $ pager /etc/motd $ cat /etc/motd | pager Apesar dos 4 exemplos de redireccionamentos de shell mostrarem a mesma coisa, o ltimo exemplo corre um comando cat extra e desperdia recursos sem nenhuma razo. A shell permite-lhe abrir ficheiros usando o exec embutido com um descritor de ficheiro arbitrrio $ echo Hello >foo $ exec 3<foo 4>bar # abrir ficheiros $ cat <&3 >&4 # redireccionar stdin para 3, stdout para 4 $ exec 3<&- 4>&# fechar ficheiros $ cat bar Hello O descritores de ficheiro 0-2 so predefinidos. Tabela 1.23. Descritores de ficheiro predefinido +--------------------------------------------------+ |dispositivo|descrio |descritor de ficheiro| |-----------+----------------+---------------------| |stdin |entrada standard|0 | |-----------+----------------+---------------------| |stdout |sada standard |1 | |-----------+----------------+---------------------|

|stderr |erro standard |2 | +--------------------------------------------------+ 1.5.9. Comando alias Voc pode definir um nome alternativo (alias) para um comando frequentemente utilizado. Por exemplo, tente o seguinte: $ alias la='ls -la' Agora, "la" funciona como atalho para "ls -la" o que lista todos os ficheiros no formato de lista longa. Voc pode listar quaisquer nomes alternativos existentes com o alias (veja bash(1) sob "COMANDOS EMBUTIDOS NA SHELL"). $ alias ... alias la='ls -la' Voc pode identificar o caminho exacto ou a identidade do comando com type (veja bash(1) sob "COMANDOS EMBUTIDOS DA SHELL"). Por exemplo, tente o seguinte: $ type ls ls is hashed (/bin/ls) $ type la la is aliased to ls -la $ type echo echo is a shell builtin $ type file file is /usr/bin/file Aqui o ls foi procurado recentemente enquanto o "file" no foi, assim o "ls" tem "hash", isto , a shell tem um registo interno para o acesso rpido localizao do comando "ls". Dica Veja Seco9.2.7, Comandos coloridos. 1.6. Processamento de texto estilo Unix Em ambientes de trabalho tipo Unix, o processamento de texto feito ao canalizar texto por cadeias de ferramentas standard de processamento de texto. Esta foi outra inovao crucial do Unix. 1.6.1. Ferramentas de texto de Unix Existem algumas ferramentas standard de processamento de texto que so muito usadas nos sistemas tipo Unix. * No utilizada nenhuma expresso regular: o cat(1) concatena ficheiros e escreve o contedo inteiro.

o tac(1) concatena ficheiros e escreve-os em reverso. o cut(1) selecciona partes de linhas e escreve-as. o head(1) escreve a parte inicial de ficheiros. o tail(1) escreve a parte final de ficheiros. o sort(1) organiza as linhas de ficheiros de texto. o uniq(1) remove linhas duplicadas de um ficheiro organizado. o tr(1) traduz ou apaga caracteres. o diff(1) compara ficheiros linha a linha. * utilizada uma expresso regular bsica (BRE): o grep(1) faz coincidir texto com padres. o ed(1) um editor de linhas primitivo. o sed(1) um editor de streams. o vim(1) um editor de ecr. o emacs(1) um editor de cran. (BRE de certo modo extensa) * utilizada uma expresso regular extensa (ERE): o egrep(1) faz coincidir texto com padres. o awk(1) faz processamento de texto simples. o tcl(3tcl) pode fazer todo o processamento de texto concebvel: re_syntax(3). Bastante usado com tk(3tk). o perl(1) pode fazer todo o processamento de texto concebvel. perlre(1). o pcregrep(1) do pacote pcregrep corresponde texto com padres Perl Compatible Regular Expressions (PCRE) (http: //en.wikipedia.org/wiki/ Perl_Compatible_Regular_Expressions) . o python(1) com o mdulo re pode fazer todo o processamento de texto concebvel. Veja "/usr/share/doc/python/html/ index.html". Se voc no tiver a certeza do que estes comandos fazem, por favor utilize "man comando" para descobri-lo por si. Nota A ordenao e alcance da expresso dependem do locale. Se desejar obter o comportamento tradicional para um comando, use o locale C em vez dos UTF-8 ao preceder o comando com "LANG=C" (veja Seco1.5.2, Varivel "$LANG" e Seco8.3, O locale).

Nota As expresses regulares Perl (http://en.wikipedia.org/wiki/Perl) (perlre(1)), Perl Compatible Regular Expressions (PCRE) (http:// en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) , e expresses regulares Python (http://en.wikipedia.org/wiki/Python_ (programming_language)) oferecidas pelo mdulo re tm muitas extenses comuns ao ERE normal. 1.6.2. Expresses regulares As expresses regulares (http://en.wikipedia.org/wiki/ Regular_expression) so utilizadas em muitas ferramentas de processamento de texto. So anlogas aos "globs" da shell, mas so mais complicadas e poderosas. A expresso regular descreve o padro de correspondncia e feita de caracteres de texto e de meta-caracteres. O meta-caractere apenas um caractere com um significado especial. Existem 2 estilos principais, BRE e ERE, dependendo das ferramentas de texto conforme descrito acima. Tabela 1.24. Meta-caracteres para BRE e ERE +---------------------------------------------------------------+ |BRE |ERE |descrio da expresso regular | |--------+------+-----------------------------------------------| |\ . [ ] |\ . [ | | |^ $ * |] ^ $ |meta-caracteres comuns | | |* | | |--------+------+-----------------------------------------------| |\+ \? \(| | | |\) \{ \}| |BRE apenas meta-caracteres 'escapados' "\" | |\| | | | |--------+------+-----------------------------------------------| | |+ ? ( | | | |) { } |ERE apenas meta-caracteres no 'escapados' "\" | | || | | |--------+------+-----------------------------------------------| |c |c |corresponde a no-meta-caractere "c" | |--------+------+-----------------------------------------------| |\c |\c |corresponde a um caractere literal "c" mesmo se| | | |"c" um meta-caractere por si s | |--------+------+-----------------------------------------------| |. |. |corresponde a qualquer caractere incluindo nova| | | |linha | |--------+------+-----------------------------------------------| |^ |^ |posio no incio de uma string | |--------+------+-----------------------------------------------| |$ |$ |posio no fim de uma string | |--------+------+-----------------------------------------------| |\< |\< |posio no incio de uma palavra | |--------+------+-----------------------------------------------| |\> |\> |posio no final de uma palavra | |--------+------+-----------------------------------------------| |[abc] |[abc]|corresponde a quaisquer caracteres em "abc" | |--------+------+-----------------------------------------------| |[^abc] |[^ |corresponde a quaisquer caracteres excepto em |

| |abc] |"abc" | |--------+------+-----------------------------------------------| |r* |r* |corresponde a zero ou mais expresses regulares| | | |identificadas por "r" | |--------+------+-----------------------------------------------| |r\+ |r+ |corresponde a uma ou mais expresses regulares | | | |identificadas por "r" | |--------+------+-----------------------------------------------| |r\? |r? |corresponde a zero ou uma expresso regular | | | |identificada por "r" | |--------+------+-----------------------------------------------| |r1\|r2 |r1|r2 |corresponde a uma das expresses regulares | | | |identificadas por "r1" ou "r2" | |--------+------+-----------------------------------------------| |\(r1\|r2|(r1| |corresponde a uma das expresses regulares | |\) |r2) |identificadas por "r1" ou "r2" e trata-as como | | | |uma expresso regular entre colchetes | +---------------------------------------------------------------+ A expresso regular do emacs basicamente BRE mas foi estendida para tratar "+" e "?" como meta-caracteres como em ERE. Assim, no h necessidade de os 'escapar' com "\" na expresso regular do emacs. grep(1) pode ser utilizado para executar a pesquisa de texto com expresso regular. Por exemplo, tente o seguinte: $ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE Yoyodyne, Inc., hereby disclaims all copyright interest in the program Dica Veja Seco9.2.7, Comandos coloridos. 1.6.3. Expresses de substituio Para a expresso de substituio, alguns caracteres tm significados especiais. Tabela 1.25. A expresso de substituio +---------------------------------------------------------------+ |expresso de |descrio do texto para substituir a expresso | |substituio |de substituio | |---------------+-----------------------------------------------| |& |que expresso regular corresponde (use \& no | | |emacs) | |---------------+-----------------------------------------------| |\n |que n entre colchetes da expresso regular | | |correspondeu (sendo "n" um nmero) | +---------------------------------------------------------------+ Para string de substituio de Perl, utilizado "$n" em vez de " \n" e "&" no tem nenhum significado especial.

Por exemplo, tente o seguinte: $ echo zzz1abc2efg3hij4 | \ sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/' zzz=1abc2efg3hij4= $ echo zzz1abc2efg3hij4 | \ sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/' zzzefg3hij4===1abc $ echo zzz1abc2efg3hij4 | \ perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/' zzzefg3hij4===1abc $ echo zzz1abc2efg3hij4 | \ perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/' zzz=&= Aqui por favor preste ateno extra ao estilo da expresso regular entre colchetes e como as strings correspondentes so utilizadas no processo de substituio de texto nas diferentes ferramentas. Estas expresses regulares tambm podem ser utilizadas para movimentos do cursor e aces de substituio de texto em alguns editores. A barra descendente "\" no fim da linha na linha de comandos da shell 'escapa' a nova linha como um caractere de espao em branco e continua a entrada na linha de comandos da shell na prxima linha. Por favor leia todos os manuais relacionados para aprender estes comandos. 1.6.4. Substituio global com expresses regulares O comando ed(1) pode substituir todas as instncias de "FROM_REGEX" por "TO_TEXT" em "file". $ ed file <<EOF ,s/FROM_REGEX/TO_TEXT/g w q EOF O comando sed(1) pode substituir todas as instncias de "FROM_REGEX" por "TO_TEXT" em "file". $ sed -ie 's/FROM_REGEX/TO_TEXT/g' file O comando vim(1) pode substituir todas as instncias de "FROM_REGEX" com "TO_TEXT" em "ficheiro" ao usar comandos ex(1). $ vim '+%s/FROM_REGEX/TO_TEXT/gc' '+w' '+q' ficheiro Dica A flag "c" em cima assegura confirmao interactiva para cada substituio. Mltiplos ficheiros ("ficheiro1", "ficheiro2",e "ficheiro3")

podem ser processados com expresses regulares semelhana com vim(1) ou perl(1). $ vim '+argdo %s/FROM_REGEX/TO_TEXT/ge|update' '+q' ficheiro1 ficheiro2 ficheiro3 Dica A bandeira "e" em cima previne o erro "Nenhuma correspondncia" de quebrar um mapeamento. $ perl -i -p -e 's/FROM_REGEX/TO_TEXT/g;' ficheiro1 ficheiro2 ficheiro3 no exemplo perl(1), "-i" para edio no-lugar, "-p" para ciclo implcito sobre ficheiros. Dica O uso do argumento "-i.bak" em vez de "-i" mantm cada ficheiro original ao adicionar ".bak" ao seu nome de ficheiro. Isto torna a recuperao de erros mais fcil para substituies complexas. Nota ed(1) e vim(1) so BRE; perl(1) ERE. 1.6.5. Extrair dados de tabela de ficheiro de texto Vamos considerar um ficheiro de texto chamado "DPL" no qual alguns nomes de lderes de projectos Debian pr-2004 e os seus dias de iniciao esto listados num formato separado por espaos. Ian Bruce Ian Wichert Ben Bdale Martin Dica Veja "Uma Histria Breve de Debian" (http://www.debian.org/doc/ manuals/project-history/) para o histrico de liderana de Debian (http://www.debian.org/doc/manuals/project-history/ch-leaders) mais recente. O awk frequentemente utilizado para extrair dados deste tipo de ficheiros. Por exemplo, tente o seguinte: $ awk '{ print $3 }' <DPL August April January January April April March # month started Murdock Perens Jackson Akkerman Collins Garbee Michlmayr August April January January April April March 1993 1996 1998 1999 2001 2002 2003

$ awk '($1=="Ian") { print }' <DPL # DPL called Ian Ian Murdock August 1993 Ian Jackson January 1998 $ awk '($2=="Perens") { print $3,$4 }' <DPL # When Perens started April 1996 Shells como a Bash tambm podem ser utilizadas para analisar este tipo de ficheiro. Por exemplo, tente o seguinte: $ while read first last month year; do echo $month done <DPL ... os mesmos resultados que no primeiro exemplo do Awk

Aqui, o comando embutido read usa caracteres em "$IFS" (separadores de campo internos) para dividir linhas em palavras. Se voc alterar "$IFS" para ":", voc pode analisar "/etc/passwd" facilmente com a shell. $ oldIFS="$IFS" # guarda o valor antigo $ IFS=':' $ while read user password uid gid rest_of_line; do if [ "$user" = "bozo" ]; then echo "$user's ID is $uid" fi done < /etc/passwd bozo's ID is 1000 $ IFS="$oldIFS" # restaura o valor antigo (Se o Awk for utilizado para fazer o equivalente, utilizee "FS= ':'" para definir o campo separador.) O IFS tambm usado pela shell para dividir resultados de expanso de parmetros, substituio de comandos, e expanso aritmtica. Estas no ocorrem em palavras dentro de citaes simples ou duplas. O valor predefinido do IFS <espao>, <tab>, e <nova-linha> combinados. Tenha cuidado ao usar estes truques IFS da shell. Podem acontecer coisas estranhas, quando a shell interpreta partes do script como a sua entrada. $ IFS=":," $ echo IFS=$IFS, IFS="$IFS" IFS= , IFS=:, $ date -R Sat, 23 Aug 2003 08:30:15 +0200 $ echo $(date -R) ipal Sat 23 Aug 2003 08 30 36 +0200 $ unset IFS $ echo $(date -R) Sat, 23 Aug 2003 08:30:50 +0200 # usa ":" e "," como IFS # echo embutido no Bash # apenas o resultado do comando # sub shell --> entrada para a shell princ # reset IFS para o predefinido

1.6.6. Trechos de script para canalizar comandos em pipe Os seguintes scripts fazem coisas bonitas como parte de um pipe.

Tabela 1.26. Lista de trechos de script para canalizar comandos em pipe +---------------------------------------------------------------+ |trecho de script |efeito do comando | |(escrito numa linha) | | |---------------------+-----------------------------------------| |find /usr -print |encontra todos os sob "/usr" | |---------------------+-----------------------------------------| |seq 1 100 |escreve 1 at 100 | |---------------------+-----------------------------------------| || xargs -n 1 |corre o comando repetidamente com cada | |<command> |item do pipe como seu argumento | |---------------------+-----------------------------------------| || xargs -n 1 echo |divide itens separados por espaos do | | |pipe em linhas | |---------------------+-----------------------------------------| || xargs echo |junta todas as linhas do pipe numa linha | |---------------------+-----------------------------------------| || grep -e |extrai as linhas do pipe que contm o | |<regex_pattern> |<padro_da_expresso_regular> | |---------------------+-----------------------------------------| || grep -v -e |extrai as linhas do pipe que no contm o| |<regex_pattern> |<padro_da_expresso_regular> | |---------------------+-----------------------------------------| || cut -d: -f3 |extrai do pipe o terceiro campo separado | | |por ":" (ficheiro passwd etc.) | |---------------------+-----------------------------------------| || awk '{ print $3 }' |extrai do pipe o terceiro campo separado | | |por espaos | |---------------------+-----------------------------------------| || awk -F'\t' '{ print|extrai do pipe o terceiro campo separado | |$3 }' |por tab | |---------------------+-----------------------------------------| || col -bx |remove os backspace e expande as tabs | | |para espaos | |---------------------+-----------------------------------------| || expand |expande separadores | |---------------------+-----------------------------------------| || sort| uniq |organiza e remove duplicados | |---------------------+-----------------------------------------| || tr 'A-Z' 'a-z' |converte maisculas para minsculas | |---------------------+-----------------------------------------| || tr -d '\n' |concatena linhas em uma linha | |---------------------+-----------------------------------------| || tr -d '\r' |remove CR | |---------------------+-----------------------------------------| || sed 's/^/# /' |adiciona "#" ao inicio de cada linha | |---------------------+-----------------------------------------| || sed 's/\.ext//g' |remove ".ext" | |---------------------+-----------------------------------------| || sed -n -e 2p |escreve a segunda linha | |---------------------+-----------------------------------------| || head -n 2 |escreve as primeiras duas linhas | |---------------------+-----------------------------------------| || tail -n 2 |escreve as ltimas duas linhas | +---------------------------------------------------------------+

Um script de shell de uma linha pode fazer ciclos sobre muitos ficheiros usando o find(1) e xargs(1) para executar tarefas bastante complicadas. Veja Seco10.1.5, Idiomas para a seleco de ficheiros e Seco9.5.9, Repetindo um ciclo de comandos sobre ficheiros. Quando a utilizao dos modos interactivos da shell se torna muito complicada, por favor considere escrever um script de shell (veja Seco12.1, O script de shell). Captulo 2. Gesto de pacotes Debian Nota Este captulo escrito assumindo que o lanamento estvel mais recente tem o nome de cdigo: squeeze. Debian (http://www.debian.org) uma organizao voluntria que constri distribuies consistentes de pacotes binrios pr-compilados de software livre e distribui-os a partir do seu arquivo. O arquivo Debian (http://ftp.us.debian.org/debian/) oferecido por muitos sites mirror remotos (http://www.debian.org/mirror/) para acesso atravs de mtodos HTTP e FTP. Tambm est disponvel em CD-ROM/DVD (http://www.debian.org/CD/) . O sistema de gesto de pacotes Debian, quando utilizado de modo apropriado, oferece ao utilizador o instalar de conjuntos consistentes de pacotes binrios no sistema a partir do arquivo. Actualmente, existem 39011 pacotes disponveis para a arquitectura amd64. O sistema de gesto de pacotes Debian tem um histrico rico e muitas opes de escolha para o programa cliente do utilizador e de mtodo de acesso ao arquivo. Actualmente, recomendamos o seguintei: * apt-get(8) para todas as operaes de linha de comandos, incluindo a instalao e remoo de pacotes, e dist-upgrade. * aptitude(8) para uma interface de texto interactiva para gerir os pacotes instalados e procurar os pacotes disponveis. * update-manager(8) para manter o seu sistema actualizado se voc estiver a correr o ambiente de trabalho GNOME. Tabela 2.1. Lista de ferramentas de gesto de pacotes Debian +------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |desc rio | |---------------------+---------------------+--------------------------+-------------------| | | | |Adva nced Packaging | | | | |Tool (APT), |

| | | |fron t-end para o | |apt (http:// |V:898, I:999 (http://|3232 (http:// |dpkg que | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/a/ |disp onibiliza os | |sid/apt) |popcon.php?package= |apt.html) |mtodo s "http", | | |apt) | |"ftp ", e "file" para| | | | |aces so a arquivos | | | | |(com andos apt-get/ | | | | |aptcache includos)| |---------------------+---------------------+--------------------------+-------------------| |aptitude (http:// |V:220, I:989 (http://|4541 (http:// |Gest or de pacotes | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/a/ |base ado em terminal | |sid/aptitude) |popcon.php?package= |aptitude.html) |inte ractivo com | | |aptitude) | |apti tude(8) | |---------------------+---------------------+--------------------------+-------------------| |update-manager-gnome |V:153, I:230 (http://| |Apli cao do GNOME | |(http:// |qa.debian.org/ |1267 (http:// |que gere | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/u/ |actu alizaes de | |sid/ |update-manager-gnome)|update-manager-gnome.html)|soft ware com o | |update-manager-gnome)| | |upda te-manager(8) | |---------------------+---------------------+--------------------------+-------------------| | | | |ferr amenta para | |tasksel (http:// |V:55, I:955 (http:// |714 (http:// |sele ccionar tarefas | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/t/ |para instalao no | |sid/tasksel) |popcon.php?package= |tasksel.html) |sist ema Debian | | |tasksel) | |(fro ntend para o | | | | |APT) | |---------------------+---------------------+--------------------------+-------------------| |unattended-upgrades | | |paco te de melhoria | |(http:// |V:57, I:416 (http:// |320 (http:// |para o APT para | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/u/ |acti var a instalao|

|sid/ |popcon.php?package= |unattended-upgrades.html) |auto mtica de | |unattended-upgrades) |unattended-upgrades) | |actu alizaes de | | | | |segu rana | |---------------------+---------------------+--------------------------+-------------------| | | | |gest or de pacotes | | |V:13, I:125 (http:// | |base ado em terminal | |dselect (http:// |qa.debian.org/ |2452 (http:// |(foi o sta ndard | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/d/ |ante rior, frontend | |sid/dselect) |dselect) |dselect.html) |para o APT e outros | | | | |mtodo s de acesso | | | | |anti gos) | |---------------------+---------------------+--------------------------+-------------------| |dpkg (http:// |V:953, I:999 (http://|6344 (http:// | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/d/ |sist ema de gesto de| |sid/dpkg) |popcon.php?package= |dpkg.html) |paco tes para Debian | | |dpkg) | | | |---------------------+---------------------+--------------------------+-------------------| |synaptic (http:// |V:126, I:417 (http://|7711 (http:// |gest or de pacotes | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/s/ |grfic o (frontend do| |sid/synaptic) |popcon.php?package= |synaptic.html) |GNOM E para o APT) | | |synaptic) | | | |---------------------+---------------------+--------------------------+-------------------| | | | |Prog ramas | |apt-utils (http:// |V:435, I:997 (http://|1296 (http:// |util itrios do APT: | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/a/ |aptextracttemplates| |sid/apt-utils) |popcon.php?package= |apt-utils.html) |(1), apt-ftparchive | | |apt-utils) | |(1), e apt-sortpkgs | | | | |(1) | |---------------------+---------------------+--------------------------+-------------------| |apt-listchanges |V:357, I:654 (http://|203 (http:// |ferr amenta de |

|(http:// |qa.debian.org/ |packages.qa.debian.org/a/ |noti ficao do | |packages.debian.org/ |popcon.php?package= |apt-listchanges.html) |histr ico de | |sid/apt-listchanges) |apt-listchanges) | |alte raes do pacote| |---------------------+---------------------+--------------------------+-------------------| |apt-listbugs (http://|V:11, I:18 (http:// |443 (http:// |list a bugs crticos | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/a/ |ante s de cada | |sid/apt-listbugs) |popcon.php?package= |apt-listbugs.html) |inst alao do APT | | |apt-listbugs) | | | |---------------------+---------------------+--------------------------+-------------------| |apt-file (http:// |V:22, I:98 (http:// |69 (http:// |Util itrio de busca | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/a/ |de p acotes do APT - | |sid/apt-file) |popcon.php?package= |apt-file.html) |inte rface de linha | | |apt-file) | |de c omandos | |---------------------+---------------------+--------------------------+-------------------| |apt-rdepends (http://|V:1, I:7 (http:// |64 (http:// |list a recursivamente| |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/a/ |depe ndncias de | |sid/apt-rdepends) |popcon.php?package= |apt-rdepends.html) |paco tes | | |apt-rdepends) | | | +------------------------------------------------------------------------------------------+ 2.1. Pr-requisitos da gesto de pacotes Debian 2.1.1. Configurao de pacotes Aqui esto alguns pontos chave para a configurao de pacotes no sistema Debian. * A configurao manual feita pelo administrador do sistema respeitada. Por outras palavras, o sistema de configurao de pacotes no faz configuraes intrusivas por convenincia. * Cada pacote vem com o seu prprio script de configurao com a interface de utilizador standard chamada debconf(7) para ajudar no processo inicial de instalao do pacote. * Os Programadores do Debian do o seu melhor para tornar a sua experincia de actualizao isenta de falhas com scripts de configurao de pacotes. * As funcionalidades totais do software empacotado esto

disponveis ao administrador do sistema. Mas aquelas com riscos de segurana esto desactivadas na instalao predefinida. * Se voc activou manualmente um servio com alguns riscos de segurana voc o responsvel pelo confinamento de risco. * A configurao esotrica pode ser activada manualmente pelo administrador do sistema. Isto pode criar interferncias com programas de ajuda genricos populares para a configurao do sistema. 2.1.2. Precaues bsicas Ateno No instale pacotes de misturas aleatrias de suites. Provavelmente vai quebrar a consistncia do pacote o que requer conhecimentos profundos de gesto do sistema tais como ABI (http: //en.wikipedia.org/wiki/Application_binary_interface) compilador, verso de biblioteca (http://en.wikipedia.org/wiki/Library_ (computing)) , funcionalidades do interpretador, etc. O administrador novato (http://en.wikipedia.org/wiki/Newbie) de sistemas Debian deve manter-se com o lanamento stable de Debian e aplicar apenas as actualizaes de segurana. Eu quero dizer que melhor evitar algumas das seguintes aces vlidas, como uma precauo, at que voc compreenda muito bem o sistema Debian. Aqui ficam algumas lembranas. * No inclua testing ou unstable em "/etc/apt/sources.list". * No misture Debian standard com outros arquivos que no sejam Debian, como o Ubuntu em "/etc/apt/sources.list". * No crie "/etc/apt/preferences". * No altere o comportamento predefinido das ferramentas de gesto de pacotes atravs de ficheiros de configurao sem conhecer os seus impactos totais. * No instale pacotes aleatrios com "dpkg -i <qualquer_pacote> ". * Nunca instale pacotes aleatrios com "dpkg --force-all -i <qualquer_pacote>". * No apague ou altere os ficheiros em "/var/lib/dpkg/". * No sobrescreva ficheiros do sistema ao instalar programas compilados a partir do cdigo-fonte. o Instale-os em "/usr/local" ou "/opt", se necessrio. Os efeitos no-compatveis causados ao sistema de gesto de pacotes de Debian, pelas aes referidas acima, podem deixar o seu sistema inutilizado. O administrador de sistema Debian srio que corre servidores de misses crticas, deve tomar precaues extra.

* No instale nenhuns pacotes incluindo as actualizaes de segurana da Debian sem os testar completamente com as suas configuraes particulares sob condies seguras. o Voc como o administrador do sistema o responsvel final pelo seu sistema. o A longa histria de estabilidade do sistema Debian no uma garantia por si s. 2.1.3. A vida com actualizaes eternas Apesar dos meus avisos em cima, eu sei que muitos leitores deste documento desejam correr as suites testing ou unstable de Debian como o seu sistema principal para ambientes de trabalho auto-administrados. Isto porque funcionam muito bem, so actualizadas frequentemente, e oferecem as funcionalidades mais recentes. Cuidado Para o seu servidor de produo, recomendada a suite stable com as actualizaes de segurana. O mesmo pode ser dito para PCs de ambiente de trabalho onde voc pode dispor de esforos limitados de administrao, p.e. o PC da sua me. No preciso mais do que simplesmente definir a string da distribuio em "/etc/apt/sources.list" para o nome de suite: "testing" ou "unstable"; ou o nome de cdigo: "wheezy" ou "sid". Isto f-lo viver a vida das actualizaes eternas. O uso de testing ou unstable muito divertido mas vem com alguns riscos. Embora a suite unstable do sistema Debian parea muito estvel na maior parte do tempo, tem havido alguns problemas com pacotes nas suites testing e unstable do sistema Debian e alguns deles no foram triviais de resolver. Poder ser muito doloroso para si. Por vezes, voc pode ter um pacote danificado ou uma funcionalidade em falta por algumas semanas. Aqui esto algumas ideias para assegurar recuperao fcil e rpida de bugs nos pacotes Debian: * Faa um sistema de duplo arranque ao instalar a suite stable do sistema Debian noutra partio. * Tenha o CD de instalao ' mo' para o arranque de recuperao * Considere instalar o apt-listbugs para verificar informao do Debian Bug Tracking System (BTS) (http://www.debian.org/ Bugs/) antes das actualizaes * Conhea o suficiente da infraestrutura do sistema de pacotes para contornar o problema * Crie um chroot ou ambiente semelhante para antecipadamente correr nele o sistema mais recente (veja Seco9.8, Sistema virtualizado)

(Se voc no conseguir fazer nenhumas destas aces de precauo, provavelmente no est preparado para as suites testing e unstable.) O Esclarecimento (http://en.wikipedia.org/wiki/Bodhi) com o seguinte salva uma pessoa do karma (http://en.wikipedia.org/wiki/ Karma) da eterna luta do inferno (http://en.wikipedia.org/wiki/ Naraka) das actualizaes e permite-lhe alcanar o nirvana (http: //en.wikipedia.org/wiki/Nirvana) de Debian. 2.1.4. Bsico do arquivos Debian Vamos olhar para o arquivo Debian (http://ftp.us.debian.org/ debian/) a partir da perspectiva do utilizador do sistema. Dica A poltica oficial do arquivo Debian est definida em Manual de Polticas Debian, Captulo 2 - O Arquivo Debian (http:// www.debian.org/doc/debian-policy/ch-archive) . Para o tpico acesso HTTP, o arquivo est especificado no ficheiro "/etc/apt/sources.list" como o seguinte exemplo para o sistema stable = squeeze actual. deb http://ftp.XX.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.XX.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib deb-src http://security.debian.org/ squeeze/updates main contrib Por favor note que "ftp.XX.debian.org" tem de ser substitudo com o URL do mirror apropriado para a sua localizao, para EUA "ftp.us.debian.org", o qual pode ser encontrado em a lista de mirrors Debian de todo o mundo (http://www.debian.org/mirror/ list) . O estado destes servidores pode ser verificado no Debian Mirror Checker (http://ftp.de.debian.org/dmc/) . Aqui, eu uso o nome de cdigo "squeeze" em vez do nome de suite "stable" para evitar surpresas quando a prxima stable for lanada. O significado de "/etc/apt/sources.list" descrito em sources.list(5) e os pontos chave so os seguintes: * A linha "deb" define os pacotes binrios. * A linha "deb-src" define os pacotes fonte. * O 1 argumento o URL raiz do arquivo Debian. * O 2 argumento o nome da distribuio: seja o nome de suite ou o nome de cdigo. * O 3 argumento e seguintes so a lista de nomes de rea de arquivo vlidos do arquivo Debian. As linhas "deb-src" pode ser omitidas (ou comentadas ao colocar um "#" no inicio da linha) se for apenas para o aptitude o qual no acede a meta-dados relacionados com a fonte. Isso acelera as

actualizaes dos meta-dados do arquivo. O URL pode ser "http:// ", "ftp://", "file://", . Dica Se for usado "sid" no exemplo em cima em vez de "squeeze", a linha "deb: http://security.debian.org/ " para actualizaes de segurana em "/etc/apt/sources.list", no necessria. Isto porque no h arquivo de actualizaes de segurana para "sid" (unstable). Aqui est uma lista de URLs de sites de arquivo Debian e nomes das suites ou nomes de cdigo utilizados no ficheiro de configurao. Tabela 2.2. Lista de sites de arquivos Debian +---------------------------------------------------------------+ |URL do arquivo |nome da suite (nome de |objectivo | | |cdigo) | | |-------------------+-----------------------+-------------------| |http:// | | | |ftp.XX.debian.org/ | |lanamento | |debian/ (http:// |stable (squeeze) |(squeeze) stable | |ftp.us.debian.org/ | | | |debian/) | | | |-------------------+-----------------------+-------------------| |http:// | | | |ftp.XX.debian.org/ | |lanamento (wheezy)| |debian/ (http:// |testing (wheezy) |testing | |ftp.us.debian.org/ | | | |debian/) | | | |-------------------+-----------------------+-------------------| |http:// | | | |ftp.XX.debian.org/ | |lanamento (sid) | |debian/ (http:// |unstable (sid) |unstable | |ftp.us.debian.org/ | | | |debian/) | | | |-------------------+-----------------------+-------------------| |http:// | |pr-lanamento | |ftp.XX.debian.org/ | |experimental | |debian/ (http:// |experimental |(opcional, apenas | |ftp.us.debian.org/ | |para | |debian/) | |desenvolvedores) | |-------------------+-----------------------+-------------------| |http:// | |Actualizaes para | |ftp.XX.debian.org/ | |o prximo | |debian/ (http:// |stable-proposed-updates|lanamento de ponto| |ftp.us.debian.org/ | |estvel (opcional) | |debian/) | | | |-------------------+-----------------------+-------------------| |http:// | |actualizaes de | |security.debian.org| |segurana para o | |/ (http:// |stable/updates |lanamento stable | |security.debian.org| |(importante) | |/) | | | |-------------------+-----------------------+-------------------| |http:// | |actualizaes de | |security.debian.org| |segurana para o | |/ (http:// |testing/updates |lanamento testing |

|security.debian.org| |(importante) | |/) | | | |-------------------+-----------------------+-------------------| |http:// | |actualizaes | |ftp.XX.debian.org/ | |compatveis para | |debian/ (http:// |squeeze-updates |filtro de spam, | |ftp.us.debian.org/ | |clientes IM, etc. | |debian/) | |para squeeze | |-------------------+-----------------------+-------------------| |http:// | | | |ftp.XX.debian.org/ | |pacotes backport | |debian/ (http:// |squeeze-backports |mais recentes para | |ftp.us.debian.org/ | |squeeze (opcional) | |debian/) | | | +---------------------------------------------------------------+ Cuidado Apenas o puro lanamento stable com as actualizaes de segurana disponibilizam a melhor estabilidade. Correr o lanamento stable misturado com alguns pacotes dos lanamentos testing ou unstable mais arriscado que correr o lanamento unstable puro devido a verses erradas de bibliotecas e etc. Se realmente voc precisa da verso mais recente de alguns programas sob o lanamento stable, por favor utilize pacotes do squeeze-updates (http:// www.debian.org/News/2011/20110215) e http://backports.debian.org (http://backports.debian.org) (veja os servios Seco2.7.4, Actualizaes e Backports) Estes servios tm de ser utilizados com cuidados extra. Cuidado Basicamente voc deve listar apenas uma das suites stable, testing, ou unstable na linha "deb". Se voc listar qualquer combinao das suites stable, testing, e unstable na linha "deb", os programas do APT abrandam enquanto apenas o arquivo mais recente efectivo. Faz sentido vrias listagens quando o ficheiro "/etc/apt/preferences" utilizado com objectivos claros (veja Seco2.7.3, Moldar a verso candidata). Dica Para o sistema Debian com as suites stable e testing, uma boa ideia incluir linhas com "http://security.debian.org/" em "/etc/ apt/sources.list" para activar as actualizaes de segurana como no exemplo em cima. Nota Os bugs de segurana do arquivo stable so corrigidos pela equipa de segurana do Debian. Esta actividade tem sido bastante rigorosa e fidedigna. Os do arquivo testing podero ser corrigidos pela equipa de segurana de Debian testing. Por vrias (http://lists.debian.org/debian-testing-security-announce/2008/12 /msg00019.html) razes (http://lists.debian.org/ debian-testing-security-announce/2008/12/msg00019.html) , esta actividade no to rigorosa como a de stable e voc pode necessitar de aguardar pela migrao de pacotes unstable com as correes. Os pacotes do arquivo unstable so corrigidos pelo

maintainer. Os pacotes unstable mantidos activamente esto geralmente em boa forma por conterem as correces de segurana mais recentes desde a origem. Veja a FAQ de segurana Debian (http://www.debian.org/security/faq) para saber como Debian lida com os bugs de segurana. Tabela 2.3. Lista de rea de arquivo Debian +---------------------------------------------------------------+ |rea |nmero de |critrio do componente do pacote | | |pacotes | | |--------+------------+-----------------------------------------| |main |38274 |em conformidade com DFSG e nenhuma | | | |dependncia a non-free | |--------+------------+-----------------------------------------| |contrib |229 |em conformidade com DFSG mas com | | | |dependncias a non-free | |--------+------------+-----------------------------------------| |non-free|508 |no complacente com DFSG | +---------------------------------------------------------------+ Aqui o nmero de pacotes em cima para a arquitectura amd64. A rea main disponiboliza o sistema Debian (veja Seco2.1.5, Debian 100% software livre). A organizao do arquivo Debian pode ser melhor estudada ao apontar o seu explorador a cada URL de arquivo seguido de dists ou pool. A distribuio referida de duas maneiras, a suite ou o nome-de-cdigo (http://www.debian.org/doc/manuals/ developers-reference/resources.html#codenames) . A palavra distribuio usada alternativamente como o sinnimo de suite em muitas documentaes. A relao entre a suite e o nome de cdigo pode ser resumida ao seguinte. Tabela 2.4. A relao entre suite e nome de cdigo +---------------------------------------------------------------+ |Tempo |suite = stable |suite = testing|suite = | | | | |unstable | |----------------+----------------+---------------+-------------| |aps o |nome de cdigo =|nome de cdigo |nome de | |lanamento |squeeze |= wheezy |cdigo = sid | |squeeze | | | | |----------------+----------------+---------------+-------------| |aps o |nome de cdigo =|nome de cdigo |nome de | |lanamento |wheezy |= jessie |cdigo = sid | |wheezy | | | | +---------------------------------------------------------------+ A histria dos nomes de cdigo est descrita em Debian FAQ: 6.3.1 Que outros nomes de cdigo foram usados no passado? (http:// www.debian.org/doc/manuals/debian-faq/ch-ftparchives# s-oldcodenames) Na terminologia estrita do arquivo Debian, a palavra "seo" utilizada especialmente para categorizar os pacotes pela rea de

aplicao. (Apesar da palavra "seo main" poder por vezes ser utilizada para descrever a rea do arquivo Debian com o nome "main".) Cada vez que feito um novo upload pelo desenvolvedor de Debian (DD) para o arquivo unstable (por processamento do incoming (http://incoming.debian.org/) ), necessriq que o DD assegure que os pacotes enviados sejam compatveis com o conjunto de pacotes mais recente no arquivo unstable mais recente. Se o DD quebrar esta compatibilidade intencionalmente para uma actualizao importante de biblioteca ou etc., geralmente existe um anncio na lista de email debian-devel (http:// lists.debian.org/debian-devel/) etc. Antes que um conjunto de pacotes seja movido pelo script de manuteno do arquivo Debian do arquivo unstable para o arquivo testing, o script de manuteno do arquivo no verifica apenas a maturidade (cerca de 10 dias de idade) e o estado dos relatrios de bug RC para os pacotes mas tambm tenta assegurar que sejam compatveis com o conjunto de pacotes mais recente no arquivo testing. Este processo torna o arquivo testing muito actual e utilizvel. Atravs do processo de congelamento gradual do arquivo liderado pela equipa de lanamento, o arquivo testing amadurecido para o tornar completamente consistente e livre de bugs com algumas intervenes manuais. Ento o novo lanamento stable criado ao atribuir o nome de cdigo do antigo arquivo testing ao novo arquivo stable e criando um novo nome de cdigo para o novo arquivo testing. O contedo inicial do novo arquivo testing exactamente o mesmo que o arquivo stable recentemente lanado. Ambos os arquivos unstable e testing podem sofrer falhas temporrias devido a vrios factores: * Upload, para o arquivo, de pacotes danificados (maioritariamente para unstable) * Atraso de aceitao dos novos pacotes no arquivo (maioritariamente para unstable) * Problemas com o tempo de sincronizao do arquivo (tanto para testing como unstable) * Interveno manual no arquivo, tal como remoo de pacotes (mais para testing) etc. Se alguma vez voc decidir utilizar estes arquivos, dever ser capaz de corrigir ou contornar este tipo de problemas. Cuidado Durante alguns meses aps um novo lanamento de stable, a maioria dos utilizadores de ambientes de trabalho devem usar o arquivo stable com as sua actualizaes de segurana mesmo que normalmente usem os arquivos unstable ou testing. Durante este perodo de transio, ambos arquivos unstable e testing no so bons para a maioria das pessoas. O seu sistema difcil de manter em boas condies de funcionamento com o arquivo unstable

porque sofre de vagas de grandes actualizaes nos pacotes principais. O arquivo testing tambm no til porque contm praticamente o mesmo contedo que o arquivo stable mas sem o seu suporte de segurana ( Anncio-de-segurana-de-testing-Debian-2008-12 (http:// lists.debian.org/debian-testing-security-announce/2008/12/ msg00019.html) ). Aps um ms ou mais, o arquivo unstable pode ser usado se voc for cuidadoso. Dica Quando se acompanha o arquivo testing, um problema causado por um pacote removido geralmente contornado ao instalar o pacote correspondente do arquivo unstable que foi lanado para correco de bug. Veja Manual de Polticas Debian (http://www.debian.org/doc/ debian-policy/) para as definies do arquivo. * "Seces (http://www.debian.org/doc/debian-policy/ch-archive# s-subsections) " * "Prioridades (http://www.debian.org/doc/debian-policy/ ch-archive#s-priorities) " * "Sistema base (http://www.debian.org/doc/debian-policy/ ch-binary#s3.7) " * "Pacotes essenciais (http://www.debian.org/doc/debian-policy/ ch-binary#s3.8) " 2.1.5. Debian 100% software livre Debian 100% software livre por causa do seguinte: * Por omisso Debian instala apenas software livre para respeitar as liberdades do utilizador. * Debian disponibiliza apenas software livre no main. * Debian recomenda correr apenas software livre do main. * Nenhum pacote no main depende ou recomenda pacotes do non-free ou do contrib. Algumas pessoas pensam se os 2 seguintes factos se contradizem ou no. * "Debian ir manter-se 100% livre". (Primeiro termo do Debian Socal Contract (http://www.debian.org/social_contract) ) * Os servidores Debian iro alojar alguns pacotes non-free e contrib. Estes no se contradizem, devido ao seguinte. * O sistema Debian 100% livre e os seus pacotes esto alojados em servidores Debian na rea main. * Os pacotes fora do sistema Debian so alojado em servidores

Debian nas reas non-free e contrib. Isto perfeitamente explicado nos termos 4 e 5 do Debian Social Contract (http://www.debian.org/social_contract) : * As nossas prioridades so os nossos utilizadores e o software livre o Seremos guiados pelas necessidades dos nossos utilizadores e da comunidade de software livre. Iremos colocar o seu interesse no topo das nossas prioridades. Iremos suportar as necessidades dos nossos utilizadores para operao em muitos ambientes de computao distintos. No nos oporemos a software no-livre que se destine a ser utilizado em sistemas Debian, nem tentaremos cobrar qualquer taxa a pessoas que criem ou utilizem tais trabalhos. Iremos permitir que terceiros criem distribuies contendo o sistema Debian com outros trabalhos, sem qualquer taxa para ns. Para apoio destes objectivos, iremos disponibilizar um sistema integrado de materiais de alta qualidade sem restries legais que previnam tais utilizas do sistema. * Trabalhos que no coincidem com os nossos standards de software livre o Ns reconhecemos que alguns dos nossos utilizadores necessitam utilizar trabalhos que no esto de acordo com a Debian Free Software Guidelines. Ns criamos no nosso arquivo as reas "contrib" e "non-free" para esses trabalhos. Os pacotes nessas reas no fazem parte do sistema Debian, embora tenham sido configurados para serem utilizados com Debian. Ns encorajamos os fabricantes de CDs a ler as licenas dos pacotes nessas reas e determinar se podem distribuir os pacotes nos seus CDs. Por isso, embora os trabalhos no-livres no sejam parte de Debian, ns suportamos a sua utilizao e disponibilizamos infra-estrutura para os pacotes no-livres (tal como o nosso sistema de seguimento de bugs e listas de email). Os utilizadores devem estar cientes dos riscos da utilizao de pacotes das reas non-free e contrib: * falta de liberdade para tais pacotes de software * falta de suporte Debian em tais pacotes de software (Debian no pode suportar devidamente software sem ter acesso ao seu cdigo-fonte.) * contaminao do seu sistema Debian 100% livre As Debian Free Software Guidelines (http://www.debian.org/ social_contract#guidelines) so os standards de software livre para Debian (http://www.debian.org) . Debian interpreta "software" no mbito mais amplo incluindo documentao, firmware, logo e dados artsticos no pacote. Isto torna os standards de software livre de Debian muito rigorosos. De modo a respeitar estes restritos standards de software livre

para a main, Debian retira a marca Mozilla (http:// bugs.debian.org/cgi-bin/bugreport.cgi?bug=354622) de pacotes de software tais como o Firefox, Thunderbird e Seamonkey removendo o seu logotipo e alguns dados artsticos; e distribui-os respectivamente como Iceweasel, Icedove e Iceape. Tipicamente os pacotes da non-free e da contrib incluem pacotes distribuidos livremente dos seguintes tipos: * Pacotes de documentao sob a GNU Free Documentation License (http://en.wikipedia.org/wiki/GNU_Free_Documentation_License) com seces invariantes tais como as do GCC e do Make. (a maioria encontra-se na seco non-free/doc.) * Pacotes de firmware contendo dados binrios sem cdigo-fonte tais como os listados em Seco9.7.6, Controladores de hardware e firmware como no-livre. (a maioria encontra-se na seco non-free/kernel.) * Pacotes de fontes e jogos com restries comerciais de utilizao e/ou modificao de contedo. Por favor note que o nmero de pacotes das non-free e contrib menos de 2% dos pacotes da main. Activar o acesso s reas non-free e contrib no turva a fonte dos pacotes. A utilizao do ecr interactivo do aptitude(8) disponiza-lhe visibilidade e controlo total sobre que pacotes esto instalados e a partir de qual das reas, para manter o seu sistema livre conforme desejar. 2.1.6. Dependncias de pacote O sistema Debian oferece um conjunto consistente de pacotes binrios atravs do seu mecanismo de declarao de dependncias binrias com verses nos campos do ficheiro de controle. Aqui est uma definio deles um pouco simplificada: * "Depends" o Isto declara uma dependncia absoluta e todos os pacotes listados neste campo tm de ser instalados ao mesmo tempo ou com antecedncia. * "Pre-Depends" o Isto como o Depends, excepto que requer a instalao completa de todos os pacotes listados com antecedncia. * "Recommends" o Isto declara uma dependncia forte mas no absoluta. A maioria dos utilizadores no iriam querer o pacote a menos que todos os pacotes listados neste campo estejam instalados. * "Suggests" o Isto declara uma dependncia fraca. Muitos utilizadores deste pacote podem beneficiar ao instalar os pacotes listados neste campo mas podem ter as funes razoveis sem eles.

* "Enhances" o Isto declara uma dependncia fraca como o Suggests mas funciona na direco oposta. * "Breaks" o Isto declara uma incompatibilidade do pacote normalmente com alguma especificao de verso. Geralmente a resoluo actualizar todos os pacotes listados neste campo. * "Conflicts" o Isto declara uma incompatibilidade absoluta. Todos os pacotes listados neste campo tm de ser removidos para instalar este pacote. * "Replaces" o Isto declarado quando os ficheiros instalados por este pacote substituem ficheiros nos pacotes listados. * "Provides" o Isto declarado quando este pacote disponibiliza todos os ficheiros e funcionalidades dos pacotes listados. Nota

Por favor note que definir "Provides", "Conflicts" e "Replaces" em simultneo a um pacote virtual a configurao s. Isto assegura que apenas um pacote real que disponibilize este pacote virtual possa ser instalado de cada vez. A definio oficial incluindo dependncias de fonte pode ser encontrada em O Manual de Polticas: Captulo 7 - Declarar relaes entre pacotes (http://www.debian.org/doc/debian-policy/ ch-relationships) . 2.1.7. O fluxo de eventos da gesto de pacotes Aqui est um resumo do fluxo de eventos simplificado da gesto de pacotes pelo APT. * Update ("aptitude update" ou "apt-get update"): 1. Obtm meta-dados do arquivo a partir do arquivo remoto 2. Reconstri e actualiza os meta-dados locais para utilizao do APT * Upgrade ("aptitude safe-upgrade" e "aptitude full-upgrade", ou "apt-get upgrade" e "apt-get dist-upgrade"): 1. Escolhe a verso candidata que geralmente a verso mais recente disponvel para todos os pacotes instalados (veja Seco2.7.3, Moldar a verso candidata para excepes).

2. Resolve a dependncia do pacote 3. Obtm os pacotes binrios seleccionados do arquivo remoto se a verso candidata for diferente da verso instalada. 4. Desempacota os pacotes binrios obtidos 5. Corre o script preinst 6. Instala os ficheiros binrios 7. Corre o script postinst * Install ("aptitude install " ou "apt-get install "): 1. Escolhe os pacotes listados na linha de comandos 2. Resolve a dependncia do pacote 3. Obtm os pacotes binrios seleccionados a partir do arquivo remoto 4. Desempacota os pacotes binrios obtidos 5. Corre o script preinst 6. Instala os ficheiros binrios 7. Corre o script postinst * Remove ("aptitude remove " ou "apt-get remove "): 1. Escolhe os pacotes listados na linha de comandos 2. Resolve a dependncia do pacote 3. Corre o script prerm 4. Remove os ficheiros instalados excepto os ficheiros de configurao 5. Corre o script postrm * Purge ("aptitude purge " ou "apt-get purge "): 1. Escolhe os pacotes listados na linha de comandos 2. Resolve a dependncia do pacote 3. Corre o script prerm 4. Remove os ficheiros instalados incluindo os ficheiros de configurao 5. Corre o script postrm Aqui, saltei intencionalmente detalhes tcnicos por causa da viso geral.

2.1.8. Primeira resposta a problemas com a gesto de pacotes Voc deve ler a boa documentao oficial. O primeiro documento a ler especfico de Debian "/usr/share/doc/<package_name>/ README.Debian". Tambm deve ser consultada outra documentao em "/usr/share/doc/<package_name>/". Se voc definir a shell como Seco1.4.2, Personalizar bash, escreva o seguinte. $ cd <nome_do_pacote> $ pager README.Debian $ mc Voc pode necessitar instalar o pacote de documentao correspondente, com o sufixo "-doc" no nome, para informaes mais detalhadas. Se voc estiver a ter problemas com um pacote especfico, certifique-se que verifica primeiro o Sistema de acompanhamento de bugs Debian (BTS) (http://bugs.debian.org/) . Tabela 2.5. Lista de sites web chave para resolver problemas com um pacote especfico. +---------------------------------------------------------------+ |site web |comando | |-------------------------------------+-------------------------| |Pgina inicial do Sistema de |sensible-browser "http://| |acompanhamento de bugs Debian (BTS) |bugs.debian.org/" | |(http://bugs.debian.org/) | | |-------------------------------------+-------------------------| |O relatrio de bug de um nome de |sensible-browser "http://| |pacote conhecido |bugs.debian.org/ | | |<nome_do_pacote>" | |-------------------------------------+-------------------------| |O relatrio de bug de um nmero de |sensible-browser "http://| |bug conhecido |bugs.debian.org/ | | |<nmero_do_bug>" | +---------------------------------------------------------------+ Procure no Google (http://www.google.com) com palavras de busca incluindo "site:debian.org", "site:wiki.debian.org", "site:lists.debian.org", etc. Quando voc criar um relatrio de bug, por favor use o comando reportbug(1). 2.2. Operaes bsicas de gesto de pacotes As operaes bsicas de gesto de pacotes no sistema Debian podem ser executas por qualquer ferramenta de gesto de pacotes disponvel no sistema Debian. Aqui vamos explicar as ferramentas de gesto bsica de pacotes: apt-get / apt-cache e aptitude. Para as operaes de gesto de pacotes que envolvam a instalao ou actualizao de metadados do pacote, voc necessita ter privilgios de root. 2.2.1. apt-get / apt-cache contra o aptitude

Os comandos apt-get e apt-cache so as ferramentas de gesto de pacotes mais bsicas * O apt-get e o apt-cache oferecem apenas a interface de linha de comandos. * O apt-get mais apropriado para uma actualizao maior ao sistema entre lanamentos, etc. * O apt-get oferece um resolvedor de pacotes robusto e estvel que utiliza os dados comuns do estado dos pacotes. * apt-get menos exigente em recursos de hardware. Consome menos memria e mais rpido. * O apt-get foi actualizado para suportar a auto-instalao e auto-remoo de pacotes recomendados. * O apt-get foi actualizado para suportar o registo em log das actividades de pacotes. * O apt-cache oferece uma busca baseada em expresses regulares standard no nome do pacote e na descrio. * O apt-get e o apt-cache podem gerir vrias verses de pacotes utilizando o /etc/apt/preferences mas um pouco incmodo. O comando aptitude a ferramenta de gesto de pacotes mais verstil. * O aptitude oferece a interface de utilizador de texto interactiva de ecr completo. * O aptitude tambm oferece uma interface de utilizador de linha de comandos. * O aptitude mais apropriado para a gesto de pacotes interactiva diria como inspeccionar os pacotes instalados e procurar pacotes disponveis. * O aptitude mais exigente em recursos de hardware. Consome mais memria e mais lento. * O aptitude oferece um resolvedor de pacotes avanado que tambm utiliza dados extra de estado de pacotes utilizados apenas pelo aptitude. * O aptitude suporta auto-instalao e auto-remoo de pacotes recomendados. * O aptitude suporta registo em log das actividades de pacotes. * O aptitude oferece um busca baseada em expresses regulares avanada em todos os metadados dos pacotes. * O aptitude pode gerir vrias verses de pacotes sem utilizar o /etc/apt/preferences e bastante intuitivo. Nota

Apesar do comando aptitude vir com ricas funcionalidades como o seu resolvedor avanado de pacotes, esta complexidade j causou (ou pode ainda causar) algumas regresses como os Bug #411123 (http://bugs.debian.org/411123) , Bug #514930 (http:// bugs.debian.org/514930) , e Bug #570377 (http://bugs.debian.org/ 570377) . Em caso de dvidas, por favor utilize os comandos apt-get e apt-cache sobre o comando aptitude. 2.2.2. Operaes bsicas de gesto de pacotes com a linha de comandos Aqui esto algumas operaes bsicas de gesto de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-cache(8). Tabela 2.6. Operaes bsicas de gesto de pacotes com a linha de comandos utilizando aptitude(8) e apt-get(8) / apt-cache(8). +---------------------------------------------------------------+ |sintaxe do |sintaxe do | | |aptitude |apt-get/ |descrio | | |apt-cache | | |------------+------------+-------------------------------------| |aptitude |apt-get |actualiza os metadados do arquivo de | |update |update |pacotes | |------------+------------+-------------------------------------| |aptitude |apt-get |instala a verso candidata do pacote | |install foo |install foo |"foo" com as suas dependncias | |------------+------------+-------------------------------------| |aptitude |apt-get |instala as verses candidatas dos | |safe-upgrade|upgrade |pacotes instalados sem remover | | | |quaisquer outros pacotes | |------------+------------+-------------------------------------| |aptitude |apt-get |instala as verses candidatas dos | |full-upgrade|dist-upgrade|pacotes instalados removendo outros | | |<package> |pacotes caso necessrio | |------------+------------+-------------------------------------| |aptitude |apt-get |remove o pacote "foo" deixando os | |remove foo |remove foo |seus ficheiros de configurao | |------------+------------+-------------------------------------| |N/D |apt-get |remove os pacotes auto-instalados que| | |autoremove |j no sejam necessrios | |------------+------------+-------------------------------------| |aptitude |apt-get |purga o pacote "foo" com os seus | |purge foo |purge foo |ficheiros de configurao | |------------+------------+-------------------------------------| |aptitude |apt-get |limpa completamente o repositrio | |clean |clean |local de ficheiros de pacotes obtidos| |------------+------------+-------------------------------------| |aptitude |apt-get |limpa os pacotes desactualizados do | |autoclean |autoclean |repositrio local dos ficheiros de | | | |pacotes recebidos | |------------+------------+-------------------------------------| |aptitude |apt-cache |mostra informao detalhada acerca do| |show foo |show |pacote "foo" | | |<package> | | |------------+------------+-------------------------------------| |aptitude |apt-cache |procura pacotes que correspondem | |search |search |<expresso-regular> | |<regex> |<regex> | | |------------+------------+-------------------------------------| |aptitude why| |explica a razo porque o pacotes que |

|<regex> |N/D |correspondem <expresso_regular> | | | |devem ser instalados | |------------+------------+-------------------------------------| |aptitude | |explica a razo porque o pacotes que | |why-not |N/D |correspondem <expresso_regular> | |<regex> | |no podem ser instalados | +---------------------------------------------------------------+ Nota Como o apt-get e o aptitude partilham o estado dos pacotes auto-instalados (veja Seco2.5.5, O estado dos pacote para o APT) aps o lenny, voc pode misturar estas ferramentas sem grandes problemas (veja Bug #594490 (http://bugs.debian.org/ 594490) ). A diferena entre "safe-upgrade"/"upgrade" e "full-upgrade"/ "dist-upgrade" apenas aparece quando novas verses de pacotes ficam com relaes de dependncias diferentes das verses antigas desses pacotes. O comando "aptitude safe-upgrade" no instala novos pacotes nem remove pacotes instalados. O "aptitude why <expresso_regular>" pode listar mais informao por "aptitude -v why <expresso_regular>". Informao semelhante pode ser obtida por "apt-cache rdepends <pacote>". Quando o comando aptitude arrancado em modo de linha de comandos e enfrenta alguns problemas como conflitos de pacotes, voc pode mudar para modo interactivo em ecr total, ao pressionar a tecla "e", mais tarde na linha de comandos. Voc pode dar opes de comando logo aps "aptitude". Tabela 2.7. Opes de comando notveis para o aptitude(8) +---------------------------------------------------------------+ |opo de |descrio | |comando | | |------------+--------------------------------------------------| |-s |simula o resultado do comando | |------------+--------------------------------------------------| |-d |faz apenas o download e no instala/actualiza | |------------+--------------------------------------------------| |-D |mostra breves explicaes antes das instalaes e | | |remoes automticas | +---------------------------------------------------------------+ Para mais veja aptitude(8) e o "Manual de utilizador do aptitude" em "/usr/share/doc/aptitude/README". Dica O pacote dselect ainda est disponvel e foi a ferramenta de gesto de pacotes interactiva de ecr inteiro preferida nos lanamentos anteriores. 2.2.3. Uso interactivo do aptitude

Para gesto de pacotes interactiva, arranque o aptitude em modo interactivo a partir da linha de comandos da consola conforme se segue: $ sudo aptitude -u Password: Isto actualiza a cpia local da informao do arquivo e mostra a lista de pacotes em ecr completo com menu. O aptitude coloca a sua configurao em "~/.aptitude/config". Dica Se desejar utilizar a configurao do root em vez da do utilizador, utilize "sudo -H aptitude " em vez de "sudo aptitude " na expresso acima. Dica O aptitude define automaticamente as aces pendentes como se fosee arrancado interactivamente. Se no gostar disso, pode redefinir isto a partir do menu: "Aco" "Cancelar aces pendentes". 2.2.4. Teclas de atalho do aptitude As combinaes notveis de teclas para explorar o estado dos pacotes e definir uma "aco planeada" neles neste modo de ecr total so as seguintes: Tabela 2.8. Lista de teclas de atalho do aptitude +---------------------------------------------------------------+ |tecla |tecla de atalho | |--------------------+------------------------------------------| |F10 ou Ctrl-t |menu | |--------------------+------------------------------------------| |? |mostra a ajuda para teclas (listagem mais | | |completa) | |--------------------+------------------------------------------| |F10 Ajuda Manual|mostra o Manual do Utilizador | |do Utilizador | | |--------------------+------------------------------------------| |u |actualiza a informao de arquivo do | | |pacote | |--------------------+------------------------------------------| |+ |marca o pacote para actualizao ou | | |instalao | |--------------------+------------------------------------------| ||marca o pacote para remoo (manter os | | |ficheiros de configurao) | |--------------------+------------------------------------------| |_ |marca o pacote para purgar (remover | | |ficheiros de configurao) | |--------------------+------------------------------------------| |= |coloca o pacote em reteno (hold) | |--------------------+------------------------------------------| |U |marca todos os pacotes com actualizaes | | |(funciona como full-upgrade) | |--------------------+------------------------------------------|

|g |comea a descarregar e a instalar os | | |pacotes seleccionados | |--------------------+------------------------------------------| |q |sai do ecr actual e guarda as alteraes | |--------------------+------------------------------------------| |x |sai do ecr actual e descarta as | | |alteraes | |--------------------+------------------------------------------| |Enter |ver informao acerca de um pacote | |--------------------+------------------------------------------| |C |ver o relatrio de alteraes de um pacote| |--------------------+------------------------------------------| |l |altera o limite dos pacotes mostrados | |--------------------+------------------------------------------| |/ |procura pela primeira correspondncia | |--------------------+------------------------------------------| |\ |repetir a ltima pesquisa | +---------------------------------------------------------------+ A especificao de nome de ficheiro da linha de comandos ou do aviso de menu aps pressionar "l" e "//" toma a expresso regular do aptitude conforme descrito em baixo. A expresso regular do aptitude pode corresponder explicitamente a um nome de pacote utilizando uma string comeada por "~n e seguida do nome do pacote. Dica Voc necessita pressionar "U", no interface visual, para ter todos os pacotes instalados actualizados para a verso candidata. Caso contrrio, apenas os pacotes seleccionados e certos pacotes com dependncias deles, versionadas, so actualizados para a verso candidata. 2.2.5. Vistas de pacote no aptitude No modo de ecr completo interactivo do aptitude(8), os pacotes na lista de pacotes so mostrados como no prximo exemplo. idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2

Aqui, esta linha significa desde a esquerda o seguinte: * A flag "estado actual" (a primeira letra) * A flag "aco planeada" (a segunda letra) * A flag "automtico" ( a terceira letra) * O nome do Pacote * A alterao na utilizao do espao do disco atribuda a "aco planeada" * A verso actual do pacote * A verso candidata do pacote Dica

A lista completa de flags fornecida ao fundo do ecr de Ajuda mostrada ao pressionar "?". A verso candidata escolhida de acordo com as preferncias locais actuais (veja apt_preferences(5) e Seco2.7.3, Moldar a verso candidata). Esto disponveis vrios tipos de vistas de pacotes sob o menu "Vistas". Tabela 2.9. Lista de vistas para o aptitude +---------------------------------------------------------------+ |vista |estado |descrio da vista | |-------------+----------+--------------------------------------| |Vista de | |veja Tabela2.10, A categorizao das| |Pacote |Bom |vista de pacotes standard | | | |(predefinio) | |-------------+----------+--------------------------------------| |Recomendaes| |lista pacotes que so recomendados por| |de Auditoria |Bom |alguns pacotes instalados mas ainda | | | |no esto listados como instalados | |-------------+----------+--------------------------------------| |Lista de |Bom |lista pacotes sem categorizao (para | |Pacotes Lisa | |utilizar com expresses regulares) | |-------------+----------+--------------------------------------| |Explorador de|Muito |lista pacotes categorizados de acordo | |Debtags |utilizvel|com as suas entradas debtags (http:// | | | |debtags.alioth.debian.org/) | |-------------+----------+--------------------------------------| |Explorador | |lista pacotes categorizados de acordo | |por |Obsoleto |com a sua categoria (utilize o | |Categorias | |Explorador de Debtags, em vez disto) | +---------------------------------------------------------------+ Nota Por favor ajude-nos a melhorar a etiquetagem de pacotes com debtags! (http://debtags.alioth.debian.org/todo.html) A "Vista de Pacotes standard categoriza os pacotes de certo modo como o dselect com algumas funcionalidades extra. Tabela 2.10. A categorizao das vista de pacotes standard +---------------------------------------------------------------+ |categoria |descrio da vista | |---------------------+-----------------------------------------| |Pacotes Actualizveis|lista pacotes organizados como seco | | |rea pacote | |---------------------+-----------------------------------------| |Pacotes Novos |, , | |---------------------+-----------------------------------------| |Pacotes Instalados |, , | |---------------------+-----------------------------------------| |Pacotes No |, , | |Instalados | | |---------------------+-----------------------------------------|

|Pacotes Obsoletos ou |, , | |Criados Localmente | | |---------------------+-----------------------------------------| |Pacotes Virtuais |lista pacotes com a mesma funo | |---------------------+-----------------------------------------| |Tarefas |lista pacotes com diferentes funes | | |geralmente necessrias para uma tarefa | +---------------------------------------------------------------+ Dica A vista Tarefas pode ser usada para escolher pacotes para a sua tarefa. 2.2.6. Opes do mtodo de pesquisa com o aptitude O aptitude oferece vrias opes para voc procurar pacotes utilizando a sua frmula de expresses regulares. * Linha de comandos da shell: o "aptitude search '<aptitude_regex>'" para listar estado de instalao, nome do pacote e descrio curta dos pacotes correspondentes o "aptitude show '<package_name>'" para listar a descrio detalhada do pacote * modo de ecr total interactivo: o "l" para limitar a vista de pacotes aos pacotes correspondentes o "/" para procurar um pacote correspondente o "\" para procurar um pacote correspondente voltando para trs o "n" para procurar o prximo o "N" para procurar o prximo (andando para trs) Dica A string para <nome_de_pacote> tratada como a correspondncia exacta da string para o nome do pacote a menos que seja iniciada explicitamente com "~" para ser uma frmula de expresso regular. 2.2.7. A frmula regex do aptitude A frmula de expresso regular do aptitude estendida tipo mutt ERE (veja Seco1.6.2, Expresses regulares) e o significado da extenses de regras de correspondncia especial especficas do aptitude so as seguintes: Tabela 2.11. Lista da frmula regex do aptitude +----------------------------------------------------------------------+ |descrio da regra | |

|de correspondncia |frmula da expresso regular | |extensa | | |-------------------+--------------------------------------------------| |corresponde com o |~n<regex_name> | |nome do pacote | | |-------------------+--------------------------------------------------| |corresponde com a |~d<regex_description> | |descrio | | |-------------------+--------------------------------------------------| |corresponde com |~t<regex_task> | |nome da tarefa | | |-------------------+--------------------------------------------------| |corresponde com |~G<regex_debtag> | |debtag | | |-------------------+--------------------------------------------------| |corresponde com o |~m<regex_maintainer> | |maintainer | | |-------------------+--------------------------------------------------| |corresponde com |~s<regex_section> | |seco do pacote | | |-------------------+--------------------------------------------------| |corresponde com |~V<regex_version> | |verso do pacote | | |-------------------+--------------------------------------------------| |corresponde com |~A{sarge,etch,sid} | |arquivo | | |-------------------+--------------------------------------------------| |corresponde com |~O{debian,} | |origem | | |-------------------+--------------------------------------------------| |prioridade da |~p{extra,important,optional,required,standard} | |correspondncia | | |-------------------+--------------------------------------------------| |corresponde com |~E | |pacotes essenciais | | |-------------------+--------------------------------------------------| |corresponde com |~v | |pacotes virtuais | | |-------------------+--------------------------------------------------| |corresponde com |~N | |pacotes novos | | |-------------------+--------------------------------------------------| |corresponde com |~a | |aces pendentes |{install,upgrade,downgrade,remove,purge,hold,keep}| |-------------------+--------------------------------------------------| |corresponde com os |~i | |pacotes instalados | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes instalados | | |com marca A (pacote|~M | |instalado | | |automaticamente) | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes instalados | | |sem a marca A |~i!~M | |(pacote | | |seleccionado pelo | | |administrador) | |

|-------------------+--------------------------------------------------| |corresponde com | | |pacotes instalados |~U | |e com actualizaes| | |disponveis | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes removidos |~c | |mas no purgados | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes removidos, |~g | |purgados ou que | | |podem-ser-removidos| | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes com |~b | |relaes quebradas | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes com | | |dependncias/ |~B<type> | |pr-dependncias/ | | |conflitos quebrados| | |-------------------+--------------------------------------------------| |corresponde a | | |pacotes dos quais a| | |relao <type> |~D[<type>:]<term> | |definida para o | | |pacote <term> | | |-------------------+--------------------------------------------------| |corresponde a | | |pacotes dos quais a| | |relao <type> |~DB[<type>:]<term> | |broken definida | | |para o pacote | | |<term> | | |-------------------+--------------------------------------------------| |corresponde a | | |pacotes para os | | |quais o pacote |~R[<type>:]<term> | |<term> define | | |<type> relao | | |-------------------+--------------------------------------------------| |corresponde a | | |pacotes para os | | |quais o pacote |~RB[<type>:]<term> | |<term> define | | |<type> relao | | |broken | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes com os | | |quais alguns |~R~i | |pacotes instalados | | |dependem | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes com os | | |quais nenhum outro |!~R~i |

|pacote instalado | | |depende | | |-------------------+--------------------------------------------------| |corresponde com | | |pacotes com os | | |quais alguns |~R~i|~Rrecommends:~i | |pacotes instalados | | |dependem ou | | |recomendam | | |-------------------+--------------------------------------------------| |corresponde o | | |pacote <term> com a|~S filter <term> | |verso filtrada | | |-------------------+--------------------------------------------------| |corresponde com | | |todos os pacotes |~T | |(true) | | |-------------------+--------------------------------------------------| |no corresponde com| | |nenhum pacote |~F | |(false) | | +----------------------------------------------------------------------+ * A parte da expresso regular a mesma ERE que aquela utilizada nas tpicas ferramentas de texto tipo-Unix que utilizam "^", ".*", "$" etc. como o egrep(1), awk(1) e perl (1). * A relao <type> uma de (dependncias, pr-dependncias, recomendaes, sugestes, conflitos, substituies, fornecimentos). * O tipo de relao predefinido "depends". Dica Quando <regex_pattern> for uma string nula, coloca "~T" imediatamente aps o comando. Aqui esto alguns atalhos. * "~P<term>" == "~Dprovides:<term>" * "~C<term>" == "~Dconflicts:<term>" * "~W term" == "(|term)" Os utilizadores familiarizados com o mutt aprendem rpido, pois o mutt foi a inspirao para a sintaxe de expresso. Veja "PROCURANDO, LIMITANDO,E EXPRESSES" no "Manual do Utilizador" "/ usr/share/doc/aptitude/README". Nota Com a verso lenny do aptitude(8), a nova sintaxe de formato longo como a "?broken" pode ser utilizada para correspondncia de expresses regulares no lugar da sua equivalente antiga de formato curto "~b". Agora o caractere de espao " " considerado como um caractere terminante de expresso regular em adio ao

caractere til "~". Veja o "Manual do Utilizador" para a nova sintaxe de formato longo. 2.2.8. Resoluo de dependncias do aptitude A seleco de um pacote no aptitude no puxa apenas os pacotes definidos na sua lista de "Dependncias:" mas tambm os definidos na lista "Recomendados:" se o menu "F10 Opes Manuseamento de dependncias" assim estiver definido. Estes pacotes auto-instalados so removidos automaticamente sob o aptitude se no forem mais necessrios. Nota Ante do lanamento do lenny, o apt-get e outras ferramentas standard do APT no ofereciam a funcionalidade autoremove. 2.2.9. Logs de actividade de pacotes Voc pode verificar o histrico de actividade de pacotes nos ficheiros log. Tabela 2.12. Os ficheiros log para actividades de pacotes +---------------------------------------------------------------+ |ficheiro |contedo | |--------------+------------------------------------------------| |/var/log/ |Log da actividade de nvel do dpkg para as | |dpkg.log |actividades de todos os pacotes | |--------------+------------------------------------------------| |/var/log/apt/ |Log da actividade genrica do APT | |term.log | | |--------------+------------------------------------------------| |/var/log/ |Log da actividade de comandos do aptitude | |aptitude | | +---------------------------------------------------------------+ Na realidade, no muito fcil obter rapidamente uma compreenso significativa a partir destes logs. Veja Seco9.2.10, Gravar alteraes em ficheiros de configurao para um modo mais fcil. 2.3. Exemplos de operaes do aptitude Aqui esto alguns exemplos de operaes do aptitude(8). 2.3.1. Listagem de pacotes com correspondncia por expresso regular nos nomes de pacotes O seguinte comando lista pacotes com regex a condizer com nomes de pacotes. $ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - mdulo NSS para usar LDAP como um servio de nomes p libpam-ldap - Mdulo de Autenticao Acoplvel que permite interfaces do LDAP Isto d muito jeito para para encontrar o nome exacto de um pacote. 2.3.2. Explorar com a correspondncia de expresso regular

a expresso regular "~dipv6" na vista "Nova Lista de Pacotes Simples" com o aviso "l", limita a vista aos pacotes com a descrio correspondente e permite-lhe explorar interactivamente a sua informao. 2.3.3. Purgar pacotes removidos definitivamente Voc pode purgar todos os restantes ficheiros de configurao dos pacotes removidos. Verifique os resultados do seguinte comando. # aptitude search '~c' Se achar que os pacotes listados podem ser purgados, execute o seguinte comando: # aptitude purge '~c' Voc pode querer fazer o mesmo no modo interactivo para um controle mais preciso. Voc fornece a expresso regular "~c" na vista "Nova Lista Plana de Pacotes" com a propmpt "l". Isto limita a vista de pacotes apenas aos pacotes correspondentes expresso regular, isto , "removidos mas no purgados". Todos estes pacotes correspondentes a expresses regulares podem ser mostrados ao pressionar "[" nos cabealhos de nvel de topo. Depois pressione "_" em cabealhos de nvel de topo tal como "pacotes instalados". Apenas os pacotes correspondentes expresso regular sob o cabealho so marcados para serem purgados com isto. Voc pode excluir alguns pacotes a serem purgados ao pressionar "=" interactivamente para cada um deles. Esta tcnica muito til e funciona com muitas outras teclas de comando. 2.3.4. Acertar o estado auto/manual de instalao Aqui est como acertar o estado auto/manual de instalao dos pacotes (aps usar um instalador de pacotes sem ser o aptitude e etc.). 1. Arranque o aptitude em modo interactivo como root. 2. Escreva "u", "U", "f" e "g" para actualizar a lista de pacotes e actualizar os pacotes. 3. Escreva "l" para inserir o limite de visualizao de pacotes aos "~i(~R~i|~Recomendados:~i)" e escreva "M" sobre "Pacotes Instalados" como auto-instalado. 4. Escreva "l" para inserir o limite de visualizao de pacotes como "~prequired|~pimportant|~pstandard|~E" e escreva "m" sobre "Pacotes Instalados" como instalados manualmente. 5. Escreva "l" para inserir o limite de visualizao de pacotes como "~i!~M" e remover pacotes no utilizados ao escrever "-"

sobre cada um deles aps exp-los ao escrever "[" sobre "Pacotes Instalados". 6. Escreva "l" para inserir o limite de amostragem de pacotes como "~i" e escreva "m" sobre "Tasks" como instalado manualmente. 7. Termina o aptitude. 8. Inicie "apt-get -s autoremove|less" como root para verificar os que no so usados. 9. Reinicie o aptitude em modo interactivo e marque os pacotes necessrios como "m". 10. Reinicie o "apt-get -s autoremove|less" como root para verificar que o REMOVED contm apenas os pacotes esperados. 11. Arranque "apt-get autoremove|less" como root para auto-remover os pacotes no usados. A opo "m" sobre "Tasks" uma opo para prevenir situaes de remoo de pacotes em massa no futuro. 2.3.5. Actualizao total ao sistema Nota Quando mover para um novo lanamento etc, dever considerar fazer uma instalao limpa do novo sistema mesmo sabendo que Debian actualizvel como descrito em baixo. Isto d-lhe a hiptese de remover os lixos coleccionados e expe-lhe a melhor combinao do pacotes mais recentes. claro que dever fazer uma cpia de segurana do sistema para um lugar seguro (veja Seco10.1.6, Salvaguarda (backup) e recuperao) antes de fazer isto. Eu recomendo fazer uma configurao de duplo arranque usando parties diferentes para ter a transio mais suave. Voc pode executar a actualizao geral do sistema para um lanamento mais recente ao alterar o contedo do ficheiro "/etc/ apt/sources.list" apontando para um novo lanamento e correndo o comando "apt-get update; apt-get dist-upgrade". Para actualizar de stable para testing ou unstable, voc substitui "squeeze" no exemplo "/etc/apt/sources.list" de Seco2.1.4, Bsico do arquivos Debian por "wheezy" ou "sid". Na realidade, voc pode enfrentar algumas complicaes devido a problemas com a transio de alguns pacotes, na maioria devido a dependncias desses pacotes. Quanto maior a diferena da actualizao, maior a probabilidade de ter grandes problemas. Para a transio da stable antiga para a nova stable aps o seu lanamento, voc pode ler as suas novas Notas de Lanamento (http://www.debian.org/releases/stable/releasenotes) e seguir o procedimento exacto descrito l para minimizar problemas. Quando voc decidir mover de stable para testing antes do seu lanamento formal, no existem Notas de Lanamento (http:// www.debian.org/releases/stable/releasenotes) para o ajudar. A diferena entre stable e testing pode ter crescido bastante aps

o lanamento stable anterior e complicar a situao da actualizao. Voc deve dar passos de precauo para a actualizao total enquanto recolhe a informao mais recente da lista de mail e usando senso comum. 1. Leia as "Notas de Lanamento" anteriores. 2. Faa cpia de segurana a todo o sistema (especialmente dados e informao de configurao). 3. Tenha um meio de arranque mo para o caso do gestor de arranque ficar danificado. 4. Informe os utilizadores do sistema com bastante antecedncia. 5. Grave a actividade de actualizao com o script(1). 6. Para prevenir a remoo aplique "unmarkauto" aos pacotes necessrios, p.e., "aptitude unmarkauto vim", . 7. Minimize o nmero de pacotes instalados para reduzir a hiptese de conflitos de pacotes, p.e., remova os pacotes da tarefas de ambiente de trabalho. 8. Remova o ficheiro "/etc/apt/preferences" (desactiva o apt-pinning). 9. Tente a actualizao em passos inteligentes: oldstable stable testing unstable. 10. Actualize o ficheiro "/etc/apt/sources.list" para apontar apenas para o novo arquivo e corra "aptitude update". 11. Instale, opcionalmente, os novos pacotes de base primeiro, ex., "aptitude install perl". 12. Corra o comando "apt-get -s dist-upgrade" para avaliar o impacto. 13. Corra o comando "apt-get dist-upgrade" em ltimo lugar. Cuidado No sensato saltar grandes lanamentos de Debian quando se actualiza entre lanamentos stable. Cuidado Nas "Notas de Lanamento" anteriores, GCC, Linux Kernel, initrd-tools, Glibc, Perl, a cadeia de ferramentas do APT, etc. necessitaram de alguma ateno especial para a actualizao geral do sistema. Para actualizaes dirias em unstable, veja Seco2.4.3, Salvaguardar para problemas de pacotes.. 2.4. Operaes de gesto avanada de pacotes

2.4.1. Operaes de gesto avanada de pacotes com linha de comandos Aqui est uma lista de outras operaes de gesto de pacotes para as quais o aptitude de demasiado alto nvel ou faltam-lhe funcionalidades necessrias. Tabela 2.13. Lista de operaes de gesto avanada de pacotes +---------------------------------------------------------------+ |comando |aco | |----------------------------+----------------------------------| |COLUMNS=120 dpkg -l |lista o estado de um pacote | |<padro_do_nome_de_pacote> |instalado para o relatrio de bug | |----------------------------+----------------------------------| |dpkg -L <nome_do_pacote> |lista o contedo de um pacote | | |instalado | |----------------------------+----------------------------------| |dpkg -L <nome_do_pacote> | |lista os manuais para um pacote | |egrep '/usr/share/man/man.* |instalado | |/.+' | | |----------------------------+----------------------------------| |dpkg -S |lista os pacotes instalados que | |<padro_do_nome_de_ficheiro>|condizem com o nome de ficheiro | |----------------------------+----------------------------------| |apt-file search |lista pacotes no arquivo que | |<padro_do_nome_de_ficheiro>|condizem com o nome de ficheiro | |----------------------------+----------------------------------| |apt-file list |lista os contedos dos pacotes que| |<padro_do_nome_de_pacote> |condizam no arquivo | |----------------------------+----------------------------------| |dpkg-reconfigure |reconfigura o pacote exacto | |<nome_do_pacote> | | |----------------------------+----------------------------------| |dpkg-reconfigure -p=low |reconfigura o pacote exacto com as| |<nome_do_pacote> |questes mais detalhadas | |----------------------------+----------------------------------| |configure-debian |reconfigura pacotes a partir do | | |menu de ecr completo | |----------------------------+----------------------------------| |dpkg --audit |faz auditoria ao sistema por | | |pacotes parcialmente instalados | |----------------------------+----------------------------------| |dpkg --configure -a |configura todos os pacotes | | |parcialmente instalados | |----------------------------+----------------------------------| |apt-cache policy |mostra a verso disponvel, a | |<nome_do_pacote_binrio> |prioridade e informao de arquivo| | |de um pacote binrio | |----------------------------+----------------------------------| |apt-cache madison |mostra a verso disponvel e | |<nome_do_pacote> |informao de arquivo de um pacote| |----------------------------+----------------------------------| |apt-cache showsrc |mostra informao do pacote de | |<nome_do_pacote_binrio> |cdigo-fonte de um pacote binrio | |----------------------------+----------------------------------| |apt-get build-dep |instala os pacotes necessrios | |<nome_do_pacote> |para compilar pacote | |----------------------------+----------------------------------| |aptitude build-dep |instala os pacotes necessrios | |<nome_do_pacote> |para compilar pacote |

|----------------------------+----------------------------------| |apt-get source |descarrega cdigo-fonte (do | |<nome_do_pacote> |arquivo standard) | |----------------------------+----------------------------------| |dget <URL para ficheiro dsc>|descarrega um pacote de | | |cdigo-fonte (de outro arquivo) | |----------------------------+----------------------------------| | |constri uma rvore de | |dpkg-source -x |cdifo-fonte a partir de um | |<nome_do_pacote>_<verso>- |conjunto de pacotes de | |<verso_debian>.dsc |cdigo-fonte ("*.orig.tar.gz" e | | |"*.debian.tar.gz"/"*.diff.gz") | |----------------------------+----------------------------------| |debuild binary |compila pacote(s) a partir de uma | | |rvore fonte local | |----------------------------+----------------------------------| | |compila um pacote de kernel a | |make-kpkg imagem_de_kernel |partir de uma rvore fonte de | | |kernel | |----------------------------+----------------------------------| |make-kpkg --initrd |compila um pacote de kernel a | |imagem_de_kernel |partir de uma rvore fonte de | | |kernel com initramfs activa | |----------------------------+----------------------------------| |dpkg -i <nome_pacote>_ |instalar um pacote local no | |<verso>-<verso_debian>_ |sistema | |<arquitectura>.deb | | |----------------------------+----------------------------------| |debi <nome_pacote>_<verso>-|instala pacote(s) locais no | |<verso_debian>_ |sistema | |<arquitectura>.dsc | | |----------------------------+----------------------------------| |dpkg --get-selections '*' > |guarda a informao de estado de | |seleco.txt |seleco a nvel de pacotes do | | |dpkg | |----------------------------+----------------------------------| |dpkg --set-selections |define a informao de estado de | |<seleco.txt |seleco a nvel de pacotes do | | |dpkg | |----------------------------+----------------------------------| | |define o estado de seleco de | |echo <nome-do-pacote> hold ||pacote ao nvel do dpkg para hold | |dpkg --set-selections |(equivalente a "aptitude hold | | |<nome_do_pacote>") | +---------------------------------------------------------------+ Cuidado As ferramentas de pacotes de nvel mais baixo como "dpkg -i " e "debi " devero ser utilizadas com cuidado pelo administrador do sistema. No tomam conta automaticamente das dependncias de pacotes necessrias. As opes de linha de comandos do dpkg "--force-all" e semelhantes (veja dpkg(1)) destinam-se apenas a serem utilizadas por especialistas. Utiliza-las sem o conhecimento total dos seus efeitos pode danificar completamente o seu sistema. Por favor note o seguinte:

* Toda a configurao do sistema e comandos de instalao necessitam ser executados pelo root. * A contrrio do aptitude, que utiliza regex (veja Seco1.6.2, Expresses regulares), os outros comandos de gesto de pacotes utilizam padres como a shell glob (veja Seco1.5.6, Glob da shell). * O apt-file(1), disponibilizado pelo pacote apt-file, tem de correr previamente "apt-file update". * O configure-debian(8) disponibilizado pelo pacote configure-debian corre o dpkg-reconfigure(8) como seu backend. * O dpkg-reconfigure(8) corre scripts de pacote utilizando o debconf(1) como o seu backend. * Os comandos "apt-get build-dep", "apt-get source" e "apt-cache showsrc" necessitam de "deb-src" em "/etc/apt/ sources.list". * Os dget(1), debuild(1), e debi(1) necessitam do pacote devscripts. * Veja o procedimento de (re)empacotamento utilizando "apt-get source" em Seco2.7.13, Portar um pacote para o sistema stable. * O comando make-kpkg necessita do pacote kernel-package (veja Seco9.7, O kernel). * Para empacotamento em geral veja Seco12.11, Criar um pacote Debian. 2.4.2. Verificao dos ficheiros pacotes instalados A instalao de debsums permite a verificao dos ficheiros dos pacotes instalados contra valores MD5sum do ficheiro "/var/lib/ dpkg/info/*.md5sums" com debsums(1). Para saber como o MD5sum funciona veja Seco10.4.5, O valor de controlo MD5 . Nota Como a base de dados MD5sum pode ser adulterada por um intruso, o debsums(1) uma ferramenta de segurana de utilizao limitada. bom apenas para verificar modificaes locais pelo administrador ou danos devido a erros de media. 2.4.3. Salvaguardar para problemas de pacotes. Muito utilizadores preferem seguir o lanamento unstable do sistema Debian pelas suas novas funcionalidades e pacotes. Isto torna o sistema permevel a a bugs crticos dos pacotes. A instalao do pacote apt-listbugs salvaguarda o seu sistema contra bugs crticos ao verificar automaticamente o Debian BTS por bugs crticos quando fizer actualizaes com o sistema APT. A instalao do pacote apt-listchanges disponibiliza notcias

importantes de "NEWS.Debian" ao actualizar com o sistema APT. 2.4.4. Procurar nos meta-dados do pacote Embora hoje em dia visitar o site Debian http:// packages.debian.org/ (http://packages.debian.org/) facilite a busca nos meta-dados do pacote, vamos ver modos mais tradicionais. Os comandos grep-dctrl(1), grep-status(1) e grep-available(1) podem ser utilizados para procurar qualquer ficheiro que tenha o formato geral de um ficheiro de controle de pacote Debian. "dpkg -S <padro_de_nome_de_ficheiro>" pode ser utilizado para procurar nomes de pacotes instalados pelo dpkgque contenham ficheiros com o nome coincidente. Mas isto no v os ficheiros criados pelo script do responsvel do pacote. Se necessitar de fazer uma busca mais elaborada nos meta-dados do dpkg, voc necessita executar o comando "grep -e padro_de_expresso_regular *" no directrio "/var/lib/dpkg/info/ ". Isto f-lo procurar as palavras mencionadas nos scripts dos pacotes e nos textos de questes de instalao. Se desejair procurar, recursivamente, as dependncias de pacotes, dever utilizar o apt-rdepends(8). 2.5. Os interiores da gesto de pacotes Debian Vamos aprender como o sistema de gesto de pacotes Debian funciona internamente. Isto dever ajud-lo a criar a sua prpria soluo para alguns problemas com pacotes. 2.5.1. Meta dados do arquivo Os ficheiros de meta-dados para cada distribuio so armazenados sob "dist/<nome-de_cdigo>" em cada site mirror Debian, p.e., "http://ftp.us.debian.org/debian/". A sua estrutura de arquivo pode ser explorada com um navegador web. Existem 6 tipos de meta-dados chave. Tabela 2.14. O contedo dos meta dados do arquivo Debian +---------------------------------------------------------------+ |ficheiro |localizao |contedo | |--------------+---------------------+--------------------------| |Release |topo da distribuio |descrio do arquivo e | | | |informao de integridade | |--------------+---------------------+--------------------------| | | |ficheiro de assinatura | |Release.gpg |topo da distribuio |para o ficheiro "Release" | | | |assinado com a chave do | | | |arquivo | |--------------+---------------------+--------------------------| | | |lista de todos os | |Contents|topo da distribuio |ficheiros para todos os | |<architecture>| |pacotes no arquivo | | | |pertinente | |--------------+---------------------+--------------------------| | |topo de cada |descrio do arquivo |

|Release |combinao de |utilizada para a regra do | | |distribuio/rea/ |apt_preferences(5) | | |arquitectura | | |--------------+---------------------+--------------------------| | |topo de cada | | |Packages |combinao de |debian/control concatenado| | |distribuio/rea/ |para pacotes binrios | | |arquitectura-binrio | | |--------------+---------------------+--------------------------| | |topo de cada | | |Sources |combinao de |debian/control concatenado| | |distribuio/rea/ |para pacotes fonte | | |fonte | | +---------------------------------------------------------------+ No arquivo recente, estes meta-dados so armazenados como ficheiros diferenciais e comprimidos para reduzir o trfego de rede. 2.5.2. Ficheiro "Release" de nvel de topo e autenticidade: Dica O ficheiro "Release" no nvel de topo usado para assinar o arquivo sob o sistema secure APT. Cada suite do arquivo Debian tem um ficheiro "Release" no nvel de topo, p.e., "http://ftp.us.debian.org/debian/dists/unstable/ Release", como o seguinte: Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsdi386 mips mipsel powerpc s390 sparc Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum: bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz ... Nota Aqui, voc pode encontrar a minha lgica de utilizar "suite" e "nomei de cdigo" em Seco2.1.4, Bsico do arquivos Debian. A "distribuio" usada quando se refere a ambos "suite" e "nome_de_cdigo". Todos os nomes de "reas" do arquivo oferecidos pelo arquivo so listados sob "Componente". A integridade do ficheiro "Release" de nvel de topo verificada pela infraestrutura criptogrfica chamada secure apt (http:// wiki.debian.org/SecureApt) . * O ficheiro de assinatura criptogrfica "Release.gpg" criado

a partir do ficheiro "Release" de nvel de topo autenticado e da chave secreta do arquivo Debian. * A chave do arquivo Debian pblico pode ser semeada em "/etc/ apt/trusted.gpg"; o automaticamente ao instalar o chaveiro com o pacote base-files mais recente, ou o manualmente pela ferramenta gpg ou apt-key com a chave de arquivo pblico mais recente publicada em ftp-master.debian.org (http://ftp-master.debian.org/) . * O sistema secure APT verifica a integridade do ficheiro "Release" de nvel de topo descarregado criptograficamente por este ficheiro "Release.gpg" a pela chave de arquivo pblico Debian em "/etc/apt/trusted.gpg". A integridade de todos os ficheiros "Packages" e "Sources" verificada utilizando valores MD5sum do ficheiro "Release" de nvel de topo. A integridade de todos os ficheiros de pacotes verificada utilizando valores MD5sum nos ficheiros "Packages" e "Sources" Veja debsums(1) e Seco2.4.2, Verificao dos ficheiros pacotes instalados. Como a verificao de assinatura criptogrfica um processo muito mais intenso para a CPU do que o clculo de valor MD5sum, a utilizao de valores MD5sum para cada pacote enquanto se utiliza assinatura criptogrfica para o ficheiro "Release" de nvel de topo disponibiliza boa segurana com desempenho (http:// www.infodrom.org/~joey/Writing/Linux-Journal/secure-apt/) (veja Seco10.4, Infraestrutura da segurana de dados). 2.5.3. Ficheiros "Release" do nvel de arquivo Dica Os ficheiros "Release" do nvel de arquivo so utilizados para a regra do apt_preferences(5). Existem ficheiros "Release" do nvel de arquivo para todas as localizaes do arquivo especificadas pela linha "deb" em "/etc/ apt/sources.list", tais como "http://ftp.us.debian.org/debian/ dists/unstable/main/binary-amd64/Release" ou "http:// ftp.us.debian.org/debian/dists/sid/main/binary-amd64/Release" conforme se segue: Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64 Cuidado Para a estrofe "Archive:" so utilizados os nomes de suite ("stable", "testing" e "unstable", ) no arquivo Debian (http:// ftp.us.debian.org/debian/) enquanto que os nomes de cdigo ("dapper", "feisty", "gutsy", "hardy" e "intrepid", ) so utilizados no arquivo Ubuntu (http://archive.ubuntu.com/ubuntu/)

. Para alguns arquivos, tais como experimental, e squeeze-backports, que contm pacotes que no devem ser instalados automaticamente, existe uma linha extra, p.e., "http:/ /ftp.us.debian.org/debian/dists/experimental/main/binary-amd64/ Release" como se segue. Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64 Por favor note que para arquivos normais sem "NotAutomatic: yes", o valor Pin-Priority predefinido 500, enquanto que para arquivos especiais com "NotAutomatic: yes", o valor Pin-Priority predefinido 1 (veja apt_preferences(5) e Seco2.7.3, Moldar a verso candidata). 2.5.4. Obter os meta dados do pacote Quando as ferramentas do APT, como o aptitude, apt-get, synaptic, apt-file, auto-apt, so utilizadas, ns precisamos de actualizar as cpias locais dos meta-dados que contm a informao do arquivo Debian. Estas cpias locais tm os seguintes nomes de ficheiros correspondentes aos nomes de distribuio, rea, e arquitectura especificados em "/etc/apt/ sources.list" (veja Seco2.1.4, Bsico do arquivos Debian). * "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribuio>_Release" * "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribuio>_Release.gpg" * "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribuio>_<rea>_binrio-<arquitectura>_Packages" * "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribuio>_<rea>_fonte_Sources" * "/var/cache/apt/apt-file/ftp.us.debian.org_debian_dists_ <distribuio>_Contents-<arquitectura>.gz" (para o apt-file) Os primeiros 4 tipos de ficheiros so partilhados por todos os comandos APT pertinentes e actualizados a partir da linha de comandos pelo "apt-get update" e "aptitude update". Os meta-dados "Packages" so actualizados se existir a linha "deb" em "/etc/apt /sources.list". Os meta dados "Sources" so actualizados se existir a linha "deb-src" em "/etc/apt/sources.list". Os meta-dados "Packages" e "Sources" contm a estrofe "Filename:" que aponta para a localizao de ficheiro dos pacotes binrios e de cdigo-fonte. Actualmente, estes pacotes esto localizados sob a rvore de directrios "pool/" para a transio melhorada atravs dos lanamentos. As cpias locais dos meta-dados "Packages" podem ser pesquisadas

interactivamente com a ajuda do aptitude. O comando de procura especializada grep-dctrl(1) pode pesquisar as cpias locais dos meta-dados "Packages" e "Sources". A cpia local dos meta-dados "Contents-<arquitectura>" pode ser actualizada pelo "apt-file update" e a sua localizao diferente dos outros 4. Veja apt-file(1). (O auto-apt utiliza localizao diferente para a cpia local de "Contents<arquitectura>.gz" por predefinio.) 2.5.5. O estado dos pacote para o APT Alm aos meta-dados obtidos remotamente, a ferramenta APT aps o lenny armazena a sua informao de estado de instalao gerada localmente em "/var/lib/apt/extended_states" que utilizada por todas as ferramentas do APT para seguirem todos os pacotes auto-instalados. 2.5.6. O estado dos pacote para o aptitude Alm aos meta-dados obtidos remotamente, o aptitude armazena a sua informao de estado de instalao gerada localmente em "/var /lib/aptitude/pkgstates" que usada apenas pelo prprio. 2.5.7. Copias locais dos pacotes obtidos Todos os pacotes obtidos remotamente atravs do mecanismo APT so armazenados em "/var/cache/apt/archives" at que sejam limpos. 2.5.8. Nomes de ficheiros de pacotes Debian Ficheiros de pacotes Debian tm estruturas de nomes particulares. Tabela 2.15. A estrutura de nomes dos pacotes Debian +---------------------------------------------------------------+ |tipo de pacote |estrutura de nomes | |---------------------------+-----------------------------------| |O pacote binrio (a.k.a |<nome_de_pacote>_<epoch>: | |deb) |<verso_upstream>-<verso.debian>- | | |<arquitectura>.deb | |---------------------------+-----------------------------------| |O pacote binrio (a.k.a |<nome_de_pacote>_<epoch>: | |udeb) |<verso_upstream>-<verso.debian>- | | |<arquitectura>.udeb | |---------------------------+-----------------------------------| |O pacote de cdigo-fonte |<nome_de_pacote>_<epoch>: | |(cdigo-fonte da origem) |<verso_upstream>| | |<verso.debian>.orig.tar.gz | |---------------------------+-----------------------------------| |O pacote de cdigo-fonte |<nome_de_pacote>_<epoch>: | |1.0 (alteraes do Debian) |<verso_upstream>| | |<verso.debian>.diff.gz | |---------------------------+-----------------------------------| |O pacote de cdigo-fonte |<nome_de_pacote>_<epoch>: | |3.0 (quilt) (alteraes do |<verso_upstream>| |Debian) |<verso.debian>.debian.tar.gz | |---------------------------+-----------------------------------| |O pacote de cdigo-fonte |<nome_do_pacote>_<epoch>: | |(descrio) |<verso_upstream>|

| |<verso.debian>.dsc | +---------------------------------------------------------------+ Dica Aqui apenas so descritos formatos de pacote fonte bsicos. Veja mais em dpkg-source(1). Tabela 2.16. Os caracteres utilizveis para cada componente nos nomes de pacotes Debian +------------------------------------------------------------+ |componente do nome|caracteres utilizveis (regex)|existncia| |------------------+------------------------------+----------| |<nome-do-pacote> |[a-z,A-Z,0-9,.,+,-]+ |necessrio| |------------------+------------------------------+----------| |<epoch>: |[0-9]+: |opcional | |------------------+------------------------------+----------| |<verso-upstream> |[a-z,A-Z,0-9,.,+,-,:]+ |necessrio| |------------------+------------------------------+----------| |<verso.debian> |[a-z,A-Z,0-9,.,+,~]+ |opcional | +------------------------------------------------------------+ Nota Pode verificar a ordem da verso de pacotes com o dpkg(1), p.e., "dpkg --compare-versions 7.0 gt 7.~pre1 ; echo $?" . Nota O debian-installer (d-i) (http://www.debian.org/devel/ debian-installer/) utiliza udeb como a extenso de ficheiro para o seu pacote binrio em vez do normal deb. Um pacote udeb um pacote deb despido que remove alguns contedos no essenciais como a documentao para poupar espao enquanto relaxa os requisitos de poltica do pacote. Ambos os pacotes deb e udeb partilham a mesma estrutura de pacote. O "u" significa micro. 2.5.9. O comando dpkg dpkg(1) a ferramenta de mais baixo nvel para a gesto de pacotes Debian. muito poderosa e tem que ser utilizada com cuidado. Enquanto instala o pacote chamado "<nome_de_pacote>", o dpkg processa-o na seguinte ordem: 1. Desempacota o ficheiro deb (equivalente a "ar -x") 2. Executa "<nome_de_pacote>.preinst" utilizando o debconf(1) 3. Instala o contedo do pacote no sistema (equivalente a "tar -x") 4. Executa "<nome_de_pacote>.postinst" utilizando o debconf(1) O sistema debconf disponibiliza interaco standard com o utilizador com suporte de I18N e L10N (Captulo8, I18N e L10N).

Tabela 2.17. Ficheiros notveis criados pelo dpkg +---------------------------------------------------------------+ |ficheiro |descrio dos contedos | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |lista de ficheiros de configurao. | |<nome_do_pacote>.conffiles|(modificvel pelo utilizador) | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |lista de ficheiros e directrios | |<nome_do_pacote>.list |instalados pelo pacote | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |lista de valores de hash MD5 para os| |<nome_do_pacote>.md5sums |ficheiros instalados pelo pacote | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |script de pacote executado antes da | |<nome_do_pacote>.preinst |instalao do pacote | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |script de pacote executado aps a | |<nome_do_pacote>.postinst |instalao do pacote | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |script de pacote executado antes da | |<nome_do_pacote>.prerm |remoo do pacote | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |script de pacote executado aps a | |<nome_do_pacote>.postrm |remoo do pacote | |--------------------------+------------------------------------| |/var/lib/dpkg/info/ |script de pacote para o sistema | |<nome_do_pacote>.config |debconf | |--------------------------+------------------------------------| |/var/lib/dpkg/alternatives|a informao alternativa usada pelo | |/<nome_do_pacote> |comando update-alternatives | |--------------------------+------------------------------------| |/var/lib/dpkg/available |a informao de disponibilidade para| | |todos os pacotes | |--------------------------+------------------------------------| | |a informao de diverses usada pelo| |/var/lib/dpkg/diversions |dpkg(1) e definida pelo `dpkg-divert| | |`(8) | |--------------------------+------------------------------------| | |a informao de estado de | |/var/lib/dpkg/statoverride|sobreposio usada pelo dpkg(1) e | | |definida pelo `dpkg-statoverride`(8)| |--------------------------+------------------------------------| |/var/lib/dpkg/status |a informao de estado para todos os| | |pacotes | |--------------------------+------------------------------------| |/var/lib/dpkg/status-old |o backup de primeira gerao do | | |ficheiro "var/lib/dpkg/status" | |--------------------------+------------------------------------| | |o backup de segunda gerao e os | |/var/backups/dpkg.status* |mais antigos do ficheiro "var/lib/ | | |dpkg/status" | +---------------------------------------------------------------+ O ficheiro "status" tambm utilizado por ferramentas como o dpkg(1), o "dselect update" e o "apt-get -u dselect-upgrade". O comando especializado de busca grep-dctrl(1) pode procurar as

cpias locais dos meta dados "status" e "available". Dica No ambiente do debian-installer (http://www.debian.org/devel/ debian-installer/) , o comando udpkg usado para abrir pacotes udeb. O comando udpkg uma verso reduzida do comando dpkg. 2.5.10. O comando update-alternative O sistema Debian tem um mecanismo para instalar programas de certa maneira sobrepostos de um modo pacfico usando update-alternatives(8). Por exemplo, voc pode fazer o comando vi seleccionar o vim para executar enquanto instala ambos os pacotes vim e nvi. $ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/ vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi Selection Command ---------------------------------------------1 /usr/bin/vim *+ 2 /usr/bin/nvi Enter para manter a predefinio[*], ou escreva o nmero da seleco: 1 O sistema de alternativas do Debian mantm a sua seleco como links simblicos em "/etc/alternatives/". O processo de seleco utiliza um ficheiro correspondente em "/var/lib/dpkg/alternatives /". 2.5.11. O comando dpkg-statoverride Stat overrides disponibilizados pelo so um modo de dizer ao dpkg(1) para diferente para um ficheiro quando um especificado "--update" e o ficheiro definido para o novo dono e modo. Cuidado A alterao directa do dono ou modo para um ficheiro cujo dono o pacote usando os comandos chmod ou chown pelo administrador do sistema reiniciada pela prxima actualizao do pacote. Nota Eu uso a palavra ficheiro aqui, mas na verdade pode ser qualquer objecto de sistema de ficheiros com que o dpkg lide, incluindo directrios, dispositivos, etc. 2.5.12. O comando dpkg-divert As diverses de ficheiros disponibilizadas pelo comando dpkg-divert(8) so um modo de forar o dpkg(1) a no instalar um ficheiro na sua localizao predefinida, mas para uma localizao divergida. Os uso do dpkg-divert destina-se aos scripts do comando dpkg-statoverride(8) usar um dono ou modo pacote for instalado. Se for existir imediatamente

responsvel do pacote. A sua utilizao casual pelo administrador do sistema est descontinuada. 2.6. Recuperao de um sistema danificado Quando corre o sistema unstable, espera-se que o administrador saiba recuperar o sistema de situaes de gesto de pacotes com conflitos. Cuidado Alguns mtodos descritos aqui so aces de alto risco. Voc foi avisado! 2.6.1. Incompatibilidade com configuraies antigas de utilizador Se um programa GUI de ambiente de trabalho ficou instvel aps uma actualizao significante da verso original, voc deve suspeitar de interferncias com os ficheiros locais de configurao antigos criados por ele. Se estiver estvel sob uma conta de utilizador nova criada, esta hiptese est confirmada. (Isto um bug de empacotamento e geralmente evitado pelo empacotador.) Para recuperar a estabilidade, voc deve mover os ficheiros de configurao locais correspondentes e reiniciar o programa GUI. Voc poder ter que ler o contedo dos ficheiros de configurao antigos para mais tarde recuperar informao de configurao. (No os apague muito depressa.) 2.6.2. Pacotes diferentes com ficheiros sobrepostos Os sistemas de gesto de pacotes a nvel de arquivo, como o aptitude(8) ou o apt-get(1), nem tentam instalar pacotes com ficheiros sobrepostos utilizando as dependncias do pacote. (veja Seco2.1.6, Dependncias de pacote). Erros do responsvel do pacote ou de implantao inconsistente de mistura de fontes de arquivos (veja Seco2.7.2, Pacotes de fontes de arquivos misturados) pelo administrador do sistema podem criar situaes com dependncias de pacotes definidas incorrectamente. Quando voc instala um pacote com ficheiros sobrepostos usando o aptitude(8) ou o apt-get(1) sob tal situao, o dpkg(1) que desempacota o pacote certifica-se de retornar um erro ao programa que o chama sem sobrescrever os ficheiros existentes. Cuidado A utilizao de pacotes de terceiros introduz riscos significantes ao sistema atravs dos scripts do desenvolvedor do pacote que so executados com privilgios de root e podem fazer o que quiserem ao seu sistema. O comando dpkg(1) apenas protege contra a sobreposio de ficheiros ao desempacotar. Voc pode contornar tal problema de instalao ao remover primeiro o pacote ofensivo antigo, <pacote_antigo>. $ sudo dpkg -P <pacote-antigo>

2.6.3. Corrigir script problemtico de pacote Quando um comando no script do pacote retorna erro por alguma razo e o script termina com erro, o sistema de gesto de pacotes aborta a sua aco e termina com pacotes parcialmente instalados. Quando um pacote contm bugs nos seus scripts de remoo, o pacote pode tornar-se impossvel de remover e isso bastante desagradvel. Para o problema do script de pacote de "<nome_do_pacote>", voc deve observar os seguintes scripts do pacote: * "/var/lib/dpkg/info/<nome_do_pacote>.preinst" * "/var/lib/dpkg/info/<nome_do_pacote>.postinst" * "/var/lib/dpkg/info/<nome_do_pacote>.prerm" * "/var/lib/dpkg/info/<nome_do_pacote>.postrm" Editar o script do pacote ofensivo a partir de root usando as seguintes tcnicas: * desactivar a linha ofensiva ao preceder um "#" * forar um retorno com sucesso ao acrescentar a linha ofensiva com "|| true" Configurar todos os pacotes parcialmente instalados com o seguinte comando. # dpkg --configure -a 2.6.4. Recuperao com o comando dpkg Como o dpkg uma ferramenta de pacotes de muito baixo nvel, pode funcionar sob situaes muito ms como um sistema que no arranca sem ligao a rede. Vamos assumir que o pacote foo est danificado e precisa de ser substitudo. Voc pode ainda encontrar cpias em cache de uma verso antiga livre de bugs do pacote foo no directrio de cache de pacotes: "/ var/cache/apt/archives/". (se no, voc pode descarreg-lo a partir do arquivo http://snapshot.debian.net/ (http:// snapshot.debian.net/) ou copi-lo da cache de pacotes de uma mquina funcional.) Se puder arrancar o sistema, voc pode instal-lo com o seguinte comando. # dpkg -i /caminho/para/foo_<verso_antiga>_<arquitectura>.deb Dica Se os danos no sistema forem menores, voc pode em alternativa fazer downgrade (regredir a verso) ao sistema completo como Seco2.7.10, Downgrade de emergncia utilizando o sistema APT de mais alto nvel. Se o seu sistema no puder arrancar pelo disco rgido, voc

precisa procurar outras maneiras de arranc-lo. 1. Arranque o sistema usando o CD de instalao de Debian (debian-installer) em modo de recuperao. 2. Monte o sistema danificado no disco rgido em "/target". 3. Instale uma verso antiga do pacote foo com o seguinte. # dpkg --root /target -i /caminho/para/foo_<verso_antiga>_<arquitectura>.deb Este exemplo funciona mesmo se o comando dpkg no disco rgido estiver danificado. Dica Pode ser utilizado, de modo semelhante, para recuperar um sistema danificado qualquer sistema GNU/Linux arrancado de outro sistema no disco rgido, Live CD de GNU/Linux, por pen USB de arranque ou arranque pela rede. Se a tentativa de instalar um pacote deste modo falha devido a algumas violaes de dependncias e voc necessitar realmente de fazer isto como ltimo recurso, voc pode sobrepor a dependncia utilizando a "--ignore-depends", "--force-depends" e outras opes do dpkg. Se fizer isto, voc precisa de fazer um srio esforo para restaurar as dependncias apropriadas mais tarde. Veja dpkg(8) para mais detalhes. Nota Quando o seu sistema estiver seriamente danificado, voc deve fazer uma salvaguarda completa para um lugar seguro (veja Seco10.1.6, Salvaguarda (backup) e recuperao) e deve fazer uma instalao limpa. Isto consome menos tempo e produz melhores resultados no fim. 2.6.5. Recuperar dados de seleco de pacotes Se por qualquer razo o "/var/lib/dpkg/status" ficar corrompido o sistema Debian perde os dados de seleco de pacotes e sofre severamente. Procure o ficheiro antigo "/var/lib/dpkg/status" em "/var/lib/dpkg/status-old" ou "/var/backups/dpkg.status.*". Manter "/var/backups/" numa partio separada pode ser uma boa ideia porque este directrio contm muitos dados importantes do sistema . Em caso de srios danos eu recomendo fazer uma instalao limpa aps fazer a salvaguarda do sistema. Mesmo que tudo em "/var/" esteja perdido, voc ainda pode recuperar alguma informao dos directrios em "/usr/share/doc/" para o guiar na sua nova instalao. Reinstalar o sistema mnimo (ambiente de trabalho). # mkdir -p /caminho/para/sistema/antigo Monte o sistema antigo em "/caminho/para/sistema/antigo/".

# # # # # #

cd /caminho/para/sistema/antigo/usr/share/doc ls -1 >~/ls1.txt cd /usr/share/doc ls -1 >>~/ls1.txt cd sort ls1.txt | uniq | less

Ento ser-lhe-o apresentados nomes de pacotes para instalar. (Podem existir alguns nomes que no de pacotes como "texmf".) 2.7. Dicas para a gesto de pacotes 2.7.1. Como escolher os pacotes Debian Voc pode procurar os pacotes que satisfaam as suas necessidades com o aptitude a partir da descrio do pacote ou a partir da lista "Tarefas". Quando encontrar mais de 2 pacotes semelhantes e no sabe qual deles instalar sem o esforo de "teste e erro", voc deve utilizar algum senso comum. Eu considero os seguintes pontos como boas indicaes dos pacotes preferidos: * Essencial: sim > no * Componente: main > contrib > non-free * Prioridade: required > important > standard > optional > extra * Tasks: pacotes listados em tarefas como "Ambiente de Trabalho" * Pacotes seleccionados pela dependncia de pacote (p.e., python2.4 por python) * Popcon: mais alto na votao e nmero de instalaes * Changelog: actualizaes regulares feitas pelo responsvel do pacote * BTS: Nenhum bug RC (nenhum crtico, nenhum grave, e nenhum bug srio) * BTS: manuteno responsvel dos relatrios de bugs * BTS: o maior nmero de bugs corrigidos recentemente * BTS: o menor nmero de bugs "no-lista-de-desejos" remanescentes Sendo o Debian um projecto voluntrio com modelo de desenvolvimento distribudo, o seu arquivo contm muitos pacotes com diferentes objectivos e qualidade. Voc tem de tomar as suas prprias decises sobre o que fazer com eles. 2.7.2. Pacotes de fontes de arquivos misturados Cuidado

Instalar pacotes de fontes misturadas de arquivos no suportado pela distribuio oficial Debian excepto para combinaes de arquivos oficialmente suportadas tais como a stable com security updates (http://www.debian.org/security/) e squeeze-updates (http://www.debian.org/News/2011/20110215) . Aqui est um exemplo de operaes para incluir, uma vez, pacotes especficos com novas verses da origem encontrados em unstable enquanto se acompanha a testing. 1. Altere o ficheiro "/etc/apt/sources.list" temporariamente para entrada nica "unstable". 2. Corra "aptitude update". 3. Corra "aptitude install <nome-do-pacote>". 4. Recupere o ficheiro "/etc/apt/sources.list" original para testing. 5. Corra "aptitude update". Voc no cria o ficheiro "/etc/apt/preferences" nem precisa de se preocupar com o apt-pinning com esta abordagem manual. Mas muito incmoda. Cuidado Quando utiliza fontes misturadas de arquivos, voc tem que assegurar por si prprio a compatibilidade dos pacotes pois Debian no o garante. Se existir incompatibilidade de pacotes, voc pode danificar o seu sistema. Voc tem que ser capaz de julgar estes requisitos tcnicos. A utilizao de fontes misturadas de arquivos aleatrios uma operao completamente opcional e a sua utilizao no algo que uu o encoraje a utilizar. As regras gerais para instalar pacotes de arquivos diferentes so as seguintes: * Pacotes no-binrios de ("Arquitecture: all") so mais seguro para instalar. o pacotes de documentao: sem requisitos especiais o pacotes de programa interpretador: tem de estar disponvel interpretador compatvel * Pacotes binrios (que no "Architecture: all") geralmente enfrentam muitos obstculos e so inseguros para instalar. o compatibilidade de verso de biblioteca (incluindo a "libc") o compatibilidade de verso de programa utilitrio relacionada o compatibilidade da ABI (http://en.wikipedia.org/wiki/ Application_binary_interface) do Kernel

o Compatibilidade ABI (http://en.wikipedia.org/wiki/ Application_binary_interface) C++ o Nota De modo a tornar um pacote seguro para instalar, alguns pacotes de programas binrios comerciais no-livres podem vir fornecidos com bibliotecas completamente ligadas estaticamente. Mesmo assim voc deve verificar problemas de compatibilidade da ABI (http:// en.wikipedia.org/wiki/Application_binary_interface) e etc. com eles. Nota Excepto para evitar pacotes com problemas a curto prazo, instalar pacotes binrios de arquivos no suportados oficialmente geralmente uma m ideia. Isto verdadeiro mesmo que utilize apt-pinning (veja Seco2.7.3, Moldar a verso candidata). Voc deve considerar o chroot ou tcnicas semelhantes (veja Seco9.8, Sistema virtualizado) para correr programas de arquivos diferentes. 2.7.3. Moldar a verso candidata Sem o ficheiro "/etc/apt/preferences", o sistema APT escolhe a verso disponvel mais recente com a verso candidata utilizando a string de verso. Este o estado normal e a utilizao recomendada do sistema APT. Todas as combinaes de arquivos oficialmente suportadas no necessitam do ficheiro "/etc/apt/ preferences" porque alguns arquivos que no devem ser utilizados como fonte automtica de actualizaes so marcados como NotAutomatic e so tratados de modo apropriado. Dica A regra de comparao da string de verso pode ser verificada com, p.e., "dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?" (veja dpkg(1)). Quando voc instala regularmente pacotes de uma mistura de fontes de arquivos (veja Seco2.7.2, Pacotes de fontes de arquivos misturados), voc pode automatizar estas operaes complicadas ao criar o ficheiro "/etc/apt/preferences" com entradas apropriadas e moldando a regra de seleco de pacotes para a verso candidata como descrito em apt_preferences(5). A isto chama-se apt-pinning. Ateno A utilizao de apt-pinning por um utilizador novato certamente pedir grandes problemas. Voc deve evitar utilizar o apt-pinning excepto quando necessitar absolutamente dele. Cuidado Quando utilizar apt-pinning, voc prprio tem que assegurar a compatibilidade dos pacotes pois Debian no o garante. O apt-pinning uma operao completamente opcional e a sua

utilizao no algo que eu encoraje a fazer. Cuidado Os ficheiros Release de nvel de arquivo (veja Seco2.5.3, Ficheiros "Release" do nvel de arquivo) so utilizados para a regra do apt_preferences(5). Assim o apt-pinning funciona apenas com nome de "suite" para arquivos Debian normais (http:// ftp.us.debian.org/debian/dists/) e arquivos Debian de segurana (http://security.debian.org/dists/) . (Isto diferente dos arquivos do Ubuntu (http://www.ubuntu.com/) ). Por exemplo, voc pode fazer "Pin: release a=unstable" mas no pode fazer "Pin: release a=sid" no ficheiro "/etc/apt/preferences". Cuidado Quando utilizar um arquivo no-Debian como parte de apt-pinning, voc deve verificar ao que ele se destina e tambm verificar a sua credibilidade. Por exemplo, Ubuntu e Debian no se destinam a ser misturados. Nota Mesmo que voc no crie o ficheiro "/etc/apt/preferences", voc pode fazer operaes no sistema bastante complexas (veja Seco2.6.4, Recuperao com o comando dpkg e Seco2.7.2, Pacotes de fontes de arquivos misturados) sem o apt-pinning. Aqui est uma explicao simplificada da tcnica de apt-pinning. O sistema APT escolhe o pacote de actualizao com o Pin-Priority maior das fontes de pacotes disponveis definidas no ficheiro "/ etc/apt/sources.list" como o pacote de verso candidata. Se o Pin-Priority do pacote for maior que 1000, esta restrio de verso para actualizao abandonada para permitir o downgrade (veja Seco2.7.10, Downgrade de emergncia). O valor Pin-Priority de cada pacote definido por entradas "Pin-Priority" no ficheiro "/etc/apt/preferences" ou utiliza o seu valor predefinido. Tabela 2.18. Lista de valores notveis de Pin-Priority para a tcnica de apt-pinning. +---------------------------------------------------------------+ |Pin-Priority|efeitos do apt-pinning no pacote | |------------+--------------------------------------------------| |1001 |instala o pacote mesmo que isto constitua uma | | |regresso na verso (downgrade) do pacote | |------------+--------------------------------------------------| |990 |utilizado como predefinio para o arquivo de | | |lanamento de destino | |------------+--------------------------------------------------| |500 |utilizado por predefinio para o arquivo normal | |------------+--------------------------------------------------| |100 |utilizado como predefinio para os arquivos | | |NotAutomatic e ButAutomaticUpgrades | |------------+--------------------------------------------------| |100 |utilizado para o pacote instalado | |------------+--------------------------------------------------|

|1 |utilizado como predefinio para o arquivo | | |NotAutomatic | |------------+--------------------------------------------------| |-1 |nunca instala o pacote mesmo que este seja | | |recomendado | +---------------------------------------------------------------+ O arquivo do lanamento alvo pode ser definido por diferentes mtodos. * ficheiro de configurao "/etc/apt/apt.conf" com a linha "APT::Default-Release "stable";" * opo de linha de comandos, p.e. "apt-get install -t testing algum-pacote" Os arquivos NotAutomatic e ButAutomaticUpgrades so definidos pelo servidor de arquivo que contm no seu ficheiro Release do nvel de arquivo (veja Seco2.5.3, Ficheiros "Release" do nvel de arquivo) ambos "NotAutomatic: yes" e "ButAutomaticUpgrades: yes". O arquivo NotAutomatic definido pelo servidor de arquivo que contm no seu ficheiro Release de nvel de arquivo apenas "NotAutomatic: yes". A situao de apt-pinning do <pacote> de vrias fontes de arquivos mostrada por "apt-cache policy <pacote>". * Uma linha comeada com "Package pin:" lista a verso do pacote de pin se estiver definida a associao apenas com o <pacote> p.e., "Package pin: 0.190". * No existe nenhuma linha com "Package pin:" se no estiver definida nenhuma associao apenas com <pacote>. * O valor Pin-Priority associando ao <pacote> listado no lado direito de todas as strings de verso, p.e., "0.181 700". * listado "0" direita de todas as strings de verso se nenhuma associao apenas com <pacote> for definida, ex., "0.181 0". * Os valores Pin-Priority dos arquivos (definidos como "Package: *" no ficheiro "/etc/apt/preferences") so listados esquerda dos caminhos dos arquivos, ex., "100 http:// ftp.XX.debian.org/debian/ squeeze-backports/main Packages". 2.7.4. Actualizaes e Backports Existem os arquivos squeeze-updates (http://www.debian.org/News/ 2011/20110215) e backports.debian.org (http:// backports.debian.org) que disponibilizam pacotes de actualizao para stable (squeeze). De modo a utilizar estes arquivos, liste todos os arquivos necessrios no ficheiro "/etc/apt/sources.list" como se segue: deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib deb http://ftp.us.debian.org/debian/ squeeze-updates main contrib non-free

deb http://ftp.us.debian.org/debian/ squeeze-backports main contrib non-free No h necessidade de definir valores especficos de Pin-Priority no ficheiro "/etc/apt/preferences". Quando os novos pacotes ficam disponveis, a configurao predefinida disponibiliza as actualizaes mais razoveis (veja Seco2.5.3, Ficheiros "Release" do nvel de arquivo). * Todos os pacotes antigos instalados so actualizados para mais recentes a partir de squeeze-updates. * Apenas os pacotes antigos instalados manualmente a partir de squeeze-backports so actualizados para mais recentes a partir de squeeze-backports. Sempre que desejar instalar um pacote chamado "<nome-do-pacote>" com as suas dependncias a partir do arquivo squeeze-backports manualmente, utilize o seguinte comando enquanto muda o lanamento alvo com a opo "-t". $ sudo apt-get install -t squeeze-backports <nome_do_pacote> 2.7.5. Bloquear pacotes instalados por "Recomendados" Se desejar no puxar determinados pacotes automaticamente atravs de "Recommends", tem de criar o ficheiro "/etc/apt/preferences" e listar explicitamente esses pacotes no topo conforme se segue: Package: <package-1> Pin: version * Pin-Priority: -1 Package: <package-2> Pin: version * Pin-Priority: -1 2.7.6. Acompanhar testing com alguns pacotes de unstable Aqui est um exemplo de tcnica de apt-pinning para incluir pacotes especficos de verso original mais recente encontrados em unstable e actualizados regularmente enquanto de segue o testing. Liste todos os arquivos necessrios no ficheiro "/etc/ apt/sources.list" conforme se segue: deb http://ftp.us.debian.org/debian/ testing main contrib non-free deb http://ftp.us.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/ testing/updates main contrib Configure o ficheiro "/etc/apt/preferences" como o seguinte: Package: * Pin: release a=unstable Pin-Priority: 100 Quando desejar instalar um pacote chamado "<nome_do_pacote>" com as suas dependncias a partir do arquivo unstable sob esta configurao, invoque o seguinte comando que muda o lanamento alvo com a opo "-t" (o Pin-Priority de unstable torna-se 990.). $ sudo apt-get install -t unstable <nome-do-pacote>

Com esta configurao, a execuo usual de "apt-get upgrade" e "apt-get dist-upgrade" (ou "aptitude safe-upgrade" e "aptitude full-upgrade") actualiza os pacotes que foram instalados a partir do arquivo testing usando o arquivo testing actual e os pacotes que foram instalados a partir do arquivo unstable usando o arquivo unstable actual. Cuidado Tenha cuidado para no remover a entrada "testing" do ficheiro "/ etc/apt/sources.list". Sem a entrada "testing" l, o sistema APT actualiza os pacotes do novo arquivo unstable. Dica Geralmente edito o ficheiro "/etc/apt/sources.list" para comentar a entrada do arquivo "unstable" logo aps a operao acima. Isto evita a lentido do processo de actualizao ao ter demasiadas entradas no ficheiro "/etc/apt/sources.list" embora isto impea a actualizao dos pacotes que foram instalados a partir do arquivo unstable utilizando o arquivo unstable actual. Dica Se for utilizado "Pin-Priority: 1" em vez de "Pin-Priority: 100" para o ficheiro "/etc/apt/preferences", os pacotes j instalados que tm o valor Pin-Priority de 100 no so actualizados pelo arquivo unstable mesmo se a entrada "testing" no ficheiro "/etc/ apt/sources.list" seja removida. Se desejar acompanhar pacotes particulares em unstable automaticamente sem uma instalao inicial "-t unstable", tem de criar o ficheiro "/etc/apt/preferences" e listar explicitamente todos esses pacotes no topo conforme se segue: Package: <package-1> Pin: release a=unstable Pin-Priority: 700 Package: <package-2> Pin: release a=unstable Pin-Priority: 700 Estes definem o valor Pin-Priority para cada pacote especfico. Por exemplo, de modo a acompanhar a verso unstable mais recente deste "Debian Reference" em Portugus, voc deve ter as seguintes entradas no ficheiro "/etc/apt/preferences". Package: debian-reference-pt Pin: release a=unstable Pin-Priority: 700 Package: debian-reference-common Pin: release a=unstable Pin-Priority: 700 Dica Esta tcnica de apt-pinning vlida mesmo se voc estiver a

seguir o arquivo stable. Pela minha experincia e at agora, os pacotes de documentao sempre foram seguros de instalar a partir do arquivo unstable. 2.7.7. Acompanhar unstable com alguns pacotes de experimental Aqui est outro exemplo de tcnica de apt-pinning para incluir pacotes de verso de origem mais recentes encontrados em experimental enquanto se segue unstable. Voc lista todos os arquivos necessrios no ficheiro "/etc/apt/sources.list" conforme o seguinte: deb http://ftp.us.debian.org/debian/ unstable main contrib non-free deb http://ftp.us.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing/updates main contrib O valor Pin-Priority predefinido para o arquivo experimental sempre 1 (<<100) porque um arquivo NotAutomatic (veja Seco2.5.3, Ficheiros "Release" do nvel de arquivo). No necessrio definir o valor Pin-Priority explicitamente no ficheiro "/etc/apt/preferences" apenas para usar o arquivo experimental a menos que deseje seguir pacotes particulares nele automaticamente para a prxima actualizao. 2.7.8. Descarga e actualizao automtica de pacotes O pacote apt vem com o seu prprio script de cron "/etc/ cron.daily/apt" para suportar a descarga automtica de pacotes. Este script pode ser melhorado para executar a actualizao automtica de pacotes ao instalar o pacote unattended-upgrades. Esta pode ser personalizada por parmetros em "/etc/apt/ apt.conf.d/02backup" e "/etc/apt/apt.conf.d/ 50unattended-upgrades" conforme descrito em "/usr/share/doc/ unattended-upgrades/README". O pacote unattended-upgrades destina-se principalmente para as actualizaes de segurana do sistema stable. Se o risco de danificar um sistema stable existente pelas actualizaes automticas for menor do que ser danificado por um intruso que usa buracos de segurana que foram fechados por actualizaes de segurana, voc deve considerar usar estas actualizaes automticas com parmetros de configurao como os que se seguem. APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1"; Se estiver a correr um sistema unstable, no vai querer utilizar as actualizaes automticas pois um dia, com certeza, iro danificar o seu sistema. Mesmo para casos de unstable, voc pode ainda querer descarregar os pacotes com antecedncia para poupar tempo na actualizao interactiva com parmetros de configurao como os que se seguem. APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0"; 2.7.9. Limitar a largura de banda de descarga para o APT

Se desejar limitar a largura de banda para o APT para, por exemplo, 800Kib/sec (=100kiB/sec), deve configurar o APT e o seu parmetro de configurao conforme o seguinte. APT::Acquire::http::Dl-Limit "800"; 2.7.10. Downgrade de emergncia Cuidado O downgrade (regresso de verso) no suportado oficialmente pelo sistema Debian por design. Dever ser feito apenas como parte de um processo de recuperao de emergncia. Apesar desta situao, conhecido por funcionar bem em muitos incidentes. Para sistemas crticos, voc deve fazer salvaguardas (backups) de todos os dados importantes aps a operao de recuperao e e reinstalar um sistema novo a partir do nada. Voc pode ter sorte ao fazer o downgrade de uma arquivo recente para um arquivo mais antigo para recuperar de uma actualizao ao sistema que o deixou danificado ao manipular a verso candidata (veja Seco2.7.3, Moldar a verso candidata). Esta uma alternativa preguiosa s aces tediosas de muitos comandos "dpkg -i <pacote-danificado>_<verso-antiga>.deb" (veja Seco2.6.4, Recuperao com o comando dpkg). Procure as linhas no ficheiro "/etc/apt/sources.list" que acompanham unstable como se segue. deb http://ftp.us.debian.org/debian/ sid main contrib non-free Substitua-as de modo a acompanharem testing. deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free Altere o ficheiro "/etc/apt/preferences" como o seguinte. Package: * Pin: release a=testing Pin-Priority: 1010 Corra "apt-get dist-upgrade" para forar o downgrade dos pacotes no sistema. Remova este ficheiro especial "/etc/apt/preferences" aps este downgrade de emergncia. Dica uma boa ideia remover (no purgar) o mximo de pacotes para minimizar problemas de dependncias. Voc pode necessitar remover e instalar manualmente alguns pacotes para conseguir o downgrade do sistema. O kernel Linux, gestor de arranque, udev, PAM, APT, os pacotes relacionados com a rede e os seus ficheiros de configurao requerem ateno especial. 2.7.11. Quem fez o upload do pacote? Apesar do nome do responsvel listado em "/var/lib/dpkg/ available" e "/usr/share/doc/package_name/changelog" fornecer

alguma informao sobre "quem est por detrs a actividade de empacotamento", quem faz o upload real do pacote um tanto obscuro. O who-uploads(1) no pacote devscripts identifica quem foi o uploader real dos pacotes fonte Debian. 2.7.12. O pacote equivs Se vai compilar um programa a partir do cdigo-fonte para substituir um pacote Debian, o melhor torn-lo num pacote local realmente 'debianizado' (*.deb) e utilizar um arquivo privado. Se escolher compilar um programa de fonte e instal-lo sob "/usr/ local", pode necessitar de utilizar o equivs como ltimo recurso para satisfazer as dependncias em falta para o pacote. Package: equivs Priority: extra Section: admin Description: Engana as dependncias de pacotes Debian Este um pacote dummy que pode ser usado para criar pacotes Debian, que apenas contm informao de dependncias. 2.7.13. Portar um pacote para o sistema stable Para actualizaes parciais do sistema stable, desejvel reconstruir um pacote dentro do seu ambiente utilizando um pacote de cdigo-fonte. Isto evita actualizaes macias de pacotes devido s suas dependncias. Adicione as seguintes entradas ao "/etc/apt/sources.list" de um sistema stable. deb-src http://http.us.debian.org/debian unstable main contrib non-free Instale os pacotes necessrios para a compilao e descarregue o pacote de cdigo-fonte conforme o seguinte: # # # $ $ $ apt-get apt-get apt-get apt-get apt-get cd foo* update dist-upgrade install fakeroot devscripts build-essential build-dep foo source foo

Ajustar os pacotes instalados se necessrio. Execute o seguinte. $ dch -i Aumentar a verso do pacote, p.e. um com "+bp1" acrescentado em "debian/changelog" Compile os pacotes e instale-os para o sistema com o seguinte: $ debuild $ cd .. # debi foo*.changes 2.7.14. Servidor proxy para o APT

Como colocar em mirror uma sub-seco inteira do arquivo Debian um desperdcio de espao de disco e largura de banda de rede, a implantao se um servidor proxy local para o APT desejvel tendo em considerao se administrar muitos sistemas em LAN (http://en.wikipedia.org/wiki/Local_area_network) . O APT pode ser configurado para utilizar servidores proxy web genricos (http) como o squid (veja Seco6.10, Outras aplicaes de servidor de rede) conforme descrito em apt.conf(5) e em "/usr/ share/doc/apt/examples/configure-index.gz". A varivel de ambiente $http_proxy" pode ser utilizada para sobrepor a definio de servidor proxy do ficheiro "/etc/apt/apt.conf". Existem ferramentas de proxy especiais para o arquivo Debian. Voc deve verificar o BTS antes de as utilizar. Tabela 2.19. Lista de ferramentas proxy especiais para arquivos Debian +--------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+--------------+----------------------+----------------| | | | |servidor proxy | | | | |de cache para | | |V:2, I:2 | |ficheiros de | |approx (http:// |(http:// |3489 (http:// |arquivo Debian | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|(programa OCaml | |/sid/approx) |popcon.php? |/a/approx.html) |(http:// | | |package= | |en.wikipedia.org| | |approx) | |/wiki/ | | | | |Objective_Caml) | | | | |compilado) | |-------------------+--------------+----------------------+----------------| | |V:2, I:3 | |Proxy de cache | |apt-cacher (http://|(http:// |313 (http:// |para pacotes | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|Debian e | |/sid/apt-cacher) |popcon.php? |/a/apt-cacher.html) |ficheiros de | | |package= | |cdigo-fonte | | |apt-cacher) | |(programa Perl) | |-------------------+--------------+----------------------+----------------| | |V:4, I:6 | |Proxy de cache | |apt-cacher-ng |(http:// | |para | |(http:// |qa.debian.org/|1175 (http:// |distribuio de | |packages.debian.org|popcon.php? |packages.qa.debian.org|pacotes de | |/sid/apt-cacher-ng)|package= |/a/apt-cacher-ng.html)|software | | |apt-cacher-ng)| |(programa C++ | | | | |compilado) | |-------------------+--------------+----------------------+----------------| | |V:0, I:1 | |Proxy Bittorrent| |debtorrent (http://|(http:// |1185 (http:// |para descarregar| |packages.debian.org|qa.debian.org/|packages.qa.debian.org|pacotes Debian | |/sid/debtorrent) |popcon.php? |/d/debtorrent.html) |(programa | | |package= | |Python) | | |debtorrent) | | | +--------------------------------------------------------------------------+ Cuidado Quando Debian reorganiza a estrutura do seu arquivo, estas

ferramentas de proxy especializadas tendem a necessitar ser reescritas de pelo responsvel do pacote e podem no estar funcionais durante algum tempo. Por outro lado, os servidores proxy web (http) genricos so mais robustos e mais fceis de acompanhar estas mudanas. 2.7.15. Pequeno arquivo de pacotes pblico Aqui est um exemplo para criar um pequeno arquivo de pacotes pblico compatvel com o moderno sistema secure APT (veja Seco2.5.2, Ficheiro "Release" de nvel de topo e autenticidade:). Vamos assumir algumas coisas: * nome da conta: "foo" * Nome da mquina: "www.example.com" * Pacotes necessrios: apt-utils, gnupg, e outros pacotes * URL: "http://www.example.com/~foo/" ( "/home/foo/ public_html/index.html") * Arquitectura de pacotes: "amd64" Crie uma chave de arquivo APT de Foo no seu sistema servidor como o seguinte: $ ssh $ gpg ... $ gpg ... sec uid ssb $ gpg [email protected] --gen-key -K 1024D/3A3CB5A6 2008-08-14 Foo (ARCHIVE KEY) <[email protected]> 2048g/6856F4A7 2008-08-14 --export -a 3A3CB5A6 >foo.public.key

Publique o ficheiro de chave de arquivo "foo.public.key" com o ID de chave "3A3CB5A6" para Foo Crie uma rvore de arquivo chamada "Origin: Foo" como o seguinte: $ umask 022 $ mkdir -p ~/public_html/debian/pool/main $ mkdir -p ~/public_html/debian/dists/unstable/main/binary-amd64 $ mkdir -p ~/public_html/debian/dists/unstable/main/source $ cd ~/public_html/debian $ cat > dists/unstable/main/binary-amd64/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: amd64 EOF $ cat > dists/unstable/main/source/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo

Label: Foo Architecture: source EOF $ cat >aptftp.conf <<EOF APT::FTPArchive::Release { Origin "Foo"; Label "Foo"; Suite "unstable"; Codename "sid"; Architectures "amd64"; Components "main"; Description "Public archive for Foo"; }; EOF $ cat >aptgenerate.conf <<EOF Dir::ArchiveDir "."; Dir::CacheDir "."; TreeDefault::Directory "pool/"; TreeDefault::SrcDirectory "pool/"; Default::Packages::Extensions ".deb"; Default::Packages::Compress ". gzip bzip2"; Default::Sources::Compress "gzip bzip2"; Default::Contents::Compress "gzip bzip2"; BinDirectory "dists/unstable/main/binary-amd64" { Packages "dists/unstable/main/binary-amd64/Packages"; Contents "dists/unstable/Contents-amd64"; SrcPackages "dists/unstable/main/source/Sources"; }; Tree "dists/unstable" { Sections "main"; Architectures "amd64 source"; }; EOF Pode automatizar actualizaes repetitivas do contedo do arquivo APT no seu sistema servidor configurando o dupload. Colocar todos os ficheiros de pacotes em "~foo/public_html/debian /pool/main/" ao executar "dupload -t foo changes_file" no cliente enquanto o "~/.dupload.conf" contm o seguinte: $cfg{'foo'} = { fqdn => "www.exemplo.com", method => "scpb", incoming => "/home/foo/public_html/debian/pool/main", # The dinstall on ftp-master sends emails itself dinstall_runs => 1, }; $cfg{'foo'}{postupload}{'changes'} = " echo 'cd public_html/debian ; apt-ftparchive generate -c=aptftp.conf aptgenerate.conf; apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Relea se ; rm -f dists/unstable/Release.gpg ; gpg -u 3A3CB5A6 -bao dists/unstable/Release.gpg dists/unstable/Release'| ssh [email protected] 2>/dev/null ; echo 'Arquivo pacote criado!'";

O script hook postupload inicializado pelo dupload(1) cria ficheiros de arquivo actualizados para cada upload. Pode adicionar este pequeno arquivo pblico linha de apt do sistema cliente com o seguinte: $ sudo bash # echo "deb http://www.example.com/~foo/debian/ unstable main" \ >> /etc/apt/sources.list # apt-key add foo.public.key Dica Se o arquivo estiver localizado no sistema de ficheiros local, ento pode utilizar antes "deb file:///home/foo/debian/ " 2.7.16. Gravar e copiar a configurao do sistema Voc pode criar um cpia local do estado de seleco de pacotes e debconf com o seguinte: # dpkg --get-selections '*' > selection.dpkg # debconf-get-selections > selection.debconf Aqui, "*" faz com que "selection.dpkg" tambm inclua entradas de pacotes para "purgar". Voc pode transferir estes 2 ficheiros para outro computador e instal-los l com o seguinte. # # # # dselect update debconf-set-selections < minha_seleco.debconf dpkg --set-selections < minha_seleco.dpkg apt-get -u dselect-upgrade # ou dselect install

Se est a pensar em gerir muitos servidores num cluster com praticamente a mesma configurao, voc deve considerar utilizar um pacote especializado como o fai para gerir o sistema completo. 2.7.17. Converter e instalar um pacote binrio aliengena O alien(1) permite a converso de pacotes binrios disponibilizados em formatos de ficheiro rpm da Red Hat, slp da Stampede, tgz de Slackware e pkg de Solaris num pacote deb Debian.Se quiser utilizar um pacote de outra distribuio de Linux em vez daquele que tem instalado no seu sistema, pode utilizar o alien para convert-lo a partir do seu formato de pacote preferido e instala-lo. O alien tambm suporta pacotes LSB. Ateno O alien(1) no deve ser utilizado para substituir pacotes essenciais do sistema, tais como os sysvinit, libc6, libpam-modules, etc. Na prtica, o alien(1) deve ser apenas utilizado para pacotes non-free apenas-binrios que sejam compatveis com LSB ou ligados estaticamente. Para softwares livres, voc deve utilizar o seu pacote de cdigo-fonte para compilar pacotes Debian reais.

2.7.18. Extrair um pacote sem o dpkg O contedo actual dos pacotes "*.deb" pode ser extrado sem utilizar o dpkg(1) em qualquer ambiente estilo Unix (http:// en.wikipedia.org/wiki/Unix-like) utilizando os ar(1) e tar(1) standard. # ar x /path/to/dpkg_<version>_<arch>.deb # ls total 24 -rw-r--r-- 1 bozo bozo 1320 2007-05-07 00:11 control.tar.gz -rw-r--r-- 1 bozo bozo 12837 2007-05-07 00:11 data.tar.gz -rw-r--r-- 1 bozo bozo 4 2007-05-07 00:11 debian-binary # mkdir control # mkdir data # tar xvzf control.tar.gz -C control # tar xvzf data.tar.gz -C data Tambm pode explorar o contedo de um pacote utilizando o comando mc. 2.7.19. Mais leituras sobre a gesto de pacotes Voc pode aprender mais sobre a gesto de pacotes a partir das seguintes documentaes. * Documentaes principais sobre a gesto de pacotes: o aptitude(8), dpkg(1), tasksel(8), apt-get(8), apt-config (8), apt-key(8), sources.list(5), apt.conf(5), e apt_preferences(5); o "/usr/share/doc/apt-doc/guide.html/index.html" e "/usr/ share/doc/apt-doc/offline.html/index.html" do pacote apt-doc; e o "/usr/share/doc/aptitude/html/en/index.html" do pacote aptitude-doc-en. * Documentaes oficiais e detalhadas no arquivo Debian: o "Manual de Poltica Debian Captulo 2 - O Arquivo Debian" (http://www.debian.org/doc/debian-policy/ch-archive) , o "Referncia dos Programadores de Debian, Captulo 4 Recursos para Programadores de Debian 4.6 O Arquivo Debian" (http://www.debian.org/doc/manuals/ developers-reference/resources.html#archive) , e o "A FAQ de Debian GNU/Linux, Captulo 5 - Os arquivos FTP de Debian" (http://www.debian.org/doc/FAQ/ch-ftparchives) . * Tutorial para construir um pacote Debian para utilizadores de Debian: o "Guia dos Novos Maintainers de Debian" (http:// www.debian.org/doc/manuals/maint-guide/) .

Captulo 3. A inicializao do sistema inteligente para si como o administrador do sistema ter uma ideia como o sistema Debian arranca e configurado. Apesar dos detalhes exactos estarem nos ficheiros de cdigo-fonte dos pacotes instalados e nas suas documentaes, um pouco exagerado para a maioria de ns. Eu fiz o meu melhor para disponibilizar uma viso geral breve dos pontos chave do sistema Debian a da sua configurao para sua referncia, baseando-me em conhecimentos actuais e anteriores meus e de outros. Como o sistema Debian um alvo em movimento, a situao sobre o sistema pode ter mudado. Antes da fazer quaisquer alteraes ao sistema, voc deve consultar a documentao mais recente de cada pacote. 3.1. Uma viso geral do processo de arranque O sistema do computador passa por vrias fases de processos de arranque (http://en.wikipedia.org/wiki/Booting) desde o ligar da energia at que oferece, ao utilizador, o sistema operativo (SO) totalmente funcional. Para simplicidade, eu limito a discusso plataforma PC tpico com a instalao por omisso. O processo tpico de arranque como um foguete de quatro etapas. Cada etapa do foguete entrega o controle do sistema prxima etapa. * Seco3.2, Estgio 1: a BIOS * Seco3.3, Estgio 2: o gestor de arranque * Seco3.4, Estgio 3: o mini-sistema Debian * Seco3.5, Estgio 4: o sistema Debian normal claro que, estes podem ser configurados de modo diferente. Por exemplo, se voc compilou o seu prprio kernel, voc pode estar a saltar o passo com o mini sistema Debian. Portanto por favor no assuma que este o caso para o seu sistema at que o verifique por si prprio. Nota Para uma plataforma de PC no-legacy como o sistema SUN ou o Macintosh, a BIOS em ROM e o particionamento do disco podem ser bastante diferentes (Seco9.3.2, Configurao das parties do disco). Por favor procure noutro lado a documentao especfica da plataforma para tais casos. 3.2. Estgio 1: a BIOS A BIOS (http://en.wikipedia.org/wiki/BIOS) o 1 etapa do processo de arranque que iniciado com o evento de ligar a energia. A BIOS (http://en.wikipedia.org/wiki/BIOS) que reside na read only memory (ROM) (http://en.wikipedia.org/wiki/ Read-only_memory) executada a partir de um endereo de memria particular no qual o contador de programa da CPU inicializado

pelo evento de ligar a energia. Esta BIOS executa a inicializao bsica do hardware (POST: power on self test (http://en.wikipedia.org/wiki/Power-on_self-test) ) e entrega o controle do sistema ao prximo passo que voc disponibiliza. A BIOS normalmente disponibilizada com o hardware. O ecr de arranque da BIOS geralmente indica que tecla(s) pressionar para entrar no ecr de configurao da BIOS para configurar o comportamento da BIOS. As teclas populares so F1, F2, F10, Esc, Ins, e Del. Se o seu ecr de arranque da BIOS est escondido por um vistoso ecr grfico, voc pode pressionar algumas teclas como a Esc para o desactivar. Estas teclas dependem fortemente do hardware. A localizao do hardware e prioridade do cdigo iniciado pela BIOS pode ser selecionado no ecr de configurao da BIOS. Tipicamente, os primeiros poucos sectores do primeiro dispositivo seleccionado encontrado (disco rgido, disquete, CD-ROM, ...) so carregados para a memria e este cdigo inicial executado. Este cdigo inicial pode ser um dos seguintes: * O cdigo do gestor de arranque * O cdigo de kernel do SO da idade da pedra como o FreeDOS (http://www.freedos.org/) * O cdigo do kernel do SO de destino se ele couber neste pequeno espao Tipicamente, o sistema arrancado a partir da partio especificada das parties do disco rgido principal. Os primeiros 2 sectores do disco rgido em PCs legacy contm o master boot record (MBR) (http://en.wikipedia.org/wiki/ Master_boot_record) . A informao de parties do disco incluindo a seleco de arranque gravada no final deste MBR. O cdigo do primeiro gestor de arranque executado pela BIOS ocupa o resto deste MBR. 3.3. Estgio 2: o gestor de arranque O gestor de arranque (http://en.wikipedia.org/wiki/Boot_loader) o 2 estgio do processo de arranque que iniciado pela BIOS. Ele carrega a imagem de kernel do sistema e a imagem initrd (http://en.wikipedia.org/wiki/Initrd) para a memria e passa o controle para eles. Esta imagem initrd a imagem do sistema de ficheiros raiz e o seu suporte depende do gestor de arranque utilizado. O sistema Debian normalmente usa o kernel Linux como kernel predefinido do sistema. A imagem initrd para o kernel Linux 2.6 actual tecnicamente a initramfs (sistema de ficheiros de RAM inicial). A imagem initramfs um arquivo de ficheiros cpio gzipado no sistema de ficheiros raiz. A instalao predefinida do sistema Debian coloca cdigo da primeira etapa do gestor de arranque GRUB no MBR (http:// en.wikipedia.org/wiki/Master_boot_record) para a plataforma PC. Existem muitos gestores de arranque e opes de configurao

disponveis. Tabela 3.1. Lista de gestores de arranque +---------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |initrd |gestor de arranque |descrio | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | | | | | | suficientemente | |grub-legacy (http:/|V:1, I:6 (http:| | | |inteligente para | |/ |//qa.debian.org|1741 (http:// | |GRUB L egacy (http:// |compreender parties | |packages.debian.org|/popcon.php? |packages.qa.debian.org|Suportado|en.wik ipedia.org/wiki/ |de disco e sistemas de| |/sid/grub-legacy) |package= |/g/grub-legacy.html) | |GNU_GR UB) |ficheiros como vfat, | | |grub-legacy) | | | |ext3, ... | | | | | | |(predefinio em lenny| |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | |V:89, I:800 | | | | suficientemente | |grub-pc (http:// |(http:// |544 (http:// | |GRUB 2 (http:// |inteligente para | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|Suportado|en.wik ipedia.org/wiki/ |compreender parties | |/sid/grub-pc) |popcon.php? |/g/grub-pc.html) | |GNU_GR UB) |de disco e sistemas de| | |package= | | | |ficheiros como vfat, | | |grub-pc) | | | |ext3, ... | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| |grub-rescue-pc |V:0, I:4 (http:|3886 (http:// | | |Isto so imagens de | |(http:// |//qa.debian.org|packages.qa.debian.org| |GRUB 2 (http:// |arranque de | |packages.debian.org|/popcon.php? |/g/ |Suportado|en.wik ipedia.org/wiki/ |recuperao do GRUB 2 | |/sid/ |package= |grub-rescue-pc.html) | |GNU_GR UB) |(CD ou disquete) | |grub-rescue-pc) |grub-rescue-pc)| | | |(Verso PC/BIOS) | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | |V:2, I:13 | | | |Isto baseia-se nas | |lilo (http:// |(http:// |595 (http:// | |Lilo ( http:// |localizaes de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|Suportado|en.wik ipedia.org/wiki/ |sectores de dados no | |/sid/lilo) |popcon.php? |/l/lilo.html) | |LILO_( boot_loader)) |disco rgido. (Antigo)|

|package=lilo) | | | | | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | |V:15, I:98 | | | | | |syslinux (http:// |(http:// |179 (http:// | |Isolin ux (http:// |Isto compreende o | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|Suportado|en.wik ipedia.org/wiki/ |sistema de ficheiros | |/sid/syslinux) |popcon.php? |/s/syslinux.html) | |SYSLIN UX) |ISO9660. utilizado | | |package= | | | |pelo CD de arranque. | | |syslinux) | | | | | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | |V:15, I:98 | | | |Isto compreende o | | |(http:// | | | |sistema de ficheiros | |syslinux (http:// |qa.debian.org/ |179 (http:// | |Syslin ux (http:// |MSDOS (FAT) (http:// | |packages.debian.org|popcon.php? |packages.qa.debian.org|Suportado|en.wik ipedia.org/wiki/ |en.wikipedia.org/wiki/| |/sid/syslinux) |package= |/s/syslinux.html) | |SYSLIN UX) |File_Allocation_Table)| | |syslinux) | | | |. utilizado pela | | | | | | |disquete de arranque. | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | |V:0, I:2 (http:| | | | | |loadlin (http:// |//qa.debian.org|105 (http:// | |Loadli n (http:// |Novo sistema | |packages.debian.org|/popcon.php? |packages.qa.debian.org|Suportado|en.wik ipedia.org/wiki/ |iniciado a partir do | |/sid/loadlin) |package= |/l/loadlin.html) | |Loadli n) |sistema FreeDOS/MSDOS.| | |loadlin) | | | | | |-------------------+---------------+----------------------+---------+-------------------------+----------------------| | | | | | |Isto software livre | | |V:2, I:29 | | | |que substitui o MBR | |mbr (http:// |(http:// |72 (http:// | |MBR po r Neil Turton (http:|(http:// | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|No |// |en.wikipedia.org/wiki/| |/sid/mbr) |popcon.php? |/m/mbr.html) |suportado|www.ch iark.greenend.org.uk|Master_boot_record) do| | |package=mbr) | | |/~neil t/) |MSDOS. Apenas | | | | | | |compreende parties |

| | | | |de disco. | +---------------------------------------------------------------------------------------------------------------------+ Ateno No brinque com os gestores de arranque sem ter discos de arranque de recuperao (CD ou disquete) criados a partir de imagens do pacote grub-rescue-pc. Torna-o capaz de arrancar o seu sistema mesmo sem um gestor de arranque funcional no disco rgido. Para o GRUB Legacy, o ficheiro de configurao do menu est localizado em "/boot/grub/menu.lst". Por exemplo, tem entradas como a seguinte. title root kernel initrd Debian GNU/Linux (hd0,2) /vmlinuz root=/dev/hda3 ro /initrd.img

Para o GRUB 2, o ficheiro de configurao do menu est localizado em "/boot/grub/grub.cfg". gerado automaticamente pelo "/usr/ sbin/update-grub" utilizando modelos de "/etc/grub.d/*" e definies de "/etc/default/grub". Por exemplo, tem entradas como as que se seguem: menuentry "Debian GNU/Linux" { set root=(hd0,3) linux /vmlinuz root=/dev/hda3 initrd /initrd.img } Para estes exemplos, estes parmetros do GRUB significam o seguinte. Tabela 3.2. O significado dos parmetros do GRUB +---------------------------------------------------------------+ |Parmetro|significado | |do GRUB | | |---------+-----------------------------------------------------| | |utiliza a 3 partio no disco primrio ao defini-la | |root |como "(hd0,2)" no GRUB Legacy ou como "(hd0,3)" no | | |GRUB 2 | |---------+-----------------------------------------------------| |kernel |utiliza o kernel localizado em "/vmlinuz" com | | |parmetro de kernel: "root=/dev/hda3 ro" | |---------+-----------------------------------------------------| | |utiliza a imagem initrd/initramfs (http:// | |initrd |en.wikipedia.org/wiki/Initrd) localizada em "/ | | |initrd.img" | +---------------------------------------------------------------+ Nota O valor do nmero de partio utilizado pelo programa GRUB legacy

menos um que o normal usado pelo kernel Linux e ferramentas utilitrias. O programa GRUB 2 corrige este problema. Dica Pode ser utilizado o UUID (http://en.wikipedia.org/wiki/ Universally_Unique_Identifier) (veja Seco9.3.3, Aceder a partio usando UUID) para identificar um dispositivo especial de bloco em vez do seu nome de ficheiro como "/dev/hda3", ex. "root=UUID=81b289d5-4341-4003-9602-e254a17ac232 ro". Dica Voc pode iniciar um gestor de arranque a partir de outro gestor de arranque utilizando tcnicas chamadas chain loading (http:// en.wikipedia.org/wiki/Chain_loading) . Veja "info grub" e grub-install(8). 3.4. Estgio 3: o mini-sistema Debian O mini-sistema Debian o 3 estgio do processo de arranque que iniciado pelo gestor de arranque. Corre o kernel do sistema com o seu sistema de ficheiros raiz na memria. Este um estgio preparatrio opcional do processo de arranque. Nota O termo "mini-sistema Debian" cunhado pelo autor para descrever este 3 estgio do processo de arranque para este documento. Este sistema geralmente referido como o initrd (http:// en.wikipedia.org/wiki/Initrd) ou sistema initramfs. utilizado pelo Instalador de Debian (http://www.debian.org/devel/ debian-installer/) um sistema semelhante em memria . O script "/init" executado como o primeiro programa neste sistema de ficheiros raiz em memria. um programa script de shell que inicializa o kernel no espao de utilizador e entrega o controle ao prximo estgio. Este mini-sistema Debian oferece flexibilidade ao processo de arranque tal como adicionar mdulos de kernel antes do processo de arranque principal ou montar o sistema de ficheiros raiz como um encriptado. Voc pode interromper esta parte do processo de arranque para obter a shell de root ao fornecer "break=init" etc. ao parmetro de arranque do kernel. Veja o script "/init" para mais condies de interrupo. Este ambiente shell suficientemente sofisticado para fazer uma boa inspeco do hardware da sua mquina. Os comandos disponveis neste mini-sistema Debian so verses reduzidas e disponibilizados principalmente por uma ferramenta GNU chamada busybox(1). Cuidado Voc precisa de utilizar a opo "-n" para o comando mount quando est no sistema de ficheiros raiz apenas de leitura. 3.5. Estgio 4: o sistema Debian normal

Tabela 3.3. Lista de utilitrios de arranque para o sistema Debian +----------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-----------------+----------------------+---------------| | | |initscripts (http:/|(http:// | |/ | |packages.debian.org|popcon.php? | |/sid/initscripts) |package= | | | |-------------------+-----------------+----------------------+---------------| | | |sysvinit (http:// |(http:// | |packages.debian.org|qa.debian.org/ | |/sid/sysvinit) | | | |-------------------+-----------------+----------------------+---------------| | | |sysv-rc (http:// | |packages.debian.org|qa.debian.org/ o | |/sid/sysv-rc) | | | |-------------------+-----------------+----------------------+---------------| |sysvinit-utils | |(http:// | |packages.debian.org|qa.debian.org/ V | |/sid/ | |sysvinit-utils) | | | |-------------------+-----------------+----------------------+---------------| | | | |Linux Standard |sysvinit-utils) | | |package= |sysvinit-utils.html) |bootlogd(8), ) |popcon.php? |/s/ |(startpar(8), |packages.qa.debian.org|estilo System|(http:// |172 (http:// |utilitrios |V:901, I:997 | | |package=sysv-rc) | | |popcon.php? |/s/sysv-rc.html) |System-V |packages.qa.debian.org|runlevel estil |(http:// |218 (http:// |mudana de |V:901, I:997 | |mecanismo de |package=sysvinit)| | |popcon.php? |/s/sysvinit.html) |System-V |packages.qa.debian.org|init(8) estilo |186 (http:// |utilitrios de |V:878, I:997 | | |initscripts) | | | |sistema |/i/initscripts.html) |desligar o |qa.debian.org/ |packages.qa.debian.org|inicializar e |178 (http:// |scripts para |V:901, I:998 | |

| | | |lsb-base (http:// |(http:// rg| |packages.debian.org|qa.debian.org/ | |/sid/lsb-base) | | | | | | | |-------------------+-----------------+----------------------+---------------| | a | | | |insserv (http:// | |packages.debian.org|qa.debian.org/ o | |/sid/insserv) | | | | | |-------------------+-----------------+----------------------+---------------| | | |upstart (http:// |V:0, I:1 (http://|1050 (http:// |eventos basead o | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|em init(8) para | |/sid/upstart) |popcon.php? |/u/upstart.html) |a concorrncia | | |package=upstart) | |(alternativa a | | | | |sysvinit) | |-------------------+-----------------+----------------------+---------------| |readahead-fedora |V:5, I:8 (http://| |readahead(8) | |(http:// |qa.debian.org/ |87 (http:// |para | |packages.debian.org|popcon.php? |packages.qa.debian.org|pr-carregar os | |/sid/ |package= |/r/ |ficheiros do | |readahead-fedora) |readahead-fedora)|readahead-fedora.html)|processo de | | | | |arranque | |-------------------+-----------------+----------------------+---------------| | | |daemon de | | |LSB |package=insserv) | |scripts init.d |popcon.php? |/i/insserv.html) |dependncias dos |packages.qa.debian.org|arranque usand |(http:// |183 (http:// |sequncia de |V:738, I:836 | |organizar a | | |ferramenta par | | |init 3.2 | | |de script de |package=lsb-base)| |funcionalidade |popcon.php? |/l/lsb-base.html) |Linux_kernel) |packages.qa.debian.org|/wiki/ |35 (http:// |en.wikipedia.o |V:901, I:998 | |Base (http://

| | | as| |uswsusp (http:// a | | |/sid/uswsusp) | | | | | | | --| | ec| | |/ | |

| |

| |

|ferramentas |disponibilizad |pelo Linux par

|V:11, I:45 (http:|600 (http://

|packages.debian.org|//qa.debian.org/ |packages.qa.debian.org|utilizar a |popcon.php? |/u/uswsusp.html) |suspenso de |software no |espao de |utilizador

|package=uswsusp) | | | | |

|-------------------+-----------------+----------------------+-------------|V:2, I:7 (http://| |279 (http:// |ferramenta kex |para

|kexec-tools (http:/|qa.debian.org/ |popcon.php?

|packages.qa.debian.org|re-arranques |/k/kexec-tools.html) |kexec(8) | | |(re-arranque a |quente)

|packages.debian.org|package= |/sid/kexec-tools) |kexec-tools) | | | --| | | |bootchart (http:// |qa.debian.org/ | |packages.debian.org|popcon.php? | |/sid/bootchart) | | | --| |bootchart-view | |(http:// | |packages.debian.org|popcon.php? | |/sid/ | |package= |qa.debian.org/ |bootchart) |package= |

|-------------------+-----------------+----------------------+-------------|V:0, I:4 (http://| |132 (http:// |analisador de |performance do

|packages.qa.debian.org|processo de |/b/bootchart.html) | |arranque |

|-------------------+-----------------+----------------------+-------------|V:0, I:3 (http://|280 (http:// |analisador de

|packages.qa.debian.org|performance do |/b/ |processo de

|bootchart-view.html) |arranque

|bootchart-view) |bootchart-view) | |(visualizao) | |-------------------+-----------------+----------------------+---------------| |mingetty (http:// |V:1, I:3 (http://|24 (http:// | |packages.debian.org|qa.debian.org/ s | |/sid/mingetty) |popcon.php? |/m/mingetty.html) |de consola |packages.qa.debian.org|getty(8) apena |

| | | |-------------------+-----------------+----------------------+---------------| |mgetty (http:// | |packages.debian.org|qa.debian.org/ | |/sid/mgetty) | | | +----------------------------------------------------------------------------+ Dica Todos os mecanismos de arranque so compatveis atravs dos scripts "/etc/init.d/rc", "/etc/init.d/rcS", "/usr/sbin/ update-rc.d", e "/usr/sbin/invoke-rc.d". Dica O pacote readahead-fedora pode acelerar o arranque de um sistema com uma quantidade decente de DRAM. O sistema Debian normal o 4 estgio do processo de arranque que iniciado pelo mini-sistema Debian. O kernel do sistema para o mini-sistema Debian continua a correr no seu ambiente. O sistema de ficheiros raiz mudado daquele em memria para o que est no sistema de ficheiros do disco rgido real. O programa "/sbin/init" executado como o primeiro programa e executa o processo de arranque principal. Normalmente o Debian utiliza o esquema tradicional sysvinit com o pacote sysv-rc. Veja init(8), inittab(5), e "/usr/share/doc/sysv-rc/ README.runlevels.gz" para a explicao exacta. Este processo de arranque principal passa essencialmente pelo seguinte. 1. O sistema Debian entra em runlevel N (nenhum) para inicializar o sistema ao seguir a descrio de "/etc/ inittab". 2. O sistema Debian entra em runlevel S para inicializar o sistema sob o modo de nico-utilizador para completar a inicializao do hardware e etc. 3. O sistema Debian vai para um dos runlevels de multi-utilizador (2 a 5) especificado para arrancar os servios do sistema. O runlevel inicial utilizado para modo de multi-utilizador especificado com o parmetro "init=" de arranque do kernel ou na linha "initdefault" de "/etc/inittab". O sistema Debian instalado arranca no runlevel 2. Todos os ficheiros script executados pelo sistema init esto localizados no directrio "/etc/init.d/". |package=mgetty) | | |popcon.php? |/m/mgetty.html) |modem getty(8) |packages.qa.debian.org|inteligente de |V:0, I:4 (http://|416 (http:// |substituto |package=mingetty)| |

3.5.1. O significado do runlevel Cada runlevel (http://en.wikipedia.org/wiki/Runlevel) utiliza um directrio para a sua configurao e tem um significado especfico conforme o seguinte. Tabela 3.4. Lista de runlevels e descrio da sua utilizao +---------------------------------------------------------------+ |runlevel|directrio|descrio da utilizao do runlevel | |--------+----------+-------------------------------------------| |N |nenhum |arranque do sistema em NENHUM nvel (nenhum| | | |directrio "/etc/rcN.d/") | |--------+----------+-------------------------------------------| |0 |/etc/rc0.d|parar o sistema | | |/ | | |--------+----------+-------------------------------------------| |S |/etc/rcS.d|modo de utilizador singular no arranque | | |/ |(alias: "s") | |--------+----------+-------------------------------------------| |1 |/etc/rc1.d|modo de utilizador singular trocado a | | |/ |partir do modo de multi utilizador | |--------+----------+-------------------------------------------| |2 |/etc/rc2.d|modo de multi-utilizador | | |/ | | |--------+----------+-------------------------------------------| |3 |/etc/rc3.d|,, | | |/ | | |--------+----------+-------------------------------------------| |4 |/etc/rc4.d|,, | | |/ | | |--------+----------+-------------------------------------------| |5 |/etc/rc5.d|,, | | |/ | | |--------+----------+-------------------------------------------| |6 |/etc/rc6.d|reiniciar o sistema | | |/ | | |--------+----------+-------------------------------------------| |7 |/etc/rc7.d|modo de multi-utilizador vlido mas | | |/ |normalmente no usado | |--------+----------+-------------------------------------------| |8 |/etc/rc8.d|,, | | |/ | | |--------+----------+-------------------------------------------| |9 |/etc/rc9.d|,, | | |/ | | +---------------------------------------------------------------+ Voc pode mudar o runlevel a partir da consola para, por exemplo 4, com o seguinte. $ sudo telinit 4 Cuidado O sistema Debian no pr-atribui nenhumas diferenas de significado especiais entre os runlevels (http://en.wikipedia.org /wiki/Runlevel) 2 e 5. O administrador de sistema no sistema

Debian pode mudar isto. (Isto , Debian no Red Hat Linux (http://en.wikipedia.org/wiki/Red_Hat_Linux) nem Solaris da Sun Microsystems (http://en.wikipedia.org/wiki/Solaris_ (operating_system)) nem HP-UX da Hewlett Packard (http:// en.wikipedia.org/wiki/HP-UX) nem AIX da IBM (http:// en.wikipedia.org/wiki/IBM_AIX) nem ) Cuidado O sistema Debian no povoa os directrios para os runlevels (http://en.wikipedia.org/wiki/Runlevel) entre 7 e 9 quando o pacote instalado. As variantes Unix (http://en.wikipedia.org/ wiki/Unix-like) tradicionais no utilizam estes runlevels (http:/ /en.wikipedia.org/wiki/Runlevel) . 3.5.2. A configurao do runlevel Quando os comandos init(8) ou telinit(8) vo para o runlevel para "<n>", o sistema basicamente executa os scripts de inicializao que se seguem. 1. Os scripts cujos nomes comeam com um "K" em "/etc/rc<n>.d/" so executados por ordem alfabtica com o nico argumento "stop". (matando os servios) 2. Os scripts cujos nomes comeam com um "S" em "/etc/rc<n>.d/" so executados por ordem alfabtica com o nico argumento "start". (iniciando os servios) Por exemplo, se voc tiver os links "S10sysklogd" e "S20exim4" num directrio de runlevel, o "S10sysklogd" que est simbolicamente ligado a "../init.d/sysklogd" ir correr antes de "S20exim4" que est simbolicamente ligado a "../init.d/exim4". A inicializao sequencial simples do sistema o mtodo de arranque tradicional System V (http://en.wikipedia.org/wiki/ UNIX_System_V) e foi utilizado at ao sistema Debian lenny. Em vez disso, o recente sistema Debian optimizado para executar os scripts de inicializao de forma concorrente. * O comando insserv(8) utiliza a informao de dependncias dos pacotes e calcula as dependncias entre todos os scripts. o Veja "/usr/share/doc/insserv/README.Debian". * A informao de dependncias de pacotes definida no cabealho dos scripts de inicializao assegura a existncia dos recursos necessrios. o Veja Linux Standard Base Core Specification 3.1, VII. System Initialization (http://refspecs.linuxbase.org/ LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/ tocsysinit.html) . * Anncio de "Arranque Paralelo activado por predefinio" (http://lists.debian.org/debian-devel-announce/2010/05/ msg00009.html) Ateno

No aconselhvel fazer quaisquer alteraes nos links simblicos em "/etc/rcS.d/" a menos que voc saiba mais que o responsvel. 3.5.3. O exemplo de gesto do runlevel Por exemplo, vamos configurar o rublevel do sistema algo como o Red Hat Linux (http://en.wikipedia.org/wiki/Red_Hat_Linux) com o seguinte. * init arranca o sistema em runlevel=3 por predefinio * O init no arranca o gdm3(1) nos runlevel (0,1,2,6). * init arranca o gdm3(1) em runlevel=(3,4,5). Isto pode ser feito com o editor no ficheiro "/etc/inittab" para alterar o runlevel de arranque e utilizar ferramentas de gesto do runlevel amigas do utilizador como o sysv-rc-conf ou o bum para editar o runlevel. Se utilizar apenas a linha de comandos, aqui est como faz-lo (aps a instalao predefinida do pacote gdm3 e seleccion-lo para ser o gestor de ecr escolhido). # cd /etc/rc2.d ; mv S21gdm3 K21gdm3 # cd /etc ; perl -i -p -e 's/^id:.:/id:3:/' inittab Por favor note que o ficheiro "/etc/X11/default-display-manager" verificado quando se arrancam daemons de gestor de ecr: xdm, gdm3, kdm, e wdm. Nota Voc pode ainda arrancar o X a partir de qualquer consola de shell com o comando startx(1). 3.5.4. O parmetro predefinido para cada script de init O parmetro predefinido para cada script de init em "/etc/init.d/ " dado pelo ficheiro correspondente em "/etc/default/" o qual contm apenas atribuies das variveis de ambiente. Esta escolha de nome de directrio especfica do sistema Debian. grosseiramente o equivalente ao directrio "/etc/sysconfig" encontrado em Red Hat Linux (http://en.wikipedia.org/wiki/ Red_Hat_Linux) e outras distribuies. Por exemplo, "/etc/default /cron" pode ser utilizado para controlar como o "/etc/init.d/ cron" funciona. O ficheiro "/etc/default/rcS" pode ser utilizado para personalizar as predefinies no momento de arranque para motd(5) , sulogin(8), etc. Se no conseguir obter o comportamento que deseja ao alterar tais variveis ento pode modificar os scripts de init (http:// www.debian.org/doc/debian-policy/ch-opersys#s9.3.2) . Estes so ficheiros de configurao editveis por administradores de sistemas. 3.5.5. O nome da mquina

O kernel mantm o nome-de-mquina do sistema. O script init em runlevel S which ligado simbolicamente a "/etc/init.d/ hostname.sh" e define o nome de mquina durante o arranque (utilizando o comando hostname) para o nome armazenado em "/etc/ hostname". Este ficheiro deve conter apenas o nome de mquina do sistema, e no um nome de domnio totalmente qualificado. Para escrever o nome de mquina actual corra hostname(1) sem argumentos. 3.5.6. O sistema de ficheiros Apesar do sistema de ficheiros raiz ser montado pelo kernel quando arranca, outros sistemas de ficheiros so montados no runlevel S pelos seguintes scripts de init. * "/etc/init.d/mountkernfs.sh" para sistemas de ficheiros do kernel em "/proc", "/sys", etc. * "/etc/init.d/mountdevsubfs.sh" para sistemas de ficheiros virtuais em "/dev" * "/etc/init.d/mountall.sh" para sistemas de ficheiros normais usando o "/etc/fstab" * "/etc/init.d/mountnfs.sh" para sistemas de ficheiros de rede usando o "/etc/fstab" As opes de montagem de sistemas de ficheiros do kernel esto definidas em "/etc/default/rcS". Veja rcS(5). As opes de montagem do sistema de ficheiros so definidas em "/ etc/fstab". Veja Seco9.3.6, Optimizao do sistema de ficheiros por opes de montagem. Nota A montagem actual de sistemas de ficheiros de rede espera que a interface de rede arranque. Ateno Aps montar todos os sistemas de ficheiros, os ficheiros temporrios em "/tmp", "/var/lock", e "/var/run" so limpos para cada arranque. 3.5.7. Inicializao da interface de rede As interfaces de rede so iniciadas no runlevel 5 pelo script de init simbolicamente ligado a "/etc/init.d/ifupdown-clean" e "/etc /init.d/ifupdown". Veja Captulo5, Configurao de rede para como os configurar. 3.5.8. Inicializao do servio de rede Muitos servios de rede (veja Captulo6, Aplicaes de rede) so iniciados sob modo de multi-utilizador directamente como processos daemon durante o arranque pelo script de init, ex., "/ etc/rc2.d/S20exim4" (para RUNLEVEL=2) o que um link simblico para "/etc/init.d/exim4".

Alguns servios de rede podem ser iniciados a pedido utilizando o super-servidor (http://en.wikipedia.org/wiki/Super-server) inetd (ou o seu equivalente). O inetd iniciado durante o arranque pelo "/etc/rc2.d/S20inetd" (para RUNLEVEL=2) o qual um link simblico para "/etc/init.d/inetd". Essencialmente, o inetd permite que um daemon a correr possa invocar vrios outros, reduzindo a carga do sistema. Sempre que um pedido para servio chega ao super-servidor (http:/ /en.wikipedia.org/wiki/Super-server) inetd, o seu protocolo e servio identificado ao procura-lo nas bases de dados em "/etc/ protocols" e "/etc/services". O inetd ento procura um servio de Internet normal na base de dados "/etc/inetd.conf", ou um servio baseado em Open Network Computing Remote Procedure Call (ONC RPC) /Sun RPC (http://en.wikipedia.org/wiki/ Open_Network_Computing_Remote_Procedure_Call) em "/etc/rpc.conf". Por vezes, o inetd no arranca o servidor pretendido directamente mas arranca o programa wrapper de TCP (http://en.wikipedia.org/ wiki/TCP_Wrapper) , tcpd(8), com o nome do servidor pretendido como seu argumento em "/etc/inetd.conf". Neste caso, o tcpd corre o programa servidor apropriado aps registar em log o pedido e fazer algumas verificaes adicionais usando "/etc/hosts.deny" e "/etc/hosts.allow". Para segurana do sistema, desactive o mximo possvel de programas de servio de rede. Veja Seco4.6.4, Restringindo acesso a alguns servios de servidor. Veja inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8), hosts_access(5), hosts_options(5), rpcinfo(8), portmap(8), e "/ usr/share/doc/portmap/portmapper.txt.gz". 3.5.9. A mensagem do sistema A mensagem do sistema pode ser personalizada em "/etc/default/ rsyslog" e "/etc/rsyslog.conf" quer para o ficheiro de registo quer para as mensagens no ecr. Veja rsyslogd(8) e rsyslog.conf (5). Veja tambm Seco9.2.2, Analizador de log. 3.5.10. A mensagem do kernel A mensagem do kernel pode ser personalizada pelo "/etc/default/ klogd" para ambos os ficheiros de registo e a visualizao no ecr. Defina "KLOGD='-c 3'" neste ficheiro e execute "/etc/init.d /klogd restart". Veja klogd(8). Voc pode alterar directamente o nvel de mensagens de erro fazendo o seguinte. # dmesg -n3 Tabela 3.5. Lista de nveis de erro do kernel +---------------------------------------------------------------+ |valor de nvel de|nome de nvel de|significado | |erro |erro | | |-----------------+----------------+----------------------------| |0 |KERN_EMERG |sistema est inutilizvel |

|-----------------+----------------+----------------------------| |1 |KERN_ALERT |tem de ser tomada | | | |imediatamente ao | |-----------------+----------------+----------------------------| |2 |KERN_CRIT |condies crticas | |-----------------+----------------+----------------------------| |3 |KERN_ERR |condies de erro | |-----------------+----------------+----------------------------| |4 |KERN_WARNING |condies de aviso | |-----------------+----------------+----------------------------| |5 |KERN_NOTICE |condio normal mas | | | |significante | |-----------------+----------------+----------------------------| |6 |KERN_INFO |informativa | |-----------------+----------------+----------------------------| |7 |KERN_DEBUG |mensagens de nvel de | | | |depurao | +---------------------------------------------------------------+ 3.5.11. O sistema udev Para o kernel Linux 2.6, o sistema udev (http://en.wikipedia.org/ wiki/Udev) disponibiliza um mecanismo para a descoberta automtica de hardware e sua inicializao (veja udev(7)). Aps a descoberta de cada dispositivo pelo kernel, o sistema udev arranca um processo de utilizador que usa informao a partir do sistema de ficheiros sysfs (http://en.wikipedia.org/wiki/Sysfs) (veja Seco1.2.12, procfs e sysfs), carrega os mdulos de kernel necessrios para o suportar usando o programa modprobe(8) (veja Seco3.5.12, A inicializao de mdulos do kernel), e cria os ns correspondentes de dispositivo. Dica Se "/lib/modules/<verso-de-kernel>/modules.dep" no foi gerado de modo apropriado pelo depmod(8) por alguma razo, os mdulos podem no carregar como esperado pelo sistema udev. Execute "depmod -a" para o corrigir. Os nomes dos ns de dispositivos podem ser configurados pelos ficheiros de regras do udev em "/etc/udev/rules.d/". As regras predefinidas actuais tentem a criar nomes gerados dinamicamente resultando em nomes de dispositivos no estticos excepto para dispositivos de cd e de rede. Ao adicionar os seus ficheiros personalizados de modo semelhante ao que feito pelos dispositivos de cd e rede, voc tambm pode gerar nomes estticos para dispositivos para outros dispositivos como pens USB de memria. Veja "Escrever regras do udev (http:// www.reactivated.net/writing_udev_rules.html) " ou "/usr/share/doc /udev/writing_udev_rules/index.html". Como o sistema udev de certa forma um alvo em movimento, eu deixo os detalhes para outras documentaes e descrevo a informao mnima aqui. Dica Para regras de montagem em "/etc/fstab", os ns de dispositivo no precisam de ser os estticos. Voc pode usar o UUID (http://

en.wikipedia.org/wiki/Universally_Unique_Identifier) para montar os dispositivos em vez dos nomes de dispositivo como "/dev/sda". Veja Seco9.3.3, Aceder a partio usando UUID. 3.5.12. A inicializao de mdulos do kernel O programa modprobe(8) permite-nos configurar o kernel Linux em execuo a partir do processo de utilizador ao adicionar e remover mdulos do kernel. O sistema udev (veja Seco3.5.11, O sistema udev) automatiza a sua invocao para ajudar na inicializao dos mdulos de kernel. Existem mdulos de no-hardware e mdulos driver de hardware especial como os seguintes que precisam de ser pr-carregados ao list-los no ficheiro "/etc/modules" (veja modules(5)). * mdulos TUN/TAP (http://en.wikipedia.org/wiki/TUN/TAP) que disponibilizam dispositivos de rede Point-to-Point virtuais (TUN) e dispositivos de rede Ethernet virtuais (TAP). * mdulos netfilter (http://en.wikipedia.org/wiki/Netfilter) que disponibilizam capacidades de firewall netfilter ( iptables(8), Seco5.9, Infra-estrutura netfilter), e * mdulos de driver watchdog timer (http://en.wikipedia.org/ wiki/Watchdog_timer) Os ficheiros de configurao para o programa modprobe(8) esto localizados sob o directrio "/etc/modprobes.d/" como explicado em modprobe.conf(5). (Se voc deseja evitar que alguns mdulos do kernel sejam carregados automaticamente, considere met-los em lista negra no ficheiro "/etc/modprobes.d/blacklist".) O ficheiro "/lib/modules/<version>/modules.dep" gerado pelo programa depmod(8) descreve as dependncias dos mdulos usados pelo programa modprobe(8). Nota Se tiver problemas com o carregamento de mdulos durante o arranque ou com o modprobe(8), "depmod -a" pode resolver esses problemas ao reconstruir "modules.dep". O programa modinfo(8) mostra informao sobre um mdulo do kernel Linux. O programa lsmod(8) formata lindamente o contedo de "/proc/ modules", e mostra que mdulos do kernel que esto actualmente carregados. Dica Voc pode identificar o hardware exacto no seu sistema. Veja Seco9.6.3, Identificao do hardware. Dica Voc pode configurar o hardware durante o arranque para activar as funcionalidades esperadas do hardware. Veja Seco9.6.4, Configurao do hardware.

Dica Voc pode adicionar suporte para o seu dispositivo ao recompilar o kernel. Veja Seco9.7, O kernel. Captulo 4. Autenticao Quando uma pessoa (ou programa) requer acesso ao sistema, a autenticao confirma a identidade para ser de confiana. Ateno Erros de configurao do PAM podem tranc-lo fora do seu sistema. Ter de ter um CD de recuperao mo ou arrancar por uma partio de arranque alternativa. Para recuperar, arranque o sistema com eles e corrija a partir da. 4.1. Autenticao normal de Unix A autenticao normal de Unix disponibilizada pelo mdulo pam_unix(8) sob PAM (Pluggable Authentication Modules) (http:// en.wikipedia.org/wiki/Pluggable_Authentication_Modules) . Os seus 3 ficheiros de configurao importantes, com entradas separadas por ":", so os seguintes. Tabela 4.1. 3 ficheiros de configurao importantes para pam_unix (8) +---------------------------------------------------------------+ |ficheiro|permisso |utilizador|grupo |descrio | |--------+----------+----------+------+-------------------------| |/etc/ |-rw-r--r--|root |root |informao da conta do | |passwd | | | |utilizador (filtrada) | |--------+----------+----------+------+-------------------------| |/etc/ |-rw-r-----|root |shadow|informao segura da | |shadow | | | |conta do utilizador | |--------+----------+----------+------+-------------------------| |/etc/ |-rw-r--r--|root |root |informao do grupo | |group | | | | | +---------------------------------------------------------------+ "/etc/passwd" contm o seguinte. ... utilizador1:x:1000:1000:Nome de Utilizador1,,,:/home/utilizador1:/bin/bash utilizador2:x:1001:1001:Nome de Utilizador2,,,:/home/utilizador2:/bin/bash ... Como explicado em passwd(5), cada entrada separada por ":" neste ficheiro significa o seguinte. * Nome de login * Entrada de especificao de palavra-passe * ID numrico do utilizador * ID numrico do grupo

* Nome de utilizador ou campo de comentrios * Directrio home do utilizador * Interpretador de comandos opcional do utilizador A segunda entrada de "/etc/passwd" foi utilizada para a entrada de palavra-passe encriptada. Aps a introduo de "/etc/shadow", esta entrada utilizada para a entrada de especificao da palavra-passe. Tabela 4.2. A segunda entrada no contedo de "/etc/passwd" +---------------------------------------------------------+ |contedo|significado | |--------+------------------------------------------------| |(vazio) |conta sem palavra-passe | |--------+------------------------------------------------| |x |a palavra-passe encriptada est em "/etc/shadow"| |--------+------------------------------------------------| |* |nenhum login para esta conta | |--------+------------------------------------------------| |! |nenhum login para esta conta | +---------------------------------------------------------+ "/etc/shadow" contm o seguinte. ... user1:$1$Xop0FYH9$IfxyQwBe9b8tiyIkt2P4F/:13262:0:99999:7::: user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7::: ... Como explicado em shadow(5), cada entrada separada por ":" neste ficheiro significa o seguinte: * Nome de login * Palavra-passe encriptada (O "$1$" inicial indica o uso de encriptao MD5. O "*" indica nenhum login.) * Dias desde Jan 1, 1970 em que essa palavra-passe foi alterada * Dias antes da palavra-passe poder ser alterada * Dias aps os quais a palavra-passe tem de ser alterada * Dias de aviso ao utilizador antes da palavra-passe expirar * "/etc/group" contm o seguinte. grupo1:x:20:utilizador1,utilizador2 Como explicado em grupo(5), cada entrada separada por ":" neste ficheiro significa o seguinte. * Nome do grupo

* Palavra-passe encriptada (na realidade no utilizada) * ID numrico do grupo * lista de nomes de utilizadores, separada por "," Nota "/etc/gshadow" disponibiliza uma funo semelhante do "/etc/ shadow" para "/etc/group" mas no realmente usado. Nota A quantidade real de membros de um grupo de um utilizador pode ser adicionada dinamicamente se a linha "auth optional pam_group.so" for adicionada ao "/etc/pam.d/common-auth" e definida em "/etc/security/group.conf". Veja pam_group(8). Nota O pacote base-passwd contm uma lista autorizada do utilizador e do grupo: "/usr/share/doc/base-passwd/users-and-groups.html". 4.2. Gerir informao de conta e palavra-passe Aqui esto alguns comandos notveis para gerir informao de conta Tabela 4.3. Lista de comandos para gerir informao de conta +---------------------------------------------------------------+ |comando |funo | |--------------------+------------------------------------------| |getent passwd |navegar na informao da conta de " | |<nome_de_utilizador>|<nome_de_utilizador>" | |--------------------+------------------------------------------| |getent shadow |explorar informao confidencial (shadow) | |<nome_de_utilizador>|da conta de "<nome_de_utilizador> | |--------------------+------------------------------------------| |getent group |navegar na informao do grupo de " | |<nome_de_grupo> |<nome_do_grupo>" | |--------------------+------------------------------------------| |passwd |gerir a palavra-passe da conta | |--------------------+------------------------------------------| |passwd -e |definir palavra-passe para uma vez para a | | |activao da conta | |--------------------+------------------------------------------| |chage |gerir a informao de envelhecimento da | | |palavra-passe | +---------------------------------------------------------------+ Voc pode necessitar de privilgios de root para algumas funes funcionarem. Veja crypt(3) para a encriptao de palavra passe e dados. Nota Num sistema configurado com PAM e NSS como a mquina alioth

(http://alioth.debian.org) de Debian, o contedo dos "/etc/ passwd", "/etc/group" e "/etc/shadow" locais pode no ser utilizado activamente pelo sistema. Os comandos em cima so vlidos mesmo sob tal ambiente. 4.3. Boa palavra-passe Quando criar uma conta durante a instalao do seu sistema ou com o comando passwd(1), voc deve escolher uma boa palavra passe (http://en.wikipedia.org/wiki/Password_strength) que consiste de 6 a 8 caracteres incluindo um ou mais caracteres de cada um dos seguintes conjuntos de acordo com passwd(1). * Alfabticos de minsculas * Dgitos de 0 a 9 * Marcas de pontuao Ateno No escolha palavras que podem ser adivinhadas para a palavra-passe. 4.4. Criar palavra-passe encriptada Existem ferramentas independentes para gerar palavras-passe encriptadas 'salgadas'. Tabela 4.4. Lista de ferramentas para gerar palavras-passe +--------------------------------------------------------------------------------+ |pacote |popcon |tamanho |comando |funo | |-------------------+-------------+----------------------+--------+--------------| | |V:105, I:911 | | |frontend cheio | |whois (http:// |(http:// |325 (http:// | |de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|mkpasswd|funcional idades| |/sid/whois) |/popcon.php? |/w/whois.html) | |para a | | |package= | | |biblioteca | | |whois) | | |crypt(3) | |-------------------+-------------+----------------------+--------+--------------| | |V:759, I:970 | | |computa h ashes | |openssl (http:// |(http:// |1080 (http:// | |de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|openssl |palavraspasse | |/sid/openssl) |/popcon.php? |/o/openssl.html) |passwd |(OpenSSL) . | | |package= | | |passwd(1s

sl) |

|openssl) | | | | +--------------------------------------------------------------------------------+ 4.5. PAM e NSS Os sistemas modernos tipo-Unix (http://en.wikipedia.org/wiki/ Unix-like) como o sistema Debian disponibilizam mecanismos PAM (Pluggable Authentication Modules) (http://en.wikipedia.org/wiki/ Pluggable_Authentication_Modules) e NSS (Name Service Switch) (http://en.wikipedia.org/wiki/Name_Service_Switch) para o administrador local configurar o seu sistema. O papel destes pode ser resumido ao seguinte. * O PAM oferece um mecanismo de autenticao flexvel utilizado pelo software de aplicaes e assim involve trocas de dados de palavra-passe. * O NSS oferece um mecanismo de servio de nomes flexvel que utilizado frequentemente pela biblioteca C standard (http:// en.wikipedia.org/wiki/C_standard_library) para obter o nome de utilizador e grupo para programas como o ls(1) e o id(1). Estes sistemas PAM e NSS necessitam ser configurados de modo consistente. Os pacotes notveis dos sistemas PAM e NSS so os seguintes. Tabela 4.5. Lista de sistemas PAM e NSS notveis +---------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |--------------------+--------------------+-------------------------+-------------| |libpam-modules |V:886, I:999 (http:/| |Pluggab le | |(http:// |/qa.debian.org/ |813 (http:// |Authent ication| |packages.debian.org/|popcon.php?package= |packages.qa.debian.org/ |Modules | |sid/libpam-modules) |libpam-modules) |libp/libpam-modules.html)|(servio | | | | |bsico) | |--------------------+--------------------+-------------------------+-------------| | | | |Pluggab le | |libpam-ldap (http://|V:24, I:39 (http:// |205 (http:// |Authent ication| |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/ |Module que | |sid/libpam-ldap) |popcon.php?package= |libp/libpam-ldap.html) |permite | | |libpam-ldap) | |interfa

ces |

| | |LDAP | |--------------------+--------------------+-------------------------+-------------| | | | |Pluggab le | |libpam-cracklib |V:24, I:34 (http:// |138 (http:// |Authent ication| |(http:// |qa.debian.org/ |packages.qa.debian.org/ |Module para | |packages.debian.org/|popcon.php?package= |libp/ |activar | |sid/libpam-cracklib)|libpam-cracklib) |libpam-cracklib.html) |suporte a | | | | |crackli b | |--------------------+--------------------+-------------------------+-------------| | | | |Pluggab le | |libpam-doc (http:// |I:3 (http:// |986 (http:// |Authent ication| |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/ |Modules | |sid/libpam-doc) |popcon.php?package= |libp/libpam-doc.html) |(docume ntao | | |libpam-doc) | |em html e | | | | |texto) | |--------------------+--------------------+-------------------------+-------------| | | | |GNU C L ibrary:| | | | |Bibliot ecas de| |libc6 (http:// |V:959, I:997 (http:/|9516 (http:// |partilh a que | |packages.debian.org/|/qa.debian.org/ |packages.qa.debian.org/ |tambm | |sid/libc6) |popcon.php?package= |libc/libc6.html) |disponibiliza m| | |libc6) | |o servio | | | | |"Name S ervice | | | | |Switch" | |--------------------+--------------------+-------------------------+-------------| |glibc-doc (http:// |I:25 (http:// |1900 (http:// |Bibliot eca GNU| |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/g/|C: Manu ais | |sid/glibc-doc) |popcon.php?package= |glibc-doc.html) |(manpag es) | | |glibc-doc) | | | |--------------------+--------------------+-------------------------+-------

-------| |glibc-doc-reference | | |Bibliot eca GNU| |(http:// |I:9 (http:// |11816 (http:// |C: Manu al de | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/g/|refernci a em | |sid/ |popcon.php?package= |glibc-doc-reference.html)|info, p df e | |glibc-doc-reference)|glibc-doc-reference)| |html | | | | |(no-livr e) | |--------------------+--------------------+-------------------------+-------------| |libnss-mdns (http://|I:527 (http:// |144 (http:// |Mdulo NS S | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/ |para re soluo| |sid/libnss-mdns) |popcon.php?package= |libn/libnss-mdns.html) |de nome s | | |libnss-mdns) | |Multica st DNS | |--------------------+--------------------+-------------------------+-------------| | |I:36 (http:// | |Mdulo NS S | |libnss-ldap (http://|qa.debian.org/ |230 (http:// |para ut ilizar | |packages.debian.org/|popcon.php?package= |packages.qa.debian.org/ |o LDAP como um| |sid/libnss-ldap) |libnss-ldap) |libn/libnss-ldap.html) |servio | | | | |nomeado r | |--------------------+--------------------+-------------------------+-------------| | | | |Mdulo NS S | | |I:12 (http:// | |para us ar o | |libnss-ldapd (http:/|qa.debian.org/ |113 (http:// |LDAP co mo um | |/packages.debian.org|popcon.php?package= |packages.qa.debian.org/ |servio | |/sid/libnss-ldapd) |libnss-ldapd) |libn/libnss-ldapd.html) |nomeado r (nova| | | | |bifurcao de | | | | |libnssldap) | +---------------------------------------------------------------------------------+ * "O Guia do Administrador do Sistema Linux-PAM" em libpam-doc essencial para aprender configurao do PAM. * A seco "System Databases e Name Service Switch" em glibc-doc-reference essencial para aprender a configurao

do NSS. Nota Voc pode ver uma lista mais extensa e actual pelo comando "aptitude search 'libpam-|libnss-'". O acrnimo NSS tambm pode significar "Network Security Service" o que diferente de "Name Service Switch". Nota PAM a maneira mais bsica de inicializar variveis de ambiente para cada programa com o valor predefinido de todo o sistema. 4.5.1. Ficheiros de configurao acedidos pelo PAM e NSS Aqui esto alguns ficheiros de configurao notveis acedidos pelo PAM. Tabela 4.6. Lista de ficheiros de configurao acedidos pelo PAM +---------------------------------------------------------------+ |ficheiro de |funo | |configurao | | |------------------+--------------------------------------------| |/etc/pam.d/ |defina a configurao do PAM para o programa| |<nome_do_programa>|"<nome_do_programa>"; veja pam(7) e pam.d(5)| |------------------+--------------------------------------------| |/etc/nsswitch.conf|define a configurao NSS com a entrada para| | |cada servio. Veja nsswitch.conf(5) | |------------------+--------------------------------------------| |/etc/nologin |limita o login de utilizador pelo mdulo | | |pam_nologin(8) | |------------------+--------------------------------------------| |/etc/securetty |limita a tty para o acesso de root pelo | | |mdulo pam_securetty(8) | |------------------+--------------------------------------------| |/etc/security/ |define limites de acesso pelo mdulo | |access.conf |pam_access(8) | |------------------+--------------------------------------------| |/etc/security/ |define a restrio baseada em grupo pelo | |group.conf |mdulo pam_group(8) | |------------------+--------------------------------------------| |/etc/security/ |define as variveis de ambiente pelo mdulo | |pam_env.conf |pam_env(8) | |------------------+--------------------------------------------| | |define variveis de ambiente adicionais pelo| |/etc/environment |mdulo pam_env(8) com o argumento "readenv= | | |1" | |------------------+--------------------------------------------| |/etc/default/ |define o locale pelo mdulo pam_env(8) com o| |locale |argumento "readenv=1 envfile=/etc/default/ | | |locale" (Debian) | |------------------+--------------------------------------------| |/etc/security/ |define restrio de recursos (ulimit, core, | |limits.conf |) pelo mdulo pam_linits(8) | |------------------+--------------------------------------------| |/etc/security/ |define a reteno de tempo pelo mdulo | |time.conf |pam_time(8) | +---------------------------------------------------------------+

A limitao da seleco da palavra-passe implementada pelos mdulos do PAM, pam_unix(8) e pam_cracklib(8). Eles podem ser configurados com os seus argumentos. Dica Os mdulos PAM utilizam o sufixo ".so" para os seus nomes de ficheiros. 4.5.2. O moderno sistema de gesto centralizado A moderna gesto de sistema centralizada pode ser implantada utilizando o servidor centralizado Lightweight Directory Access Protocol (LDAP) (http://en.wikipedia.org/wiki/ Lightweight_Directory_Access_Protocol) para administrar muitos sistemas tipo-Unix e no-tipo-Unix na rede. A implementao de cdigo aberto do Lightweight Directory Access Protocol o Software OpenLDAP (http://www.openldap.org/) . O servidor LDAP disponibiliza para o sistema Debian a informao de conta atravs do uso de PAM e NSS com os pacotes libpam-ldap e libnss-ldap. So necessrias vrias aces para activar isto (eu no utilizei esta configurao e o seguinte puramente informao secundria. Por favor leia isto neste contexto.). * Voc configura um servidor LDAP centralizado ao correr um programa como o daemon de LDAP autnomo slapd(8). * Voc altera os ficheiros de configurao do PAM no directrio "/etc/pam.d/" para utilizar "pam_ldap.so" em vez do predefinido "pam_unix.so". o Debian utiliza "/etc/pam_ldap.conf" como ficheiro de configurao para libpam-ldap e "/etc/pam_ldap.secret" como ficheiro para armazenar a palavra-passe do root. * Voc altera a configurao do NSS no ficheiro "/etc/ nsswitch.conf" para usar "ldap" em vez da predefinio ("compat" ou "file"). o Debian utiliza o "/etc/libnss-ldap.conf" como o ficheiro de configurao para libnss-ldap. * Voc tem de fazer libpam-ldap para usar a ligao SSL (ou TLS) (http://en.wikipedia.org/wiki/Transport_Layer_Security) para a segurana da palavra-passe. * Voc pode fazer a libnss-ldap usar ligao SSL (ou TLS) (http://en.wikipedia.org/wiki/Transport_Layer_Security) para assegurar a integridade dos dados custa de maior sobrecarga da rede LDAP. * Voc deve correr o nscd(8) localmente para colocar em cache quaisquer resultados de busca LDAP de modo a reduzir o trfego de rede do LDAP. Veja as documentaes em pam_ldap.conf(5) e "/usr/share/doc/ libpam-doc/html/" oferecidas pelo pacote libpam-doc e "info libc

'Name Service Switch'" oferecida pelo pacote glibc-doc. De modo semelhante, voc pode configurar sistemas centralizados alternativos com outros mtodos. * Integrao de utilizador e grupo com o sistema Windows. o Aceda a servios de domnio Windows (http:// en.wikipedia.org/wiki/Windows_domain) com os pacotes winbind e libpam_winbind. o Veja winbindd(8) e Integrar Redes MS Windows com Samba (http://www.samba.org/samba/docs/man/ Samba-HOWTO-Collection/integrate-ms-networks.html) . * Integrao de utilizador e grupo com o sistema antigo tipo-Unix. o Acesso NIS (originalmente chamado YP) (http:// en.wikipedia.org/wiki/Network_Information_Service) ou NIS+ (http://en.wikipedia.org/wiki/NIS+) pelo pacote nis. o Veja o Linux NIS(YP)/NYS/NIS+ HOWTO (http://tldp.org/ HOWTO/NIS-HOWTO/) . 4.5.3. "Porque o su do GNU no suporta o grupo wheel" Esta a famosa frase no fundo da antiga pgina "info su" por Richard M. Stallman. No se preocupe, o comando su actual em Debian utiliza PAM, portanto esse pode restringir a habilidade de utilizar su ao grupo root ao activar a linha com "pam_wheel.so" em "/etc/pam.d/su". 4.5.4. Regras de palavra-passe rigorosas Instalar o pacote libpam-cracklib permite-lhe forar regras de palavra-passe rigorosas, por exemplo, ao ter linhas activas em "/ etc/pam.d/common-password" como se segue. Para squeeze: password password password password required pam_cracklib.so retry=3 minlen=9 difok=3 [success=1 default=ignore] pam_unix.so use_authtok nullok md5 requisite pam_deny.so required pam_permit.so

4.6. Outros controles de acesso Nota Veja Seco9.5.15, Tecla Alt-SysRq para restringir a funcionalidade do kernel chave de ateno segura (SAK) (http:// en.wikipedia.org/wiki/Secure_attention_key) . 4.6.1. sudo O sudo(8) um programa desenhado para permitir a um administrador de sistema dar privilgios de root limitados a utilizadores e registar a actividade do root. O sudo necessita apenas da palavra-passe de um utilizador normal. Instale o pacote

sudo e active-o ao definir opes em "/etc/sudoers". Veja um exemplo de configurao em "/usr/share/doc/sudo/examples/sudoers" e Seco1.1.12, Configurao do sudo. A minha utilizao do sudo para o sistema de nico utilizador (veja Seco1.1.12, Configurao do sudo) destina-se a proteger-me da minha prpria estupidez. Pessoalmente, Eu considero utilizar o sudo uma melhor alternativa do que utilizar o sistema a partir da conta de root a toda a hora. Por exemplo, o seguinte muda o dono de "<algum_ficheiro>" para "<meu_nome>". $ sudo chown <meu_nome> <algum_ficheiro> Claro que se voc conhecer a palavra-passe de root (como os utilizadores de sistemas Debian auto-instalados conhecem), qualquer comando pode ser executado sob root a partir da conta de qualquer utilizador usando "su -c". 4.6.2. PolicyKit PolicyKit (http://en.wikipedia.org/wiki/PolicyKit) um componente do sistema operativo para controlar privilgios a nvel global em sistemas operativos tipo-Unix. Aplicaes GUI mais recentes no so desenhadas para correr como processos priveligiados. Estas falam com os processos priveligiados atravs de PolicyKit para excutar operaes administrativas. O PolicyKit limita tais operaes a contas de utilizador pertencentes ao grupo sudo no sistema Debian. Veja polkit(8). 4.6.3. SELinux Security-Enhanced Linux (SELinux) (http://en.wikipedia.org/wiki/ Security-Enhanced_Linux) um mecanismo para apertar o modelo de privilgios mais do que o normal modelo de segurana tipo-Unix com as polticas de controle de acesso mandatrio (MAC) (http:// en.wikipedia.org/wiki/Mandatory_access_control) . O poder do root pode estar restringido sob algumas condies. 4.6.4. Restringindo acesso a alguns servios de servidor Para a segurana do sistema, uma boa ideia desactivar o mximo de programas de servios possveis. Isto torna-se crtico em servidores na rede. Ter servidores no utilizados, activados directamente como daemon (http://en.wikipedia.org/wiki/Daemon_ (computer_software)) ou via programa super-server (http:// en.wikipedia.org/wiki/Super-server) , so considerados riscos de segurana. Muito programas, como o sshd(8), utilizam controlos de acesso baseados no PAM. Existem muitas maneiras de restringir o acesso a alguns servios de servidor. * ficheiros de configurao: "/etc/default/<nome_do_programa>" * configurao de runlevel para daemon (http://en.wikipedia.org

/wiki/Daemon_(computer_software)) * PAM (Pluggable Authentication Modules) (http:// en.wikipedia.org/wiki/Pluggable_Authentication_Modules) * "/etc/inetd.conf" para super-server (http://en.wikipedia.org/ wiki/Super-server) * "/etc/hosts.deny" e "/etc/hosts.allow" para wrapper de TCP (http://en.wikipedia.org/wiki/TCP_Wrapper) , tcpd(8) * "/etc/rpc.conf" para RPC da Sun (http://en.wikipedia.org/wiki /Open_Network_Computing_Remote_Procedure_Call) * "/etc/at.allow" e "/etc/at.deny" para atd(8) * "/etc/cron.allow" e "/etc/cron.deny" para crontab(1) * Firewall de Rede (http://en.wikipedia.org/wiki/Firewall) da infraestrutura netfilter (http://en.wikipedia.org/wiki/ Netfilter) Veja Seco3.5.3, O exemplo de gesto do runlevel, Seco3.5.4, O parmetro predefinido para cada script de init, Seco4.5.1, Ficheiros de configurao acedidos pelo PAM e NSS , Seco3.5.8, Inicializao do servio de rede, e Seco5.9, Infra-estrutura netfilter. Dica os servios Sun RPC (http://en.wikipedia.org/wiki/ Open_Network_Computing_Remote_Procedure_Call) necessitam estar activos para NFS (http://en.wikipedia.org/wiki/ Network_File_System_(protocol)) e outros programas baseados em RPC. Dica Se voc tem problemas com acesso remoto num sistema Debian recente, comente configuraes ofensivas tais como "ALL: PARANOID" em "/etc/hosts.deny" se existirem. (Mas tem que ter cuidado com os riscos de segurana envolvidos com este tipo de aco.) 4.7. Segurana da autenticao A informao aqui pode no ser suficiente para as suas necessidades de segurana, mas dever ser um bom comeo. 4.7.1. Palavra-passe segura sobre a Internet Muitos servios de transporte populares comunicam mensagens incluindo a a autenticao de palavra-passe em texto simples. m ideia transmitir as palavras-passe em texto simples pela Internet onde podem ser interceptadas. Voc pode correr estes servios sobre "Transport Layer Security (http://en.wikipedia.org /wiki/Transport_Layer_Security) " (TLS) ou o seu antecessor, "Secure Sockets Layer" (SSL) para assegurar toda a comunicao incluindo a palavra-passe pela encriptao.

Tabela 4.7. Lista de servios e portos inseguros e seguros +-----------------------------------------------------------+ |nome do servio inseguro|porto|nome do servio seguro|porto| |------------------------+-----+----------------------+-----| |www (http) |80 |https |443 | |------------------------+-----+----------------------+-----| |smtp (mail) |25 |ssmtp (smtps) |465 | |------------------------+-----+----------------------+-----| |ftp-data |20 |ftps-data |989 | |------------------------+-----+----------------------+-----| |ftp |21 |ftps |990 | |------------------------+-----+----------------------+-----| |telnet |23 |telnets |992 | |------------------------+-----+----------------------+-----| |imap2 |143 |imaps |993 | |------------------------+-----+----------------------+-----| |pop3 |110 |pop3s |995 | |------------------------+-----+----------------------+-----| |ldap |389 |ldaps |636 | +-----------------------------------------------------------+ A encriptao custa tempo de CPU. Como uma alternativa amiga para o CPU, voc pode manter a comunicao em texto simples enquanto segura apenas a palavra-passe com um protocolo de autenticao de segurana como o "Authenticated Post Office Protocol" (APOP) para POP e "Challenge-Response Authentication Mechanism MD5" (CRAM-MD5) para SMTP e IMAP. (Para enviar mensagens de mail pela Internet para o seu servidor de mail a partir do seu cliente de mail, recentemente popular utilizar o porto 587 para submisso de novas mensagens em vez do tradicional porto 25 do SMTP para evitar o bloqueio do porto 25 pelo provedor de Internet enquanto voc se autentica com CRAM-MD5.) 4.7.2. Shell Segura O programa Secure Shell (SSH) (http://en.wikipedia.org/wiki/ Secure_Shell) disponibiliza comunicaes encriptadas e seguras entre duas mquinas sem confiana sobre uma rede insegura com a autenticao de segurana. Consiste no cliente OpenSSH (http:// www.openssh.org/) , ssh(1), e no daemon OpenSSH (http:// www.openssh.org/) , sshd(8). Este SSH pode ser utilizado como tnel de segurana para protocolos de comunicao inseguros como o POP e X pela Internet com a funcionalidade de reencaminhamento de portos. O cliente tenta autenticar-se a si prprio utilizando autenticao baseada na mquina, autenticao de chave pblica, autenticao por resposta a desafio, ou autenticao por palavra-passe. O uso de autenticao de chave pblica activa o login remoto sem-palavra-passe. Veja Seco6.9, O servidor de acesso remoto e utilitrio (SSH). 4.7.3. Medidas de segurana extra para a Internet Mesmo quando correr servios seguros como o Secure Shell (SSH) (http://en.wikipedia.org/wiki/Secure_Shell) e servidores de Protocolo de tnel ponto-para-ponto (PPTP) (http:// en.wikipedia.org/wiki/Point-to-point_tunneling_protocol) , ainda

existe hiptese de invases que utilizam ataques de fora bruta palavra-passe, etc. a partir da Internet. A utilizao de politicas de firewall (veja Seco5.9, Infra-estrutura netfilter) juntamente com as seguinte ferramentas de segurana podem melhorar a situao de segurana. Tabela 4.8. Lista de ferramentas para disponibilizar medidas de segurana extra +-------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+--------------+----------------------+---------------| | |V:0, I:3 | |pequeno daemon | |knockd (http:// |(http:// |164 (http:// |port-knock | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|knockd(1) e | |/sid/knockd) |popcon.php? |/k/knockd.html) |cliente konck | | |package= | |(1) | | |knockd) | | | |-------------------+--------------+----------------------+---------------| | |V:18, I:21 | |utilitrio para| |denyhosts (http:// |(http:// |368 (http:// |ajudar os | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|administradores| |/sid/denyhosts) |popcon.php? |/d/denyhosts.html) |de sistemas a | | |package= | |impedir hackers| | |denyhosts) | |de ssh | |-------------------+--------------+----------------------+---------------| | |V:65, I:74 | | | |fail2ban (http:// |(http:// |414 (http:// |banir IPs que | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|causam vrios | |/sid/fail2ban) |popcon.php? |/f/fail2ban.html) |erros de | | |package= | |autenticao | | |fail2ban) | | | |-------------------+--------------+----------------------+---------------| | |V:0, I:0 | |bloquear | |libpam-shield |(http:// |130 (http:// |atacantes | |(http:// |qa.debian.org/|packages.qa.debian.org|remotos que | |packages.debian.org|popcon.php? |/libp/ |tentam | |/sid/libpam-shield)|package= |libpam-shield.html) |adivinhar a | | |libpam-shield)| |palavra-passe | +-------------------------------------------------------------------------+ 4.7.4. Tornar a palavra-passe do root segura Para prevenir que pessoas acedam sua mquina com privilgios de root, voc precisa de tomar as seguintes aces. * Prevenir acesso fsico ao disco rgido * Bloquear a BIOS e prevenir o arranque a partir de suportes amovveis * Definir palavra-passe para sesso interactiva do GRUB * Bloquear o menu do GRUB de ser editado Com acesso fsico ao disco rgido, redefinir a palavra-passe relativamente fcil com os seguintes passos. 1. Mover o disco rgido para um PC com uma BIOS com arranque a

partir de CD. 2. Arrancar o sistema com um suporte de recuperao (disco de arranque Debian, CD Knoppix, CD GRUB, ...) 3. Montar a partio raiz com acesso de leitura/escrita. 4. Editar "/etc/passwd" na partio raiz e tornar vazia a segunda entrada para a conta root. Se tiver acesso de edio entrada do menu do GRUB (veja Seco3.3, Estgio 2: o gestor de arranque) grub-rescue-pc no momento do arranque, ainda mais fcil com os seguintes passos. 1. Arrancar o sistema com o parmetro de kernel alterado para algo como "root=/dev/hda6 rw init=/bin/sh". 2. Editar "/etc/passwd" e tornar a segunda entrada para a conta root vazia. 3. Reiniciar o sistema. A shell de root do sistema est agora acessvel sem palavra-passe. Nota Aps algum ter acesso shell de root, pode aceder a tudo no sistema e reiniciar quaisquer palavras-passe no sistema. Mais ainda, pode comprometer a palavra-passe para todas as contas de utilizadores usando ferramentas de de crack de palavra-passe por fora bruta como os pacotes john e crack (veja Seco9.6.11, Segurana do sistema e verificao de integridade). Esta palavra-passe descoberta pode levar a comprometer outros sistemas. A nica soluo de software razovel para evitar estas preocupaes usar uma partio raiz encriptada por software (ou uma partio "/etc" utilizando dm-crypt (http://en.wikipedia.org/ wiki/Dm-crypt) e initramfs (veja Seco9.4, Dicas de encriptao de dados). Assim, vai necessitar sempre de palavra-passe para arrancar o sistema. Captulo 5. Configurao de rede Dica Para um guia geral de rede em GNU/Linux, leia o Guia de Administradores de Rede de Linux (http://www.tldp.org/LDP/nag2/) . Dica Apesar deste documento ainda utilizar o antigo ifconfig(8) com IPv4 para os seus exemplos de configurao de rede, Debian est a mudar para ip(8) com IPv4+IPv6 no lanamento Wheezy. Patches para este documento so bem-vindos. 5.1. A infra-estrutura de rede bsica

Vamos rever a infra-estrutura bsica de rede do sistema Debian moderno. Tabela 5.1. Lista de ferramentas de configurao de rede +-----------------------------------------------------------------------------------------------------------------------+ |pacotes |popcon |tamanho |t ipo |descrio | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ifupdown (http:// |V:567, I:992 (http:// |202 (http:// | |ferramenta standard para | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |c onfig::ifupdown |activar e desactivar a rede | |sid/ifupdown) |popcon.php?package= |ifupdown.html) | |(especifico de Debian) | | |ifupdown) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ifplugd (http:// |V:3, I:10 (http:// |352 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |, , |gerir a rede com fios | |sid/ifplugd) |popcon.php?package= |ifplugd.html) | |automaticamente | | |ifplugd) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ifupdown-extra (http:/|V:0, I:2 (http:// |119 (http:// | |script de testes de rede | |/packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |, , |para melhorar o pacote | |sid/ifupdown-extra) |popcon.php?package= |ifupdown-extra.html) | |"ifupdown" | | |ifupdown-extra) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ifmetric (http:// |V:0, I:1 (http:// |100 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |, , |define mtricas de rota para| |sid/ifmetric) |popcon.php?package= |ifmetric.html) | |uma interface de rede | | |ifmetric) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |guessnet (http:// |V:0, I:1 (http:// |532 (http:// | |script de mapeamento para | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/g/ |, , |melhorar o pacote "ifupdown"| |sid/guessnet) |popcon.php?package= |guessnet.html) | |via ficheiro "/etc/network/ | | |guessnet) | | |interfaces" | |----------------------+----------------------+---------------------------+-

----------------+----------------------------| |ifscheme (http:// |V:0, I:0 (http:// |132 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |, , |scripts de mapeamento para | |sid/ifscheme) |popcon.php?package= |ifscheme.html) | |melhorar o pacote "ifupdown"| | |ifscheme) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ifupdown-scripts-zg2 |V:0, I:0 (http:// | | | | |(http:// |qa.debian.org/ |147 (http:// | |scripts da interface | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/i/ |, , |Zugschlus para o mtodo | |sid/ |ifupdown-scripts-zg2) |ifupdown-scripts-zg2.html) | |manual do ifupdown | |ifupdown-scripts-zg2) | | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |network-manager (http:|V:313, I:392 (http:// |4015 (http:// | |NetworkManager (http:// | |//packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/n/ |c onfig::NM |en.wikipedia.org/wiki/ | |sid/network-manager) |popcon.php?package= |network-manager.html) | |NetworkManager) (daemon): | | |network-manager) | | |gere a rede automaticamente | |----------------------+----------------------+---------------------------+----------------+----------------------------| |network-manager-gnome |V:226, I:342 (http:// | | |NetworkManager (http:// | |(http:// |qa.debian.org/ |5746 (http:// | |en.wikipedia.org/wiki/ | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/n/ |, , |NetworkManager) (frontend do| |sid/ |network-manager-gnome)|network-manager-gnome.html)| |GNOME) | |network-manager-gnome)| | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |network-manager-kde |V:6, I:29 (http:// | | |NetworkManager (http:// | |(http:// |qa.debian.org/ |36 (http:// | |en.wikipedia.org/wiki/ | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/n/ |, , |NetworkManager) (frontend do| |sid/ |network-manager-kde) |network-manager-kde.html) | |KDE) | |network-manager-kde) | | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wicd (http:// |I:33 (http:// |48 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |c

onfig::wicd |gestor de rede com fios e | |sid/wicd) |popcon.php?package= |wicd.html) | |sem fios (metapacote) | | |wicd) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wicd-cli (http:// |V:0, I:4 (http:// |87 (http:// | |gestor de rede com fios e | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |sem fios (cliente de linha | |sid/wicd-cli) |popcon.php?package= |wicd-cli.html) | |de comandos) | | |wicd-cli) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wicd-curses (http:// |V:1, I:7 (http:// |195 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |gestor de rede com fios e | |sid/wicd-curses) |popcon.php?package= |wicd-curses.html) | |sem fios (cliente Curses) | | |wicd-curses) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wicd-daemon (http:// |V:31, I:38 (http:// |1655 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |gestor de rede com fios e | |sid/wicd-daemon) |popcon.php?package= |wicd-daemon.html) | |sem fios (daemon) | | |wicd-daemon) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wicd-gtk (http:// |V:25, I:35 (http:// |552 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |gestor de rede com fios e | |sid/wicd-gtk) |popcon.php?package= |wicd-gtk.html) | |sem fios (cliente GTK+) | | |wicd-gtk) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| | |V:284, I:993 (http:// | | |ferramentas administrativas | |iptables (http:// |qa.debian.org/ |1330 (http:// | |para filtragem de pacotes e | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/i/ |c onfig::Netfilter|NAT (Netfilter (http:// | |sid/iptables) |iptables) |iptables.html) | |en.wikipedia.org/wiki/ | | | | | |Netfilter) ) | |----------------------+----------------------+---------------------------+----------------+----------------------------| | | | |

|iproute2 (http:// | |iproute (http:// |V:646, I:968 (http:// |970 (http:// | |www.linuxfoundation.org/en/ | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |c onfig::iproute2 |Net:Iproute2) , IPv6 e | |sid/iproute) |popcon.php?package= |iproute.html) | |outras configuraes | | |iproute) | | |avanadas de rede: ip(8), tc| | | | | |(8), etc | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ifrename (http:// |V:1, I:4 (http:// |192 (http:// | |renomear interfaces de rede | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |, , |baseado em vrios critrios | |sid/ifrename) |popcon.php?package= |ifrename.html) | |de estatstica: ifrename(8) | | |ifrename) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ethtool (http:// |V:72, I:164 (http:// |292 (http:// | |mostra ou altera as | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/e/ |, , |definies de um dispositivo| |sid/ethtool) |popcon.php?package= |ethtool.html) | |Ethernet | | |ethtool) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| | | | | |teste de acessibilidade de | | | | | |rede de uma mquina remota | | | | | |pelo nome-de-mquina (http:/| |iputils-ping (http:// |V:357, I:996 (http:// |97 (http:// | |/en.wikipedia.org/wiki/ | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |t est::iproute2 |Hostname) ou endereo IP | |sid/iputils-ping) |popcon.php?package= |iputils-ping.html) | |(http://en.wikipedia.org/ | | |iputils-ping) | | |wiki/IP_address) (iproute2 | | | | | |(http:// | | | | | |www.linuxfoundation.org/en/ | | | | | |Net:Iproute2) ) | |----------------------+----------------------+---------------------------+----------------+----------------------------| | | | | |teste de acessibilidade de | |iputils-arping (http:/|V:4, I:32 (http:// |36 (http:// | |rede de uma mquina remota | |/packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |,

|especificado pelo endereo | |sid/iputils-arping) |popcon.php?package= |iputils-arping.html) | |ARP (http://en.wikipedia.org| | |iputils-arping) | | |/wiki/ | | | | | |Address_Resolution_Protocol)| |----------------------+----------------------+---------------------------+----------------+----------------------------| |iputils-tracepath |V:14, I:112 (http:// |67 (http:// | | | |(http:// |qa.debian.org/ |packages.qa.debian.org/i/ |, , |rastreia o caminho de rede | |packages.debian.org/ |popcon.php?package= |iputils-tracepath.html) | |at uma mquina remota | |sid/iputils-tracepath)|iputils-tracepath) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| | | | | |conjunto de ferramentas de | |net-tools (http:// |V:699, I:998 (http:// |916 (http:// | |rede NET-3 (net-tools (http:| |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/n/ |c onfig::net-tools|//www.linuxfoundation.org/en| |sid/net-tools) |popcon.php?package= |net-tools.html) | |/Net:Net-tools) , | | |net-tools) | | |configurao de rede IPv4): | | | | | |ifconfig(8) etc. | |----------------------+----------------------+---------------------------+----------------+----------------------------| | | | | |teste de acessibilidade de | | | | | |rede de uma mquina remota | |inetutils-ping (http:/|V:0, I:1 (http:// |278 (http:// | |pelo nome-de-mquina (http:/| |/packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/i/ |t est::net-tools |/en.wikipedia.org/wiki/ | |sid/inetutils-ping) |popcon.php?package= |inetutils-ping.html) | |Hostname) ou endereo IP | | |inetutils-ping) | | |(http://en.wikipedia.org/ | | | | | |wiki/IP_address) (legacy, | | | | | |GNU) | |----------------------+----------------------+---------------------------+----------------+----------------------------| | | | | |teste de acessibilidade de | | |V:4, I:32 (http:// | | |rede de uma mquina remota | |arping (http:// |qa.debian.org/ |46 (http:// | |especificado pelo endereo | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/a/ |, , |ARP (http://en.wikipedia.org| |sid/arping) |arping) |arping.html) |

| | | | |Address_Resolution_Protocol)| | | | | |(legacy) | |----------------------+----------------------+---------------------------+----------------+----------------------------| |traceroute (http:// |V:112, I:992 (http:// |175 (http:// | |rastreia o caminho de rede | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/t/ |, , |at uma mquina remota | |sid/traceroute) |popcon.php?package= |traceroute.html) | |(legacy, consola) | | |traceroute) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |isc-dhcp-client (http:|V:443, I:806 (http:// |1768 (http:// | | | |//packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/i/ |c onfig::low-level|Cliente DHCP | |sid/isc-dhcp-client) |popcon.php?package= |isc-dhcp-client.html) | | | | |isc-dhcp-client) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wpasupplicant (http://|V:343, I:457 (http:// |1364 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |suporte de cliente para WPA | |sid/wpasupplicant) |popcon.php?package= |wpasupplicant.html) | |e WPA2 (IEEE 802.11i) | | |wpasupplicant) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wpagui (http:// |V:0, I:7 (http:// |790 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |Cliente GUI Qt para o | |sid/wpagui) |popcon.php?package= |wpagui.html) | |wpa_supplicant | | |wpagui) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wireless-tools (http:/|V:73, I:242 (http:// |325 (http:// | | | |/packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |ferramentas para manipular | |sid/wireless-tools) |popcon.php?package= |wireless-tools.html) | |Extenses Wireless do Linux | | |wireless-tools) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ppp (http:// |V:70, I:445 (http:// |863 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/p/ |, |

|/wiki/

|ligao PPP/PPPoE com chat | |popcon.php?package= |ppp.html) | | | | |ppp) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |pppoeconf (http:// |V:2, I:26 (http:// |340 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/p/ |c onfig::helper |ajudante de configurao | |sid/pppoeconf) |popcon.php?package= |pppoeconf.html) | |para ligao PPPoE | | |pppoeconf) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |pppconfig (http:// |V:1, I:12 (http:// |990 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/p/ |, , |ajudante de configurao | |sid/pppconfig) |popcon.php?package= |pppconfig.html) | |para ligao PPP com chat | | |pppconfig) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wvdial (http:// |V:3, I:17 (http:// |276 (http:// | |ajudante de configurao | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |para ligao PPP com wvdial | |sid/wvdial) |popcon.php?package= |wvdial.html) | |e ppp | | |wvdial) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |mtr-tiny (http:// |V:15, I:118 (http:// |113 (http:// | |rastreia o caminho de rede | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/m/ |t est::low-level |at uma mquina remota | |sid/mtr-tiny) |popcon.php?package= |mtr-tiny.html) | |(curses) | | |mtr-tiny) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |mtr (http:// |V:7, I:36 (http:// |154 (http:// | |rastreia o caminho de rede | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/m/ |, , |at uma mquina remota | |sid/mtr) |popcon.php?package= |mtr.html) | |(curses e GTK+) | | |mtr) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |gnome-nettool (http://|V:28, I:327 (http:// |2644 (http:// | |ferramentas para operaes | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/g/ |, |sid/ppp)

|comuns de informao de rede| |sid/gnome-nettool) |popcon.php?package= |gnome-nettool.html) | |(GNOME) | | |gnome-nettool) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |nmap (http:// |V:63, I:339 (http:// |14940 (http:// | |mapeamento de rede / | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/n/ |, , |sondagem de portos (Nmap | |sid/nmap) |popcon.php?package= |nmap.html) | |(http://en.wikipedia.org/ | | |nmap) | | |wiki/Nmap) , consola) | |----------------------+----------------------+---------------------------+----------------+----------------------------| |zenmap (http:// |V:3, I:14 (http:// |2177 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/z/ |, , |mapeamento de rede / | |sid/zenmap) |popcon.php?package= |zenmap.html) | |sondagem de portos (GTK+) | | |zenmap) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |tcpdump (http:// |V:32, I:229 (http:// |1028 (http:// | |analisador de trfego de | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/t/ |, , |rede (Tcpdump (http:// | |sid/tcpdump) |popcon.php?package= |tcpdump.html) | |en.wikipedia.org/wiki/ | | |tcpdump) | | |Tcpdump) , consola) | |----------------------+----------------------+---------------------------+----------------+----------------------------| |wireshark (http:// |V:16, I:88 (http:// |2472 (http:// | |analisador de trfego de | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/w/ |, , |rede (Wireshark (http:// | |sid/wireshark) |popcon.php?package= |wireshark.html) | |en.wikipedia.org/wiki/ | | |wireshark) | | |Wireshark) , GTK+) | |----------------------+----------------------+---------------------------+----------------+----------------------------| |tshark (http:// |V:5, I:35 (http:// |338 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/t/ |, , |analisador de trfego de | |sid/tshark) |popcon.php?package= |tshark.html) | |rede (consola) | | |tshark) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| | |V:4, I:17 (http:// | | |sistema de monitorizao e | |nagios3 (http:// |qa.debian.org/ |29 (http:// |

|gesto para mquinas, | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/n/ |, , |servios e redes (Nagios | |sid/nagios3) |nagios3) |nagios3.html) | |(http://en.wikipedia.org/ | | | | | |wiki/Nagios) ) | |----------------------+----------------------+---------------------------+----------------+----------------------------| |tcptrace (http:// |V:0, I:3 (http:// |389 (http:// | |produz um sumrio das | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/t/ |, , |ligaes a partir da sada | |sid/tcptrace) |popcon.php?package= |tcptrace.html) | |do tcpdump | | |tcptrace) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| |snort (http:// |V:3, I:4 (http:// |1752 (http:// | |sistema flexvel de deteco| |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/s/ |, , |de intrusos na rede (Snort | |sid/snort) |popcon.php?package= |snort.html) | |(http://en.wikipedia.org/ | | |snort) | | |wiki/Snort_(software)) ) | |----------------------+----------------------+---------------------------+----------------+----------------------------| |ntop (http:// |V:6, I:14 (http:// |1674 (http:// | | | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/n/ |, , |mostra a utilizao da rede | |sid/ntop) |popcon.php?package= |ntop.html) | |num navegador web | | |ntop) | | | | |----------------------+----------------------+---------------------------+----------------+----------------------------| | |V:116, I:921 (http:// | | |clientes de rede | |dnsutils (http:// |qa.debian.org/ |374 (http:// | |disponibilizados com BIND | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/d/ |, , |(http://en.wikipedia.org/ | |sid/dnsutils) |dnsutils) |dnsutils.html) | |wiki/BIND) : nslookup(8), | | | | | |nsupdate(8), dig(8) | |----------------------+----------------------+---------------------------+----------------+----------------------------| | |V:3, I:59 (http:// | | |verifica informao de zona | |dlint (http:// |qa.debian.org/ |96 (http:// | |DNS (http://en.wikipedia.org| |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/d/ |, , |/wiki/Domain_Name_System) | |sid/dlint) |dlint) |dlint.html) | |usando pesquisas do servidor| | | | |

|de nomes | |----------------------+----------------------+---------------------------+----------------+----------------------------| | |V:0, I:4 (http:// | | |rastreia uma cadeia de | |dnstracer (http:// |qa.debian.org/ |81 (http:// | |servidores DNS (http:// | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/d/ |, , |en.wikipedia.org/wiki/ | |sid/dnstracer) |dnstracer) |dnstracer.html) | |Domain_Name_System) at | | | | | |fonte | +-----------------------------------------------------------------------------------------------------------------------+ 5.1.1. O nome de domnio Aitribuir o nome de domnio difcil para os utilizadores de PCs normais de estao de trabalho. A estao de trabalho PC pode ser porttil que salta pela rede ou est localizada atrs da firewall de NAT e inacessvel a partir da Internet. Para tais casos, voc pode no querer que o nome de domnio seja um nome de domnio vlido para evitar coliso de nomes. Se no tem a certeza do que escolher para este nome de dominio, escolha "localdomain". De acordo com a minha anlise chegada de mail outras escolhas populares para tal domnio de topo (TLD) (http://en.wikipedia.org /wiki/Top-level_domain) invlido e seguro parecem ser lan", "localnet", "home", "invalid" ou "local". Isto consistente com os queries a TLDs invlidos. Pode tambm escolher alguns domnios de segundo e terceiro nvel no utilizados. * ".invalid" (http://en.wikipedia.org/wiki/.invalid) destina-se a ser utilizado na construo online de nomes de domnios que seguramente so invlidos. (rfc2606 (http://tools.ietf.org/ html/rfc2606) ) * ".local" (http://en.wikipedia.org/wiki/.local) o domnio de pseudo-nvel-de-topo (http://en.wikipedia.org/wiki/ Pseudo-top-level_domain) utilizado pelo protocolo de descoberta de rede mDNS (http://en.wikipedia.org/wiki/MDNS) ( Apple Bonjour / Apple Rendezvous (http://en.wikipedia.org/ wiki/Bonjour_(software)) , Avahi em Debian). Ateno Se o servio DNS na sua LAN utilizar "local" como TLD para a sua LAN, pode interferir com o mDNS. Dica Quando utilizar um nome de domnio invlido, tem de iludir o nome de domnio utilizado por alguns programas como os MTA para que operem de modo apropriado. Veja Seco6.3.3, A configurao do endereo de mail.

5.1.2. A resoluo de nome de mquina A resoluo de nome de mquina tambm suportada actualmente pelo mecanismo NSS (Name Service Switch) (http://en.wikipedia.org /wiki/Name_Service_Switch) . O fluxo desta resoluo o seguinte. 1. O ficheiro "/etc/nsswitch.conf" com "hosts: files dns" dicta a ordem de resoluo do nome de mquina. (Isto substitui a funcionalidade antiga de "order" em "/etc/host.conf".) 2. O mtodo files invocado primeiro. Se o nome de mquina for encontrado no ficheiro "/etc/hosts", devolve um endereo vlido e termina. (O ficheiro "/etc/host.conf" contm "multi on".) 3. O mtodo dns invocado. Se o nome de mquina encontrado pela consulta ao Internet Domain Name System (DNS) (http:// en.wikipedia.org/wiki/Domain_Name_System) identificado pelo ficheiro "/etc/resolv.conf", devolve um endereo vlido para ele e termina. Por exemplo, "/etc/hosts" parece-se com o seguinte. 127.0.0.1 localhost 127.0.1.1 <host_name>.<domain_name> <host_name> # As linhas seguintes so desejveis para mquinas capazes de IPv6 ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts Cada linha comea por um endereo IP (http://en.wikipedia.org/ wiki/IP_address) e seguida pelo hostname (http:// en.wikipedia.org/wiki/Hostname) associado. O endereo IP 127.0.1.1 na segunda linha deste exemplo pode no ser encontrada nalguns outros sistemas tipo-Unix. O Instalador Debian (http://en.wikipedia.org/wiki/Debian-Installer) cria esta entrada para um sistema sem um endereo IP permanente como conteno para algum software (p.e., GNOME) conforme documentado no bug #316099 (http://bugs.debian.org/316099) . O <host_name> coincide com o nome da mquina definido em "/etc/ hostname". Para <domain_name> do PC porttil, poder escolher um domnio seguro e invlido tal como "localdomain". (Veja Seco5.1.1, O nome de domnio) Para um sistema com um endereo IP permanente, esse endereo IP permanente deve ser utilizado aqui em vez do 127.0.1.1. Para um sistema com um endereo IP permanente e um nome de domnio totalmente qualificado (FQDN) (http://en.wikipedia.org/ wiki/FQDN) disponibilizado pelo Sistema de Nomes de Domnio (DNS) (http://en.wikipedia.org/wiki/Domain_Name_System) , o <host_name>

e <domain_name> cannicos devem ser utilizados aqui. O "/etc/resolv.conf" um ficheiro esttico se o pacote resolvconf no estiver instalado. Se instalado, um link simblico. De qualquer modo, contm informao que inicializa as rotinas de resoluo de nomes. Se o DNS existir no IP= "192.168.11.1", contm o seguinte. nameserver 192.168.11.1 O pacote resolvconf torna este "/etc/resolv.conf" num link simblico e gere o seu contedo automaticamente pelos scripts hook. A resoluo de nome de mquina via Multicast DNS (utilizando Zeroconf (http://en.wikipedia.org/wiki/Zeroconf) , aka Apple Bonjour / Apple Rendezvous (http://en.wikipedia.org/wiki/Bonjour_ (software)) ) que permite efectivamente resoluo de nomes por programas Unix/Linux comuns no domnio ad-hoc mDNS "local", pode ser disponibilizada ao instalar o pacote libnss-mdns. O ficheiro "/etc/nsswitch.conf" dever ter uma estrofe como "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 " para activar esta funcionalidade. A resoluo de nome de mquina atravs do depreciado NETBios sobre TCP/IP (http://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP) utilizada em antigos sistemas Windows pode ser disponibilizada ao instalar o pacote winbind. O ficheiro "/etc/nsswitch.conf" dever ter um bloco como "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins" para activar esta funcionalidade. (Os sistemas modernos de Windows normalmente utilizam o mtodo dns para a resoluo dos nomes de mquinas.) 5.1.3. O nome da interface de rede O nome da interface de rede, p.e. eth0, atribudo a cada hardware no kernel Linux conforme encontrado, atravs do mecanismo de configurao do espao de utilizador, udev (veja Seco3.5.11, O sistema udev). O nome da interface de rede referido como interface fsica em ifup(8) e interfaces(5). De modo a assegurar que cada interface de rede seja chamado de modo persistente em cada arranque do sistema utilizando o MAC address (http://en.wikipedia.org/wiki/MAC_address) e etc., existe um ficheiro de registo "/etc/udev/rules.d/ 70-persistent-net.rules". Este ficheiro gerado automaticamente pelo programa "/lib/udev/write_net_rules", provavelmente executado pelo ficheiro de regras persistent-net-generator.rules". Voc pode modific-lo para alterar as regras de nomeao. Cuidado Quando editar o ficheiro de regras "/etc/udev/rules.d/ 70-persistent-net.rules", voc tem de manter cada regra numa nica linha e o MAC address (http://en.wikipedia.org/wiki/ MAC_address) em minsculas. Por exemplo, se voc encontrar "FireWire device" e "PCI device" neste ficheiro, provavelmente vai querer nomear o "PCI device" como eth0 e configura-lo como a interface de rede principal.

5.1.4. A gama de endereos de rede para a LAN Vamos lembrar as gamas de endereos do IPv4 de 32 bits em cada classe reservada para utilizao em redes de rea local (LANs) (http://en.wikipedia.org/wiki/Local_area_network) pelo rfc1918 (http://tools.ietf.org/html/rfc1918) . garantido que estes endereos no estejam em conflito com quaisquer endereos na Internet. Tabela 5.2. Lista de gamas de endereos de rede +---------------------------------------------------------------+ |Classe|endereos de rede|mscara de |mscara de |# de | | | |rede |rede /bits |sub-redes| |------+-----------------+-------------+--------------+---------| |A |10.x.x.x |255.0.0.0 |/8 |1 | |------+-----------------+-------------+--------------+---------| |B |172.16.x.x |255.255.0.0 |/16 |16 | | |172.31.x.x | | | | |------+-----------------+-------------+--------------+---------| |C |192.168.0.x |255.255.255.0|/24 |256 | | |192.168.255.x | | | | +---------------------------------------------------------------+ Nota Se for atribudo um destes endereos a uma mquina, ento essa mquina no poder aceder Internet directamente mas ter de aceder atravs de uma gateway que age como um proxy para servios individuais ou ento far Network Address Translation(NAT) (http: //en.wikipedia.org/wiki/Network_address_translation) . O router de banda larga geralmente executa NAT para o ambiente LAN do consumidor. 5.1.5. O suporte a dispositivos de rede Apesar da maioria dos dispositivos de hardware serem suportados pelo sistema Debian, existem alguns dispositivos de rede que necessitam de firmware no-livre DFSG (http://www.debian.org/ social_contract#guidelines) para os suportar. Por favor veja Seco9.7.6, Controladores de hardware e firmware. 5.2. A configurao moderna de rede para desktop Os sistemas Debian squeeze podem gerir a ligao de rede atravs de software daemon (http://en.wikipedia.org/wiki/Daemon_ (computer_software)) de gesto como o NetworkManager (NM) (http:/ /en.wikipedia.org/wiki/NetworkManager) (network-manager e pacotes associados) ou Wicd (http://en.wikipedia.org/wiki/Wicd_ (Linux_Network_Manager)) (wicd e pacotes associados). * Vm com as suas prprias GUIs (http://en.wikipedia.org/wiki/ Graphical_user_interface) e programas de linha de comandos como as suas interfaces de utilizador. * Vm com os seus prprios daemons (http://en.wikipedia.org/ wiki/Daemon_(computer_software)) como os seus sistemas de backend.

* Permitem ligao fcil do seu sistema Internet. * Permitem gesto fcil de configurao de redes com e sem fios. * Permitem-nos configurar a rede independentemente do pacote legacy ifupdown. Nota No utilize estas ferramentas de configurao de rede automticas em servidores. Estas so destinadas principalmente para os utilizadores mveis em portteis. Estas ferramentas modernas de configurao de rede necessitam ser correctamente configuradas para evitar entrarem em conflito com o pacote legacy ifupdown e o seu ficheiro de configurao "/etc/ network/interfaces". Nota Algumas funcionalidades destas ferramentas automticas de configurao de rede podem sofrer regresses. No so to robustas como o pacote legacy ifupdown. Consulte BTS do network-manager (http://bugs.debian.org/cgi-bin/pkgreport.cgi? package=network-manager) e BTS do wicd (http://bugs.debian.org/ cgi-bin/pkgreport.cgi?package=wicd) para os problemas e limitaes actuais. 5.2.1. Ferramentas GUI de configurao de rede Documentao oficial para NM e Wicd em Debian so disponibilizadas em "/usr/share/doc/network-manager/ README.Debian" e "/usr/share/doc/wicd/README.Debian", respectivamente. Essencialmente, a configurao de rede para desktop feita como se segue. 1. Tornar o utilizador de ambiente de trabalho, p.e. foo, pertencente ao grupo "netdev" com o seguinte (Em alternativa, em ambientes de trabalho modernos como o GNOME e o KDE, faa-o automaticamente atravs de D-bus (http:// en.wikipedia.org/wiki/D-Bus) ). $ sudo adduser foo netdev 2. Mantenha a configurao de "/etc/network/interfaces" to simples como o seguinte. auto lo iface lo inet loopback 3. Reiniciar NM ou Wicd com o seguinte. $ sudo /etc/init.d/network-manager restart $ sudo /etc/init.d/wicd restart

4. Configure a sua rede atravs da GUI. Nota Apenas as interfaces que no esto listadas em "/etc/network/ interfaces" ou que foram configuradas com "auto " ou "allow-hotplug " e "iface inet dhcp" (sem outras opes) so geridas pelo NM para evitar conflitos com o ifupdown. Dica Se desejar estender as capacidades de configurao de rede do NM, por favor procure mdulos plug-in apropriados e pacotes suplementares como os network-manager-openconnect, network-manager-openvpn-gnome, network-manager-pptp-gnome, mobile-broadband-provider-info, gnome-bluetooth, etc. O mesmo vale para o Wicd. Cuidado Estas ferramentas automticas de configurao de rede podem no ser compatveis com as configuraes esotricas do legado ifupdown em "/etc/network/interfaces" como aquelas em Seco5.5, A configurao bsica de rede com ifupdown (legacy) e Seco5.6, A configurao de rede avanada com ifupdown (antigo). Consulte BTS do network-manager (http:// bugs.debian.org/cgi-bin/pkgreport.cgi?package=network-manager) e BTS do wicd (http://bugs.debian.org/cgi-bin/pkgreport.cgi?package =wicd) para os problemas e limitaes actuais. 5.3. A ligao e antiga configurao de rede Quando o mtodo descrito em Seco5.2, A configurao moderna de rede para desktop no satisfizer as suas necessidades, deve utilizar a ligao de rede e mtodo antigo de configurao que combina muitas ferramentas mais simples. A antiga ligao de rede especfica para cada mtodo (veja Seco5.4, O mtodo de ligao de rede (antigo)). Existem 2 tipos de programas para a configurao de rede de baixo nvel em Linux (veja Seco5.7.1, Comandos iproute2). * Os programas antigos net-tools (http:// www.linuxfoundation.org/en/Net:Net-tools) (ifconfig(8), ) so do sistema de rede Linux NET-3. A maioria esto agora obsoletos. * Os novos programs Linux iproute2 (http:// www.linuxfoundation.org/en/Net:Iproute2) (ip(8), ) so o sistema de rede actual do Linux. Apesar destes programas de rede de baixo nvel serem poderosos, no so to prticos de utilizar. Por isso foram criados sistema de configurao de rede de alto nvel. O pacote ifupdown o standard de facto para tais sistemas de configurao de rede de alto nvel em Debian. Permite-lhe activar a rede simplesmente ao fazer, p. e., "ifup eth0". O seu ficheiro de configurao o ficheiro "/etc/network/interfaces" e o seu

contedo tpico o seguinte: auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp O pacote resolvconf foi criado como suplemento ao sistema ifupdown para suportar uma fcil configurao da resoluo de endereos de rede ao automatizar a rescrita do ficheiro de configurao do resolvedor "/etc/resolv.conf". Agora, a maioria dos pacotes de configurao de rede em Debian esto modificados para utilizar o pacote resolvconf (veja "/usr/share/doc/ resolvconf/README.Debian"). Scripts de ajuda do pacote ifupdown tais como ifplugd, guessnet, ifscheme, etc. so criados para automatizar a configurao dinmica do ambiente de rede para os PCs mveis assim como numa rede com fios. Estes so relativamente difceis de usar mas funcionam bem com o sistema ifupdown existente. Estes esto explicados em detalhe com exemplos (veja Seco5.5, A configurao bsica de rede com ifupdown (legacy) e Seco5.6, A configurao de rede avanada com ifupdown (antigo)). 5.4. O mtodo de ligao de rede (antigo) Cuidado O mtodo de teste de ligao descrito nesta seco destina-se a propsitos de teste. No se destina a ser utilizado directamente para as ligaes do dia-a-dia de rede. Voc avisado para utiliz-lo via NM, Wicd, ou do pacote ifupdown (veja Seco5.2, A configurao moderna de rede para desktop e Seco5.5, A configurao bsica de rede com ifupdown (legacy)). O mtodo de ligao de rede tpico e caminho de ligao para um PC pode ser resumido ao seguinte: Tabela 5.3. Lista de mtodos de ligao de rede e caminhos de ligao +---------------------------------------------------------------+ | |mtodo | | |PC |de |caminho de ligao | | |ligao | | |--------+--------+---------------------------------------------| |Porta | | modem (http://en.wikipedia.org/wiki/Modem) | |srie |PPP | POTS ponto de acesso dial-up ISP | |(ppp0) | | | |--------+--------+---------------------------------------------| |Porta |PPPoE/ | BB-modem servio BB ponto de acesso BB | |Ethernet|DHCP/ | ISP | |(eth0) |Esttico| | |--------+--------+---------------------------------------------| |Porta | | LAN router BB com with traduo de | |Ethernet|DHCP/ |endereos de rede (NAT) (http:// | |(eth0) |Esttico|en.wikipedia.org/wiki/ |

| | |Network_address_translation) ( BB-modem ) | +---------------------------------------------------------------+ Aqui est um sumrio do script de configurao para cada mtodo de ligao. Tabela 5.4. Lista de configuraes de ligao de rede +---------------------------------------------------------------+ |mtodo de |configurao |pacote(s) | |ligao | |backend | |---------------+-------------------------------+---------------| |PPP |pppconfig para criar chat |pppconfig, ppp | | |determinista | | |---------------+-------------------------------+---------------| |PPP |wvdialconf para criar chat |ppp, wvdial | |(alternativa) |heurstico | | |---------------+-------------------------------+---------------| |PPPoE |pppoeconf para criar chat |pppoeconf, ppp | | |determinista | | |---------------+-------------------------------+---------------| |DHCP |descrito em "/etc/dhcp/ |isc-dhcp-client| | |dhclient.conf" | | |---------------+-------------------------------+---------------| |IP esttico |descrito em "/etc/network/ |net-tools | |(IPv4) |interfaces" | | |---------------+-------------------------------+---------------| |IP esttico |descrito em "/etc/network/ |iproute | |(IPv6) |interfaces" | | +---------------------------------------------------------------+ A ligao de rede annima significa o seguinte. Tabela 5.5. Lista de ligaes de rede annimas +---------------------------------------------------------------+ |acrnimo |significado | |--------------------------------------+------------------------| |POTS (http://en.wikipedia.org/wiki/ |servio de antigo | |Plain_old_telephone_service) |telefone simples | |--------------------------------------+------------------------| | |banda larga (http:// | |BB |en.wikipedia.org/wiki/ | | |Broadband) | |--------------------------------------+------------------------| | |ex. a linha de | | |subscrio digital | |servio BB |(DSL), a TV por cabo, ou| | |a fibra at aos casas | | |(FTTP) | |--------------------------------------+------------------------| | |ex. o modem DSL (http://| | |en.wikipedia.org/wiki/ | | |DSL_modem) , o modem de | | |cabo (http:// | |modem BB |en.wikipedia.org/wiki/ | | |Cable_modem) , ou o | | |terminal de rede ptica |

| |(ONT) (http:// | | |en.wikipedia.org/wiki/ | | |FTTP) | |--------------------------------------+------------------------| |LAN (http://en.wikipedia.org/wiki/ |rede de rea local | |Local_area_network) | | |--------------------------------------+------------------------| |WAN (http://en.wikipedia.org/wiki/ |rede de rea alargada | |Wide_area_network) | | |--------------------------------------+------------------------| |DHCP (http://en.wikipedia.org/wiki/ |protocolo de | |Dynamic_Host_Configuration_Protocol) |configurao dinmico de| | |mquina | |--------------------------------------+------------------------| |PPP (http://en.wikipedia.org/wiki/ |protocolo | |Point-to-Point_Protocol) |ponto-para-ponto | |--------------------------------------+------------------------| |PPPoE (http://en.wikipedia.org/wiki/ |protocolo | |Point-to-Point_Protocol_over_Ethernet)|ponto-para-ponto sobre | | |Ethernet | |--------------------------------------+------------------------| |ISP (http://en.wikipedia.org/wiki/ISP)|Provedor de servio de | | |Internet | +---------------------------------------------------------------+ Nota Os servios de ligao WAN via TV por cabo so normalmente servidos por DHCP ou PPPoE. Os de ADSL e FTTP so geralmente servidos por PPPoE. Voc tem de consultar o seu ISP para os requesitos de configurao exactos para a ligao WAN. Nota Quando utilizado um router de banda larga para criar um ambiente LAN caseiro, os PCs na LAN so ligados WAN atravs do router com traduo de endereos de rede (NAT) (http:// en.wikipedia.org/wiki/Network_address_translation) . Para tais casos, as interfaces de rede dos PCs na LAN so servidas por DHCP ou IP esttico a partir do router. O router tem de ser configurado para ligar WAN seguindo as instrues do seu ISP. 5.4.1. A ligao DHCP com Ethernet A tpica rede moderna de casa ou de pequena empresa, isto , LAN, est ligada WAN (Internet) por um router de banda larga de classe de consumidor. A LAN por detrs deste router servida geralmente pelo servidor de protocolo de configurao dinmica de mquinas (DHCP) (http://en.wikipedia.org/wiki/ Dynamic_Host_Configuration_Protocol) que corre no router. Instale apenas o pacote isc-dhcp-client para a Ethernet servida pelo protocolo de configurao dinmica de mquinas (DHCP) (http: //en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol) . Veja dhclient.conf(5). 5.4.2. A ligao de IP esttico com a Ethernet

No necessria nenhuma aco especial para a Ethernet servida por IP esttico. 5.4.3. A ligao PPP com o pppconfig O script de configurao pppconfig configura a ligao PPP (http: //en.wikipedia.org/wiki/Point-to-Point_Protocol) interactivamente ao seleccionar o seguinte. * O nmero de telefone * O nome de utilizador do ISP * A palavra-passe do ISP * A velocidade da porta * A porta de comunicao do modem * O mtodo de autenticao Tabela 5.6. Lista de ficheiros de configurao para a ligao PPP (http://en.wikipedia.org/wiki/Point-to-Point_Protocol) com pppconfig +---------------------------------------------------------------+ |ficheiro |funo | |--------------+------------------------------------------------| |/etc/ppp/peers|O ficheiro de configurao gerado pelo pppconfig| |/<nome_do_isp>|para um pppd especfico para <nome_de_isp> | |--------------+------------------------------------------------| |/etc/ |O ficheiro de configurao gerado pelo pppconfig| |chatscripts/ |para chat especifico com <nome_de_isp> | |<nome_do_isp> | | |--------------+------------------------------------------------| |/etc/ppp/ |O parmetro de execuo geral para o pppd | |options | | |--------------+------------------------------------------------| | |Dados de autenticao para PAP (http:// | |/etc/ppp/ |en.wikipedia.org/wiki/ | |pap-secret |Password_authentication_protocol) (risco de | | |segurana) | |--------------+------------------------------------------------| | |Dados de autenticao para CHAP (http:// | |/etc/ppp/ |en.wikipedia.org/wiki/ | |chap-secret |Challenge-handshake_authentication_protocol) | | |(mais seguro) | +---------------------------------------------------------------+ Cuidado O valor "<nome_do_isp>" do "provedor" assumido se os comandos pon e poff forem invocados sem argumentos. Voc pode testar a configurao usando ferramentas de configurao de baixo nvel como as seguintes. $ sudo pon <nome_do_isp> ...

$ sudo poff <nome_do_isp> Veja "/usr/share/doc/ppp/README.Debian.gz". 5.4.4. A ligao PPP alternativa com o wvdialconf Uma aproximao diferente a utilizar pppd(8) corr-lo a partir do wvdial(1) que vem no pacote wvdial. Em vez do pppd correr o chat(8) para marcar e negociar a ligao, o wvdial faz a marcao e a negociao inicial e depois arranca o pppd para fazer o resto. O script de configurao wvdialconf configura a ligao PPP interactivamente ao seleccionar apenas o seguinte: * O nmero de telefone * O nome de utilizador do ISP * A palavra-passe do ISP wvdial tem sucesso a criar a ligao na maioria dos casos e mantm automaticamente uma lista de dados de autenticao. Tabela 5.7. Lista de ficheiros de configurao para a ligao PPP com wvdialconf +---------------------------------------------------------------+ |ficheiro |funo | |-----------+---------------------------------------------------| |/etc/ppp/ |O ficheiro de configurao gerado pelo wvdialconf | |peers/ |para o pppd, especfico para wvdial | |wvdial | | |-----------+---------------------------------------------------| |/etc/ |O ficheiro de configurao gerado pelo wvdialconf | |wvdial.conf| | |-----------+---------------------------------------------------| |/etc/ppp/ |O parmetro de execuo geral para o pppd | |options | | |-----------+---------------------------------------------------| | |Dados de autenticao para PAP (http:// | |/etc/ppp/ |en.wikipedia.org/wiki/ | |pap-secret |Password_authentication_protocol) (risco de | | |segurana) | |-----------+---------------------------------------------------| | |Dados de autenticao para CHAP (http:// | |/etc/ppp/ |en.wikipedia.org/wiki/ | |chap-secret|Challenge-handshake_authentication_protocol) (mais | | |seguro) | +---------------------------------------------------------------+ Voc pode testar a configurao usando ferramentas de configurao de baixo nvel como as seguintes. $ sudo wvdial ... $ sudo killall wvdial Veja wvdial(1) e wvdial.conf(5).

5.4.5. A ligao PPPoE com o pppoeconf Quando o seu ISP o serve com ligao PPPoE e voc decide ligar o seu PC directamente WAN, a rede do seu PC tem de ser configurada com PPPoE. PPPoE significa PPP over Ethernet. O script de configurao pppoeconf configura a ligao PPPoE interactivamente. Os ficheiros de configurao so os seguintes: Tabela 5.8. Lista de ficheiros de configurao para a ligao PPPoE com pppoeconf +---------------------------------------------------------------+ |ficheiro |funo | |------------+--------------------------------------------------| |/etc/ppp/ |O ficheiro de configurao gerado pelo pppoeconf | |peers/ |para o pppd, especfico para pppoe | |dsl-provider| | |------------+--------------------------------------------------| |/etc/ppp/ |O parmetro de execuo geral para o pppd | |options | | |------------+--------------------------------------------------| | |Dados de autenticao para PAP (http:// | |/etc/ppp/ |en.wikipedia.org/wiki/ | |pap-secret |Password_authentication_protocol) (risco de | | |segurana) | |------------+--------------------------------------------------| | |Dados de autenticao para CHAP (http:// | |/etc/ppp/ |en.wikipedia.org/wiki/ | |chap-secret |Challenge-handshake_authentication_protocol) (mais| | |seguro) | +---------------------------------------------------------------+ Voc pode testar a configurao usando ferramentas de configurao de baixo nvel como as seguintes. $ sudo $ sudo ... $ sudo $ sudo /sbin/ifconfig eth0 up pon dsl-provider poff dsl-provider /sbin/ifconfig eth0 down

Veja "/usr/share/doc/pppoeconf/README.Debian". 5.5. A configurao bsica de rede com ifupdown (legacy) A configurao tradicional de rede TCP/IP (http:// en.wikipedia.org/wiki/Internet_Protocol_Suite) no sistema Debian utiliza o pacote ifupdown como uma ferramenta de alto nvel. Existem 2 casos tpicos: * Para sistemas de IP dinmico, como os PCs portteis, voc configurar a rede TCP/IP com o pacote resolvconf para permitir-lhe mudar facilmente a configurao da sua rede (veja Seco5.5.4, A interface de rede servida por DHCP). * Para sistemas de IP esttico como os servidores, voc deve

configurar a rede TCP/IP sem o pacote resolvconf e manter o seu sistema simples (veja Seco5.5.5, A interface de rede com IP esttico). Estes mtodos de configurao tradicionais so muito teis se desejar definir configuraes avanadas (veja Seco5.5, A configurao bsica de rede com ifupdown (legacy)). O pacote ifupdown disponibiliza uma estrutura standard para a configurao de rede de alto nvel no sistema Debian. Nesta seco, aprendemos a configurao bsica de rede com o ifupdown com uma introduo simplificada e muitos exemplos tpicos. 5.5.1. A sintaxe simplificada de comando O pacote ifupdown contm dois comandos: ifup(8) e ifdown(8). Eles oferecem configurao de rede de alto nvel ditada pelo ficheiro de configurao "/etc/network/interfaces". Tabela 5.9. Lista de comandos de configurao de rede bsicos com ifupdown +---------------------------------------------------------------+ |comando|aco | |-------+-------------------------------------------------------| |ifup |activa a interface de rede eth0 com a configurao eth0| |eth0 |se existir "iface eth0" | |-------+-------------------------------------------------------| |ifdown |desactiva a interface de rede eth0 com a configurao | |eth0 |eth0 se existir "iface eth0" | +---------------------------------------------------------------+ Ateno No utilize as ferramentas de configurao de baixo nvel tais como os comandos ifconfig(8) e ip(8) para configurar uma interface em estado activo. Nota No existe nenhum comando ifupdown. 5.5.2. A sintaxe bsica de "/etc/network/interfaces" A sintaxe chave de "/etc/network/interfaces" como explicada em interfaces(5) pode ser resumida ao seguinte. Tabela 5.10. Lista de estrofes em "/etc/network/interfaces" +---------------------------------------------------------------+ |estrofe |significado | |--------------------------+------------------------------------| | |inicia a interface | |"auto <nome_da_interface>"|<nome_da_interface> no arranque do | | |sistema | |--------------------------+------------------------------------| |"allow-auto |, , | |<nome_de_interface>" | | |--------------------------+------------------------------------|

| |inicia a interface | |"allow-hotplug |<nome_de_interface> quando o kernel | |<nome_de_interface>" |detecta um evento hotplug da | | |interface | |--------------------------+------------------------------------| |Linhas comeadas por |definem a configurao de rede | |"iface |<nome_de_configurao> | |<nome_de_configurao> " | | |--------------------------+------------------------------------| |Linhas iniciadas por |define valor de mapeamento de | |"mapping |<nome_de_configurao> para o | |<nome_da_interface_global>|<nome_de_interface> correspondente | |" | | |--------------------------+------------------------------------| |A linha comeada com um |ignorar como comentrios (os | |cardinal "#" |comentrios no fim da linha no so | | |suportados) | |--------------------------+------------------------------------| |Uma linha terminada com |estende a configurao para a | |uma barra inversa "\" |prxima linha | +---------------------------------------------------------------+ As linhas comeadas por iface tm a seguinte sintaxe: iface <nome_de_configurao> <familia_de_endereos> <nome_do_mtodo> <opo1> <valor1> <opo2> <valor2> ... Para a configurao bsica, mapping no utilizado e voc utiliza o nome da interface de rede como o nome da configurao de rede (Veja Seco5.6.5, A estrofe de mapeamento). Ateno No defina duplicados da estrofe "iface" para uma interface de rede em "/etc/network/interfaces". 5.5.3. A interface de rede loopback A seguinte entrada de configurao no ficheiro "/etc/network/ interfaces" activa a interface de rede loopback lo durante o arranque do sistema (via estrofe auto). auto lo iface lo inet loopback Isto est sempre presente no ficheiro "/etc/network/interfaces". 5.5.4. A interface de rede servida por DHCP Aps preparar o sistema com Seco5.4.1, A ligao DHCP com Ethernet, a interface de rede servida por DHCP configurada ao criar a entrada de configurao no ficheiro "/etc/network/ interfaces" como o seguinte: allow-hotplug eth0 iface eth0 inet dhcp

Quando o kernel Linux detecta a interface fsica eth0, a estrofe allow-hotplug faz com que ifup active a interface e a estrofe iface faz com que ifup utilize DHCP para configurar a interface. 5.5.5. A interface de rede com IP esttico A interface de rede servida por IP esttico configurada ao criar a entrada de configurao no ficheiro "/etc/network/ interfaces" como se segue: allow-hotplug eth0 iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-domain exemplo.com dns-nameservers 192.168.11.1 Quando o kernel Linux detecta a interface fsica eth0, a estrofe allow-hotplug faz com que ifup active a interface e a estrofe iface faz com que ifup use IP esttico para configurar a interface. Aqui, eu assumi o seguinte: * Alcance de endereos IP da rede LAN: 192.168.11.0 192.168.11.255 * Endereo IP da gateway: 192.168.11.1 * Endereo IP do PC: 192.168.11.100 * O pacote resolvconf: instalado * O nome de domnio: "exemplo.com" * Endereo IP do servidor DNS: 192.168.11.1 Quando o pacote resolvconf no estiver instalado, a configurao relacionada com DNS precisa ser feita manualmente ao editar o ficheiro "/etc/resolv.conf" como se seguei: nameserver 192.168.11.1 domain exemplo.com Cuidado Os endereos IP utilizados no exemplo acima no se destinam a ser copiados literalmente. Voc tem de ajustar os nmeros do IP configurao da sua rede actual. 5.5.6. O bsico da interface de rede sem fios A LAN sem fios (WLAN resumindo) (http://en.wikipedia.org/wiki/ Wireless_LAN) disponibiliza a ligao sem fios mais rpida atravs da difuso espectral de bandas de rdio no licenciadas baseada no conjunto de standards chamado IEEE 802.11 (http:// en.wikipedia.org/wiki/IEEE_802.11) . As interfaces de WLAN so quase iguais s interfaces Ethernet

normais mas necessitam que lhes seja disponibilizado um ID de rede e dados de chave de encriptao quando so inicializadas. As suas ferramentas de rede de alto nvel so exactamente as mesmas das interfaces Ethernet com a excepo que os nomes das interfaces so um pouco diferentes como eth1, wlan0, ath0, wifi0, dependendo das drivers de kernel usadas. Dica O dispositivo wmaster0 o dispositivo mestre o qual um dispositivo interno usado apenas por SoftMAC (http:// en.wikipedia.org/wiki/SoftMAC) com a nova API mac80211 do Linux (http://linuxwireless.org/) . Aqui esto algumas palavras chave para lembrar para a WLAN. Tabela 5.11. Lista de siglas para WLAN +---------------------------------------------------------------+ |acrnimo|palavra completa |significado | |--------+-------------------------+----------------------------| | | |ID de rede a 16 bit usado | | | |por redes pre-802.11 WaveLAN| |NWID |ID de rede |(http://en.wikipedia.org/ | | | |wiki/WaveLAN) (muito | | | |descontinuado) | |--------+-------------------------+----------------------------| | | |nome de rede dos Pontos de | | | |Acesso Wireless (APs) (http:| | |(Extenso) Service Set |//en.wikipedia.org/wiki/ | | |Identifier (http:// |Wireless_access_point) | |(E)SSID |en.wikipedia.org/wiki/ |interligados para formar uma| | |Service_set_identifier) |LAN 802.11 wireless (http://| | | |en.wikipedia.org/wiki/ | | | |IEEE_802.11) integrada, ID | | | |de Domnio | |--------+-------------------------+----------------------------| | |Wired Equivalent Privacy |standard de encriptao | |WEP, |(http://en.wikipedia.org/|wireless 64-bit (128-bit) de| |(WEP2) |wiki/ |1 gerao com chave de 40 | | |Wired_Equivalent_Privacy)|bits (descontinuado) | |--------+-------------------------+----------------------------| | |Wi-Fi Protected Access |standard de encriptao | |WPA |(http://en.wikipedia.org/|wireless de 2 gerao | | |wiki/ |(maioria dos 802.11i), | | |Wi-Fi_Protected_Access) |compatvel com WEP | |--------+-------------------------+----------------------------| | |Wi-Fi Protected Access 2 |standard de encriptao | |WPA2 |(http://en.wikipedia.org/|wireless de 3 gerao | | |wiki/IEEE_802.11i) |(todos 802.11i), no | | | |compatvel com WEP | +---------------------------------------------------------------+ A escolha actual do protocolo normalmente limitada pelo router wireless que voc possui. 5.5.7. A interface LAN wireless com WPA/WPA2 Tem de instalar o pacote wpasupplicant para suportar a WLAN com o

novo WPA/WPA2. No caso de IP servido por DHCP (http://en.wikipedia.org/wiki/ Dynamic_Host_Configuration_Protocol) em ligao WLAN, a entrada no ficheiro "/etc/network/interfaces" dever ser conforme a seguinte: allow-hotplug ath0 iface ath0 inet dhcp wpa-ssid homezone # hexadecimal psk is encoded from a plaintext passphrase wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f Veja "/usr/share/doc/wpasupplicant/README.modes.gz". 5.5.8. A interface LAN wireless com WEP Tem de instalar o pacote wireless-tools para suportar a WLAN com o antigo WEP. (O seu router pode ainda usar esta infraestrutura insegura, mas melhor do que nada.) Cuidado Por favor note o seu trfego de rede em WLAN com WEP pode ser interceptado por outros. No caso de IP servido por DHCP (http://en.wikipedia.org/wiki/ Dynamic_Host_Configuration_Protocol) em ligao WLAN, a entrada no ficheiro "/etc/network/interfaces" dever ser conforme a seguinte: allow-hotplug eth0 iface eth0 inet dhcp wireless-essid Home wireless-key1 0123-4567-89ab-cdef wireless-key2 12345678 wireless-key3 s:password wireless-defaultkey 2 wireless-keymode open Veja "/usr/share/doc/wireless-tools/README.Debian". 5.5.9. A ligao PPP Tem de configurar a ligao PPP primeiro como descrito antes (veja Seco5.4.3, A ligao PPP com o pppconfig). Depois, adicione a entrada no ficheiro "/etc/network/interfaces" para o dispositivo PPP principal ppp0 como se segue. iface ppp0 inet ppp provider <nome_do_isp> 5.5.10. A ligao PPP alternativa Necessita primeiro de configurar a ligao PPP alternativa com o wvdial como descrito antes (veja Seco5.4.4, A ligao PPP alternativa com o wvdialconf). Depois, adicione a entrada no ficheiro "/etc/network/interfaces" para o dispositivo PPP principal ppp0 como se segue.

iface ppp0 inet wvdial 5.5.11. A ligao PPPoE Para um PC ligado directamente WAN servido por PPPoE, voc precisa de configurar o sistema com a ligao PPPoE como descrito antes (veja Seco5.4.5, A ligao PPPoE com o pppoeconf). Depois, adicione a entrada no ficheiro "/etc/network/interfaces" para o dispositivo PPPoE principal eth0 como se segue. allow-hotplug eth0 iface eth0 inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down # O seguinte usado apenas internamente iface dsl inet ppp provider dsl-provider 5.5.12. O estado de configurao de rede do ifupdown O ficheiro "/etc/network/run/ifstate" armazena os estados de configurao de rede desejados para todas as interfaces de rede actualmente activas e geridas pelo pacote ifupdown numa lista. Infelizmente, mesmo que o sistema ifupdown falhe ao activar uma interface como desejado, o ficheiro "/etc/network/run/ifstate" lista-a como activa. A menos que o resultado do comando ifconfig(8) para uma interface no tenha uma linha como o exemplo seguinte, no pode ser usada como parte de uma rede IPV4 (http://en.wikipedia.org/wiki/IPv4) . inet addr:192.168.11.2 Bcast:192.168.11.255 Mask:255.255.255.0 Nota Para o dispositivo Ethernet ligado a PPPoE, ao resultado do comando ifconfig(8) falta uma linha que se parece com o exemplo em cima. 5.5.13. A reconfigurao de rede bsica Quando tentar reconfigurar a interface, p.e., eth0, tem que primeiro desactiv-la com o comando "sudo ifdown eth0". Isto remove a entrada de eth0 do ficheiro "/etc/network/run/ifstate". (Isto pode resultar nalguma mensagem de erro se a eth0 no estiver activa ou tiver sido mal configurada anteriormente. At agora, parece ser seguro fazer isto para a estao de trabalho simples de um utilizador em qualquer altura.) Agora voc livre de rescrever o contedo de "/etc/network/ interfaces" como necessitar para reconfigurar a interface de rede eth0. Ento, voc pode reactivar eth0 com o comando "sudo ifup eth0". Dica Voc pode (re)inicializar a interface de rede com um simples "

sudo ifdown eth0;sudo ifup eth0". 5.5.14. O pacote ifupdown-extra O pacote ifupdown-extra disponibiliza fceis testes de ligao de rede para utilizar com o pacote ifupdown. * O comando network-test(1) pode ser usado a partir da shell. * Os scripts automticos so corridos para cada execuo do comando ifup. O comando network-test poupa-lhe a trabalheira de executar comandos de baixo nvel para analisar o problema de rede. Os scripts automticos esto instalados em "/etc/network/*/" e executam o seguinte. * Verificar a ligao de cabo de rede * Verificar o uso duplicado de endereo IP * Configura rotas estticas do sistema baseadas na definio "/ etc/network/routes" * Verificar se a gateway de rede est ao alcance * Grava os resultados no ficheiro "/var/log/syslog" Este registo do syslog bastante til para a administrao de problemas de rede no sistema remoto. Dica O comportamento automtico do pacote ifupdown-extra configurvel com o "/etc/default/network-test". Algumas destas verificaes automticas abrandam o arranque do sistema um pouco porque demora algum tempo a escutar por respostas de ARP (http:// en.wikipedia.org/wiki/Address_Resolution_Protocol) . 5.6. A configurao de rede avanada com ifupdown (antigo) A funcionalidade do pacote ifupdown pode ser melhorada para alm do que foi descrito em Seco5.5, A configurao bsica de rede com ifupdown (legacy) com conhecimentos avanados. As funcionalidades descritas aqui so completamente opcionais. Estou a ser preguioso e minimalista, raramente me incomodo a utilizar isto. Cuidado Se no conseguir configurar a ligao de rede com a informao de Seco5.5, A configurao bsica de rede com ifupdown (legacy) , ir agravar a situao ao utilizar a informao em baixo. 5.6.1. O pacote ifplugd O pacote ifplugd uma antiga ferramenta de configurao automtica de rede que apenas pode gerir ligaes Ethernet. Isto

resolve situaes de ligar/desligar cabos Ethernet para portteis e etc. Se tiver o NetworkManager (http://en.wikipedia.org/wiki/ NetworkManager) ou o Wicd (http://en.wikipedia.org/wiki/Wicd_ (Linux_Network_Manager)) (veja Seco5.2, A configurao moderna de rede para desktop) instalado, no precisa deste pacote. Este pacote corre um daemon (http://en.wikipedia.org/wiki/Daemon_ (computer_software)) e substitui as funcionalidades auto ou allow-hotplug (veja Tabela5.10, Lista de estrofes em "/etc/ network/interfaces") e inicia as interfaces aps a sua ligao rede. Aqui est como utilizar o pacote ifplugd para a porta Ethernet interna, ex. eth0. 1. Remova a estrofe em "/etc/network/interfaces": "auto eth0" ou "allow-hotplug eth0". 2. Mantenha a estrofe em "/etc/network/interfaces": "iface eth0 inet " e "mapping ". 3. instale o pacote ifplugd. 4. Corra "sudo dpkg-reconfigure ifplugd". 5. Coloque eth0 como a "interface esttica para ser correspondida pelo ifplugd". Agora, a configurao de rede funciona como deseja. * Aps o ligar da mquina ou aps a descoberta do hardware, a interface no activada por si prpria. o Processo de arranque rpido sem o longo tempo limite do DHCP. o Nenhuma interface activada de modo esquisito sem um endereo IPv4 apropriado (veja Seco5.5.12, O estado de configurao de rede do ifupdown). * Aps encontrar o cabo Ethernet, a interface activada. * Aps algum tempo depois de desligar o cabo Ethernet, a interface desactivada automaticamente. * Aps ligar outro cabo Ethernet, a interface activada sob o novo ambiente de rede. Dica Os argumentos para o comando ifplugd(8) podem definir o seu comportamento tal como o atraso para reconfigurar interfaces. 5.6.2. O pacote ifmetric O pacote ifmetric permite-nos manipular mtricas de rotas posteriori mesmo para DHCP. O seguinte configura a interface eth0 para ser preferida sobre a

interface wlan0. 1. Instale o pacote ifmetric. 2. Adicione uma linha de opo com "metric 0" logo por baixo da linha "iface eth0 inet dhcp". 3. Adicione uma linha de opo com "metric 1" logo por baixo da linha "iface wlan0 inet dhcp". O 0 (zero) mtrico significa que a rota de prioridade mais alta e a predefinida. O valor mtrico mais alto significa rotas de prioridade mais baixa. O endereo IP da interface activa com o valor mtrico mais baixo torna-se o originrio. Veja ifmetric(8). 5.6.3. A interface virtual Uma nica interface Ethernet fsica pode ser configurada como mltiplas interfaces virtuais com endereos IP diferentes. Normalmente o objectivo ligar uma interface a diferentes sub-redes de IP. Por exemplo, hospedagem web virtual baseada em endereo IP por uma nica interface de rede uma das tais aplicaes. Por exemplo, vamos supor o seguinte. * Uma nica interface Ethernet na sua mquina est ligada a um hub de Ethernet (no ao router de banda larga). * O hub Ethernet esta ligado a ambos; Internet e rede LAN. * A rede LAN usa a sub-rede 192.168.0.x/24. * A sua mquina usa endereo IP servido por DHCP com a interface fsica eth0 para a Internet. * A sua mquina usa 192.168.0.1 com a interface virtual eth0:0 para a LAN. As seguintes estrofes em "/etc/network/interfaces" configuram a sua rede. iface eth0 inet dhcp metric 0 iface eth0:0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 metric 1 Cuidado Apesar deste exemplo de configurao com network address translation (NAT) (http://en.wikipedia.org/wiki/ Network_address_translation) que usa netfilter/iptables (http:// en.wikipedia.org/wiki/Netfilter) (veja Seco5.9, Infra-estrutura netfilter) poder disponibilizar um router barato para a LAN com apenas uma interface nica, no existem capacidades reais de firewall com tal configurao. Voc deve utilizar 2 interfaces fsicas com NAT tornar a rede local segura

a partir da Internet. 5.6.4. A sintaxe de comando avanada O pacote ifupdown oferece configurao de rede avanada utilizando o nome de configurao de rede e o nome de interface de rede. Eu utilizo uma terminologia ligeiramente diferente da usada em ifup(8) e interfaces(5). Tabela 5.12. Lista de terminologia para dispositivos de rede +---------------------------------------------------------------+ |terminologia|a minha |exemplos no texto que |descrio | |do manual |terminologia|se segue | | |------------+------------+----------------------+--------------| | | | |nome dado pelo| |nome da |nome da |lo, eth0, |kernel do | |interface |interface de|<nome_da_interface> |Linux (usando | |fsica |rede | |o mecanismo | | | | |udev) | |------------+------------+----------------------+--------------| | | | |testemunho de | |nome da |nome da |config1, config2, |nome seguindo | |interface |configurao|<nome_da_configurao>|iface no "/etc| |lgica |de rede | |/network/ | | | | |interfaces" | +---------------------------------------------------------------+ Os comandos de configurao de rede bsicos em Seco5.5.1, A sintaxe simplificada de comando necessitam que o testemunho de nome da configurao de rede da estrofe iface corresponda ao nome da interface de rede em "/etc/network/interfaces". Os comandos de configurao de rede avanados activam a separao do nome da configurao de rede e o nome da interface de rede em "/etc/network/interfaces" como se segue. Tabela 5.13. Lista de comandos avanados de configurao de rede com ifupdown +---------------------------------------------------------------+ |comando |aco | |-----------+---------------------------------------------------| |ifup eth0= |torna activa a interface de rede eth0 com a | |config1 |configurao config1 | |-----------+---------------------------------------------------| |ifdown eth0|torna inactiva a interface de rede eth0 com a | |=config1 |configurao config1 | |-----------+---------------------------------------------------| |ifup eth0 |torna activa a interface de rede eth0 com a | | |configurao seleccionada pela estrofe mapping | |-----------+---------------------------------------------------| |ifdown eth0|torna inactiva a interface de rede eth0 com a | | |configurao seleccionada pela estrofe mapping | +---------------------------------------------------------------+ 5.6.5. A estrofe de mapeamento

Ns saltamos a explicao da estrofe mapping no "/etc/network/ interfaces" em Seco5.5.2, A sintaxe bsica de "/etc/network/ interfaces" para evitar complicaes. Esta estrofe tem a seguinte sintaxe: mapping <glob_de_nome_de_interface> script <nome_de_script> map <script_de_entrada1> map <script_de_entrada2> map ... Isto disponibiliza a funcionalidade avanada ao ficheiro "/etc/ network/interfaces" ao automatizar a escolha da configurao com o script de mapeamento especificado por <nome_do_script>. Vamos seguir a execuo do seguinte. $ sudo ifup eth0 Quando o "<glob_de_nome_de_interface>" corresponde a "eth0", esta execuo leva execuo do seguinte comando para configurar automaticamente eth0. $ sudo ifup eth0=$(echo -e '<script_entrada1> \n <script_entrada2> \n ...' | <nome _do_script> eth0) Aqui, as linhas de entrada do script com "map" so opcionais e podem ser repetidas. Nota O glob para a estrofe mapping funciona como o glob de nome de ficheiro em shell (veja Seco1.5.6, Glob da shell). 5.6.6. A configurao manual da rede comutvel Aqui est como mudar manualmente entre vrias configuraes de rede sem reescrever o ficheiro "/etc/network/interfaces" como em Seco5.5.13, A reconfigurao de rede bsica. Para todas as configuraes de rede que necessite aceder, crie um nico ficheiro "/etc/network/interfaces" conforme o seguinte: auto lo iface lo inet loopback iface config1 inet dhcp iface config2 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-domain lan dns-nameservers 192.168.11.1 iface pppoe inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down

# O seguinte usado apenas internamente iface dsl inet ppp provider dsl-provider iface pots inet ppp provider provider Por favor note que o nome de configurao de rede o qual o testemunho aps iface no usa o testemunho para o nome da interface de rede. Tambm, no existe nenhuma estrofe auto nem estrofe allow-hotplug para iniciar a interface de rede eth0 automaticamente aps eventos. Agora est pronto para comutar a configurao de rede. Vamos levar o seu PC para uma LAN servida por DHCP. Voc activa a interface de rede (a interface fsica) eth0 ao atribuir-lhe o nome de configurao de rede (o nome lgico da interface) config1 com o seguinte. $ sudo ifup eth0=config1 Password: ... A interface eth0 est activa, configurada por DHCP e ligada a LAN. $ sudo ifdown eth0=config1 ... A interface eth0 est inactiva e desligada da LAN. Vamos levar o seu PC para uma LAN servida por IP esttico. Voc activa a interface de rede eth0 ao atribuir-lhe o nome de configurao de rede config2 para ela com o seguinte. $ sudo ifup eth0=config2 ... A interface eth0 est activa, configurada com IP esttico e ligada LAN. Os parmetros adicionais dados como dns-* configuram o contedo de "/etc/resolv.conf". Este "/etc/ resolv.conf" melhor is better gerido se o pacote resolvconf estiver instalado. $ sudo ifdown eth0=config2 ... A interface eth0 est inactiva e desligada da LAN, outra vez. Vamos levar o seu PC para uma porta em modem-BB ligado ao servio servido de PPPoE. Voc activa a interface de rede eth0 ao atribuir o nome de configurao de rede pppoe a ela com o seguinte. $ sudo ifup eth0=pppoe ... A interface eth0 est activa, configurada com ligao PPPoE

directamente ao ISP. $ sudo ifdown eth0=pppoe ... A interface eth0 est inactiva e desligada, outra vez. Vamos levar o seu PC para uma localizao sem LAN ou modem BB mas com POTS e modem. Voc activa a interface de rede ppp0 ao atribuir o nome de configurao de rede pots a ela com o seguinte. $ sudo ifup ppp0=pots ... A interface ppp0 est activa e ligada Internet com PPP. $ sudo ifdown ppp0=pots ... A interface ppp0 est inactiva e desligada da Internet. Voc deve verificar o ficheiro "/etc/network/run/ifstate" para o estado actual da configurao de rede do sistema ifupdown. Ateno Talvez necessite ajustar os nmeros no final de eth*, ppp*, etc. se possuir vrias interfaces de rede. 5.6.7. Scripts com o sistema ifupdown O sistema ifupdown corre automaticamente scripts instalados em "/ etc/network/*/" enquanto exporta variveis de ambiente para os scripts. Tabela 5.14. Lista de variveis de ambiente passadas pelo sistema ifupdown +---------------------------------------------------------------+ |varivel de |valor passado | |ambiente | | |------------+--------------------------------------------------| |"$IFACE" |nome fsico (nome da interface) da interface a ser| | |processada | |------------+--------------------------------------------------| |"$LOGICAL" |nome lgico (nome da configurao) da interface a | | |ser processada | |------------+--------------------------------------------------| |"$ADDRFAM" |<famlia_de_endereos> da interface | |------------+--------------------------------------------------| |"$METHOD" |<nome_de_mtodo> da interface. (ex., "static") | |------------+--------------------------------------------------| |"$MODE" |"start" se corrido a partir de ifup, "stop" se | | |corrido a partir de ifdown | |------------+--------------------------------------------------| | |como para "$MODE", mas com granularidade mais | |"$PHASE" |fina, distinguindo as fases pre-up, post-up, | | |pre-down e post-down | |------------+--------------------------------------------------|

|"$VERBOSITY"|indica se "--verbose" foi usado, regulado para 1 | | |se sim, 0 se no. | |------------+--------------------------------------------------| |"$PATH" |caminho de busca de comando: "/usr/local/sbin:/usr| | |/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | |------------+--------------------------------------------------| |"$IF_ |valor para a opo correspondente sob a estrofe | |<OPTION>" |iface | +---------------------------------------------------------------+ Aqui, cada varivel de ambiente, "$IF_<OPTION>", criada a partir do nome da opo correspondente tal como <opo1> e <opo2> ao preceder com "$IF_", convertendo para maisculas, substituindo hfens por underscores, e descartando os caracteres no-alfanumricos. Dica Veja Seco5.5.2, A sintaxe bsica de "/etc/network/ interfaces" para <famlia_de_endereos>, <nome_de_mtodo>, <opo1> e <opo2> O pacote ifupdown-extra (veja Seco5.5.14, O pacote ifupdown-extra) utiliza estas variveis de ambiente para estender a funcionalidade do pacote ifupdown. O pacote ifmetric (veja Seco5.6.2, O pacote ifmetric) instala o script "/etc/ network/if-up.d/ifmetric" o qual define a mtrica via varivel "$IF_METRIC". O pacote guessnet (veja Seco5.6.8, Mapeando com guessnet), que disponibiliza um estrutura simples e poderosa para a seleco automtica da configurao de rede atravs do mecanismo de mapeamento, tambm as utiliza. Nota Para exemplos mais especficos de scripts personalizados de configurao de rede que utilizam estas variveis de ambiente, voc deve consultar os scripts de exemplo em "/usr/share/doc/ ifupdown/examples/*" e os scripts utilizados nos pacotes ifscheme e ifupdown-scripts-zg2. Estes scripts adicionais tm algumas sobreposies de funcionalidades com os pacotes bsicos ifupdown-extra e guessnet. Se voc instalar estes scripts adicionais, deve personalizar estes scripts para evitar interferncias. 5.6.8. Mapeando com guessnet Em vez de escolher manualmente a configurao conforme descrito em Seco5.6.6, A configurao manual da rede comutvel, pode utilizar o mecanismo de mapeamento descrito em Seco5.6.5, A estrofe de mapeamento para seleccionar automaticamente a configurao de rede com scripts personalizados. O comando guessnet-ifupdown(8) disponibilizado pelo pacote guessnet foi desenhado para ser usado como um script de mapeamento e disponibiliza uma estrutura poderosa para melhorar o sistema ifupdown. * Liste as condies de teste como o valor para as opes do guessnet para cada configurao de rede sob a estrofe iface.

* O mapeamento escolhe a iface com o primeiro resultado no-ERRO como a configurao de rede. Esta utilizao dupla do ficheiro "/etc/network/interfaces" pelo script de mapeamento, guessnet-ifupdown, e a infraestrutura original de configurao de rede, ifupdown, no causa impactos negativos porque as opes do guessnet apenas exportam variveis de ambiente extras para scripts executados pelo sistema ifupdown. Veja detalhes em guessnet-ifupdown(8). Nota Quando so necessrias mltiplas linhas de opo guessnet em "/ etc/network/interfaces", use linhas de opo comeadas com guessnet1, guessnet2, e assim em diante, porque o pacote ifupdown no permite que as strings de inicio das linhas de opo sejam repetidas. 5.7. A configurao de rede de baixo nvel 5.7.1. Comandos iproute2 Os comandos Iproute2 (http://www.linuxfoundation.org/en/ Net:Iproute2) oferecem capacidades completas de configurao de rede de baixo nvel. Aqui est uma tabela de tradues dos comandos net-tools (http://www.linuxfoundation.org/en/ Net:Net-tools) obsoletos para os novos comandos iproute2 (http:// www.linuxfoundation.org/en/Net:Iproute2) etc. Tabela 5.15. Tabela de traduo dos comandos obsoletos net-tools para os novos comandos iproute2 +---------------------------------------------------------------+ |ferramentas de |novo | | |rede obsoletas |iproute2 |manipulao | | |etc. | | |------------------+-----------+--------------------------------| |ifconfig(8) |ip addr |endereo de protoco (IP ou IPv6)| | | |num dispositivo | |------------------+-----------+--------------------------------| |route(8) |ip route |entrada na tabela de rotas | |------------------+-----------+--------------------------------| |arp(8) |ip neigh |entrada na cache ARP ou NDISC | |------------------+-----------+--------------------------------| |ipmaddr |ip maddr |endereo multicast | |------------------+-----------+--------------------------------| |iptunnel |ip tunnel |tnel sobre IP | |------------------+-----------+--------------------------------| |nameif(8) |ifrename(8)|nomeia as interfaces de rede | | | |baseadas no endereo MAC | |------------------+-----------+--------------------------------| |mii-tool(8) |ethtool(8) |Definies de dispositivo | | | |Ethernet | +---------------------------------------------------------------+ Veja ip(8) e Manual do COnjunto de Utilitrios IPROUTE2 (http:// www.policyrouting.org/iproute2.doc.html) .

5.7.2. Operaes de rede seguras de baixo nvel Voc pode usar comandos de rede de baixo nvel como se segue em segurana pois eles no mudam a configurao de rede. Tabela 5.16. Lista de comandos de rede de baixo nvel +---------------------------------------------------------------+ |comando |descrio | |-------------------+-------------------------------------------| |ifconfig |mostra o estado de ligao e endereo das | | |interfaces activas | |-------------------+-------------------------------------------| |ip addr show |mostra o estado de ligao e endereo das | | |interfaces activas | |-------------------+-------------------------------------------| |route -n |mostra toda a tabela de rotas em endereos | | |numricos | |-------------------+-------------------------------------------| |ip route show |mostra toda a tabela de rotas em endereos | | |numricos | |-------------------+-------------------------------------------| | |mostra o contedo actual das tabelas de | |arp |cache ARP (http://en.wikipedia.org/wiki/ | | |Address_Resolution_Protocol) | |-------------------+-------------------------------------------| | |mostra o contedo actual das tabelas de | |ip neigh |cache ARP (http://en.wikipedia.org/wiki/ | | |Address_Resolution_Protocol) | |-------------------+-------------------------------------------| |plog |mostra o log do daemon ppp | |-------------------+-------------------------------------------| |ping yahoo.com |verifica a ligao de Internet para | | |"yahoo.com" | |-------------------+-------------------------------------------| |whois yahoo.com |verifica quem registou "yahoo.com" na base | | |de dados de domnios | |-------------------+-------------------------------------------| |traceroute |rastreia a ligao Internet at "yahoo.com"| |yahoo.com | | |-------------------+-------------------------------------------| |tracepath yahoo.com|rastreia a ligao Internet at "yahoo.com"| |-------------------+-------------------------------------------| |mtr yahoo.com |rastreia a ligao Internet at "yahoo.com"| | |(repetidamente) | |-------------------+-------------------------------------------| |dig |verifica os registos DNS (http:// | |[@servidor-dns.com]|en.wikipedia.org/wiki/Domain_Name_System) | |exemplo.com [{a|mx||de "exemplo.com" pelo "servidor-dns.com" | |any}] |para um registo "a", "mx", ou "any" | |-------------------+-------------------------------------------| |iptables -L -n |verifica o filtro de pacotes | |-------------------+-------------------------------------------| |netstat -a |procura todos os portos abertos | |-------------------+-------------------------------------------| |netstat -l --inet |procura portos a escutar | |-------------------+-------------------------------------------| |netstat -ln --tcp |procura portos TCP a escutar (numrico) | |-------------------+-------------------------------------------| |dlint exemplo.com |verifica a informao da zona DNS de |

| |"exemplo.com" | +---------------------------------------------------------------+ Dica Algumas destas ferramentas de configurao de baixo nvel residem em "/sbin/". Pode necessitar de escrever o caminho do comando completo tal como "/sbin/ifconfig" ou adicionar "/sbin" lista "$PATH" no seu "~/.bashrc". 5.8. Optimizao da rede A optimizao de rede genrica est para alm do objectivo desta documentao. Eu apenas toco em assuntos pertinentes s ligaes de grau de consumidor. Tabela 5.17. Lista de ferramentas de optimizao de rede +----------------------------------------------------------------------+ |pacotes |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-------------| | |V:13, I:99 | |mostra | | |(http:// | |informao da| |iftop (http:// |qa.debian.org|109 (http:// |utilizao de| |packages.debian.org|/popcon.php? |packages.qa.debian.org|largura de | |/sid/iftop) |package= |/i/iftop.html) |banda numa | | |iftop) | |interface de | | | | |rede | |-------------------+-------------+----------------------+-------------| | |V:6, I:50 | |ferramenta de| |iperf (http:// |(http:// |126 (http:// |medio da | |packages.debian.org|qa.debian.org|packages.qa.debian.org|largura de | |/sid/iperf) |/popcon.php? |/i/iperf.html) |banda do | | |package= | |Protocolo | | |iperf) | |Internet | |-------------------+-------------+----------------------+-------------| | | | |escreve um | | |V:1, I:10 | |ficheiro "/ | |apt-spy (http:// |(http:// |105 (http:// |etc/apt/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|sources.list"| |/sid/apt-spy) |/popcon.php? |/a/apt-spy.html) |baseado em | | |package= | |testes de | | |apt-spy) | |largura de | | | | |banda | |-------------------+-------------+----------------------+-------------| | |V:2, I:13 | | | |ifstat (http:// |(http:// |88 (http:// |InterFace | |packages.debian.org|qa.debian.org|packages.qa.debian.org|STATistics | |/sid/ifstat) |/popcon.php? |/i/ifstat.html) |Monitoring | | |package= | | | | |ifstat) | | | |-------------------+-------------+----------------------+-------------| | |V:2, I:9 | |monitor de | |bmon (http:// |(http:// |188 (http:// |largura de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|banda | |/sid/bmon) |/popcon.php? |/b/bmon.html) |portvel e | | |package=bmon)| |estimador de | | | | |taxas | |-------------------+-------------+----------------------+-------------|

| | | |script que | | |V:0, I:6 | |mede | |ethstatus (http:// |(http:// |84 (http:// |rapidamente a| |packages.debian.org|qa.debian.org|packages.qa.debian.org|transferncia| |/sid/ethstatus) |/popcon.php? |/e/ethstatus.html) |efectiva de | | |package= | |um | | |ethstatus) | |dispositivo | | | | |de rede | |-------------------+-------------+----------------------+-------------| | |V:0, I:4 | |testador de | |bing (http:// |(http:// |96 (http:// |largura de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|banda | |/sid/bing) |/popcon.php? |/b/bing.html) |emprica | | |package=bing)| |estocstica | |-------------------+-------------+----------------------+-------------| | |V:2, I:18 | |monitor de | |bwm-ng (http:// |(http:// |114 (http:// |largura de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|banda pequeno| |/sid/bwm-ng) |/popcon.php? |/b/bwm-ng.html) |e simples | | |package= | |baseado em | | |bwm-ng) | |consola | |-------------------+-------------+----------------------+-------------| | |V:0, I:2 | |monitor de | |ethstats (http:// |(http:// |52 (http:// |estatsticas | |packages.debian.org|qa.debian.org|packages.qa.debian.org|de Ethernet | |/sid/ethstats) |/popcon.php? |/e/ethstats.html) |baseado em | | |package= | |consola | | |ethstats) | | | |-------------------+-------------+----------------------+-------------| | |V:0, I:1 | |ferramenta de| |ipfm (http:// |(http:// |156 (http:// |anlise de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|largura de | |/sid/ipfm) |/popcon.php? |/i/ipfm.html) |banda | | |package=ipfm)| | | +----------------------------------------------------------------------+ 5.8.1. Encontrar o MTU ptimo O valor Maximum Transmission Unit (MTU) (http://en.wikipedia.org/ wiki/Maximum_transmission_unit) pode ser determinado experimentalmente com ping(8) com a opo "-M do" a qual envia pacotes ICMP com tamanho de dados inicial de 1500 (com offset de 28 bytes para o cabealho IP+ICMP) e encontra o tamanho maior sem fragmentao IP. Por exemplo, tente o seguinte: $ ping -c 1 -s $((1500-28)) -M do www.debian.org PING www.debian.org (194.109.137.218) 1472(1500) bytes of data. From 192.168.11.2 icmp_seq=1 Frag needed and DF set (mtu = 1454) --- www.debian.org ping statistics --0 packets transmitted, 0 received, +1 errors Tente 1454 em vez de 1500 Observe ping(8) com sucesso com 1454. Este processo a descoberta do Caminho MTU (PMTU) (http://

en.wikipedia.org/wiki/Path_MTU_discovery) (RFC1191 (http:// tools.ietf.org/html/rfc1191) ) e o comando tracepath(8) pode automatizar isto. Dica O exemplo acima com valor PMTU de 1454 para o meu provedor FTTP anterior o qual utilizava Modo de Transferncia Assncrona (http: //en.wikipedia.org/wiki/Asynchronous_Transfer_Mode) (ATM) com a coluna vertebral da sua rede e servia os seus clientes com PPPoE (http://en.wikipedia.org/wiki/ Point-to-Point_Protocol_over_Ethernet) . O valor de PMTU real depende do seu ambiente, p.e. 1500 para o meu novo provedor FTTP. Tabela 5.18. Regras bsicas para o valor MTU ptimo +---------------------------------------------------------------+ |ambiente de rede |MTU |racional | |-----------------+-------------+-------------------------------| |Ligao Dial-up |576 |standard | |(IP: PPP) | | | |-----------------+-------------+-------------------------------| |Ligao Ethernet | | | |(IP: DHCP ou |1500 |standard e predefinido | |fixo) | | | |-----------------+-------------+-------------------------------| |Ligao Ethernet |1492 (= |2 bytes para o cabealho PPP e | |(IP: PPPoE) |1500-8) |6 bytes para o cabealho PPPoE | |-----------------+-------------+-------------------------------| |Ligao Ethernet | |especulao do autor: 18 para | |(espinha dorsal |1462 (= |cabealho de Ethernet, 8 para | |do ISP: ATM, IP: |48*31-18-8) |trailer de SAR | |DHCP ou fixo) | | | |-----------------+-------------+-------------------------------| |Ligao Ethernet | |veja "Configurao de MTU | |(espinha dorsal |1454 (= |ptima para Ligaes PPPoE ADSL| |do ISP: ATM, IP: |48*31-8-18-8)|(http://www.mynetwatchman.com/ | |PPPoE) | |kb/ADSL/pppoemtu.htm) " para o | | | |racional | +---------------------------------------------------------------+ Adicionalmente a estas regras bsicas, voc deve saber o seguinte: * Qualquer utilizao de mtodos de tnel (VPN (http:// en.wikipedia.org/wiki/Virtual_private_network) etc.) pode reduzir o MTU ptimo pelo excesso que adicionam. * O valor MTU no deve exceder o valor PMTU determinado experimentalmente. * O maior valor MTU geralmente melhor quando so conhecidas outras limitaes. 5.8.2. Definir o MTU Aqui esto exemplos para definir o valor MTU desde a sua predefinio 1500 at 1454.

Para o DHCP (veja Seco5.5.4, A interface de rede servida por DHCP), voc pode substituir as linhas de estrofe iface pertinentes em "/etc/network/interfaces" com o seguinte. iface eth0 inet dhcp pre-up /sbin/ifconfig $IFACE mtu 1454 Para IP esttico (veja Seco5.5.5, A interface de rede com IP esttico), voc pode substituir as linhas pertinentes de iface em "/etc/network/interfaces" com o seguinte. iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 mtu 1454 dns-domain exemplo.com dns-nameservers 192.168.11.1 Para o PPPoE directo (veja Seco5.4.5, A ligao PPPoE com o pppoeconf), voc pode substituir a linha "mtu" pertinente no "/ etc/ppp/peers/dsl-provider" com o seguinte. mtu 1454 O tamanho de segmento mximo (http://en.wikipedia.org/wiki/ Maximum_segment_size) (MSS) usado como uma alternativa ao tamanho do pacote. As relaes entre MSS e MTU so as seguintes. * MSS = MTU - 40 para IPv4 * MSS = MTU - 60 para IPv6 Nota A optimizao baseada no iptables(8) (veja Seco5.9, Infra-estrutura netfilter) pode apertar o tamanho do pacote pelo MSS e til para o router. Veja "TCPMSS" em iptables(8). 5.8.3. Optimizao WAN TCP Para a WAN moderna de alta largura de banda e alta latncia, a performance do TCP pode ser maximizada ajustando os parmetros de tamanho de buffer TCP conforme descrito em "Guia de Afinaes de TCP (http://dsd.lbl.gov/TCP-tuning/) " e em "Afinaes do TCP (http://en.wikipedia.org/wiki/TCP_tuning) ". At agora, os ajustes predefinidos actuais de Debian servem bem mesmo para a minha LAN ligada pelo servio FTTP rpido de 1G bps. 5.9. Infra-estrutura netfilter Netfilter (http://en.wikipedia.org/wiki/Netfilter) disponibiliza uma infra-estrutura para firewall de estado (http:// en.wikipedia.org/wiki/Stateful_firewall) e traduo de endereos de rede (NAT) (http://en.wikipedia.org/wiki/ Network_address_translation) com mdulos do kernel Linux (http:// en.wikipedia.org/wiki/Linux_kernel) (veja Seco3.5.12, A inicializao de mdulos do kernel). Tabela 5.19. Lista de ferramentas de firewall

+---------------------------------------------------------------------------+ |pacotes |popcon |tamanho |descrio | |-------------------+----------------+----------------------+---------------| | | |iptables (http:// |(http:// |1330 (http:// |administrao | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|para o netfilte r| |/sid/iptables) | | g| | )| |-------------------+----------------+----------------------+---------------| | | | | | | |iptstate (http:// |/qa.debian.org/ |135 (http:// :| |packages.debian.org|popcon.php? | |/sid/iptstate) g| | )| | | | | |-------------------+----------------+----------------------+---------------| |shorewall-init |(http:// | |packages.debian.org|popcon.php? /| |/sid/ | |shorewall-init) g| | )| |-------------------+----------------+----------------------+---------------| | | | /| | | | g| |V:11, I:25 | |en.wikipedia.or | | |/ | | |Firewall (http: | | |Shoreline | | |/wiki/Shorewall |shorewall-init) |shorewall-init.html) |en.wikipedia.or |package= |/s/ |/ |packages.qa.debian.org|Firewall (http: |I:1 (http:// | |qa.debian.org/ |112 (http:// |Inicializao de| |Shoreline | | |top(1)) | | |(semelhante ao |iptstate) | |/wiki/Netfilter |package= |/i/iptstate.html) |en.wikipedia.or |packages.qa.debian.org|// |netfilter (http |V:1, I:6 (http:/| |estado do | | |continuamente o | | |monitoriza |iptables) | |/wiki/Netfilter |package= | |en.wikipedia.or |popcon.php? |/i/iptables.html) |(http:// |V:284, I:993 | |ferramentas de

|shorewall (http:// |(http:// )| | |/sid/shorewall) | | | :| | | | g| | )| | | | |package= |shorewall) |popcon.php?

|1692 (http://

|/wiki/Shorewall

|packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, gerador de |/s/shorewall.html) | | | | | |ficheiro de |configurao | |netfilter (http |// |en.wikipedia.or |/wiki/Netfilter

|-------------------+----------------+----------------------+---------------| | | | |Shoreline | | | |Firewall (http: /| | | | |/ | | | | |en.wikipedia.or g| |shorewall-lite |V:0, I:0 (http:/| |/wiki/Shorewall )| |(http:// |/qa.debian.org/ |120 (http:// |, gerador de | |packages.debian.org|popcon.php? |packages.qa.debian.org|ficheiro de | |/sid/ |package= |/s/ |configurao |shorewall-lite) |shorewall-lite) |shorewall-lite.html) |(verso light) | | | |netfilter (http :| | | | |// | | | | |en.wikipedia.or g| | | | |/wiki/Netfilter )| | | | |. | |-------------------+----------------+----------------------+---------------| | | | |Shoreline | | | | |Firewall (http: /| | | | |/ | | | | |en.wikipedia.or g| | |V:1, I:3 (http:/| |/wiki/Shorewall )| |shorewall6 (http://|/qa.debian.org/ |697 (http:// |, gerador de | |packages.debian.org|popcon.php? |packages.qa.debian.org|ficheiro de | |/sid/shorewall6) |package= |/s/shorewall6.html) |configurao | |shorewall6) | |(verso IPv6)

| |

| |

| :| | | | g| | )| -| | | | /| | | | g| |shorewall6-lite )| |(http:// | | |/sid/ |shorewall6-lite) | r| | | | g| | )| -+

| | | |

| | | |

|netfilter (http |// |en.wikipedia.or |/wiki/Netfilter

|-------------------+----------------+----------------------+--------------| | | | | | | | |Shoreline |Firewall (http: |/ |en.wikipedia.or |/wiki/Shorewall

|V:0, I:0 (http:/|118 (http://

|/qa.debian.org/ |packages.qa.debian.org|, gerador de |/s/ |ficheiro de

|packages.debian.org|popcon.php?

|package= |shorewall6-lite.html) |configurao | |shorewall6-lite)| |(IPv6, verso | | | |light) netfilte | | | | | | |(http:// |en.wikipedia.or |/wiki/Netfilter

+---------------------------------------------------------------------------

O principal programa de utilizador para o netfilter (http:// en.wikipedia.org/wiki/Netfilter) o iptables(8). Pode configurar manualmente e interactivamente o netfilter (http:// en.wikipedia.org/wiki/Netfilter) a partir da shell, salvar o seu estado com iptables-save(8), e restaur-lo via script init com iptables-restore(8) aps o reiniciar do sistema. Scripts de ajuda de configurao como o shorewall (http:// en.wikipedia.org/wiki/Shorewall) facilitam este processo. Veja documentao em http://www.netfilter.org/documentation/ (http://www.netfilter.org/documentation/) (ou em "/usr/share/doc/ iptables/html/"). * Manual de Conceitos de Rede em Linux (http:// www.netfilter.org/documentation/HOWTO/ networking-concepts-HOWTO.html) * Manual do Packet Filtering em Linux 2.4 (http:// www.netfilter.org/documentation/HOWTO/ packet-filtering-HOWTO.html)

* Como Fazer NAT em Linux 2.4 (http://www.netfilter.org/ documentation/HOWTO/NAT-HOWTO.html) Dica Apesar destes terem sido escritos para o Linux 2.4, ambos comando iptables(8) e funo de kernel netfilter aplicam-se ao actual Linux 2.6. Captulo 6. Aplicaes de rede Aps estabelecer a ligao de rede (veja Captulo5, Configurao de rede), voc pode correr varias aplicaes de rede. 6.1. Navegadores web Existem muitos pacotes de navegadores web (http:// en.wikipedia.org/wiki/Web_Browsers) para aceder a contedos remotos com Hypertext Transfer Protocol (http://en.wikipedia.org/ wiki/Hypertext_Transfer_Protocol) (HTTP). Tabela 6.1. Lista de exploradores web +----------------------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |tipo |descr io do explorador web | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |chromium (http:// |V:49, I:84 (http:|91587 (http:// | | | |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org|X |Chrom ium (http://en.wikipedia.org/wiki/Chromium_ | |/sid/chromium) |popcon.php? |/c/chromium.html) | |(web_ browser)) , (browser open-source da Google) | | |package=chromium)| | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| | |V:274, I:488 | | | | |iceweasel (http:// |(http:// |6415 (http:// | |Mozil la Firefox (http://en.wikipedia.org/wiki/ | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |Mozil la_Firefox) sem marca (http://en.wikipedia.org/wiki/ | |/sid/iceweasel) |popcon.php? |/i/iceweasel.html) | |Mozil la_Corporation_software_rebranded_by_the_Debian_project)| | |package= | | | | | |iceweasel) | | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |iceape-browser |V:5, I:12 (http:/|97 (http:// | |Mozil la (http://en.wikipedia.org/wiki/Mozilla) sem marca | |(http:// |/qa.debian.org/ |packages.qa.debian.org| |(http ://en.wikipedia.org/wiki/ | |packages.debian.org|popcon.php? |/i/ |, , |Mozil la_Corporation_software_rebranded_by_the_Debian_project)| |/sid/ |package= |iceape-browser.html) | |, rem

ovido devido a questes de segurana bug#505565 (http://| |iceape-browser) |iceape-browser) | | |bugs. debian.org/505565) | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |epiphany-browser |V:108, I:338 | | | | |(http:// |(http:// |2038 (http:// | |GNOME (http://en.wikipedia.org/wiki/GNOME) , HIG (http:// | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |en.wi kipedia.org/wiki/Human_interface_guidelines) compliant, | |/sid/ |popcon.php? |/e/ | |Epiph any (http://en.wikipedia.org/wiki/Epiphany_(browser)) | |epiphany-browser) |package= |epiphany-browser.html)| | | | |epiphany-browser)| | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| | |V:41, I:117 | | | | |konqueror (http:// |(http:// |3367 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |KDE ( http://en.wikipedia.org/wiki/KDE) , Konqueror (http:// | |/sid/konqueror) |popcon.php? |/k/konqueror.html) | |en.wi kipedia.org/wiki/Konqueror) | | |package= | | | | | |konqueror) | | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |dillo (http:// |V:0, I:4 (http://|1429 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |Dillo (http://en.wikipedia.org/wiki/Dillo) , (navegador leve,| |/sid/dillo) |popcon.php? |/d/dillo.html) | |basea do em FLTK (http://en.wikipedia.org/wiki/FLTK) ) | | |package=dillo) | | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| | |V:283, I:869 | | | | |w3m (http:// |(http:// |2082 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|texto |w3m ( http://en.wikipedia.org/wiki/W3m) | |/sid/w3m) |popcon.php? |/w/w3m.html) | | | | |package=w3m) | | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |lynx (http:// |I:173 (http:// |244 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |Lynx (http://en.wikipedia.org/wiki/Lynx_(web_browser)) | |/sid/lynx) |popcon.php? |/l/lynx.html) | |

| | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |elinks (http:// |V:18, I:48 (http:|1601 (http:// | | | |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org|, , |ELink s (http://en.wikipedia.org/wiki/ELinks) | |/sid/elinks) |popcon.php? |/e/elinks.html) | | | | |package=elinks) | | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |links (http:// |V:28, I:75 (http:|1298 (http:// | | | |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org|, , |Links (http://en.wikipedia.org/wiki/Links_(web_browser)) | |/sid/links) |popcon.php? |/l/links.html) | |(apen as texto) | | |package=links) | | | | |-------------------+-----------------+----------------------+--------+------------------------------------------------------------| |links2 (http:// |V:5, I:29 (http:/|3150 (http:// | | | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|grficos|Links ( http://en.wikipedia.org/wiki/Links_(web_browser)) | |/sid/links2) |popcon.php? |/l/links2.html) | |(grfic os de consola sem X) | | |package=links2) | | | | +----------------------------------------------------------------------------------------------------------------------------------+ 6.1.1. Configurao do explorador Poder ser capaz de utilizar as seguintes strings especiais de URL para alguns navegadores para confirmar as suas definies. * "about:" * "about:config" * "about:plugins" Debian oferece muitos pacotes livres com plugins de navegador na rea de arquivo main, os quais podem lidar no apenas com Java (plataforma de software) (http://en.wikipedia.org/wiki/Java_ (software_platform)) e Flash (http://en.wikipedia.org/wiki/ Adobe_Flash) mas tambm com ficheiros MPEG (http:// en.wikipedia.org/wiki/MPEG-1) , MPEG2 (http://en.wikipedia.org/ wiki/MPEG-2) , MPEG4 (http://en.wikipedia.org/wiki/MPEG-4) , DivX (http://en.wikipedia.org/wiki/DivX) , Windows Media Video (.wmv) (http://en.wikipedia.org/wiki/Windows_Media_Video) , QuickTime (.mov) (http://en.wikipedia.org/wiki/QuickTime) , MP3 (.mp3) (http://en.wikipedia.org/wiki/MP3) , Ogg/Vorbis (http:// en.wikipedia.org/wiki/Vorbis) , DVDs, VCDs, etc. Debian tambm | |package=lynx) |

oferece programas de ajuda para instalar pacotes no-livres de plugins de navegador nas reas de arquivo contrib ou non-free. Tabela 6.2. Lista de pacotes de plugins de navegadores +-----------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |rea |descrio | |---------------------+---------------------+--------------------------+------+-----------------| |icedtea6-plugin |V:10, I:23 (http:// |21 (http:// | |plugin de Java | |(http:// |qa.debian.org/ |packages.qa.debian.org/i/ |main |baseado em | |packages.debian.org/ |popcon.php?package= |icedtea6-plugin.html) | |OpenJDK e IcedTea| |sid/icedtea6-plugin) |icedtea6-plugin) | | | | |---------------------+---------------------+--------------------------+------+-----------------| |mozilla-plugin-gnash |I:21 (http:// | | | | |(http:// |qa.debian.org/ |54 (http:// | |plugin de Flash | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/m/ |main |baseado no Gnash | |sid/ |mozilla-plugin-gnash)|mozilla-plugin-gnash.html)| | | |mozilla-plugin-gnash)| | | | | |---------------------+---------------------+--------------------------+------+-----------------| | | | | |Ajudante de | |flashplugin-nonfree |V:25, I:227 (http:// | | |plugin de Flash | |(http:// |qa.debian.org/ |176 (http:// | |para instalar o | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/f/ |cont rib|reprodutor de | |sid/ |flashplugin-nonfree) |flashplugin-nonfree.html) | |Flash da Adobe | |flashplugin-nonfree) | | | |(apenas i386, | | | | | |amd64) | |---------------------+---------------------+--------------------------+------+-----------------| | | | | |Plugin de | |mozilla-plugin-vlc | | | ltimdia | |(http:// |V:11, I:22 (http:// |27 (http:// | |baseado no | |packages.debian.org/ |qa.debian.org/ |packages.qa.debian.org/m/ |main |reprodutor de | |sid/ |popcon.php?package= |mozilla-plugin-vlc.html) | |mdia VLC (http:/| |mozilla-plugin-vlc) |mozilla-plugin-vlc) | |

|mu

|/en.wikipedia.org| | | | | |/wiki/ | | | | | |VLC_media_player)| |---------------------+---------------------+--------------------------+------+-----------------| | | | | |Plugin de | | | | | |multimdia | | |V:143, I:273 (http://| | |baseado no | |totem-mozilla (http:/|qa.debian.org/ |591 (http:// | |reprodutor de | |/packages.debian.org/|popcon.php?package= |packages.qa.debian.org/t/ |main |mdia Totem do | |sid/totem-mozilla) |totem-mozilla) |totem-mozilla.html) | |GNOME (http:// | | | | | |en.wikipedia.org/| | | | | |wiki/Totem_ | | | | | |(media_player)) | |---------------------+---------------------+--------------------------+------+-----------------| | | | | |Plugin de | |gecko-mediaplayer |V:8, I:11 (http:// | | |multimdia | |(http:// |qa.debian.org/ |577 (http:// | |baseado no | |packages.debian.org/ |popcon.php?package= |packages.qa.debian.org/g/ |main |MPlayer (http:// | |sid/ |gecko-mediaplayer) |gecko-mediaplayer.html) | |en.wikipedia.org/| |gecko-mediaplayer) | | | |wiki/MPlayer) | | | | | |(GNOME) | +-----------------------------------------------------------------------------------------------+ Dica Apesar do uso dos pacotes Debian em cima ser mais fcil, os plugins do navegador podem ainda ser adicionados manualmente ao instalar os "*.so" nos directrios de plugins (ex. "/usr/lib/ iceweasel/plugins/") e reiniciando os navegadores. Alguns sites web recusam a ligao de acordo com a string user-agent do seu navegador. Pode contornar esta situao ao enganar a string user-agent (http://www.mozilla.org/unix/ customizing.html#prefs) . Por exemplo, voc pode fazer isto ao adicionar a seguinte linha em ficheiros de configurao do utilizador como o "~/.gnome2/epiphany/mozilla/epiphany/user.js" ou "~/.mozilla/firefox/*.default/user.js".

user_pref{"general.useragent.override","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"}; Alternativamente, voc pode adicionar ou reiniciar esta varivel ao escrever "about:config" no URL e clicar com o boto direito no contedo mostrado. Cuidado Uma string user-agent enganada pode causar maus efeitos colaterais com Java (https://bugzilla.mozilla.org/show_bug.cgi?id =83376) . 6.2. O sistema de correio electrnico (mail) Cuidado Se estiver a configurar um servidor de mail para trocar mail directamente com a Internet, dever fazer melhor do que ler esta documentao elementar. Nota Os exemplos seguintes de configurao so vlidos apenas para a estao de trabalho mvel tpica em ligaes de consumidor de Internet. 6.2.1. Noes bsicas de mail Uma mensagem de email (http://en.wikipedia.org/wiki/Email) consiste em trs componentes, o envelope da mensagem, o cabealho da mensagem e o corpo da mensagem. A informao "To" e "From" no envelope da mensagem utilizada pelo SMTP (http://en.wikipedia.org/wiki/ Simple_Mail_Transfer_Protocol) para entregar o email. (A informao de "From" no envelope da mensagem tambm chamada de endereo bounce (http://en.wikipedia.org/wiki/Bounce_address) , From_, etc.) A informao "To" e "From" no cabealho da mensagem mostrada pelo cliente de email (http://en.wikipedia.org/wiki/Email_client) . (Embora seja vulgar que sejam os mesmo do envelope da mensagem nem sempre o caso.) O cliente de email (http://en.wikipedia.org/wiki/Email_client) ) necessita interpretar os cabealhos da mensagem e dados do corpo utilizando Multipurpose Internet Mail Extensions (MIME) (http:// en.wikipedia.org/wiki/MIME) para lidar com o tipo de dados e codificao do contedo. 6.2.2. Bases dos servios de mail modernos De modo a conter problemas de spam (correio no desejado nem solicitado), muitos ISPs que disponibilizam as ligaes Internet dos consumidores, esto a implementar contra-medidas. * O servio smarthost para os seus clientes enviarem mensagens utiliza o porto submisso de mensagem (587) especificado no rfc4409 (http://tools.ietf.org/html/rfc4409) com a

palavra-passe (servio SMTP AUTH (http://en.wikipedia.org/ wiki/SMTP-AUTH) ) especificada no rfc4954 (http:// tools.ietf.org/html/rfc4954) . * As ligaes SMTP (http://en.wikipedia.org/wiki/ Simple_Mail_Transfer_Protocol) no porto 25 a partir das suas mquinas de rede internas (excepto o servidor de sada de mail do prprio ISP) para a Internet esto bloqueadas. * As ligaes SMTP (http://en.wikipedia.org/wiki/ Simple_Mail_Transfer_Protocol) pelo porto 25 ao servidor de mail do ISP a partir de algumas mquinas de redes externas suspeitas esto bloqueadas. (As ligaes a partir de mquinas na gama de endereos IP dinmicos usados pelo dial-up e outras ligaes de consumidores de Internet so as primeiras a serem bloqueadas.) * Tcnicas Anti-spam (http://en.wikipedia.org/wiki/ Anti-spam_techniques) tais como DomainKeys Identified Mail (DKIM) (http://en.wikipedia.org/wiki/ DomainKeys_Identified_Mail) e Sender_Policy_Framework (SPF) (http://en.wikipedia.org/wiki/Sender_Policy_Framework) so largamente utilizadas para filtrar email (http:// en.wikipedia.org/wiki/Email_filtering) . * O servio DomainKeys Identified Mail (http://en.wikipedia.org /wiki/DomainKeys_Identified_Mail) pode ser disponibilizado para o email que envia atravs do smarthost. Quando configurar o seu sistema de mail ou resolver problemas de entrega de mail, voc deve considerar estas novas limitaes. luz destas situaes e limitaes hostis da Internet, alguns ISPs de mail de Internet independentes tais como o Yahoo.com e Gmail.com oferecem o servio de mail seguro que pode ser acedido a partir de qualquer lugar na Internet usando o Transport Layer Security (TLS) e o seu antecessor, Secure Sockets Layer (SSL) (http://en.wikipedia.org/wiki/Transport_Layer_Security) . * O servio smarthost no porto 465 com o protocolo depreciado SMTP sobre SSL (SMTPS (http://en.wikipedia.org/wiki/SMTPS) ). * O servio de smarthost no porto 587 com STARTTLS (http:// en.wikipedia.org/wiki/STARTTLS) . * O mail de chegada est acessvel no porto 995 TLS/POP3 com POP3 (http://en.wikipedia.org/wiki/Post_Office_Protocol) . Cuidado No realista correr um servidor SMTP numa rede de ligao domstica para enviar mail directamente para a mquina remota de forma confivel. Muito provavelmente os mails sero rejeitados. Ter de utilizar um servio de smarthost oferecido pelo ISP da ligao ou pelo ISPs de mail independentes. Para simplificar, assumo que o smarthost est localizado em "smtp.nomemaquina.dom", necessita de Autenticao SMTP (http:// en.wikipedia.org/wiki/SMTP_Authentication) , e utiliza o porto para submisso de mensagens (587) com STARTTLS (http://

en.wikipedia.org/wiki/STARTTLS) no texto seguinte. 6.2.3. A estratgia de configurao de mail para estao de trabalho A configurao de mail mais simples aquela onde o mail enviado para o smarthost do ISP e recebido do servidor POP3 do ISP pelo prprio MUA (veja Seco6.4, Agente utilizador de mail (MUA)). Este tipo de configurao popular com MUA baseado em GUIs cheios de funcionalidades como o icedove(1), evolution(1), etc. Se necessitar filtrar o mail pelos seus tipos, voc usa a funo de filtragem do MUA. Para este caso, o MTA local (veja Seco6.3, Agente de transporte de mail (MTA)) precisa apenas de fazer entregas locais. A configurao de mail alternativa onde o mail enviado via MTA local para o smarthost do ISP e recebido do POP3 do ISP atravs de um obtentor de mail (veja Seco6.5, O adquiridor de mail remoto e utilitrio de reencaminhamento) para a mailbox local. Se necessitar filtrar o mail pelos seus tipos, utilize o MDA com filtro (veja Seco6.6, Agente de entrega de mail (MDA) com filtro) para filtrar o mail em caixas separadas. Este tipo de configurao popular com MUAs baseadas em consola simples como mutt(1), gnus(1), etc., apesar de ser possvel com qualquer MUA (veja Seco6.4, Agente utilizador de mail (MUA)). Para este caso, o MTA local (veja Seco6.3, Agente de transporte de mail (MTA)) precisa de fazer a entrega ao smarthost e a entrega local. Como as estaes de trabalho mveis no tm um FQDN vlido, ter de configurar o MTA local para esconder e enganar o nome de mail local real no mail de sada para evitar erros de entrega de mail (veja Seco6.3.3, A configurao do endereo de mail). Dica Poder desejar configurar o MUA/MDA para utilizar Maildir (http:/ /en.wikipedia.org/wiki/Maildir) para armazenar as mensagens de email algures sob o seu directrio pessoal. 6.3. Agente de transporte de mail (MTA) Para uma estao de trabalho normal, a escolha popular para Agente de Transporte de Mail (MTA) ou o pacote exim4-* ou o postfix. A escolha sua. Tabela 6.3. Lista de pacotes bsicos relacionados com agente de transporte de mail para estao de trabalho +-----------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio |-------------------+-------------------+------------------------+------------| |exim4-daemon-light | | |(http:// de| |packages.debian.org|//qa.debian.org/ | |/sid/ | |popcon.php?package=|/ |(MTA: |packages.qa.debian.org/e|mail Exim4 |V:614, I:684 (http:|1219 (http:// |transporte | |Agente de |

|exim4-daemon-light)|exim4-daemon-light)|exim4-daemon-light.html)|predefinid o | | | |-------------------+-------------------+------------------------+------------| | |V:627, I:701 (http:| |exim4-base (http://|//qa.debian.org/ |1477 (http:// | |packages.debian.org|popcon.php?package=|packages.qa.debian.org/e|(texto) e | |/sid/exim4-base) | | | |-------------------+-------------------+------------------------+------------| |exim4-doc-html | |(http:// |qa.debian.org/ |3033 (http:// |Documentao | |packages.debian.org|popcon.php?package=|packages.qa.debian.org/e|do Exim4 | |/sid/ | |exim4-doc-html) | |-------------------+-------------------+------------------------+------------| |exim4-doc-info | |(http:// |qa.debian.org/ |554 (http:// |Documentao | |packages.debian.org|popcon.php?package=|packages.qa.debian.org/e|do Exim4 | |/sid/ |exim4-doc-info) |/exim4-doc-info.html) |(info) | |exim4-doc-info) | | | | |-------------------+-------------------+------------------------+------------| | |V:174, I:193 (http:| |Agente de | |postfix (http:// |//qa.debian.org/ |3448 (http:// |transporte de| |packages.debian.org|popcon.php?package=|packages.qa.debian.org/p|mail Postf ix | |/sid/postfix) |postfix) |/postfix.html) |(MTA: | | | | |alternativ o) | |-------------------+-------------------+------------------------+------------| |postfix-doc (http:/|I:15 (http:// |3482 (http:// |Documentao | |/ |qa.debian.org/ |packages.qa.debian.org/p|do Postfix | |packages.debian.org|popcon.php?package=|/postfix-doc.html) |(html+text o) | |/sid/postfix-doc) |postfix-doc) | | | |-------------------+-------------------+------------------------+------------| | | | |Implementao| |I:2 (http:// | | | | | |exim4-doc-html) |/exim4-doc-html.html) |(html) |I:3 (http:// | | | | |comuns |exim4-base) |/exim4-base.html) |ficheiros |Documentao | |do Exim4 | | |em Debian)

|sasl2-bin (http:// |V:14, I:44 (http://|436 (http:// | |packages.debian.org|qa.debian.org/ ix | |/sid/sasl2-bin) r | | | | | ---| |cyrus-sasl2-doc | |(http:// - | |qa.debian.org/ |247 (http:// |I:9 (http:// | | | |sasl2-bin) | |popcon.php?package=|/sasl2-bin.html)

|Cyrus SASL

|packages.qa.debian.org/s|API (postf |suplementa |para SMTP |AUTH)

|-------------------+-------------------+------------------------+---------| |Cyrus SASL

|packages.debian.org|popcon.php?package=|packages.qa.debian.org/c|documentao | |/sid/ |cyrus-sasl2-doc) |/cyrus-sasl2-doc.html) | | |cyrus-sasl2-doc) | +-----------------------------------------------------------------------------+ Apesar da contagem de votos do popcon do exim4-* parecer ser vrias vezes mais popular que a do postfix, isto no quer dizer que o postfix no seja popular entre os programadores de Debian. O sistema de servidor Debian utiliza ambos, exim4 e postfix. A anlise dos cabealhos de mail (http://wiki.debian.org/ DefaultMTA) dos envios para a lista de mail dos programadores proeminentes de Debian tambm indica que ambos os MTAs so populares. Os pacotes exim4-* so conhecidos por terem um pequeno consumo de memria e serem muito flexveis na sua configurao. O pacote postfix conhecido por ser compacto, rpido, simples, e seguro. Ambos vm com ampla documentao e so bons em qualidade e licena. Existem muitas escolhas para pacotes de agente de transporte de mail (MTA) com capacidades e objectivos diferentes no arquivo Debian. Tabela 6.4. Lista de escolhas para pacotes de agente de transporte de mail (MTA) no arquivo Debian. +-------------------------------------------------------------------------------+ |pacote |popcon |tamanho |capacidade e | | | | |focagem | |-------------------+-------------------+------------------------+--------------| |exim4-daemon-light |V:614, I:684 (http:|1219 (http:// | | |(http:// |//qa.debian.org/ |packages.qa.debian.org/e| | |packages.debian.org|popcon.php?package=|/ |completo | | |

| |/sid/ |exim4-daemon-light)|exim4-daemon-light.html)| | |exim4-daemon-light)| | | | |-------------------+-------------------+------------------------+--------------| |postfix (http:// |V:174, I:193 (http:|3448 (http:// | | |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org/p|completo | |/sid/postfix) |popcon.php?package=|/postfix.html) |(segurana) | | |postfix) | | | |-------------------+-------------------+------------------------+--------------| |exim4-daemon-heavy |V:12, I:14 (http://|1350 (http:// | | |(http:// |qa.debian.org/ |packages.qa.debian.org/e|completo | |packages.debian.org|popcon.php?package=|/ |(flexibili dade)| |/sid/ |exim4-daemon-heavy)|exim4-daemon-heavy.html)| | |exim4-daemon-heavy)| | | | |-------------------+-------------------+------------------------+--------------| |sendmail-bin (http:|V:16, I:17 (http://|1931 (http:// |completo | |// |qa.debian.org/ |packages.qa.debian.org/s|(apenas se voc| |packages.debian.org|popcon.php?package=|/sendmail-bin.html) |j est | |/sid/sendmail-bin) |sendmail-bin) | |familiariz ado) | |-------------------+-------------------+------------------------+--------------| |nullmailer (http://|V:7, I:9 (http:// |428 (http:// |reduzido, | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/n|nenhum mai l | |/sid/nullmailer) |popcon.php?package=|/nullmailer.html) |local | | |nullmailer) | | | |-------------------+-------------------+------------------------+--------------| |ssmtp (http:// |V:12, I:16 (http://|1 (http:// |reduzido, | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/s|nenhum mai l | |/sid/ssmtp) |popcon.php?package=|/ssmtp.html) |local | | |ssmtp) | | | |-------------------+-------------------+------------------------+---------------| |courier-mta (http:/|V:0, I:0 (http:// |1793 (http:// |muito comp leto |

|/ |qa.debian.org/ |packages.qa.debian.org/c|(interface web,| |packages.debian.org|popcon.php?package=|/courier-mta.html) |etc.) | |/sid/courier-mta) |courier-mta) | | | |-------------------+-------------------+------------------------+--------------| |xmail (http:// |V:0, I:0 (http:// |688 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/x|leve | |/sid/xmail) |popcon.php?package=|/xmail.html) | | | |xmail) | | | |-------------------+-------------------+------------------------+--------------| |masqmail (http:// |V:0, I:0 (http:// |337 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/m|leve | |/sid/masqmail) |popcon.php?package=|/masqmail.html) | | | |masqmail) | | | |-------------------+-------------------+------------------------+--------------| |esmtp (http:// |V:0, I:1 (http:// |144 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/e|leve | |/sid/esmtp) |popcon.php?package=|/esmtp.html) | | | |esmtp) | | | |-------------------+-------------------+------------------------+--------------| | |V:0, I:0 (http:// | |leve (exte nso | |esmtp-run (http:// |qa.debian.org/ |57 (http:// |de | |packages.debian.org|popcon.php?package=|packages.qa.debian.org/e|compatibil idade| |/sid/esmtp-run) |esmtp-run) |/esmtp-run.html) |do sendmai l | | | | |para esmtp ) | |-------------------+-------------------+------------------------+--------------| |msmtp (http:// |V:3, I:8 (http:// |317 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/m|leve | |/sid/msmtp) |popcon.php?package=|/msmtp.html) | | | |msmtp) | | | |-------------------+-------------------+------------------------+--------------|

| |V:1, I:1 (http:// | |leve (exte nso | |msmtp-mta (http:// |qa.debian.org/ |86 (http:// |de | |packages.debian.org|popcon.php?package=|packages.qa.debian.org/m|compatibil idade| |/sid/msmtp-mta) |msmtp-mta) |/msmtp-mta.html) |do sendmai l | | | | |para msmtp ) | +-------------------------------------------------------------------------------+ 6.3.1. A configurao do exim4 Para mail de Internet atravs de smarthost, voc (re)configura o pacote exim4-* conforme o seguinte: $ sudo /etc/init.d/exim4 stop $ sudo dpkg-reconfigure exim4-config Escolha "mail enviado por smarthost; recebido via SMTP ou fetchmail" para "Configurao geral do tipo de mail". Defina "nome de mail do sistema:" para a sua predefinio como o FQDN (veja Seco5.1.2, A resoluo de nome de mquina). Defina "Endereo IP onde escutar ligaes SMTP recebidas:" para a sua predefinio como "127.0.0.1 ; ::1". Desconfigure o contedo de "Outros destinos para o qual o mail aceite:". Desconfigure o contedo de "Mquinas para retransmitir mail para:". Defina "Endereo IP ou nome de mquina do smarthost de envio:" para "smtp.nome-de-mquina.domnio:587". Escolha "<No>" para "Esconder o nome de mail local para o mail enviado?". (Em vez disso, use "/etc/email-addresses" como em Seco6.3.3, A configurao do endereo de mail.) Responda a "Manter um nmero mnimo de consultas DNS (Marcar-a-Pedido)?" como uma das seguintes. * "No" se o sistema estiver ligado Internet enquanto arranca. * "Sim" se o sistema no est ligado Internet enquanto arranca. Defina o "Mtodo de entrega para mail local:" para "formato mbox em /var/mail". Seleccione "<Sim>" para "Dividir configurao em pequenos ficheiros?:". Crie entradas de palavra-passe para o smarthost ao editar "/etc/

exim4/passwd.client". $ sudo vim /etc/exim4/passwd.client ... $ cat /etc/exim4/passwd.client ^smtp.*\.nome_de_mquina\.domnio:nome_de_mquina@nome_de_mquina.domnio:palavra-pass e Inicie o exim4 com o seguinte. $ sudo /etc/init.d/exim4 start o nome de mquina em "/etc/exim4/passwd.client" no deve ser o alias. Verifique o nome real da mquina com o seguinte. $ host smtp.hostname.dom smtp.hostname.dom um alias para smtp99.hostname.dom. smtp99.hostname.dom possui o endereo 123.234.123.89 Eu utilizo expresses regulares em "/etc/exim4/passwd.client" para contornar o problema do alias. Provavelmente o SMTP AUTH funciona mesmo que o ISP mova a mquina apontada pelo alias. Pode actualizar manualmente a configurao do exim4 com o seguinte: * Actualizar os ficheiros de configurao do "exim4" em "/etc/ exim4/". o criar "/etc/exim4/exim4.conf.localmacros" para definir MACROs e editar "/etc/exim4/exim4.conf.template". (configurao no-dividida) o criar novos ficheiros ou editar ficheiros existentes nos subdirectrios "/etc/exim4/exim4.conf.d". (configurao dividida) * Correr "invoke-rc.d exim4 reload". Por favor leia o guia oficial em "/usr/share/doc/exim4-base/ README.Debian.gz" e update-exim4.conf(8). Cuidado O arranque do exim4 demora muito tempo se foi escolhido "No" (valor predefinido) na pergunta debconf de "Manter o nmero de consultas DNS no mnimo (Marcar-a-pedido)?" e o sistema no estiver ligado Internet durante o arranque. Ateno inseguro utilizar palavras-passe em texto simples sem encriptao mesmo que o seu ISP o permita. Dica Embora seja recomendado a utilizao de SMTP (http:// en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol) com STARTTLS (http://en.wikipedia.org/wiki/STARTTLS) no porto 587, alguns ISPs ainda utilizam o depreciado SMTPS (http://en.wikipedia.org/wiki/

SMTPS) (SSL no porto 465). O exim4 aps a verso 4.77 suporta o protocolo depreciado SMTPS quer para cliente quer para servidor. Dica Se voc est a procurar um MTA leve que respeite "/etc/aliases" para o seu PC porttil, deve considerar configurar o exim4(8) com "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. em "/ etc/default/exim4". 6.3.2. A configurao do postfix com SASL Para o mail de Internet atravs de smarthost, voc deve primeiro ler a documentao do postfix (http://www.postfix.org/ documentation.html) e pginas chave do manual. Tabela 6.5. Lista dos manuais importantes do postfix +------------------------------------------------------------+ |comando |funo | |------------+-----------------------------------------------| |postfix(1) |Programa de controlo do postfix | |------------+-----------------------------------------------| |postconf(1) |Utilitrio de configurao do postfix | |------------+-----------------------------------------------| |postconf(5) |Parmetros de configurao do postfix | |------------+-----------------------------------------------| |postmap(1) |Manuteno da tabela de buscas do Postfix | |------------+-----------------------------------------------| |postalias(1)|Manuteno da base de dados de alias do Postfix| +------------------------------------------------------------+ (Re)configurar os pacotes postfix e sasl2-bin como se segue. $ sudo /etc/init.d/postfix stop $ sudo dpkg-reconfigure postfix Escolha "Internet com smarthost". Defina "SMTP relay host (em branco para nenhum):" para " [smtp.hostname.dom]:587" e configure-o como o seguinte. $ $ $ $ $ sudo sudo sudo sudo sudo postconf -e 'smtp_sender_dependent_authentication = yes' postconf -e 'smtp_sasl_auth_enable = yes' postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd' postconf -e 'smtp_sasl_type = cyrus' vim /etc/postfix/sasl_passwd

Crie entradas de palavra-passe para o smarthost. $ cat /etc/postfix/sasl_passwd [smtp.hostname.dom]:587 nome_utilizador:palavra_passe $ sudo postmap hush:/etc/postfix/sasl_passwd Arranque o postfix com o seguinte. $ sudo /etc/init.d/postfix start Aqui o uso de "[" e "]" no dilogo do dpkg-reconfigure e "/etc/

postfix/sasl_passwd" assegura que no se verifica o registo MX mas usa directamente o nome de mquina exacto especificado. Veja "Activar autenticao SASL no cliente SMTP do Postfix" em "/usr/ share/doc/postfix/html/SASL_README.html". 6.3.3. A configurao do endereo de mail Existem alguns ficheiros de configurao de endereos de mail para transporte, entrega e agentes de utilizador de mail (http:// www.debian.org/doc/debian-policy/ch-customized-programs# s-mail-transport-agents) . Tabela 6.6. Lista de ficheiros de configurao relacionados com endereos de mail +---------------------------------------------------------------+ |ficheiro |funo |aplicao | |---------------+---------------+-------------------------------| | |nome de mquina| | |/etc/mailname |predefinido |Especfico de Debian, mailname | | |para mail |(5) | | |(sada) | | |---------------+---------------+-------------------------------| |/etc/ |nome de mquina|ficheiros_de_configurao-exim4| |email-addresses|para enganar o |(5) especficos do exim(8) | | |mail de sada | | |---------------+---------------+-------------------------------| |/etc/postfix/ |nome de mquina|especfico do postfix(1), | |generic |para enganar o |activado aps a execuo do | | |mail de sada |comando postmap(1). | |---------------+---------------+-------------------------------| | |alias de nome |geral, activado aps a execuo| |/etc/aliases |de conta para |do comando newaliases(1). | | |mail recebido | | +---------------------------------------------------------------+ O mailname no ficheiro "/etc/mailname" normalmente um nome de domnio totalmente qualificado (FQDN) que resolve para um dos endereos IP do anfitrio. Para a estao de trabalho mvel que no tem um nome de mquina com endereo IP resolvvel, regule este mailname para o valor de "hostname -f". (Esta uma escolha segura e funciona para ambos exim4-* e postfix.) Dica O contedo de "/etc/mailname" utilizado por muitos programas no-MTA para o seu comportamento predefinido. Para o mutt, defina as variveis "hostname" e "from" no ficheiro ~/muttrc para sobrepor o valor mailname. Para programas no pacote devscripts, como o bts(1) e dch(1), exporte as variveis de ambiente "$DEBFULLNAME" e "$DEBEMAIL" para o sobrepor. Dica O pacote popularity-contest normalmente envia mail a partir da conta de root com FQDN. Tem de definir MAILFROM em /etc/ popularity-contest.conf como descrito no ficheiro /usr/share/ popularity-contest/default.conf. Caso contrrio, o seu mail ser rejeitado pelo servidor SMTP do smarthost. Apesar de isto ser um

tdio, esta aproximao mais segura do que reescrever o endereo fonte para todos os mails do root pelo MTA e deve ser usado para outros daemons e scripts do cron. Ao definir o mailname para "hostname -f", o spoofing do endereo de mail da fonte via MTA pode ser realizado com o seguinte. * ficheiro "/etc/email-addresses" para exim4(8) conforme explicado em exim4-config_files(5) * ficheiro "/etc/postfix/generic" para postfix(1) conforme explicado em generic(5) Para o postfix, so necessrios os seguintes passos extra: # postmap hash:/etc/postfix/generic # postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic' # postfix reload Pode testar a configurao do endereo de email usando o seguinte: * exim(8) com as opes -brw, -bf, -bF, -bV, * postmap(1) com a opo -q Dica O exim vem com vrios programas utilitrios como o exiqgrep(8) e exipick(8). Veja "dpkg -L exim4-base|grep man8/" para os comandos disponveis. 6.3.4. Operaes MTA bsicas Existem vrias operaes MTA bsicas. Algumas podem ser executadas atravs do interface de compatibilidade do sendmail(1) . Tabela 6.7. Lista de operaes MTA bsicas +---------------------------------------------------------------+ |comando |comando postfix |descrio | |exim | | | |----------+------------------+---------------------------------| |sendmail |sendmail |l mails da entrada standard e | | | |prepara a entrega (-bm) | |----------+------------------+---------------------------------| | | |lista a lista de espera de mail | |mailq |mailq |com estado e ID de lista de | | | |espera (-bp) | |----------+------------------+---------------------------------| |newaliases|newaliases |inicializa a base de dados e | | | |alias (-I) | |----------+------------------+---------------------------------| |exim4 -q |postqueue -f |enxagua mails em espera (-q) | |----------+------------------+---------------------------------| | |postsuper -r ALL | | |exim4 -qf |deferred; |enxagua todos mails | | |postqueue -f | | |----------+------------------+---------------------------------|

|exim4 -qff|postsuper -r ALL; |enxagua at mails congelados | | |postqueue -f | | |----------+------------------+---------------------------------| |exim4 -Mg |postsuper -h |congela uma mensagem pelo seu ID | |queue_id |queue_id |de lista de espera | |----------+------------------+---------------------------------| |exim4 -Mrm|postsuper -d |remove uma mensagem pelo seu ID | |queue_id |queue_id |de lista de espera | |----------+------------------+---------------------------------| |N/D |postsuper -d ALL |remove todas as mensagens | +---------------------------------------------------------------+ Dica Poder ser uma boa ideia enxaguar todos os mails por um script em "/etc/ppp/ip-up.d/*". 6.4. Agente utilizador de mail (MUA) Se voc subscrever uma lista de mail relacionada com Debian, poder ser boa ideia usar um MUA como o mutt e o gnus que so de facto standards para o participante e para se saber comportar como se espera. Tabela 6.8. Lista de agentes utilizador de mail (MUA) +---------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |tipo | |-------------------+-------------+----------------------+------------------------------------------------------------| | |V:83, I:365 | | | |evolution (http:// |(http:// |5589 (http:// | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Programa de GUI X (GNOME3, conjunto groupware) | |/sid/evolution) |/popcon.php? |/e/evolution.html) | | | |package= | | | | |evolution) | | | |-------------------+-------------+----------------------+------------------------------------------------------------| | |V:66, I:128 | |Programa de GUI X (GNOME2, sem marca (http://en.wikipedia.org| |icedove (http:// |(http:// |39819 (http:// |/wiki/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Mozilla_Corporatio n_software_rebranded_by_the_Debian_project)| |/sid/icedove) |/popcon.php? |/i/icedove.html) |Mozilla Thunderbir d (http://en.wikipedia.org/wiki/ | | |package= | |Mozilla_Thunderbir d) ) | | |icedove) | | | |-------------------+-------------+----------------------+------------------

-------------------------------------------| | |V:20, I:92 | | | |kmail (http:// |(http:// |28804 (http:// | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Programa de GUI X (KDE) | |/sid/kmail) |/popcon.php? |/k/kmail.html) | | | |package= | | | | |kmail) | | | |-------------------+-------------+----------------------+------------------------------------------------------------| | |V:282, I:864 | | | |mutt (http:// |(http:// |5455 (http:// |programa de termin al de caracteres provavelmente usado com o | |packages.debian.org|qa.debian.org|packages.qa.debian.org|vim | |/sid/mutt) |/popcon.php? |/m/mutt.html) | | | |package=mutt)| | | |-------------------+-------------+----------------------+------------------------------------------------------------| | |V:0, I:1 | | | |gnus (http:// |(http:// |6453 (http:// | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|programa de termin al de caracteres sob (x)emacs | |/sid/gnus) |/popcon.php? |/g/gnus.html) | | | |package=gnus)| | | +---------------------------------------------------------------------------------------------------------------------+ 6.4.1. MUA bsico Mutt Personalize "~/.muttrc" como se segue para usar o mutt como agente de utilizador de mail (MUA) em combinao com o vim. # # User configuration file to override /etc/Muttrc # # spoof source mail address set use_from set hostname=example.dom set from="Name Surname <[email protected]>" set signature="~/.signature" # vim: "gq" to reformat quotes set editor="vim -c 'set tw=72 et ft=mail'" # "mutt" goes to Inbox, while "mutt -y" lists mailboxes set mbox_type=Maildir # use qmail Maildir format for creating mbox

set set set set set set set set

mbox=~/Mail spoolfile=+Inbox record=+Outbox postponed=+Postponed move=no quit=ask-yes delete=yes fcc_clear

# # # # # # # #

keep all mail boxes in $HOME/Mail/ mail delivered to $HOME/Mail/Inbox save fcc mail to $HOME/Mail/Outbox keep postponed in $HOME/Mail/postponed do not move Inbox items to mbox do not quit by "q" only always delete w/o asking while exiting store fcc as non encrypted

# Mailboxes in Maildir (automatic update) mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "` unmailboxes Maillog *.ev-summary ## Default #set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s" ## Thread index with senders (collapse) set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s" ## Default #set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f" ## just folder names set folder_format="%2C %t %N %f" Adicione o seguinte ao "/etc/mailcap" or "~/.mailcap" para mostrar mail em HTML e anexos do MS Word 'inline'. text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Micr osoft Word Text"; nametemplate=%s.doc Dica O Mutt pode ser usado como o cliente IMAP (http:// en.wikipedia.org/wiki/Internet_Message_Access_Protocol) e o conversor de formato de mailbox. Voc pode etiquetar as mensagens com "t", "T", etc. Estas mensagens etiquetadas podem ser copiadas com ";C" entre diferentes mailboxes e apagadas com ";d" numa aco nica. 6.5. O adquiridor de mail remoto e utilitrio de reencaminhamento Apesar do fetchmail(1) ter sido o standard de facto para adquiridor de mail remoto em GNU/Linux, o autor agora gosta do getmail(1). Se voc deseja rejeitar mail antes de o descarregar para poupar largura de banda, o mailfilter ou o mpop podem ser teis. Independentemente de quais utilitrios de adquirir mails sejam usados, boa ideia configurar o sistema para entregar os mails adquiridos a um MDA, como o maildrop, via pipe. Tabela 6.9. Lista de adquiridores de mail remoto e utilitrios de reencaminhamento +-------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+----------| | |V:16, I:41 | |adquiridor| |fetchmail (http:// |(http:// |2476 (http:// |de mail | |packages.debian.org|qa.debian.org|packages.qa.debian.org|(POP3, | |/sid/fetchmail) |/popcon.php? |/f/fetchmail.html) |APOP, | | |package= | |IMAP) |

| |fetchmail) | |(antigo) | |-------------------+-------------+----------------------+----------| | | | |adquiridor| | |V:2, I:13 | |de mail | | |(http:// | |(POP3, | |getmail4 (http:// |qa.debian.org|619 (http:// |IMAP4, e | |packages.debian.org|/popcon.php? |packages.qa.debian.org|SDPS) | |/sid/getmail4) |package= |/g/getmail4.html) |(simples, | | |getmail4) | |seguro e | | | | |de | | | | |confiana)| |-------------------+-------------+----------------------+----------| | | | |adquiridor| | |V:0, I:0 | |de mail | | |(http:// | |(POP3) com| |mailfilter (http://|qa.debian.org|270 (http:// |capacidade| |packages.debian.org|/popcon.php? |packages.qa.debian.org|de | |/sid/mailfilter) |package= |/m/mailfilter.html) |filtragem | | |mailfilter) | |por | | | | |expresses| | | | |regulares | |-------------------+-------------+----------------------+----------| | | | |adquiridor| | |V:0, I:0 | |de mail | |mpop (http:// |(http:// |207 (http:// |(POP3) e | |packages.debian.org|qa.debian.org|packages.qa.debian.org|MDA com | |/sid/mpop) |/popcon.php? |/m/mpop.html) |capacidade| | |package=mpop)| |de | | | | |filtragem | +-------------------------------------------------------------------+ 6.5.1. configurao do getmail A configurao do getmail(1) est descrita em documentao do getmail (http://pyropus.ca/software/getmail/documentation.html) .Aqui esto as minhas definies para aceder a mltiplas contas POP3 como utilizador. Crie "/usr/local/bin/getmails" como o seguinte. #!/bin/sh set -e if [ -f $HOME/.getmail/running ]; then echo "getmail j est a correr ... (se no, remova $HOME/.getmail/running)" >&2 pgrep -l "getmai[l]" exit 1 else echo "getmail no est a correr ... " >&2 fi if [ -f $HOME/.getmail/stop ]; then echo "no correr o getmail ... (se no, remova $HOME/.getmail/stop)" >&2 exit fi if [ "x$1" = "x-l" ]; then exit fi rcfiles="/usr/bin/getmail" for file in $HOME/.getmail/config/* ; do rcfiles="$rcfiles --rcfile $file"

done date -u > $HOME/.getmail/running eval "$rcfiles $@" rm $HOME/.getmail/running Configure-o como o seguinte. $ $ $ $ sudo chmod 755 /usr/local/bin/getmails mkdir -m 0700 $HOME/.getmail mkdir -m 0700 $HOME/.getmail/config mkdir -m 0700 $HOME/.getmail/log

Crie ficheiros de configurao "$HOME/.getmail/config/pop3_name" para cada conta POP3 como o seguinte. [retriever] type = SimplePOP3SSLRetriever server = pop.exemplo.com username = [email protected] password = secreta [destination] type = MDA_external path = /usr/bin/maildrop unixfrom = True [options] verbose = 0 delete = True delivered_to = False message_log = ~/.getmail/log/pop3_name.log Configure-o como o seguinte. $ chmod 0600 $HOME/.getmail/config/* Agenda o "/usr/local/bin/getmails" para correr a cada 15 minutos com o cron(8) ao executar "sudo crontab -e -u <nome_de_utilizador>" e adicionando o seguinte entrada cron do utilizador. 5,20,35,50 * * * * /usr/local/bin/getmails --quiet Dica Os problemas do acesso POP3 podem no vir do getmail. Alguns servios populares POP3 livres podem estar a violar o protocolo POP3 e o seu filtro de SPAM pode no ser perfeito. Por exemplo, pode estar a apagar as mensagens logo aps receber o comando RETR antes de receber o comando DELE e pode colocar mensagens em quarentena na caixa do Spam. Voc deve minimizar os danos ao configura-los para arquivar as mensagens acedidas e no as apagar. Veja tambm "Algum mail no foi descarregado" (http:// mail.google.com/support/bin/answer.py?answer=13291&topic=1555) . 6.5.2. configurao do fetchmail A configurao do fetchmail(1) definida por "/etc/default/ fetchmail", "/etc/fetchmailrc" e "$HOME/.fetchmailrc". Veja o seu exemplo em "/usr/share/doc/fetchmail/examples/

fetchmailrc.example". 6.6. Agente de entrega de mail (MDA) com filtro A maioria dos programas MTA, como o postfix e exim4, funcionam como MDA (mail delivery agent). Eles so MDAs especializados com capacidades de filtragem. Apesar do procmail(1) ter sido o standard de facto para MDA com filtro em GNU/Linux, o autor agora gosta do maildrop(1). Seja quais os utilitrios de filtragem usados, boa ideia configurar o sistema para entregar os mails filtrados a uma Maildir de estilo qmail (http://en.wikipedia.org/wiki/Maildir) . Tabela 6.10. Lista de MDA com filtro +--------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-----------| | |V:199, I:866 | | | |procmail (http:// |(http:// |313 (http:// |MDA com | |packages.debian.org|qa.debian.org|packages.qa.debian.org|filtro | |/sid/procmail) |/popcon.php? |/p/procmail.html) |(antigo) | | |package= | | | | |procmail) | | | |-------------------+-------------+----------------------+-----------| | |V:3, I:48 | | | |mailagent (http:// |(http:// |1201 (http:// | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|MDA com | |/sid/mailagent) |/popcon.php? |/m/mailagent.html) |filtro Perl| | |package= | | | | |mailagent) | | | |-------------------+-------------+----------------------+-----------| | |V:2, I:6 | |MDA com | |maildrop (http:// |(http:// |1218 (http:// |linguagem | |packages.debian.org|qa.debian.org|packages.qa.debian.org|de | |/sid/maildrop) |/popcon.php? |/m/maildrop.html) |filtragem | | |package= | |estruturada| | |maildrop) | | | +--------------------------------------------------------------------+ 6.6.1. configurao do maildrop A configurao do maildrop(1) est descrita em documentao do maildropfilter (http://www.courier-mta.org/maildrop/ maildropfilter.html) . Aqui est um exemplo de configurao para "$HOME/.mailfilter". # Local configuration MAILROOT="$HOME/Mail" # set this to /etc/mailname contents MAILHOST="example.dom" logfile $HOME/.maildroplog # rules are made to override the earlier value by the later one. # mailing list mails ? if ( /^Precedence:.*list/:h || /^Precedence:.*bulk/:h ) {

# rules for mailing list mails # default mailbox for mails from mailing list MAILBOX="Inbox-list" # default mailbox for mails from debian.org if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ) { MAILBOX="service.debian.org" } # default mailbox for mails from bugs.debian.org (BTS) if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h ) { MAILBOX="bugs.debian.org" } # mailbox for each properly maintained mailing list with "List-Id: foo" or "List-Id: ...<foo.bar>" if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h ) { MAILBOX="$MATCH2" } } else { # rules for non-mailing list mails # default incoming box MAILBOX="Inbox-unusual" # local mails if ( /Envelope-to: .*@$MAILHOST/:h ) { MAILBOX="Inbox-local" } # html mails (99% spams) if ( /DOCTYPE html/:b ||\ /^Content-Type: text\/html/ ) { MAILBOX="Inbox-html" } # blacklist rule for spams if ( /^X-Advertisement/:h ||\ /^Subject:.*BUSINESS PROPOSAL/:h ||\ /^Subject:.*URGENT.*ASISSTANCE/:h ||\ /^Subject: *I NEED YOUR ASSISTANCE/:h ) { MAILBOX="Inbox-trash" } # whitelist rule for normal mails if ( /^From: .*@debian.org/:h ||\ /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\ /^Subject: .*(debian|bug|PATCH)/:h ) { MAILBOX="Inbox" } # whiltelist rule for BTS related mails if ( /^Subject: .*Bug#.*/:h ||\ /^(To|Cc): .*@bugs.debian.org/:h ) { MAILBOX="bugs.debian.org" } # whitelist rule for getmails cron mails if ( /^Subject: Cron .*getmails/:h ) {

MAILBOX="Inbox-getmails" } } # check existance of $MAILBOX `test -d $MAILROOT/$MAILBOX` if ( $RETURNCODE == 1 ) { # create maildir mailbox for $MAILBOX `maildirmake $MAILROOT/$MAILBOX` } # deliver to maildir $MAILBOX to "$MAILROOT/$MAILBOX/" exit Ateno Ao contrrio do procmail, o maildrop no cria automaticamente os directrios maildir em falta. Voc tem de os criar manualmente com antecedncia usando o maildirmake(1) como no exemplo "$HOME /.mailfilter". 6.6.2. configurao do procmail Aqui est uma configurao semelhante com "$HOME/.procmailrc" para procmail(1). MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/Inbox/ LOGFILE=$MAILDIR/Maillog # sem dvida mails com mau aspecto: despeja-os no lixo e termina :0 * 1^0 ^X-Advertisement * 1^0 ^Subject:.*BUSINESS PROPOSAL * 1^0 ^Subject:.*URGENT.*ASISSTANCE * 1^0 ^Subject: *I NEED YOUR ASSISTANCE X-trash/ # Entrega de mensagens da lista de mail :0 * 1^0 ^Precedence:.*list * 1^0 ^Precedence:.*bulk * 1^0 ^List* 1^0 ^X-Distribution:.*bulk { :0 * 1^0 ^Return-path:.*[email protected] jp-debian-devel/ :0 * ^Resent-Sender.*[email protected] debian-user/ :0 * ^Resent-Sender.*[email protected] debian-devel/ :0 * ^Resent-Sender.*[email protected] debian-announce

:0 mailing-list/ } :0 Inbox/ 6.6.3. Re-entregar o contedo da mbox Voc precisa de entregar manualmente os mails s caixas de correio organizadas no seu directrio home a partir de "/var/mail /<nome_de_utilizador>" se o seu directrio home ficar cheio e o procmail(1) falhar. Aps regular o espao do disco no directrio home, corra o seguinte. # /etc/init.d/${MAILDAEMON} stop # formail -s procmail </var/mail/<nome_de_utilizador> # /etc/init.d/${MAILDAEMON} start 6.7. Servidor POP3/IMAP4 Se voc vai correr um servidor privado numa LAN, deve considerar correr um servidor POP3 (http://en.wikipedia.org/wiki/ Post_Office_Protocol) / IMAP4 (http://en.wikipedia.org/wiki/ Internet_Message_Access_Protocol) para entregar mail aos clientes da LAN. Tabela 6.11. Lista de Servidores POP3/IMAP4 +-----------------------------------------------------------------------+ |pacote |popcon |tamanho |tipo|descrio| |-------------------+-------------+----------------------+----+---------| | | | | |Servidor | | |V:12, I:16 | | |de mail | |courier-pop (http:/|(http:// |108 (http:// | |courier -| |/ |qa.debian.org|packages.qa.debian.org|POP3|Servidor | |packages.debian.org|/popcon.php? |/c/courier-pop.html) | |POP3 | |/sid/courier-pop) |package= | | |(apenas | | |courier-pop) | | |formato | | | | | |maildir) | |-------------------+-------------+----------------------+----+---------| | |V:0, I:0 | | |Sistema | |cyrus-pop3d (http:/|(http:// |21 (http:// | |de mail | |/ |qa.debian.org|packages.qa.debian.org|POP3|cyrus | |packages.debian.org|/popcon.php? |/c/cyrus-pop3d.html) | |(suporte | |/sid/cyrus-pop3d) |package= | | |de POP3) | | |cyrus-pop3d) | | | | |-------------------+-------------+----------------------+----+---------| | |V:0, I:0 | | | | |xmail (http:// |(http:// |688 (http:// | |Servidor | |packages.debian.org|qa.debian.org|packages.qa.debian.org|POP3|de mail | |/sid/xmail) |/popcon.php? |/x/xmail.html) | |ESMTP/ | | |package= | | |POP3 | | |xmail) | | | | |-------------------+-------------+----------------------+----+---------| | | | | |Servidor | | |V:19, I:23 | | |de mail | |courier-imap (http:|(http:// |539 (http:// | |courier -| |// |qa.debian.org|packages.qa.debian.org|IMAP|Servidor |

|packages.debian.org|/popcon.php? |/c/courier-imap.html) | |IMAP | |/sid/courier-imap) |package= | | |(apenas | | |courier-imap)| | |formato | | | | | |maildir) | |-------------------+-------------+----------------------+----+---------| | |V:0, I:0 | | |Sistema | |cyrus-imapd (http:/|(http:// |21 (http:// | |de mail | |/ |qa.debian.org|packages.qa.debian.org|IMAP|cyrus | |packages.debian.org|/popcon.php? |/c/cyrus-imapd.html) | |(suporte | |/sid/cyrus-imapd) |package= | | |de IMAP) | | |cyrus-imapd) | | | | +-----------------------------------------------------------------------+ 6.8. O servidor de impresso e utilitrio No antigo sistema tipo Unix, o Line printer daemon (http:// en.wikipedia.org/wiki/Line_Printer_Daemon_protocol) do BSD era o standard. Como o formato de impresso standard do software livre o PostScript nos sistemas tipo Unix, um sistema de filtragem foi usado juntamente com o Ghostscript (http://en.wikipedia.org/ wiki/Ghostscript) para activar a impresso em impressoras no-PostScript. Recentemente, o Common UNIX Printing System (http:// en.wikipedia.org/wiki/Common_Unix_Printing_System) (CUPS) o novo standard de facto. O CUPS usa Internet Printing Protocol (http://en.wikipedia.org/wiki/Internet_Printing_Protocol) (IPP). O IPP agora suportado por outros SOs como o Windows XP e o Mac OS X e tornou-se no novo standard de facto para vrias plataformas para impresso remota com capacidade de comunicao bidireccional. O formato de dados de impresso standard para a aplicao no sistema Debian o PostScript (PS) (http://en.wikipedia.org/wiki/ PostScript) o qual uma linguagem de descrio de pgina. Os dados em formato PS so fornecidos ao interpretador de PostScript Ghostscript para produzir os dados de impresso especficos da impressora. Veja Seco11.3.1, Ghostscript. Graas funcionalidade de auto-converso dependente do formato de ficheiro do sistema CUPS, simplesmente fornecer quaisquer dados ao comando lpr dever gerar a sada de impresso esperada. (No CUPS, o lpr pode ser activado ao instalar o pacote cups-bsd.) O sistema Debian tem alguns pacotes notveis para os servidores e utilitrios de impresso. Tabela 6.12. Lista de servidores de impressoras e utilitrios +--------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |porto |descrio | |-----------------------+-----------------------+---------------------------+----------+-----------------------------| | | | | |BSD lpr/lpd (daemon de | |lpr (http:// |V:18, I:22 (http:// |460 (http:// |impressora|impressora de linha (http:// |

|packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/l/ |(515) |en.wikipedia.org/wiki/ | |/lpr) |popcon.php?package=lpr)|lpr.html) | |Line_Printer_Daemon_protocol)| | | | | |) | |-----------------------+-----------------------+---------------------------+----------+-----------------------------| |lprng (http:// |V:3, I:5 (http:// |2769 (http:// | | | |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/l/ |, , |, , (Avanado) | |/lprng) |popcon.php?package= |lprng.html) | | | | |lprng) | | | | |-----------------------+-----------------------+---------------------------+----------+-----------------------------| |cups (http:// |V:355, I:487 (http:// |3887 (http:// | | | |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/c/ |IPP (631) |Servidor CUPS de Impresso em| |/cups) |popcon.php?package= |cups.html) | |Internet | | |cups) | | | | |-----------------------+-----------------------+---------------------------+----------+-----------------------------| | | | | |Comandos de impresso do | | | | | |System V (http:// | |cups-client (http:// |V:108, I:514 (http:// |487 (http:// | |en.wikipedia.org/wiki/ | |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/c/ |, , |System_V_printing_system) | |/cups-client) |popcon.php?package= |cups-client.html) | |para o CUPS: lp(1), lpstat(1)| | |cups-client) | | |, lpoptions(1), cancel(1), | | | | | |lpmove(8), lpinfo(8), lpadmin| | | | | |(8), | |-----------------------+-----------------------+---------------------------+----------+-----------------------------| | | | | |comandos de impresso BSD | |cups-bsd (http:// |V:70, I:448 (http:// |96 (http:// | |(http://en.wikipedia.org/wiki| |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/c/ |, , |/ | |/cups-bsd) |popcon.php?package= |cups-bsd.html) | |Line_Printer_Daemon_protocol)| | |cups-bsd) | | |para o CUPS: lpr(1), lpq(1), | | | | | |lprm(1), lpc(8) | |-----------------------+-----------------------+---------------------------+----------+-----------------------------|

|cups-driver-gutenprint |V:37, I:339 (http:// | | | |(http:// |qa.debian.org/ |21 (http:// |No |Drivers de impressoras para o| |packages.debian.org/sid|popcon.php?package= |packages.qa.debian.org/c/ |aplicvel |CUPS | |/ |cups-driver-gutenprint)|cups-driver-gutenprint.html )| | | |cups-driver-gutenprint)| | | | | +--------------------------------------------------------------------------------------------------------------------+ | Dica Voc pode configurar o sistema CUPS ao apontar o seu explorador web para "http://localhost:631/ (http://localhost:631/) " . 6.9. O servidor de acesso remoto e utilitrio (SSH) O Secure SHell (http://en.wikipedia.org/wiki/Secure_Shell) (SSH) o modo seguro de efectuar ligaes na Internet. Uma verso livre do SSH chamada OpenSSH (http://www.openssh.org/) est disponvel nos pacotes openssh-client e openssh-server em Debian. Tabela 6.13. Lista de servidores de acesso remoto e utilitrios +-------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |ferramenta |descrio | |-----------------------+-----------------------+---------------------------+----------------------+----------| |openssh-client (http://|V:564, I:995 (http:// |2276 (http:// | |Cliente de| |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/o/ |ssh(1) |shell | |/openssh-client) |popcon.php?package= |openssh-client.html) | |segura | | |openssh-client) | | | | |-----------------------+-----------------------+---------------------------+----------------------+----------| |openssh-server (http://|V:689, I:847 (http:// |708 (http:// | |Servidor | |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/o/ |sshd(8) |de shell | |/openssh-server) |popcon.php?package= |openssh-server.html) | |segura | | |openssh-server) | | | | |-----------------------+-----------------------+----------------------------+---------------------+----------| |ssh-askpass-fullscreen | | | |pede ao | |(http:// |V:0, I:2 (http:// |24 (http:// | |utilizador| |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/s/ |ssh-askpass-fullscreen|uma frase |

|/ |popcon.php?package= |ssh-askpass-fullscreen.html )|(1) |passe para| |ssh-askpass-fullscreen)|ssh-askpass-fullscreen)| | |ssh-add | | | | | |(GNOME2) | |-----------------------+-----------------------+---------------------------+----------------------+----------| | | | | |pede ao | |ssh-askpass (http:// |V:7, I:54 (http:// |156 (http:// | |utilizador| |packages.debian.org/sid|qa.debian.org/ |packages.qa.debian.org/s/ |ssh-askpass(1) |uma frase | |/ssh-askpass) |popcon.php?package= |ssh-askpass.html) | |passe para| | |ssh-askpass) | | |ssh-add (X| | | | | |simples) | +-------------------------------------------------------------------------------------------------------------+ Cuidado Veja Seco4.7.3, Medidas de segurana extra para a Internet se o seu SSH for acessvel a partir da Internet. Dica Por favor use o programa screen(1) para activar a sobrevivncia do processo de shell remota interrupo da ligao (veja Seco9.1, O programa screen). 6.9.1. Bases do SSH Ateno o "/etc/ssh/sshd_not_to_be_run" no pode estar presente se desejar correr o servidor OpenSSH. SSH tem dois protocolos de autenticao. Tabela 6.14. Lista de protocolos e mtodos de autenticao do SSH +---------------------------------------------------------------+ |Protocolo|Mtodo SSH |descrio | |SSH | | | |---------+---------------------------------+-------------------| | | |autenticao de | |SSH-1 |"RSAAuthentication" |utilizador baseada | | | |em chave de | | | |identificao RSA | |---------+---------------------------------+-------------------| | | |autenticao | | | |baseada em | |, , |"RhostsAuthentication" |".rhosts" | | | |(insegura, | | | |desactivada) |

|---------+---------------------------------+-------------------| | | |autenticao de | | | |mquina baseada em | |, , |"RhostsRSAAuthentication" |".rhosts" combinada| | | |com chave de | | | |mquina RSA | | | |(desactivada) | |---------+---------------------------------+-------------------| | | |autenticao | |, , |"ChallengeResponseAuthentication"|challenge-response | | | |RSA | |---------+---------------------------------+-------------------| | | |autenticao | |, , |"PasswordAuthentication" |baseada em | | | |palavra-passe | |---------+---------------------------------+-------------------| | | |autenticao do | |SSH-2 |"PubkeyAuthentication" |utilizador baseada | | | |em chave pblica | |---------+---------------------------------+-------------------| | | |autenticao de | | | |mquina baseada em | | | |"~/.rhosts" ou "/ | | | |etc/hosts.equiv" | |, , |"HostbasedAuthentication" |combinada com chave| | | |pblica de | | | |autenticao da | | | |mquina cliente | | | |(desactivada) | |---------+---------------------------------+-------------------| |, , |"ChallengeResponseAuthentication"|autenticao | | | |challenge-response | |---------+---------------------------------+-------------------| | | |autenticao | |, , |"PasswordAuthentication" |baseada em | | | |palavra-passe | +---------------------------------------------------------------+ Cuidado Tenha cuidado com estas diferenas se voc no estiver a usar um sistema Debian. Veja "/usr/share/doc/ssh/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), e ssh-keygen(1) para detalhes. Os ficheiros de configurao chave so os seguintes. Tabela 6.15. Lista de ficheiros de configurao do SSH +---------------------------------------------------------------+ |ficheiro de |descrio do ficheiro de configurao | |configurao | | |---------------+-----------------------------------------------| |/etc/ssh/ |Predefinies do cliente SSH, veja ssh_config | |ssh_config |(5) | |---------------+-----------------------------------------------| |/etc/ssh/ |Predefinies do servidor SSH, veja sshd_config| |sshd_config |(5) |

|---------------+-----------------------------------------------| |~/.ssh/ |chaves SSH pblicas predefinidas que os | |authorized_keys|clientes usam para ligar a esta conta neste | | |servidor SSH | |---------------+-----------------------------------------------| |~/.ssh/identity|chave SSH-1 RSA secreta do utilizador | |---------------+-----------------------------------------------| |~/.ssh/id_rsa |chave SSH-2 RSA secreta do utilizador | |---------------+-----------------------------------------------| |~/.ssh/id_dsa |chave SSH-2 DSA secreta do utilizador | +---------------------------------------------------------------+ Dica Veja ssh-keygen(1), ssh-add(1) e ssh-agent(1) para como usar chaves SSH secretas e pblicas. Dica Certifique-se de verificar as configuraes ao testar a ligao. Em caso de problemas, use "ssh -v". Dica Voc pode mudar a frase-passe para encriptar chaves SSH secretas locais mais tarde com "ssh-keygen -p". Dica Voc pode adicionar opes s entradas em "~/.ssh/ authorized_keys" para limitar mquinas e correr comandos especficos. Veja sshd(8) para mais detalhes. O seguinte inicia uma ligao ssh(1) a partir de um cliente. Tabela 6.16. Lista de exemplos de arranque do cliente SSH +---------------------------------------------------------------+ |comando |descrio | |---------------------------------------+-----------------------| |ssh |ligar com modo | |[email protected]|predefinido | |---------------------------------------+-----------------------| |ssh -v |ligar com modo | |[email protected]|predefinido com | | |mensagens de depurao | |---------------------------------------+-----------------------| |ssh -1 |fora a ligao com SSH| |[email protected]|verso 1 | |---------------------------------------+-----------------------| |ssh -1 -o RSAAuthentication=no -l |fora o uso de | |nome_utilizador mquina.domnio.externo|palavra-passe com SSH | | |verso 1 | |---------------------------------------+-----------------------| |ssh -o PreferredAuthentications= |fora o uso de | |password -l nome_utilizador |palavra-passe com SSH | |mquina.domnio.externo |verso 2 | +---------------------------------------------------------------+

Se voc usar o mesmo nome de utilizador nas mquinas local e remota, pode eliminar a escrita de "username@". Mesmo que voc use um nome de utilizador diferente nas mquinas local e remota, pode elimin-lo usando "~/.ssh/config". Para o servio Debian Alioth (http://alioth.debian.org/) com nome de conta "foo-guest", voc regula o "~/.ssh/config" para conter o seguinte. Host alioth.debian.org svn.debian.org git.debian.org User foo-guest Para o utilizador, as funes do ssh(1) so uma telnet(1) mais inteligente e segura. Ao contrrio do comando telnet, o comando ssh no bombeia no caractere de escape do telnet (predefinio inicial CTRL-]). 6.9.2. Reencaminhamento de portos para SMTP/POP3 em tnel Para estabelecer um pipe para ligao ao remoto a partir do porto 4025 da mquina 110 do servidor remoto a partir do porto atravs de ssh, execute na mquina local porto 25 do servidor local, e para o porto 4110 da mquina local como se segue.

# ssh -q -L 4025:remote-server:25 4110:remote-server:110 username@remote-server Este um modo seguro de fazer ligaes a servidores SMTP/POP3 pela Internet. Configure a entrada "AllowTcpForwarding" para "yes" em "/etc/ssh/sshd_config" na mquina remota. 6.9.3. Ligar sem palavras-passe remotas Pode-se evitar ter que se lembrar as palavras passe para sistemas remotos ao usar "RSAAuthentication" (protocolo SSH-1) ou "PubkeyAuthentication" (protocolo SSH-2). No sistema remoto, configure as respectivas entradas, "RSAAuthentication yes" ou "PubkeyAuthentication yes", em "/etc/ ssh/sshd_config". Crie chaves de autenticao localmente e instale a chave pblica no sistema remoto como o seguinte. * "RSAAuthentication": chave RSA para SSH-1 (descontinuado porque foi substitudo.)

$ ssh-keygen $ cat .ssh/identity.pub | ssh utilizador1@remoto "cat - >>.ssh/authorized_ke ys" * "PubkeyAuthentication": chave RSA para SSH-2

$ ssh-keygen -t rsa $ cat .ssh/id_rsa.pub | ssh utilizador1@remoto "cat - >>.ssh/authorized_keys " * "PubkeyAuthentication": chave DSA para SSH-2 (descontinuado porque lento.)

$ ssh-keygen -t dsa $ cat .ssh/id_dsa.pub | ssh utilizador1@remoto "cat - >>.ssh/authorized_keys

" Dica O uso de chave DSA para SSH-2 est descontinuado porque a chave pequena e lento. No existem mais razes para se contornar a patente RSA usando DSA porque j expirou. DSA significa Digital Signature Algorithm (http://en.wikipedia.org/wiki/ Digital_Signature_Algorithm) e lento. Veja tambm DSA-1571-1 (http://www.debian.org/security/2008/dsa-1571) . Nota Para que "HostbasedAuthentication" funcione em SSH-2, voc tem de ajustar as definies de "HostbasedAuthentication" para "yes" em ambos "/etc/ssh/sshd_config" na mquina servidor e "/etc/ssh/ ssh_config" ou "~/.ssh/config" na mquina cliente. 6.9.4. Lidar com clientes SSH aliengenas Existem alguns clientes SSH (http://en.wikipedia.org/wiki/ Secure_Shell) livres disponveis para outras plataformas. Tabela 6.17. Lista de clientes SSH para outras plataformas +---------------------------------------------------------------+ |ambiente |programa de SSH livre | |---------+-----------------------------------------------------| | |puTTY (http://www.chiark.greenend.org.uk/~sgtatham/ | |Windows |putty/ (http://www.chiark.greenend.org.uk/~sgtatham/ | | |putty/) ) (GPL) | |---------+-----------------------------------------------------| |Windows |SSH em cygwin (http://www.cygwin.com/ (http:// | |(cygwin) |www.cygwin.com/) ) (GPL) | |---------+-----------------------------------------------------| |Macintosh|macSSH (http://www.macssh.com/ (http://www.macssh.com| |Clssico |/) ) (GPL) | |---------+-----------------------------------------------------| |Mac OS X |OpenSSH; use ssh na aplicao de Terminal (GPL) | +---------------------------------------------------------------+ 6.9.5. Configurar o ssh-agent mais seguro proteger as suas chaves secretas de autenticao SSH com uma frase-passe. Se nenhuma frase-passe foi definida, use "ssh-keygen -p" para a definir. Coloque a sua chave SSH pblica (ex. "~/.ssh/id_rsa.pub") em "~ /.ssh/authorized_keys" numa mquina remota usando uma ligao mquina remota baseada em palavra-passe como descrito em cima. $ ssh-agent bash $ ssh-add ~/.ssh/id_rsa Insira frase-passe para /home/<nome_de_utilizador>/.ssh/id_rsa: Identidade adicionada: /home/<nome_de_utilizador>/.ssh/id_rsa (/home/<nome_d e_utilizador>/.ssh/id_rsa) Nenhuma palavra-passe necessria desde aqui at ao prximo comando.

$ scp foo <nome_utilizador>@mquina.remota:foo Carregue em ^D (CTRL-D) para terminar a sesso do ssh-agent. Para o servidor X, o script de arranque normal de Debian executa o ssh-agent como o processo pai. Portanto voc apenas precisa de executar o ssh-add uma vez. Para mais, leia ssh-agent(1) e ssh-add(1). 6.9.6. Como desligar o sistema remoto em SSH Voc precisa de proteger o processo ao fazer "shutdown -h now" (veja Seco1.1.8, Como desligar o sistema) a partir da terminao do SSH usando o comando at(1) (veja Seco9.5.13, Agendar tarefas uma vez) com o seguinte. # echo "shutdown -h now" | at now Correr "shutdown -h now" numa sesso do screen(1) (veja Seco9.1, O programa screen) outro modo de fazer o mesmo. 6.9.7. Depurar problemas no SSH Se estiver com problemas, verifique as permisses dos ficheiros de configurao e corra o ssh com a opo "-v". Use a opo "-P" se voc for o root e esteja a ter problemas com a firewall; isto evita o uso dos portos de servidor 1 -- 1023. Se as ligaes ssh a um site remoto subitamente deixarem de funcionar, pode ser o resultado de reparaes pelo administrador do sistema, mais provvel uma alterao na "chave_da_mquina" durante a manuteno do sistema. Aps certificar-se que este o caso e ningum est a tentar falsificar a mquina remota com algum hack inteligente, pode-se recuperar a ligao ao remover a entrada "host_key" de "~/.ssh/known_hosts" na mquina local. 6.10. Outras aplicaes de servidor de rede Aqui esto outras aplicaes de servidor de rede Tabela 6.18. Lista de outras aplicaes de servidor de rede +----------------------------------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |protoco lo |descrio | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |telnetd (http:// |V:2, I:7 (http:// |156 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/t/|TELNET (http://en.wikipedia.org/wiki|Servidor TELNET | |sid/telnetd) |popcon.php?package= |telnetd.html) |/TELNET ) | | | |telnetd) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------|

|telnetd-ssl (http://|V:0, I:1 (http:// |220 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/t/|, , |. . (suporte a SSL) | |sid/telnetd-ssl) |popcon.php?package= |telnetd-ssl.html) | | | | |telnetd-ssl) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |nfs-kernel-server |V:99, I:189 (http://| | | | |(http:// |qa.debian.org/ |500 (http:// |NFS (ht tp://en.wikipedia.org/wiki/ | | |packages.debian.org/|popcon.php?package= |packages.qa.debian.org/n/|Network _File_System_(protocol)) |Partilha de ficheiros do Unix | |sid/ |nfs-kernel-server) |nfs-kernel-server.html) | | | |nfs-kernel-server) | | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |samba (http:// |V:160, I:270 (http:/|23184 (http:// | | | |packages.debian.org/|/qa.debian.org/ |packages.qa.debian.org/s/|SMB (ht tp://en.wikipedia.org/wiki/ |Partilha de ficheiros e impressoras do| |sid/samba) |popcon.php?package= |samba.html) |Server_ Message_Block) |Windows | | |samba) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |netatalk (http:// |V:14, I:31 (http:// |3763 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/n/|ATP (ht tp://en.wikipedia.org/wiki/ |Partilha de ficheiros e impressoras do| |sid/netatalk) |popcon.php?package= |netatalk.html) |AppleTa lk) |Apple/Mac (AppleTalk) | | |netatalk) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |proftpd-basic (http:|V:53, I:63 (http:// |4171 (http:// | | | |// |qa.debian.org/ |packages.qa.debian.org/p/|FTP (ht tp://en.wikipedia.org/wiki/ |Download de ficheiros geral | |packages.debian.org/|popcon.php?package= |proftpd-basic.html) |File_Tr ansfer_Protocol) | | |sid/proftpd-basic) |proftpd-basic) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |apache2-mpm-prefork |V:344, I:384 (http:/| | | | |(http:// |/qa.debian.org/ |55 (http:// |HTTP (h ttp://en.wikipedia.org/wiki/ | | |packages.debian.org/|popcon.php?package= |packages.qa.debian.org/a/|Hyperte xt_Transfer_Protocol) |Servidor web geral | |sid/ |apache2-mpm-prefork)|apache2-mpm-prefork.html)| | |

| | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |apache2-mpm-worker |V:63, I:75 (http:// | | | | |(http:// |qa.debian.org/ |55 (http:// | | | |packages.debian.org/|popcon.php?package= |packages.qa.debian.org/a/|, , |, , | |sid/ |apache2-mpm-worker) |apache2-mpm-worker.html) | | | |apache2-mpm-worker) | | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |squid (http:// |V:41, I:48 (http:// |1869 (http:// | |servidor proxy (http:// | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/s/|, , |en.wikipedia.org/wiki/Proxy_server) | |sid/squid) |popcon.php?package= |squid.html) | |web geral | | |squid) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |squid3 (http:// |V:16, I:19 (http:// |4015 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/s/|, , |, , | |sid/squid3) |popcon.php?package= |squid3.html) | | | | |squid3) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |slpd (http:// |V:0, I:1 (http:// |183 (http:// | |Servidor OpenSLP (http:// | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/s/|SLP (ht tp://en.wikipedia.org/wiki/ |www.openslp.org/) como servidor LDAP | |sid/slpd) |popcon.php?package= |slpd.html) |Service _Location_Protocol) |(http://en.wikipedia.org/wiki/ | | |slpd) | | |Lightweight_Directory_Access_Protocol)| |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |bind9 (http:// |V:79, I:150 (http://|940 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/b/|DNS (ht tp://en.wikipedia.org/wiki/ |Endereo IP para outras mquinas | |sid/bind9) |popcon.php?package= |bind9.html) |Domain_ Name_System) | | | |bind9) | | | | |--------------------+--------------------+-------------------------+-----------------------------------+--------------------------------------| |isc-dhcp-server |V:33, I:64 (http:// |2034 (http:// | | | |(http:// |qa.debian.org/ |packages.qa.debian.org/i/|DHCP (h ttp://en.wikipedia.org/wiki/ |Endereo IP do prprio cliente |

|apache2-mpm-prefork)|

|packages.debian.org/|popcon.php?package= |isc-dhcp-server.html) |Dynamic _Host_Configuration_Protocol)| | |sid/isc-dhcp-server)|isc-dhcp-server) | | | | +----------------------------------------------------------------------------------------------------------------------------------------------+ Common Internet File System Protocol (CIFS) o mesmo protocolo que Server Message Block (SMB) (http://en.wikipedia.org/wiki/ Server_Message_Block) e bastante usado pelo Microsoft Windows. Dica Veja Seco4.5.2, O moderno sistema de gesto centralizado para integrao de sistemas servidor. Dica A resoluo do nome de mquinas normalmente disponibilizada pelo servidor de DNS (http://en.wikipedia.org/wiki/ Domain_Name_System) . Para o endereo IP atribuido dinmicamente mquina por DHCP (http://en.wikipedia.org/wiki/ Dynamic_Host_Configuration_Protocol) , pode ser definido DNS Dinmico (http://en.wikipedia.org/wiki/Dynamic_DNS) para a resoluo do nome de mquina utilizando o bind9 e o isc-dhcp-server conforme descrito na pgina DDNS no wiki Debian (http://wiki.debian.org/DDNS) . Dica O uso de servidor proxy como o squid muito mais eficiente para poupar largura de banda que o uso de servidor mirror local com o contedo completo do arquivo Debian. 6.11. Outros clientes de aplicao de rede Aqui esto outros clientes de aplicao de rede. Tabela 6.19. Lista de clientes de aplicao de rede +------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |protocolo |descrio | |-------------------+----------------+----------------------+-------------------------------------+----------------| |netcat (http:// |I:116 (http:// |32 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|TCP/IP (http:// en.wikipedia.org/wiki/ |Canivete suo | |/sid/netcat) |popcon.php? |/n/netcat.html) |TCP/IP) |do TCP/IP | | |package=netcat) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:759, I:970 | | |Binrio Secure | |openssl (http:// |(http:// |1080 (http:// |

|Socket Layer | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|SSL (http://en. wikipedia.org/wiki/ |(SSL) e | |/sid/openssl) |popcon.php? |/o/openssl.html) |Transport_Layer _Security) |ferramentas | | |package=openssl)| | |criptogrficas | | | | | |relacionadas | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:5, I:25 (http:| | | | |stunnel4 (http:// |//qa.debian.org/|461 (http:// | |Wrapper SSL | |packages.debian.org|popcon.php? |packages.qa.debian.org|, , |universal | |/sid/stunnel4) |package= |/s/stunnel4.html) | | | | |stunnel4) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:118, I:908 | | | | |telnet (http:// |(http:// |200 (http:// |TELNET (http:// en.wikipedia.org/wiki/ | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|TELNET) |Cliente TELNET | |/sid/telnet) |popcon.php? |/t/telnet.html) | | | | |package=telnet) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:2, I:13 (http:| | | | |telnet-ssl (http://|//qa.debian.org/|260 (http:// | |. . (suporte a | |packages.debian.org|popcon.php? |packages.qa.debian.org|, , |SSL) | |/sid/telnet-ssl) |package= |/t/telnet-ssl.html) | | | | |telnet-ssl) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:483, I:827 | | | | |nfs-common (http://|(http:// |699 (http:// | |Partilha de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|NFS (http://en. wikipedia.org/wiki/ |ficheiros do | |/sid/nfs-common) |popcon.php? |/n/nfs-common.html) |Network_File_Sy stem_(protocol)) |Unix | | |package= | | | | | |nfs-common) | | | | |-------------------+----------------+----------------------+---------------

-----------------------+----------------| | |V:64, I:413 | | |Cliente de | |smbclient (http:// |(http:// |41900 (http:// | |partilha de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|SMB (http://en. wikipedia.org/wiki/ |ficheiros e | |/sid/smbclient) |popcon.php? |/s/smbclient.html) |Server_Message_ Block) |impressoras do | | |package= | | |MS Windows | | |smbclient) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:47, I:189 | | |Comandos de | |cifs-utils (http://|(http:// |207 (http:// | |montar e | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |desmontar para | |/sid/cifs-utils) |popcon.php? |/c/cifs-utils.html) | |ficheiros | | |package= | | |remotos do MS | | |cifs-utils) | | |Windows | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:79, I:866 | | | | |ftp (http:// |(http:// |148 (http:// |FTP (http://en. wikipedia.org/wiki/ | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|File_Transfer_P rotocol) |Cliente FTP | |/sid/ftp) |popcon.php? |/f/ftp.html) | | | | |package=ftp) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:11, I:54 | | | | |lftp (http:// |(http:// |1724 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |, , | |/sid/lftp) |popcon.php? |/l/lftp.html) | | | | |package=lftp) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:10, I:54 | | | | |ncftp (http:// |(http:// |1233 (http:// | |Cliente FTP de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |cran completo | |/sid/ncftp) |popcon.php? |/n/ncftp.html) |

| |package=ncftp) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:294, I:998 | |HTTP (http://en .wikipedia.org/wiki/ | | |wget (http:// |(http:// |2331 (http:// |Hypertext_Trans fer_Protocol) e FTP |downloader de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|(http://en.wiki pedia.org/wiki/ |web | |/sid/wget) |popcon.php? |/w/wget.html) |File_Transfer_P rotocol) | | | |package=wget) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:85, I:303 | | | | |curl (http:// |(http:// |374 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |, , | |/sid/curl) |popcon.php? |/c/curl.html) | | | | |package=curl) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| |axel (http:// |V:1, I:7 (http:/|212 (http:// | | | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|, , |acelearador de | |/sid/axel) |popcon.php? |/a/axel.html) | |downloads | | |package=axel) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | | | | |acelerador de | | | | | |downloads com | | | | | |spiorte de | | | | | |BitTorrent | | |V:1, I:8 (http:/| | |(http:// | |aria2 (http:// |/qa.debian.org/ |4026 (http:// | |en.wikipedia.org| |packages.debian.org|popcon.php? |packages.qa.debian.org|, , |/wiki/ | |/sid/aria2) |package=aria2) |/a/aria2.html) | |BitTorrent_ | | | | | |(protocol)) e | | | | | |Metalink (http:/| | | | | |

|/ | | | | |en.wikipedia.org| | | | | |/wiki/Metalink) | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:434, I:942 | | | | |bind9-host (http://|(http:// |175 (http:// | |host(1) do | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|DNS (http://en. wikipedia.org/wiki/ |bind9, | |/sid/bind9-host) |popcon.php? |/b/bind9-host.html) |Domain_Name_Sys tem) |"Prioridade: | | |package= | | |standard" | | |bind9-host) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:116, I:921 | | | | |dnsutils (http:// |(http:// |374 (http:// | |dig(1) do bind, | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|, , |"Prioridade: | |/sid/dnsutils) |popcon.php? |/d/dnsutils.html) | |standard" | | |package= | | | | | |dnsutils) | | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| |isc-dhcp-client |V:443, I:806 | | | | |(http:// |(http:// |1768 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|DHCP (http://en .wikipedia.org/wiki/ |obter endereo | |/sid/ |popcon.php? |/i/ |Dynamic_Host_Co nfiguration_Protocol) |IP | |isc-dhcp-client) |package= |isc-dhcp-client.html) | | | | |isc-dhcp-client)| | | | |-------------------+----------------+----------------------+-------------------------------------+----------------| | |V:14, I:75 | | | | |ldap-utils (http://|(http:// |695 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|LDAP (http://en .wikipedia.org/wiki/ |obter dados de | |/sid/ldap-utils) |popcon.php? |/l/ldap-utils.html) |Lightweight_Dir ectory_Access_Protocol)|um servidor LDAP| | |package= | | | | | |ldap-utils) | | |

| | +------------------------------------------------------------------------------------------------------------------+ 6.12. Os diagnsticos dos daemons do sistema O programa telnet activa ligao manual aos daemons do sistema e aos seus diagnsticos. Para testar o servio POP3 (http://en.wikipedia.org/wiki/ Post_Office_Protocol) simples, tente o seguinte: $ telnet mail.ispname.net pop3 Para testar o servio POP3 (http://en.wikipedia.org/wiki/ Post_Office_Protocol) com TLS (http://en.wikipedia.org/wiki/ Transport_Layer_Security) /SSL activo de alguns ISPs, voc precisa do cliente telnet com TLS/SSL activo pelos pacotes telnet-ssl or openssl. $ telnet -z ssl pop.gmail.com 995 $ openssl s_client -connect pop.gmail.com:995 Os seguintes RFCs (http://www.ietf.org/rfc.html) disponibilizam o conhecimento necessrio para cada daemon de sistema. Tabela 6.20. Lista de RFCs populares +---------------------------------------------------------------+ |RFC |descrio | |-----------------------------+---------------------------------| |rfc1939 (http:// |servio POP3 (http:// | |tools.ietf.org/html/rfc1939) |en.wikipedia.org/wiki/ | |e rfc2449 (http:// |Post_Office_Protocol) | |tools.ietf.org/html/rfc2449) | | |-----------------------------+---------------------------------| |rfc3501 (http:// |servio IMAP4 (http:// | |tools.ietf.org/html/rfc3501) |en.wikipedia.org/wiki/ | | |Internet_Message_Access_Protocol)| |-----------------------------+---------------------------------| |rfc2821 (http:// |servio SMTP (http:// | |tools.ietf.org/html/rfc2821) |en.wikipedia.org/wiki/ | |(rfc821 (http:// |Simple_Mail_Transfer_Protocol) | |tools.ietf.org/html/rfc821) )| | |-----------------------------+---------------------------------| |rfc2822 (http:// | | |tools.ietf.org/html/rfc2822) |Formato de ficheiro de mail | |(rfc822 (http:// | | |tools.ietf.org/html/rfc822) )| | |-----------------------------+---------------------------------| |rfc2045 (http:// |Multipurpose Internet Mail | |tools.ietf.org/html/rfc2045) |Extensions (MIME) (http:// | | |en.wikipedia.org/wiki/MIME) | |-----------------------------+---------------------------------| |rfc819 (http://tools.ietf.org|servio DNS (http:// | |/html/rfc819) |en.wikipedia.org/wiki/ | | |Domain_Name_System) | |-----------------------------+---------------------------------|

|rfc2616 (http:// |servio HTTP (http:// | |tools.ietf.org/html/rfc2616) |en.wikipedia.org/wiki/ | | |Hypertext_Transfer_Protocol) | |-----------------------------+---------------------------------| |rfc2396 (http:// |definio URI (http:// | |tools.ietf.org/html/rfc2396) |en.wikipedia.org/wiki/ | | |Uniform_Resource_Identifier) | +---------------------------------------------------------------+ A utilizao de portos descrita em "/etc/services". Captulo 7. O Sistema X Window O Sistema X Window (http://en.wikipedia.org/wiki/X_Window_System) no sistema Debian baseado na fonte do X.Org (http://www.x.org/) . At Julho de 2009, eles so X11R7.1(etch), X11R7.3(lenny), X11R7.3(squeeze) e X11R7.4(sid). 7.1. Pacotes chave Existem alguns (meta)pacotes disponibilizados para facilitar a instalao. Tabela 7.1. Lista de (meta)pacotes chave para o X Window +------------------------------------------------------------------------------------------------------+ |(meta)pacote |popcon |tamanho |descrio | |--------------------------+--------------------------+------------------------------+-----------------| | | | |bibliotecas do X,| | | | |um servidor X, um| |xorg (http:// |I:462 (http:// |78 (http:// |conjunto de fonts| |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/x/ |e um grupo de | |xorg) |package=xorg) |xorg.html) |clientes X | | | | |bsicos e | | | | |utilitrios | | | | |(meta-pacote) | |--------------------------+--------------------------+------------------------------+-----------------| |xserver-xorg (http:// |V:181, I:541 (http:// |366 (http:// |conjuntos | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/x/ |completos do | |xserver-xorg) |package=xserver-xorg) |xserver-xorg.html) |servidor X e sua | | | | |configurao | |--------------------------+--------------------------+------------------------------+-----------------|

|xbase-clients (http:// |I:369 (http:// |62 (http:// |coleco variada | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/x/ |de clientes X | |xbase-clients) |package=xbase-clients) |xbase-clients.html) | | |--------------------------+--------------------------+------------------------------+-----------------| |x11-common (http:// |V:449, I:855 (http:// |466 (http:// |infraestrutura do| |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/x/ |sistema de | |x11-common) |package=x11-common) |x11-common.html) |ficheiros para o | | | | |Sistema X Window | |--------------------------+--------------------------+------------------------------+-----------------| |xorg-docs (http:// |I:26 (http://qa.debian.org|2056 (http:// |documentao | |packages.debian.org/sid/ |/popcon.php?package= |packages.qa.debian.or g/x/ |variada para a | |xorg-docs) |xorg-docs) |xorg-docs.html) |suite de software| | | | |X.Org | |--------------------------+--------------------------+------------------------------+-----------------| | | | |gera um menu | |menu (http:// |V:291, I:538 (http:// |1757 (http:// |Debian a partir | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/m/ |de todas as | |menu) |package=menu) |menu.html) |aplicaes com | | | | |item de menu | |--------------------------+--------------------------+------------------------------+-----------------| |gksu (http:// |V:221, I:468 (http:// |207 (http:// |frontend Gtk+ | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/g/ |para o su(1) ou | |gksu) |package=gksu) |gksu.html) |sudo(8) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |converte a | | | | |estrutura do menu| | | | |Debian para a | |menu-xdg (http:// |V:136, I:472 (http:// |76 (http:// |estrutura de menu| |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/m/ |xdg do | |menu-xdg) |package=menu-xdg) |menu-xdg.html) |freedesktop.org |

| |(http:// | |en.wikipedia.org/| | |wiki/ | | |

| | |

| | |

| | |Freedesktop.org) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |utilitrios para | | | | |integrar o | | | | |ambiente de | | | | |trabalho | |xdg-utils (http:// |V:261, I:521 (http:// |300 (http:// |disponibilizado | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/x/ |pelo | |xdg-utils) |package=xdg-utils) |xdg-utils.html) |freedesktop.org | | | | |(http:// | | | | |en.wikipedia.org/| | | | |wiki/ | | | | |Freedesktop.org) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |ambiente de | |gnome-desktop-environment |I:221 (http:// | |trabalho GNOME | |(http:// |qa.debian.org/popcon.php? |43 (http:// |(http:// | |packages.debian.org/sid/ |package= |packages.qa.debian.or g/g/ |en.wikipedia.org/| |gnome-desktop-environment)|gnome-desktop-environment)|gnome-desktop-environ ment.html)|wiki/GNOME) | | | | |standard | | | | |(meta-pacote) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |ncleo do | | | | |ambiente de | |kde-standard (http:// |I:67 (http://qa.debian.org|35 (http:// |trabalho KDE | |packages.debian.org/sid/ |/popcon.php?package= |packages.qa.debian.or g/k/ |(http:// | |kde-standard) |kde-standard) |kde-standard.html) |en.wikipedia.org/|

| |wiki/KDE) | |

| | |(metapacote) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |Xfce (http:// | |xfce4 (http:// | |40 (http:// |en.wikipedia.org/| |packages.debian.org/sid/ |I:82 (http://qa.debian.org|packages.qa.debian.or g/x/ |wiki/Xfce) | |xfce4) |/popcon.php?package=xfce4)|xfce4.html) |ambiente de | | | | |trabalho leve | | | | |(meta-pacote) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |LXDE (http:// | |lxde-core (http:// |I:32 (http://qa.debian.org|26 (http:// |en.wikipedia.org/| |packages.debian.org/sid/ |/popcon.php?package= |packages.qa.debian.or g/l/ |wiki/LXDE) | |lxde-core) |lxde-core) |lxde-core.html) |ambiente de | | | | |trabalho leve | | | | |(meta-pacote) | |--------------------------+--------------------------+------------------------------+-----------------| | | | |Fluxbox (http:// | | | | |en.wikipedia.org/| | | | |wiki/Fluxbox) : | | | | |pacote para um | |fluxbox (http:// |V:7, I:25 (http:// |4330 (http:// |gestor de janelas| |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/f/ |X (http:// | |fluxbox) |package=fluxbox) |fluxbox.html) |en.wikipedia.org/| | | | |wiki/ | | | | |X_window_manager)| | | | |altamente | | | | |configurvel e de| | | | |baixos recursos. | +------------------------------------------------------------------------------------------------------+

Para as bases do X, veja X(7), o manual do utilizador LDP XWindow (http://www.tldp.org/HOWTO/XWindow-User-HOWTO.html) . 7.2. Definir o ambiente de trabalho Um ambiente de trabalho (http://en.wikipedia.org/wiki/ Desktop_environment) geralmente uma combinao de um gestor de janelas X (http://en.wikipedia.org/wiki/X_window_manager) , um gestor de ficheiros e um conjunto de programas utilitrios compatveis. Voc pode configurar um ambiente de trabalho (http:// en.wikipedia.org/wiki/Desktop_environment) completo como o GNOME (http://en.wikipedia.org/wiki/GNOME) , KDE (http:// en.wikipedia.org/wiki/KDE) , Xfce (http://en.wikipedia.org/wiki/ Xfce) , ou LXDE (http://en.wikipedia.org/wiki/LXDE) , a partir do aptitude sob o menu de tarefas. Dica O menu de tarefas pode estar fora de sincronismo com o estado de transio de pacotes mais recente sob os ambientes Debian unstable/testing. Em tal situao, voc precisa de des-seleccionar alguns (meta)pacotes listados sob o menu tarefas do aptitude(8) para evitar conflitos de pacotes. Quando des-seleccionar (meta)pacotes, voc tem de seleccionar manualmente certos pacotes que disponibilizam as suas dependncias para evitar que eles sejam apagados automaticamente. Alternativamente voc pode configurar um ambiente simples manualmente apenas com um gestor de janelas X (http:// en.wikipedia.org/wiki/X_window_manager) como o Fluxbox (http:// en.wikipedia.org/wiki/Fluxbox) . Veja Window Managers for X (http://www.xwinman.org) para o guia do gestor do X window e do ambiente de trabalho. 7.2.1. Menu Debian O sistema de menu Debian (http://www.debian.org/doc/ packaging-manuals/menu.html/) disponibiliza uma interface geral para ambos programas orientados a texto e X com o update-menus(1) do pacote menu. Cada pacote instala os seus dados de menu no directrio "/usr/share/menu/". Veja "/usr/share/menu/README". 7.2.2. Menu Freedesktop.org Cada pacote que compatvel com o sistema de menu do Freedesktop.org instala os seus dados de menu disponibilizados por "*.desktop" sob "/usr/share/applications/". Os ambientes de trabalho modernos que so compatveis com o standard Freedesktop.org usam estes dados para gerar o seu menu usando o pacote xdg-utils. Veja "/usr/share/doc/xdg-utils/README". 7.2.3. Menu Debian sob o ambiente de trabalho GNOME De modo a obter acesso ao menu Debian tradicional sob o ambiente GNOME, voc tem de instalar o pacote menu-xdg, clique em

"Sistema" "Preferncias" "Menu Principal", e active a opo "Debian". Dica Voc pode precisar de fazer semelhante para outros ambientes de desktop modernos que so compatveis com o standard Freedesktop.org. 7.3. A relao servidor/cliente O X Window System activado como uma combinao de programas servidor e cliente. Aqui o significado das palavras servidor e cliente com respeito s palavras local e remoto requer ateno. Tabela 7.2. Lista de terminologia de servidor/cliente +---------------------------------------------------------------+ |tipo |descrio | |----------+----------------------------------------------------| |Servidor X|um programa que corre numa mquina local ligado ao | | |mostrador e dispositivos de entrada do utilizador. | |----------+----------------------------------------------------| |cliente X |um programa que corre numa mquina remota que | | |processa dados e fala com o servidor X. | |----------+----------------------------------------------------| |aplicao |um programa que corre numa mquina remota que | |servidor |processa dados e fala com os clientes. | |----------+----------------------------------------------------| |aplicao |um programa que corre numa mquina local ligado ao | |cliente |mostrador e dispositivos de entrada do utilizador. | +---------------------------------------------------------------+ 7.4. O servidor X Veja xorg(1) para informao do servidor X. 7.4.1. A (re)configurao do servidor X Nota o servidor X (ps-lenny) est rescrito para usar mais informao dos servios do SO normalizados como o HAL (http:// en.wikipedia.org/wiki/HAL_(software)) e D-bus (http:// en.wikipedia.org/wiki/D-Bus) para a sua configurao do que do "/ etc/X11/xorg.conf". Portanto os contedos em "/etc/X11/xorg.conf" so cada vez menores. Voc pode precisar de contornar problemas de transio do servidor X (http://wiki.debian.org/XStrikeForce/ InputHotplugGuide) . O seguinte (re)configura um servidor X ao gerar um novo ficheiro "/etc/X11/xorg.conf" usando o dexconf(1). # dpkg-reconfigure --priority=low x11-common # dpkg-reconfigure --priority=low xserver-xorg Se editou manualmente este ficheiro "/etc/X11/xorg.conf" mas deseja que ele seja actualizado automaticamente outra vez, corra o seguinte comando.

# sudo dpkg-reconfigure -phigh xserver-xorg por favor verifique cuidadosamente a sua configurao do X com respeito ao seu monitor. Para os monitores CRT de alta resoluo, boa ideia regular a taxa de refrescamento para o mais alto que o monitor suporte (85 Hz muito bom, 75 Hz bom) para reduzir a cintilao. Para o monitor de LCD, a taxa de refrescamento standard mais lenta (60Hz) geralmente boa devido sua resposta lenta. Nota Tenha cuidado para no usar uma taxa de refrescamento muito alta que possa causar falha fatal do hardware do seu monitor. 7.4.2. Os mtodos de ligao do servidor X Existem vrias maneiras de fazer um "servidor X" (lado do monitor ) aceitar ligaes de um "cliente X" (lado da aplicao). Tabela 7.3. Lista de mtodos de ligao ao servidor X +-------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |utilizador|encri ptao|mtodo |uso | | | | | | | |pertinente| |-------------------+---------------+----------------------+----------+----------+-----------+----------| |xbase-clients |I:369 (http:// | | | | | | |(http:// |qa.debian.org/ |62 (http:// |no | |comando | | |packages.debian.org|popcon.php? |packages.qa.debian.org|verificado|no |xhost |obsoleto | |/sid/xbase-clients)|package= |/x/xbase-clients.html)| | | | | | |xbase-clients) | | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| |xbase-clients |I:369 (http:// | | | | | | |(http:// |qa.debian.org/ |62 (http:// | | |comando |ligao | |packages.debian.org|popcon.php? |packages.qa.debian.org|verificado|no |xauth |local via | |/sid/xbase-clients)|package= |/x/xbase-clients.html)| | | |pipe | | |xbase-clients) | | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| |openssh-client |V:564, I:995 | | | | | | |(http:// |(http:// |2276 (http:// | | | |ligao de| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|verificado|sim

|comando ssh|rede | |/sid/ |popcon.php? |/o/ | | |-X |remota | |openssh-client) |package= |openssh-client.html) | | | | | | |openssh-client)| | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| | |V:228, I:315 | | | | | | |gdm3 (http:// |(http:// |5899 (http:// | | |gestor de |ligao | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|verificado|no(XDMCP) |display do |local via | |/sid/gdm3) |popcon.php? |/g/gdm3.html) | | |GNOME |pipe | | |package=gdm3) | | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| | |V:70, I:96 | | | | | | |kdm (http:// |(http:// |4046 (http:// | | |gestor de |ligao | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|verificado|no(XD MCP) |display do |local via | |/sid/kdm) |popcon.php? |/k/kdm.html) | | |KDE |pipe | | |package=kdm) | | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| | |V:6, I:18 | | | | | | |xdm (http:// |(http:// |725 (http:// | | |gestor de |ligao | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|verificado|no(XD MCP) |display do |local via | |/sid/xdm) |popcon.php? |/x/xdm.html) | | |X |pipe | | |package=xdm) | | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| | |V:283, I:869 | | | | | | |wdm (http:// |(http:// |2082 (http:// | | |gestor de |ligao | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|verificado|no(XD MCP) |display do |local via | |/sid/wdm) |popcon.php? |/w/wdm.html) | | |WindowMaker|pipe | | |package=wdm) | | | | | | |-------------------+---------------+----------------------+----------+----------+-----------+----------| | |V:0, I:1 (http:| | | | |ligao de| |ldm (http:// |//qa.debian.org|592 (http:// | |

|gestor de |rede SSH | |packages.debian.org|/popcon.php? |packages.qa.debian.org|verificado|sim |display do |remota | |/sid/ldm) |package=ldm) |/l/ldm.html) | | |LTSP |(cliente | | | | | | | |tnue) | +-------------------------------------------------------------------------------------------------------+ Ateno No use ligao TCP (http://en.wikipedia.org/wiki/ Transmission_Control_Protocol) /IP (http://en.wikipedia.org/wiki/ Internet_Protocol) remota sobre redes inseguras para ligao X a menos que tenha uma boa razo como o uso de encriptao. Uma ligao socket TCP/IP remota sem encriptao inclinada a ataques de escuta e est desactivada por predefinio no sistema Debian. Use "ssh -X". Ateno Tambm no use ligao XDMCP (http://en.wikipedia.org/wiki/ X_display_manager) sobre rede insegura. Envia os dados via UDP (http://en.wikipedia.org/wiki/User_Datagram_Protocol) /IP (http:/ /en.wikipedia.org/wiki/Internet_Protocol) sem encriptao e inclinado a ataques de escuta. Dica LTSP significa Linux Terminal Server Project (http:// en.wikipedia.org/wiki/Linux_Terminal_Server_Project) . 7.5. Iniciando o X Window System O X Window System geralmente iniciado como uma sesso X (http:/ /en.wikipedia.org/wiki/X_session_manager) a qual a combinao de um servidor X e clientes X ligados. Para o sistema de ambiente de trabalho normal, ambos so executados numa estao de trabalho. A sesso X (http://en.wikipedia.org/wiki/X_session_manager) iniciada com o seguinte. * comando startx iniciado a partir da linha de comandos * Um dos programas daemon de gestor de ecr X (http:// en.wikipedia.org/wiki/X_display_manager) *dm arrancado a partir do fim do script de arranque no directrio "/etc/rc?.d /" ("?" correspondendo ao runlevel) Dica O script de arranque para os daemons de gesto de ecr verifica o contedo do ficheiro "/etc/X11/default-display-manager" mesmo antes de executar os prprios. Isto assegura que se tem apenas um programa daemon de gestor de ecr X (http://en.wikipedia.org/wiki /X_display_manager) activado.

Dica Veja Seco8.3.5, O locale especfico apenas sob X Window para as variveis de ambiente iniciais do gestor de cran X. Essencialmente, todos estes programas executam o script "/etc/X11 /Xsession". Ento o script "/etc/X11/Xsession" executa run-parts (8) como aco para executar os scripts no directrio "/etc/X11/ Xsession.d/". Isto essencialmente uma execuo de um primeiro programa o qual encontrado na seguinte ordem com o comando embutido exec. 1. O script especificado como o argumento de /etc/X11/Xsession" pelo gestor de display X, se estiver definido. 2. O script "~/.xsession" ou "~/.Xsession", se estiver definido. 3. O comando "/usr/bin/x-session-manager", se estiver definido. 4. O comando "/usr/bin/x-window-manager". se estiver definido. 5. O comando "/usr/bin/x-terminal-emulator", se estiver definido. Este processo afectado pelo contedo de "/etc/X11/ Xsession.options". Os programas exactos para os quais estes comandos "/usr/bin/x-*" apontam so determinados pelo sistema de alternativas Debian e modificados pelo "update-alternatives --config x-session-manager", etc. 7.5.1. Iniciar uma sesso X com o gdm3 O gdm3(1) permite-lhe seleccionar o tipo de sesso (ou ambiente de trabalho: Seco7.2, Definir o ambiente de trabalho), e linguagem (ou locale: Seco8.3, O locale) da sesso X a partir do seu menu. Mantm o valor predefinido seleccionado em "~ /.dmrc" como se segue. [Desktop] Session=default Language=pt_PT.UTF-8 7.5.2. Personalizar a sesso X (mtodo clssico) Num sistema onde "/etc/X11/Xsession.options" contm uma linha "allow-user-xsession" sem o caractere "#" a preceder, qualquer utilizador que defina "~/.xsession" ou "~/.Xsession" capaz de personalizar a aco de "/etc/X11/Xsession" ao sobrepor completamente o cdigo do sistema. O ltimo comando no ficheiro "~/.xsession" deve usar a forma de "exec some-window/ session-manager" para iniciar os seus gestores de X window/sesso favoritos. 7.5.3. Personalizar a sesso X (mtodo novo) Aqui esto alguns mtodos de personalizar a sesso X sem sobrepor completamente o cdigo do sistema como em cima. * O gestor de cran gdm3 pode seleccionar uma sesso especfica e defini-la como o argumento de "/etc/X11/Xsession".

* O ficheiro "~/.xsessionrc" executado como parte do processo de arranque. (independente do ambiente de trabalho) * O ficheiro "~/.gnomerc" executado como parte do processo de arranque. (apenas ambiente GNOME) * O software de gesto de sesso baseado em GUI pode usar o ficheiro "~/.gnome2/session", etc. 7.5.4. Ligar um cliente X remoto via SSH A utilizao de "ssh -X" activa uma ligao segura de um servidor X local a um servidor de aplicaes remoto. Defina as entradas "X11Forwarding" para "yes" em "/etc/ssh/ sshd_config" da mquina remota, se deseja evitar a opo "-X" da linha de comando. Arrancar o servidor X na mquina local. Abrir um xterm na mquina local. Correr o ssh(1) para estabelecer ligao com um site remoto com o seguinte. nome_local @ localhost $ ssh -q -X [email protected]_remota Palavra-passe: Correr um comando de aplicao X, ex. "gimp", no site remoto com o seguinte. nome_de_login @ mquina_remota $ gimp & Este mtodo pode mostrar o resultado de um cliente X remoto como se ele estivesse ligado localmente atravs de um socket de domnio UNIX local. 7.5.5. Terminal X seguro via Internet Terminal X seguro via Internet, o qual mostra um ambiente de trabalho X completo a correr remotamente, pode ser conseguido facilmente usando um pacote especializado como o ldm. A sua mquina local torna-se num cliente magro seguro para um servidor de aplicaes remoto ligado via SSH. 7.6. Fonts (tipos de letra) para o X Window O Fontconfig 2.0 (http://en.wikipedia.org/wiki/Fontconfig) foi criado para disponibilizar uma biblioteca independente da distribuio para configurar e personalizar o acesso a tipos de letra em 2002. Debian aps squeeze usa Fontconfig 2.0 (http:// en.wikipedia.org/wiki/Fontconfig) para a sua configurao de tipos de letra. Os suportes de font no X Window System podem ser resumidos como se segue. * Sistema de suporte a font de tamanho de servidor X Legacy

o O sistema de font do ncleo original do X11 disponibiliza compatibilidade para trs para aplicaes cliente X de verses mais antigas. o As fonts de ncleo original X11 esto instaladas no servidor X. * Sistema de suporte a font de tamanho de cliente X moderno o O sistema X moderno suporta todos os tipos de letra listados em baixo (Seco7.6.1, Fonts (tipos de letra) bsicas, Seco7.6.2, Fonts (tipos de letra) adicionais, e Seco7.6.3, fonts CJK) com funcionalidades avanadas como o anti-aliasing. o O Xft (http://en.wikipedia.org/wiki/Xft) 2.0 liga aplicaes X modernas como as do GNOME (http:// en.wikipedia.org/wiki/GNOME) , KDE (http:// en.wikipedia.org/wiki/KDE) , e LibreOffice (http:// pt.wikipedia.org/wiki/LibreOffice) com a biblioteca FreeType (http://freetype.sourceforge.net/index.html) 2.0. o FreeType (http://freetype.sourceforge.net/index.html) 2.0 disponibiliza uma biblioteca de rasterizao de fonts. o Fontconfig (http://en.wikipedia.org/wiki/Fontconfig) disponibiliza resoluo da especificao de font para Xft (http://en.wikipedia.org/wiki/Xft) 2.0. Veja fonts.conf (5) para a sua configurao. o Todas as aplicaes X modernas que usam Xft (http:// en.wikipedia.org/wiki/Xft) 2.0 podem falar com o servidor X moderno usando a Extenso X Rendering (http:// en.wikipedia.org/wiki/XRender) . o A Extenso X Rendering (http://en.wikipedia.org/wiki/ XRender) move o acesso a tipos de letra e a gerao de imagens de glifos do servidor X para o cliente X. Tabela 7.4. Tabela de pacotes para suportar fonts do sistema X Window +--------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+------------------+-----------------------+-----------------------| |xfonts-utils (http:|V:104, I:736 | | | |// |(http:// |430 (http:// |Programas ut ilitrios de| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|fonts do Sis tema X | |/sid/xfonts-utils) |popcon.php?package|x/xfonts-utils.html) |Window | | |=xfonts-utils) | | | |-------------------+------------------+-----------------------+-----------------------|

| |V:447, I:773 | |Xft, uma bib lioteca que | |libxft2 (http:// |(http:// |137 (http:// |liga aplicaes X com a | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|biblioteca d e | |/sid/libxft2) |popcon.php?package|libx/libxft2.html) |rasterizao de fonts | | |=libxft2) | |FreeType | |-------------------+------------------+-----------------------+-----------------------| |libfreetype6 (http:|V:636, I:963 | |FreeType (ht tp:// | |// |(http:// |835 (http:// |freetype.sou rceforge.net| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|/index.html) bibli oteca | |/sid/libfreetype6) |popcon.php?package|libf/libfreetype6.html)|de rasterizao de fonts| | |=libfreetype6) | |2.0 | |-------------------+------------------+-----------------------+-----------------------| | | | |Fontconfig ( http:// | | |V:458, I:756 | |en.wikipedia .org/wiki/ | |fontconfig (http://|(http:// |432 (http:// |Fontconfig) , uma | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|biblioteca d e | |/sid/fontconfig) |popcon.php?package|f/fontconfig.html) |configurao de fonts | | |=fontconfig) | |genrica -- bi nrios de | | | | |suporte | |-------------------+------------------+-----------------------+-----------------------| | |V:448, I:843 | |Fontconfig ( http:// | |fontconfig-config |(http:// |345 (http:// |en.wikipedia .org/wiki/ | |(http:// |qa.debian.org/ |packages.qa.debian.org/|Fontconfig) , uma | |packages.debian.org|popcon.php?package|f/ |biblioteca d e | |/sid/ |= |fontconfig-config.html)|configurao de fonts | |fontconfig-config) |fontconfig-config)| |genrica -- da dos de | | | | |configurao | +--------------------------------------------------------------------------------------+ Voc pode verificar informao de configurao de fonts pelo seguinte.

* "xset q" para caminho das fonts do ncleo do X11 * "fc-match" para a font predefinida do fontconfig * "fc-list" para fonts disponveis do fontconfig Dica "O Pinguim e o Unicode (http://unifont.org/iuc27/html/ ICUPresentation.html) " uma boa viso geral do X Window System moderno. Outra documentao em http://unifont.org/ (http:// unifont.org/) dever disponibilizar boas informaes sobre tipos de letra Unicode, software capaz de Unicode, internacionalizao, e problemas da utilizao de Unicode em sistemas operativos free/ libre/open source (FLOSS) (http://en.wikipedia.org/wiki/ Free_and_open_source_software) . 7.6.1. Fonts (tipos de letra) bsicas Existem 2 tipos principais de fonts de computador (http:// en.wikipedia.org/wiki/Computer_font) . * Fonts bitmap (boas para rasterizao de baixa resoluo) * Fonts outline/stroke (boas para rasterizao de alta resoluo) Enquanto que o dimensionar de fonts de mapas de bits causa imagem distorcida, o dimensionar de fonts de contorno/curso produz imagem suave. As fontes de mapa de bits no sistema Debian so geralmente disponibilizadas por ficheiros de fonts bitmap pcf do X11 (http:/ /fontforge.sourceforge.net/pcf-format.html) comprimidos com a sua extenso de ficheiro ".pcf.gz". As fonts de contorno no sistema Debian so disponibilizadas pelo seguinte. * Ficheiros de font Type 1 PostScript (http://en.wikipedia.org/ wiki/PostScript) tendo a sua extenso de ficheiro ".pfb" (ficheiro de font binrio) e ".afm" (ficheiro de font mtrica). * Ficheiros font TrueType (http://en.wikipedia.org/wiki/ TrueType) (ou OpenType (http://en.wikipedia.org/wiki/ OpenType) ) geralmente tendo a sua extenso de ficheiro ".ttf". Dica OpenType (http://en.wikipedia.org/wiki/OpenType) destinado a substituir ambas TrueType (http://en.wikipedia.org/wiki/TrueType) e PostScript (http://en.wikipedia.org/wiki/PostScript) Type 1. Tabela 7.5. Tabela de fonts PostScript (http://en.wikipedia.org/wiki/ PostScript) Type 1 correspondentes +---------------------------------------------------------------------------

--------------------------------------------------+ |pacote font |popcon |tamanho |font sans-serif |f ont serif |font monospace |fonte da font | |-------------------+-------------+----------------------+----------------+---------------+----------------+-----------------| | | | |Helvetica (http:|T imes (http:// |Courier (http://| | |PostScript |N/D |N/D |// |e n.wikipedia.org|en.wikipedia.org|Adobe | | | | |en.wikipedia.org|/ wiki/ |/wiki/Courier_ | | | | | |/wiki/Helvetica)|T imes_Roman) |(typeface)) | | |-------------------+-------------+----------------------+----------------+---------------+----------------+-----------------| | |V:197, I:679 | | | | |URW (http:// | | |(http:// | | | | |www.math.utah.edu| |gsfonts (http:// |qa.debian.org|4632 (http:// | |N imbus Roman No9| |/~beebe/fonts/ | |packages.debian.org|/popcon.php? |packages.qa.debian.org|Nimbus Sans L |L |Nimbus Mono L |urw.html) | |/sid/gsfonts) |package= |/g/gsfonts.html) | | | |(tamanho | | |gsfonts) | | | | |compatvel com | | | | | | | |Adobe) | |-------------------+-------------+----------------------+----------------+---------------+----------------+-----------------| | |I:262 (http:/| | | | | | |gsfonts-x11 (http:/|/ |68 (http:// | | | |Suporte a X font | |/ |qa.debian.org|packages.qa.debian.org|Nimbus Sans L |N imbus Roman No9|Nimbus Mono L |com fonts | |packages.debian.org|/popcon.php? |/g/gsfonts-x11.html) | |L | |PostScript Type | |/sid/gsfonts-x11) |package= | | | | |1. | | |gsfonts-x11) | | | | | | |-------------------+-------------+----------------------+----------------+---------------+----------------+-----------------| |t1-cyrillic (http:/|I:22 (http://| | | | |URW extenso | |/ |qa.debian.org|4834 (http:// | | | |(tamanho | |packages.debian.org|/popcon.php? |packages.qa.debian.org|Free Helvetian |F ree Times |Free Courier |compatvel com | |/sid/t1-cyrillic) |package= |/t/t1-cyrillic.html) | | | |Adobe) | | |t1-cyrillic) | | | | | | |-------------------+-------------+----------------------+----------------+---------------+----------------+-----------------| | |V:12, I:168 | | | | |fonts PostScript | |lmodern (http:// |(http:// |32872 (http:// | |

| |e OpenType | |packages.debian.org|qa.debian.org|packages.qa.debian.org|LMSans* |L MRoman* |LMTypewriter* |escalveis | |/sid/lmodern) |/popcon.php? |/l/lmodern.html) | | | |baseadas em | | |package= | | | | |Computer Modern | | |lmodern) | | | | |(do TeX) | +----------------------------------------------------------------------------------------------------------------------------+ Tabela 7.6. Tabela de fonts correspondentes a TrueType (http:// en.wikipedia.org/wiki/TrueType) +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |pacote font |popcon |tamanho |font sans-serif |font serif |font monospace |fonte da font | |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | |Times New Roman |Courier New |Microsoft | |ttf-mscorefonts-installer |V:3, I:109 (http:// |124 (http:// |Arial (http:// |(http:// |(http:// |(tamanho | |(http:// |qa.debian.org/popcon.php? |packages.qa.debian.or g/t/ |en.wikipedia.org|en.wikipedia.org|en.wikipedia.org|compatvel com | |packages.debian.org/sid/ |package= |ttf-mscorefonts-insta ller.html)|/wiki/Arial) |/wiki/ |/wiki/Courier_ |Adobe) (Isto | |ttf-mscorefonts-installer)|ttf-mscorefonts-installer)| | |Times_Roman) |(typeface)) |instala dados | | | | | | | |no-livres) | |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | | | |Liberation Fonts | | | | | | | |project (http:// | |fonts-liberation (http:// |I:204 (http:// |2118 (http:// | | | |en.wikipedia.org/| |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/f/ |Liberation Sans |Liberation Serif|Liberation Mono |wiki/ | |fonts-liberation) |package=fonts-liberation) |fonts-liberation.html ) | | | |Liberation_fonts)| | | | | | | |(tamanho | | | | | | | |compatvel com | | | | | | | |Microsoft) | |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | | | |GNU freefont | | |V:91, I:170 (http:// | | | | |(http:// | |fonts-freefont-ttf (http:/|qa.debian.org/popcon.php? |10720 (http:// | | | |savannah.gnu.org/|

|/packages.debian.org/sid/ |package= |packages.qa.debian.or |FreeSans |FreeSerif |FreeMono |projects/freefont| |fonts-freefont-ttf) |fonts-freefont-ttf) |fonts-freefont-ttf.ht ml) | | | |/) ((tamanho | | | | | | | |compatvel com | | | | | | | |Microsoft) | |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | | | |DejaVu (http:// | | | | | | | |dejavu-fonts.org)| |ttf-dejavu (http:// |I:659 (http:// |56 (http:// | | | |, Bitstream Vera | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/t/ |DejaVu Sans |DejaVu Serif |DejaVu Sans Mono|(http:// | |ttf-dejavu) |package=ttf-dejavu) |ttf-dejavu.html) | | | |www.gnome.org/ | | | | | | | |fonts/) com | | | | | | | |cobertura Unicode| |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | | | |DejaVu (http:// | | | | | | | |dejavu-fonts.org)| | | | | | | |, Bitstream Vera | | | | | | | |(http:// | | | | | | | |www.gnome.org/ | |ttf-dejavu-core (http:// |V:86, I:814 (http:// |2804 (http:// | | | |fonts/) com | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/t/ |DejaVu Sans |DejaVu Serif |DejaVu Sans Mono|cobertura Unicode| |ttf-dejavu-core) |package=ttf-dejavu-core) |ttf-dejavu-core.html) | | | |(sans, | | | | | | | |sans-negrito, | | | | | | | |serif. | | | | | | | |serif-negrito, | | | | | | | |mono, | | | | | | | |mono-negrito) | |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | | | |DejaVu (http:// | | | | | | | |dejavu-fonts.org)| | | | | | | |, Bitstream Vera | g/f/

| | | | | |(http:// | |ttf-dejavu-extra (http:// |I:657 (http:// |6437 (http:// | | | |www.gnome.org/ | |packages.debian.org/sid/ |qa.debian.org/popcon.php? |packages.qa.debian.or g/t/ |N/D |N/D |N/D |fonts/) com | |ttf-dejavu-extra) |package=ttf-dejavu-extra) |ttf-dejavu-extra.html ) | | | |cobertura Unicode| | | | | | | |(oblquo, | | | | | | | |itlico, | | | | | | | |negrito-oblquo, | | | | | | | |negrito-itlico, | | | | | | | |condensado) | |--------------------------+--------------------------+------------------------------+----------------+----------------+----------------+-----------------| | | | | | | |GNU Unifont | | | | | | | |(http:// | | | | | | | |Unifoundry.com) ,| |ttf-unifont (http:// |I:33 (http://qa.debian.org|16044 (http:// | | | |com todo o cdigo| |packages.debian.org/sid/ |/popcon.php?package= |packages.qa.debian.or g/t/ |N/D |N/D |unifont |de caracteres | |ttf-unifont) |ttf-unifont) |ttf-unifont.html) | | | |imprimveis em | | | | | | | |Unicode 5.1 Basic| | | | | | | |Multilingual | | | | | | | |Plane (BMP) | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ Dica as fonts DejaVu (http://dejavu-fonts.org) so baseadas e um super conjunto da fonts Bitstream Vera (http://www.gnome.org/fonts/) . 7.6.2. Fonts (tipos de letra) adicionais O aptitude(8) ajuda-o a encontrar fonts adicionais facilmente. * A lista de pacotes curta sob "Tarefas" "Localizao" * A lista de pacotes lisa filtrada de dados de fonts com regex em debtag: "~Gmade-of::data:font" * A lista de pacotes lisa filtrada de pacotes de fonts BDF (bitmap) com regex no nome do pacote: "~nxfonts-" * A lista de pacotes lisa filtrada de pacotes de fonts TrueType

(contorno) com regex no nome do pacote: "~nttf-" Como as fonts Free so por vezes limitadas, instalar ou partilhar algumas fonts TrueType comerciais uma opo para os utilizadores de Debian. De modo a tornar este processo fcil para o utilizador, foram criados alguns pacotes de convenincia. * ttf-mathematica4.1 * ttf-mscorefonts-installer Voc ir ter uma boa seleco de fonts TrueType s custas de contaminar o seu sistema Livre com fonts no-Livres. 7.6.3. fonts CJK Aqui esto alguns pontos chave que focam em fonts de caracteres CJK (http://en.wikipedia.org/wiki/CJK_characters) . Tabela 7.7. Tabela de palavras chave usadas em nomes de fonts CJK para indicar os tipos de fonts. +----------------------------------------------------------------+ |tipo de |nome de font |nome de font |nome de font | |font |Japonesa |Chinesa |Coreana | |----------+-----------------+-----------------+-----------------| |sans-serif|gtico, |hei, gtico |dodum, gulim, | | | | |gtico | |----------+-----------------+-----------------+-----------------| |serif |mincho, |song, ming |batang | +----------------------------------------------------------------+ O nome de font como "VL PGothic" com o "P" um font proporcional a qual corresponde largura fixa da fonte "VL Gothic". Por exemplo, a tabela de cdigo Shift_JIS (http:// en.wikipedia.org/wiki/Shift_JIS) compreende 7070 caracteres. Eles podem ser agrupados como o seguinte. * caracteres de um byte JIS X 0201 (191 caracteres, a.k.a. caracteres de meia-largura) * caracteres de duplo byte JIS X 0208 (6879 caracteres, a.k.a. caracteres de largura-completa) Os caracteres de duplo-byte ocupam o dobro da largura nos terminais de consola que usam fonts CJK de largura fixa. De modo a lidar com esta situao, pode ser implantado o Hanzi Bitmap Font (HBF) File (http://www.ibiblio.org/pub/packages/ccic/ software/info/HBF-1.1/) com extenso de ficheiro ".hbf" para fonts que contm caracteres de nico-byte e duplo-byte. De modo a poupar espao para ficheiros de tipos de letra TrueType (http://en.wikipedia.org/wiki/TrueType) , pode ser usado o ficheiro de coleco de tipos de letra TrueType (http:// en.wikipedia.org/wiki/TrueType) com a extenso de ficheiro ".ttc". De modo a cobrir o cdigo complicado do espao dos caracteres,

usada uma font Type 1 PostScript (http://en.wikipedia.org/wiki/ PostScript) com chave CID com ficheiros CMap que arrancam eles prprios com "%!PS-Adobe-3.0 Resource-CMap". Isto raramente usado para o mostrador X normal mas usado para renderizao de PDF, etc. (veja Seco7.7.2, aplicaes utilitrias do X). Dica Os mltiplos glifos (http://en.wikipedia.org/wiki/Glyph) so esperados para alguns pontos de cdigo do Unicode (http:// en.wikipedia.org/wiki/Unicode) devido unificao do Han (http:/ /en.wikipedia.org/wiki/Han_unification) . Um dos mais chatos so "U+3001 IDEOGRAPHIC COMMA" e "U+3002 IDEOGRAPHIC FULL STOP" nos quais as posies dos caracteres diferem entre pases CJK. Configurar a prioridade das fonts cntricas Japonesas sobre as Chinesas usado o "~/.fonts.conf" dever trazer alguma paz aos Japoneses. 7.7. Aplicaes do X 7.7.1. Aplicaes de escritrio do X Aqui est uma lista de aplicaes de escritrio bsicas (LO o LibreOffice). Tabela 7.8. lista de aplicaes X de escritrio bsicas +-------------------------------------------------------------------------------------+ |pacote |popcon |tamanho do pacote |tipo |d escrio | |--------------------+--------------------+-------------------------+-----+-----------| |libreoffice-writer |V:148, I:204 (http:/|29559 (http:// | | | |(http:// |/qa.debian.org/ |packages.qa.debian.org/ | |p rocessador | |packages.debian.org/|popcon.php?package= |libr/ |LO |d e texto | |sid/ |libreoffice-writer) |libreoffice-writer.html) | | | |libreoffice-writer) | | | | | |--------------------+--------------------+-------------------------+-----+-----------| |libreoffice-calc |V:145, I:201 (http:/|25086 (http:// | | | |(http:// |/qa.debian.org/ |packages.qa.debian.org/ | |f olha de | |packages.debian.org/|popcon.php?package= |libr/ |LO |cl culo | |sid/ |libreoffice-calc) |libreoffice-calc.html) | | | |libreoffice-calc) | | | | | |--------------------+--------------------+-------------------------+-----+-----------| |libreoffice-impress |V:144, I:199 (http:/|3417 (http:// | | | |(http:// |/qa.debian.org/ |packages.qa.debian.org/ | |

| |packages.debian.org/|popcon.php?package= |libr/ |LO |a presentao| |sid/ |libreoffice-impress)|libreoffice-impress.html)| | | |libreoffice-impress)| | | | | |--------------------+--------------------+-------------------------+-----+-----------| |libreoffice-base |V:139, I:193 (http:/|9079 (http:// | | | |(http:// |/qa.debian.org/ |packages.qa.debian.org/ | |g esto de | |packages.debian.org/|popcon.php?package= |libr/ |LO |b ase de | |sid/ |libreoffice-base) |libreoffice-base.html) | |d ados | |libreoffice-base) | | | | | |--------------------+--------------------+-------------------------+-----+-----------| |libreoffice-draw |V:144, I:199 (http:/|13022 (http:// | |e ditor de | |(http:// |/qa.debian.org/ |packages.qa.debian.org/ | |g rficos | |packages.debian.org/|popcon.php?package= |libr/ |LO |v ectoriais | |sid/ |libreoffice-draw) |libreoffice-draw.html) | |( desenho) | |libreoffice-draw) | | | | | |--------------------+--------------------+-------------------------+-----+-----------| |libreoffice-math |V:145, I:201 (http:/|1592 (http:// | |e ditor de | |(http:// |/qa.debian.org/ |packages.qa.debian.org/ | |fr mulas/ | |packages.debian.org/|popcon.php?package= |libr/ |LO |e quaes | |sid/ |libreoffice-math) |libreoffice-math.html) | |m atemticas | |libreoffice-math) | | | | | |--------------------+--------------------+-------------------------+-----+-----------| |abiword (http:// |V:57, I:99 (http:// |5768 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/a/|GNOME|p rocessador | |sid/abiword) |popcon.php?package= |abiword.html) | |d e texto | | |abiword) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |gnumeric (http:// |V:66, I:105 (http://|7698 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/g/|GNOME|f olha de | |sid/gnumeric) |popcon.php?package= |gnumeric.html) | |cl

culo |

|gnumeric) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |gimp (http:// |V:126, I:468 (http:/|15578 (http:// | |e ditor de | |packages.debian.org/|/qa.debian.org/ |packages.qa.debian.org/g/|GTK |g rficos | |sid/gimp) |popcon.php?package= |gimp.html) | |b itmap | | |gimp) | | |( pintura) | |--------------------+--------------------+-------------------------+-----+-----------| |inkscape (http:// |V:190, I:371 (http:/|79425 (http:// | |e ditor de | |packages.debian.org/|/qa.debian.org/ |packages.qa.debian.org/i/|GNOME|g rficos | |sid/inkscape) |popcon.php?package= |inkscape.html) | |v ectoriais | | |inkscape) | | |( desenho) | |--------------------+--------------------+-------------------------+-----+-----------| |dia-gnome (http:// |V:14, I:22 (http:// |617 (http:// | |e ditor de | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/d/|GNOME|f luxogramas | |sid/dia-gnome) |popcon.php?package= |dia-gnome.html) | |e diagramas | | |dia-gnome) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |planner (http:// |V:2, I:16 (http:// |1146 (http:// | | | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/p/|GNOME|g esto de | |sid/planner) |popcon.php?package= |planner.html) | |p rojectos | | |planner) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |calligrawords (http:|V:1, I:5 (http:// |7042 (http:// | | | |// |qa.debian.org/ |packages.qa.debian.org/c/|KDE |p rocessador | |packages.debian.org/|popcon.php?package= |calligrawords.html) | |d e texto | |sid/calligrawords) |calligrawords) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |calligrasheets |V:1, I:5 (http:// |13128 (http:// | | | |(http:// |qa.debian.org/ |packages.qa.debian.org/c/|KDE |f olha de | |packages.debian.org/|popcon.php?package= |calligrasheets.html) | |cl

culo

| |sid/calligrasheets) |calligrasheets) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |calligrastage (http:|V:1, I:5 (http:// |11018 (http:// | | | |// |qa.debian.org/ |packages.qa.debian.org/c/|KDE |a presentao| |packages.debian.org/|popcon.php?package= |calligrastage.html) | | | |sid/calligrastage) |calligrastage) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |calligraplan (http:/|V:0, I:5 (http:// |7094 (http:// | | | |/packages.debian.org|qa.debian.org/ |packages.qa.debian.org/c/|KDE |g esto de | |/sid/calligraplan) |popcon.php?package= |calligraplan.html) | |p rojectos | | |calligraplan) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |calligraflow (http:/|V:0, I:5 (http:// |357 (http:// | |e ditor de | |/packages.debian.org|qa.debian.org/ |packages.qa.debian.org/c/|KDE |f luxogramas | |/sid/calligraflow) |popcon.php?package= |calligraflow.html) | |e diagramas | | |calligraflow) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |kexi (http:// |V:2, I:15 (http:// |9461 (http:// | |g esto de | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/k/|KDE |b ase de | |sid/kexi) |popcon.php?package= |kexi.html) | |d ados | | |kexi) | | | | |--------------------+--------------------+-------------------------+-----+-----------| |karbon (http:// |V:3, I:14 (http:// |2146 (http:// | |e ditor de | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/k/|KDE |g rficos | |sid/karbon) |popcon.php?package= |karbon.html) | |v ectoriais | | |karbon) | | |( desenho) | |--------------------+--------------------+-------------------------+-----+-----------| |krita (http:// |V:3, I:16 (http:// |18806 (http:// | |e ditor de | |packages.debian.org/|qa.debian.org/ |packages.qa.debian.org/k/|KDE |g rficos | |sid/krita) |popcon.php?package= |krita.html) | |b

itmap | | |krita) | | |( pintura) | +-------------------------------------------------------------------------------------+ 7.7.2. aplicaes utilitrias do X Aqui est uma lista de aplicaes utilitrias bsicas que me chamaram a ateno. Tabela 7.9. Lista de aplicaes X utilitrias bsicas +---------------------------------------------------------------------------+ |pacote |popcon |tamanho do pacote |tipo |descrio | |-------------------+-------------+----------------------+-----+------------| | | |evince (http:// | |packages.debian.org|qa.debian.org|packages.qa.debian.org|GNOME|de documento s| |/sid/evince) | | | | | |-------------------+-------------+----------------------+-----+------------| | | |okular (http:// | |packages.debian.org|qa.debian.org|packages.qa.debian.org|KDE |de documento s| |/sid/okular) | | | | | |-------------------+-------------+----------------------+-----+------------| | | |evolution (http:// |(http:// |5589 (http:// | |Informaes | |packages.debian.org|qa.debian.org|packages.qa.debian.org|GNOME|Pessoais | |/sid/evolution) | | | | | |-------------------+-------------+----------------------+-----+------------| |evolution) | | | |package= | | |email) |/popcon.php? |/e/evolution.html) | |(groupware e |V:83, I:365 | | |Gestor de |okular) | | | |package= | | | |/popcon.php? |/o/okular.html) | |(pdf) |(http:// |3205 (http:// | |visualizador |V:74, I:106 | | | |evince) | | | |package= | | | |/popcon.php? |/e/evince.html) | |(pdf) |(http:// |1102 (http:// | |visualizador |V:289, I:413 | | |

| |

|V:8, I:56

|Gestor de

|kontact (http:// |(http:// |4658 (http:// | |Informaes | |packages.debian.org|qa.debian.org|packages.qa.debian.org|KDE |Pessoais | |/sid/kontact) | | | | | |-------------------+-------------+----------------------+-----+------------| | | |scribus (http:// |(http:// |54122 (http:// | |disposio de| |packages.debian.org|qa.debian.org|packages.qa.debian.org|KDE |pginas do | |/sid/scribus) |/popcon.php? |/s/scribus.html) | |ambiente de | | |package= | | |trabalho | | |scribus) | | | | |-------------------+-------------+----------------------+-----+------------| | |V:1, I:6 | | | | |glabels (http:// |(http:// |1273 (http:// | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|GNOME|editor de | |/sid/glabels) |/popcon.php? |/g/glabels.html) | |etiquetas | | |package= | | | | | |glabels) | | | | |-------------------+-------------+----------------------+-----+------------| | |V:6, I:21 | | | | |gnucash (http:// |(http:// |7033 (http:// | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|GNOME|contas | |/sid/gnucash) |/popcon.php? |/g/gnucash.html) | |pessoais | | |package= | | | | | |gnucash) | | | | |-------------------+-------------+----------------------+-----+------------| | |V:1, I:4 | | | | |homebank (http:// |(http:// |759 (http:// | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|GTK |contas | |/sid/homebank) |/popcon.php? |/h/homebank.html) | |pessoais | |V:13, I:34 | | |editor de |kontact) | | | |package= | | |email) |/popcon.php? |/k/kontact.html) | |(groupware e

| | | | -| | | |

|package= |homebank)

| |

| |

| |

|-------------------+-------------+----------------------+-----+-----------|V:1, I:5 | |9255 (http:// | | | |

|kmymoney (http:// |(http:// | |/sid/kmymoney) | | | | | -| | | |xsane (http:// a| r| |/sid/xsane) | | | | | -+ Cuidado |xsane) |package= |(http:// |kmymoney) |package=

|packages.debian.org|qa.debian.org|packages.qa.debian.org|KDE |contas |/popcon.php? |/k/kmymoney.html) | | | | | |pessoais | |

|-------------------+-------------+----------------------+-----+-----------|V:47, I:328 | |702 (http:// | | | |frontend par

|packages.debian.org|qa.debian.org|packages.qa.debian.org|GTK |digitalizado |/popcon.php? |/x/xsane.html) | | | | | |(scanner) | |

+---------------------------------------------------------------------------

O pacote poppler-data (anteriormente no-livre), veja Seco11.3.1, Ghostscript) precisa de ser instalado para o evince e okular para mostrar documentos PDF CJK usando dados Cmap (Seco7.6.3, fonts CJK). Nota Instalar softwares como o scribus (KDE) no ambiente de trabalho GNOME aceitvel porque a funcionalidade correspondente no est disponvel no ambiente GNOME. Mas instalar demasiados pacotes com funcionalidades duplicadas desorganiza o seu menu. 7.8. As trivialidades do X 7.8.1. Mapas de teclas e mapas de botes do apontador (rato) no X O xmodmap(1) um utilitrio para modificar mapas de teclas e mapas dos botes do rato no X Window System. Para obter o cdigo-da-tecla, corra xev(1) no X e carregue nas teclas. Para obter significado de keysym, veja na definio de MACRO no ficheiro "/usr/include/X11/keysymdef.h" (pacote x11proto-core-dev). Todas as declaraes "#define" neste ficheiro

so nomeadas com "XK_" pre-pendente a nomes keysym. 7.8.2. Clientes X Clssicos Programas cliente X mais tradicionais, como o xterm(1), podem ser arrancados com um conjunto de opes de linha de comandos standard para especificar a geometria, o tipo de letra e o mostrador. Eles tambm usam a base de dados de recursos do X para configurar a sua aparncia. As predefinies gerais do sistema dos recursos do X so armazenadas em "/etc/X11/Xresources/*" e as predefinies de aplicao delas so armazenadas em "/etc/X11/ app-defaults/*". Use estas definies como pontos de partida. O ficheiro "~/.Xresources" usado para armazenar especificaes de recursos do utilizador. Este ficheiro unido automaticamente aos recursos predefinidos do X aps o login. Para fazer alteraes nestas definies e as tornar efectivas imediatamente, una-as base de dados usando o seguinte comando. $ xrdb -merge ~/.Xresources Veja x(7) e xrdb(1). 7.8.3. O emulador de terminal X - xterm Saiba tudo sobre o xterm(1) em http://dickey.his.com/xterm/ xterm.faq.html (http://dickey.his.com/xterm/xterm.faq.html) . 7.8.4. Correr clientes X como root Ateno Nunca inicie o gestor de sesso/ecr X sob a conta root ao escrever root num gestor de ecr como o gdm3 porque isso considerado inseguro, mesmo quando planeia executar actividades administrativas. A arquitectura inteira do X considerada insegura para ser executada como root. Voc deve sempre usar o nvel de privilgios mais baixo possvel, como uma conta de utilizador normal. Maneiras fceis de correr um cliente X particular, ex. "foo" como root usar sudo(8) etc. como o seguinte. $ sudo foo & $ sudo -s # foo & $ gksu foo & $ ssh -X root@localhost # foo & Cuidado O uso de ssh(1) s para este objectivo como em cima um desperdcio de recursos.

De modo que o cliente X se ligue ao servidor X, por favor note o seguinte. * Os valores das variveis de ambiente "$XAUTHORITY" e "$DISPLAY" dos utilizadores antigos tm de ser copiados para os utilizadores mais recentes. * O ficheiro apontado pelo valor da varivel de ambiente "$XAUTHORITY" tem de ser legvel pelo novo utilizador. O pacote gksu (popcon: V:221, I:468) um pacote GUI GTK+ especializado para ganhar privilgios de root. Pode ser configurado para usar o su(1) ou o sudo(8) como backend dependendo da chave gconf "/apps/gksu/sudo-mode". Voc pode editar a chave gconf usando o gconf-editor(1) (menu: "Aplicaes" "Ferramentas do Sistema" "Editor de Configurao"). Captulo 8. I18N e L10N O Multilingualization (M17N) ou Suporte de Linguagem Nativa (http://en.wikipedia.org/wiki/ Internationalization_and_localization) para um software de aplicao feito em 2 passos. * Internationalization (I18N): Para fazer com que o software lide potencialmente com mltiplos locales. * Localization (L10N): Tornar o software til num locale especfico. Dica Existem 17, 18, ou 10 letras entre "m" e "n", "i" e "n", ou "l" e "n" em 'multilingualization', 'internationalization', e 'localization' os quais correspondem a M17N, I18N, e L10N. O software moderno como o GNOME e o KDE esto multi-lingualizados. Eles so internacionalizados ao faz-los lidar com dados UTF-8 (http://en.wikipedia.org/wiki/UTF-8) e localizados ao disponibilizar as suas mensagens traduzidas atravs da infraestrutura gettext(1). As mensagens traduzidas podem ser disponibilizadas em pacotes de localizao separados. Podem ser seleccionados simplesmente ao definir variveis de ambiente pertinentes ao locale apropriado. A representao mais simples dos dados de texto o ASCII o qual suficiente para Ingls e usa menos de 127 caracteres (representados em 7 bits). De modo a suportar muitos mais caracteres para o suporte in internacional, foram inventados muitos sistemas de codificao de caracteres. O sistema mais moderno e sensvel o UTF-8 o qual pode lidar com praticamente todos os caracteres conhecidos dos humanos (veja Seco8.3.1, Bases de codificao). Veja Introduo ao i18n (http://www.debian.org/doc/manuals/ intro-i18n/) para mais detalhes. O suporte a hardware internacional activado com dados de configurao de hardware localizados.

8.1. A entrada do teclado O sistema Debian pode ser configurado para funcionar com muitas disposies internacionais de teclado. Tabela 8.1. Lista de mtodos de configurao do teclado +-------------------------------------------------------------+ |ambiente |comando | |----------------+--------------------------------------------| |Consola do Linux|dpkg-reconfigure --priority=low console-data| |----------------+--------------------------------------------| |X Window |dpkg-reconfigure --priority=low xserver-xorg| +-------------------------------------------------------------+ Isto suporta entrada de teclado para caracteres acentuados de muitas linguagens Europeias com a sua funo de tecla-morta. Para as linguagens Asiticas, voc precisa de um suporte de mtodo de entrada (http://en.wikipedia.org/wiki/Input_method) mais complicado como o IBus (http://en.wikipedia.org/wiki/ Intelligent_Input_Bus) discutido em seguida. 8.1.1. O suporte a mtodo de entrada com IBus A configurao de entrada multilingue para o sistema Debian est simplificada ao usar a famlia de pacotes IBus (http:// en.wikipedia.org/wiki/Intelligent_Input_Bus) com o pacote im-config. A lista de pacotes IBus a seguinte. Tabela 8.2. Lista de suportes a mtodo de entrada com IBus +------------------------------------------------------------------------+ |pacote |popcon |tamanho |locale | | | | |suportado | |-------------------+----------------+----------------------+------------| |ibus (http:// |V:5, I:8 (http:/|1854 (http:// |estrutura de| |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|mtodo de | |/sid/ibus) |popcon.php? |/i/ibus.html) |entrada que | | |package=ibus) | |usa dbus | |-------------------+----------------+----------------------+------------| | |V:0, I:1 (http:/| | | |ibus-mozc (http:// |/qa.debian.org/ |838 (http:// | | |packages.debian.org|popcon.php? |packages.qa.debian.org|Japons | |/sid/ibus-mozc) |package= |/i/ibus-mozc.html) | | | |ibus-mozc) | | | |-------------------+----------------+----------------------+------------| | |V:1, I:2 (http:/| | | |ibus-anthy (http://|/qa.debian.org/ |513 (http:// | | |packages.debian.org|popcon.php? |packages.qa.debian.org|, , | |/sid/ibus-anthy) |package= |/i/ibus-anthy.html) | | | |ibus-anthy) | | | |-------------------+----------------+----------------------+------------| | |V:0, I:0 (http:/| | | |ibus-skk (http:// |/qa.debian.org/ |295 (http:// | | |packages.debian.org|popcon.php? |packages.qa.debian.org|, , | |/sid/ibus-skk) |package= |/i/ibus-skk.html) | | | |ibus-skk) | | | |-------------------+----------------+----------------------+------------| |ibus-pinyin (http:/|V:1, I:2 (http:/| | |

|/ |/qa.debian.org/ |1448 (http:// |Chins (para| |packages.debian.org|popcon.php? |packages.qa.debian.org|zh_CN) | |/sid/ibus-pinyin) |package= |/i/ibus-pinyin.html) | | | |ibus-pinyin) | | | |-------------------+----------------+----------------------+------------| |ibus-chewing (http:|V:0, I:0 (http:/| | | |// |/qa.debian.org/ |139 (http:// |, , (para | |packages.debian.org|popcon.php? |packages.qa.debian.org|zh_TW) | |/sid/ibus-chewing) |package= |/i/ibus-chewing.html) | | | |ibus-chewing) | | | |-------------------+----------------+----------------------+------------| |ibus-hangul (http:/|V:0, I:0 (http:/| | | |/ |/qa.debian.org/ |165 (http:// | | |packages.debian.org|popcon.php? |packages.qa.debian.org|Coreano | |/sid/ibus-hangul) |package= |/i/ibus-hangul.html) | | | |ibus-hangul) | | | |-------------------+----------------+----------------------+------------| | |V:0, I:1 (http:/| | | |ibus-table (http://|/qa.debian.org/ |579 (http:// |motor de | |packages.debian.org|popcon.php? |packages.qa.debian.org|tabela para | |/sid/ibus-table) |package= |/i/ibus-table.html) |IBus | | |ibus-table) | | | |-------------------+----------------+----------------------+------------| |ibus-table-thai |I:0 (http:// |143 (http:// | | |(http:// |qa.debian.org/ |packages.qa.debian.org| | |packages.debian.org|popcon.php? |/i/ |Thai | |/sid/ |package= |ibus-table-thai.html) | | |ibus-table-thai) |ibus-table-thai)| | | |-------------------+----------------+----------------------+------------| |ibus-unikey (http:/|V:0, I:0 (http:/| | | |/ |/qa.debian.org/ |224 (http:// | | |packages.debian.org|popcon.php? |packages.qa.debian.org|Vietnamita | |/sid/ibus-unikey) |package= |/i/ibus-unikey.html) | | | |ibus-unikey) | | | |-------------------+----------------+----------------------+------------| | |V:0, I:1 (http:/| |Multilingue:| |ibus-m17n (http:// |/qa.debian.org/ |161 (http:// |Indiano, | |packages.debian.org|popcon.php? |packages.qa.debian.org|rabe e | |/sid/ibus-m17n) |package= |/i/ibus-m17n.html) |outros | | |ibus-m17n) | | | +------------------------------------------------------------------------+ O mtodo kinput2 e outros mtodos de entrada (http:// en.wikipedia.org/wiki/Input_method) Asiticos clssicos dependentes do locale ainda existem mas no so recomendados para o ambiente X UTF-8 moderno. As cadeias de ferramentas SCIM (http: //en.wikipedia.org/wiki/Smart_Common_Input_Method) e uim (http:// en.wikipedia.org/wiki/Uim) so uma aproximao um tanto antiga para o mtodo de entrada internacional para o ambiente X UTF-8 moderno. 8.1.2. Um exemplo para Japons Eu acho muito til o mtodo de entrada de Japons arrancado sob ambiente Ingls "en_US.UTF-8"). Aqui est como eu fiz isto com o IBus. 1. Instale o pacote de ferramenta de entrada de Japons ibus-mozc com os pacotes recomendados como o im-config.

2. Execute "im-config" a partir da shell de utilizador e seleccione "ibus". 3. Seleccione "Sistema" "Preferncias" "Preferncias do IBus" "Mtodo de Entrada" "Seleccionar um mtodo de entrada" "Japons" "MOZC" e clique em "Adicionar" 4. Voltar a fazer login na conta do utilizador 5. Verificar definio por "im-config". 6. Configurar mtodo de entrada e modo ao clicar com boto direito na barra de ferramentas da GUI. (Voc pode reduzir a escolha de menu do mtodo de entrada.) 7. Arrancar o mtodo de entrada IBus por CTRL-ESPAO. Por favor note o seguinte: * O im-config(8) comporta-se de modo diferente se o comando for executado pelo root ou no. * im-config(8) activa o melhor mtodo de entrada do sistema e predefinido sem qualquer aco do utilizador. * A entrada no menu GUI para im-config(8) est desactivada por predefinio para evitar a desordem. 8.1.3. Desactivar o mtodo de entrada Se voc desejar dar entradas sem ser atravs do XIM, regule o valor de "$XMODIFIERS" para "none" quando arranca um programa Este pode ser o caso se voc usar a infraestrutura de entrada de Japons egg em emacs(1). A partir da shell, execute como o seguinte. $ XMODIFIERS=none emacs De modo a ajustar o comando executado pelo menu Debian, coloque configurao personalizada em "/etc/menu/" seguindo o mtodo descrito em "/usr/share/doc/menu/html". 8.2. O mostrador de resultados A consola do Linux apenas pode mostrar caracteres limitados. (Voc precisa usar programas de terminal especiais como o jfbterm (1) para mostrar linguagens no-Europeias numa consola no-X.) O X Window pode mostrar quaisquer caracteres em UTF-8 desde que a font necessria exista. (A codificao dos dados da font original fica ao cuidado do Sistema X Window e transparente para o utilizador.) 8.3. O locale O seguinte foca-se no locale para aplicaes que correm sob ambiente X Window iniciado a partir do gdm3(1). 8.3.1. Bases de codificao

A varivel de ambiente "LANG=xx_YY.ZZZZ" define o locale para o cdigo de linguagem "xx", cdigo de pas "yy", e codificao "ZZZZ" (veja Seco1.5.2, Varivel "$LANG"). O sistema Debian actual normalmente define o locale como "LANG= xx_YY.UTF-8". Isto usa a codificao UTF-8 (http:// en.wikipedia.org/wiki/UTF-8) com o conjunto de caracteres Unicode (http://en.wikipedia.org/wiki/Unicode) . Este sistema de codificao UTF-8 (http://en.wikipedia.org/wiki/UTF-8) um sistema de cdigo multibyte e usa pontos de cdigo inteligentemente. Os dados ASCII (http://en.wikipedia.org/wiki/ ASCII) , que consistem apenas em cdigos com alcance de 7 bits, so sempre dados UTF-8 vlidos consistindo apenas com 1 byte por caractere. O sistema Debian anterior costumava definir o locale como "LANG= C" ou "LANG=xx_YY" (sem ".UTF-8"). * O conjunto de caracteres ASCII (http://en.wikipedia.org/wiki/ ASCII) usado para "LANG=C" ou "LANG=POSIX". * O sistema de codificao tradicional em Unix usado para "LANG=xx_YY". O sistema de codificao tradicional actual usado para "LANG= xx_YY" pode ser identificado ao verificar "/usr/share/i18n/ SUPPORTED". Por exemplo, "en_US" usa codificao "ISO-8859-1" e "fr_FR@euro" usa codificao "ISO-8859-15". Dica Para o significado dos valores de codificao, veja Tabela11.2, Lista de valores de codificao e a sua utilizao. 8.3.2. Fundamentos para o locale UTF-8 A codificao UTF-8 (http://en.wikipedia.org/wiki/UTF-8) o sistema de codificao de texto moderno e sensvel para I18N e activa a representao de caracteres Unicode (http:// en.wikipedia.org/wiki/Unicode) , isto , praticamente todos os caracteres conhecidos do ser humano. UTF significa Unicode Transformation Format (UTF). Eu recomendo usar o locale UTF-8 (http://en.wikipedia.org/wiki/ UTF-8) para o seu ambiente de trabalho, ex. "LANG=en_US.UTF-8". A primeira parte do locale determina as mensagens apresentadas pelas aplicaes. Por exemplo, o gedit(1) (editor de texto para o ambiente GNOME) sob o locale "LANG=fr_FR.UTF-8" pode mostrar e editar dados de texto em caracteres Chineses enquanto apresenta os menus em Francs, desde que as fonts e mtodos de entrada necessrios estejam instalados. Tambm recomendo definir o locale usando a varivel de ambiente "$LANG". No vejo grande benefcio ao definir uma combinao complicada de variveis "LC_*" (veja locale(1)) sob locale UTF-8. Mesmo o Ingls simples pode conter caracteres no-ASCII, ex. as marcas de citao esquerda e direita no esto disponveis em ASCII.

texto com dupla citao texto com citao singular Quando os dados de texto simples em ASCII (http:// en.wikipedia.org/wiki/ASCII) so convertidos para UTF-8 (http:// en.wikipedia.org/wiki/UTF-8) , fica exactamente com o mesmo contedo e tamanho que o original em ASCII. Portanto no se perde nada ao implantar o locale UTF-8. Alguns programas consomem mais memria aps suportarem I18N. Isto porque esto codificados para usar UTF-32(UCS4) (http:// en.wikipedia.org/wiki/UTF-32/UCS-4) internamente para suportar Unicode para optimizao de velocidade e consomem 4 bytes por cada caractere ASCII independentemente do locale seleccionado. Mais uma vez, voc no perde nada ao implantar o locale UTF-8. Os sistema de codificao no-UTF-8 antigos especficos de marcas tentem a ter diferenas menores mas aborrecidas em alguns caracteres como os grficos para muitos pases. A implantao do sistema UTF-8 pelos Sistemas Operativos modernos praticamente resolveu estes problemas de conflitos de codificao. 8.3.3. A reconfigurao do locale De modo ao sistema aceder a um determinado locale, os dados do locale tm de ser compilados a partir da base de dados de locales. (O sistema Debian no vem com todos os locales disponveis pr-compilados a menos que voc instale o pacote locales-all.) A lista completa dos locales suportados disponveis para compilao est em "/usr/share/i18n/SUPPORTED". Isto lista todos os nomes de locale apropriadamente. O seguinte lista todos os locales UTF-8 disponveis j compilados no formato binrio. $ locale -a | grep utf8 A execuo do comando seguinte reconfigura o pacote locales. # dpkg-reconfigure locales Este processo involve 3 passos. 1. Actualizar a lista de locales disponveis 2. Compil-los num formato binrio 3. Definir o locale predefinido de todo o sistema em "/etc/ default/locale" para usar com o PAM (veja Seco4.5, PAM e NSS) A lista dos locale disponveis deve incluir "en_US.UTF-8" e todas as linguagens de interesse com "UTF-8". O locale predefinido recomendado "en_US.UTF-8" para Ingls dos Estados Unidos. Para outras linguagens, por favor certifique-se de escolher um locale com "UTF-8". Qualquer uma destas definies consegue lidar com quaisquer caracteres internacionais. Nota

Apesar da definio de locale para "C" usar mensagens em Ingls dos Estados Unidos, apenas lida com caracteres ASCII. 8.3.4. O valor da varivel de ambiente "$LANG" O valor da varivel de ambiente "$LANG" definido e alterado por muitas aplicaes. * Definido inicialmente pelo mecanismo de login(1) PAM para os programas de consola local do Linux * Definido inicialmente pelo mecanismo PAM do gestor de ecr para todos os programas do X * Definido inicialmente pelo mecanismo PAM do ssh(1) para os programas de consola remota. * Alterado por algum gestor de ecr como o gdm3(1) para todos os programas do X * Alterado pelo cdigo de arranque da sesso X via "~ /.xsessionrc" para todos os programas do X (funcionalidade do lenny) * Alterado pelo cdigo de arranque da shell, ex. "~/.bashrc", para todos os programas de consola Dica uma boa ideia instalar um locale predefinido para todo o sistema como "en_US.UTF-8" para o mximo de compatibilidade. 8.3.5. O locale especfico apenas sob X Window Voc pode escolher um locale especfico apenas sob X Window no relacionado com o seu locale predefinido de todo o sistema usando personalizao do PAM (veja xref linkend="_pam_and_nss"/>) como se segue. Este ambiente dever disponibilizar-lhe a melhor experincia de ambiente de trabalho com estabilidade. Voc tem acesso ao terminal de caracteres funcional com mensagens legveis mesmo quando o Sistema X Window no est a funcionar. Isto torna-se essencial para linguagens que usam caracteres no-romanos como o Chins, Japons e Coreano. Nota Pode existir outra maneira disponvel como o melhoramento do pacote de gesto de sesso X, mas por favor leia o seguinte como o mtodo genrico e bsico de definir o locale. Para o gdm3(1), Eu sei que voc pode seleccionar da sesso X atravs do seu menu. A seguinte linha define a localizao do ficheiro do ambiente de linguagem no ficheiro do configurao do PAM, como o "/etc/pam.d/ gdm3. auth required pam_env.so read_env=1 envfile=/etc/default/locale

Mude isto para o seguinte.

auth

required

pam_env.so read_env=1 envfile=/etc/default/locale-x

Para Japons, crie um ficheiro "/etc/default/locale-x" com permisses "-rw-r--r-- 1 root root" contendo o seguinte. LANG="ja_JP.UTF-8" Mantenha o ficheiro "/etc/default/locale" predefinido para outros programas com o seguinte. LANG="en_US.UTF-8" Esta a tcnica mais genrica para personalizar o locale e faz com que o dilogo de seleco de menu do prprio gdm3(1) fique localizado (traduzido). Alternativamente para este caso, voc pode simplesmente alterar o locale usando o ficheiro "~/.xsessionrc". 8.3.6. Codificao de nomes de ficheiros Para troca de dados entre plataformas (veja Seco10.1.10, Dispositivo de armazenamento amovvel), voc pode precisar de montar algum sistema de ficheiros com codificaes particulares. por exemplo, o mount(8) para sistema de ficheiros vfat (http:// en.wikipedia.org/wiki/File_Allocation_Table) assume CP437 (http:/ /en.wikipedia.org/wiki/Code_page_437) se usado sem opo. Voc precisa de fornecer uma opo explcita de montagem para usar UTF-8 (http://en.wikipedia.org/wiki/UTF-8) ou CP932 (http:// en.wikipedia.org/wiki/Code_page_932) para os nomes dos ficheiros. Nota Quando se monta automaticamente uma caneta de memria USB sob ambientes de trabalho modernos como o GNOME, voc pode fornecer tal opo de montagem ao clicar com o boto direito no cone no ambiente de trabalho, clique no separador "Drive", clique para expandir "Definies", e insira "utf8" nas "Opes de montagem:". No prxima vez que esta caneta de memria for montada, est activa a montagem com UTF-8. Nota Se voc est a actualizar o sistema ou a mover os discos de um sistema antigo no-UTF-8, os nomes de ficheiros com caracteres no-ASCII podem ser codificados com as codificaes histricas e obsoletas como a ISO-8859-1 (http://en.wikipedia.org/wiki/ISO/ IEC_8859-1) ou eucJP (http://en.wikipedia.org/wiki/ Extended_Unix_Code) . por favor procure a ajuda de ferramentas de converso de texto para os converter para UTF-8 (http:// en.wikipedia.org/wiki/UTF-8) . Veja Seco11.1, Ferramentas de converso de dados em texto. O Samba (http://en.wikipedia.org/wiki/Samba_(software)) usa Unicode para os clientes mais recentes (Windows NT, 200x, XP) mas usa CP850 (http://en.wikipedia.org/wiki/Code_page_850) para os clientes mais antigos (DOS e Windows 9x/Me) por predefinio. Esta predefinio para os clientes mais antigos pode ser alterada usando "dos charset" no ficheiro "/etc/samba/smb.conf" por

exemplo para CP932 (http://en.wikipedia.org/wiki/Code_page_932) para Japons. 8.3.7. Mensagens localizadas e documentao traduzida Existem tradues para muitas das mensagens de texto e documentos que so mostrados no sistema Debian, tais como as mensagens de erro, as sadas normais dos programas, os menus e os manuais. A cadeia de ferramentas de comandos gettext(1) do GNU (http:// en.wikipedia.org/wiki/Gettext) usada como a ferramenta backend para a maioria das actividades de traduo. O aptitude(8) nas listas sob "Tarefas" "Localizao" disponibiliza listas extensivas de pacotes binrios teis que adicionam mensagens localizadas s aplicaes e disponibilizam documentao traduzida. Por exemplo, voc pode obter as mensagens localizadas para os manuais ao instalar o pacote manpages-<LANG>. Para ler o manual em linguagem Italiana para o <nome_do_programa> a partir de "/usr /share/man/it/", execute o seguinte. LANG=it_IT.UTF-8 man <nome_do_programa> 8.3.8. Efeitos do locale A ordem de ordenao do caracteres com o sort(1) afectada pela escolha de linguagem do locale. Os locales Espanhol e Ingls ordenam de forma diferente. O formato de data do ls(1) afectado pelo locale. Os formatos de data de "LANG=C ls -l" e "LANG=en_US.UTF-8" so diferentes (veja Seco9.2.5, Amostragem personalizada de hora e data). As pontuaes numricas so diferentes para os locales. Por exemplo, em locale Ingls, mil ponto um mostrado como "1,000.1" enquanto em locale Alemo mostrado como 1.000,1". Voc pode ver esta diferena num programa de folha de clculo. Captulo 9. Dicas do sistema Aqui, eu descrevo dicas bsicas para configurar e gerir sistemas, a maioria a partir da consola. 9.1. O programa screen O screen(1) uma ferramenta muito til para se aceder a sites remotos via ligaes no confiveis e intermitentes porque suporta interrupes nas ligaes de rede. Tabela 9.1. Lista de programas para suportar ligaes rede interrompidas +----------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-------------| | |V:92, I:328 | |terminal | |screen (http:// |(http:// |952 (http:// |multiplexador| |packages.debian.org|qa.debian.org|packages.qa.debian.org|com emulao | |/sid/screen) |/popcon.php? |/s/screen.html) |de terminal |

| |package= | |VT100/ANSI | | |screen) | | | +----------------------------------------------------------------------+ 9.1.1. O cenrio de utilizao para o screen(1) O screen(1) no apenas permite que uma janela terminal funcione com mltiplos processos, mas tambm permite que os processos de shell remota sobrevivam a ligaes interrompidas. Aqui est um cenrio tpico de utilizao do screen(1). 1. Voc faz login numa mquina remota. 2. Voc arranca o screen numa consola nica. 3. Voc executa mltiplos programas na janela criada do screen com ^A c ("Ctrl-A" seguido de "c"). 4. Voc muda entre as mltiplas janelas do screen com ^A n ("Ctrl-A" seguido de "n"). 5. Subitamente voc precisa de abandonar o seu terminal, mas no quer perder o seu trabalho activo mantendo a ligao. 6. Voc pode separar a sesso do screen por quaisquer mtodos. * Desligar a sua ligao de rede bruta * Escrever ^A d ("Ctrl-A" seguido de "d") e manualmente terminar a sesso da ligao remota * Escrever ^A DD ("Ctrl-A" seguido de "DD") para separar o screen e terminar a sua sesso dele. 7. Voc faz login de novo para a mesma mquina remota (mesmo a partir de um terminal diferente). 8. Voc inicia o screen como "screen -r". 9. O screen magicamente reagrupa todas as janelas screen anteriores com todos os programas a funcionar activamente. Dica Voc pode poupar despesas de ligao com o screen em ligaes de rede medidas 'a metro' como as dial-up, porque voc pode deixar um processo activo enquanto desligado, e depois re-ligar-se a ele mais tarde quando ligar de novo. 9.1.2. ligaes de teclas para o comando screen Numa sesso do screen, todas as entradas do teclado so enviadas para a sua janela actual excepto as teclas de comandos. Todas as teclas de comando do screen so inseridas ao escrever ^A ("Control-A") mais uma nica tecla [mais quaisquer parmetros]. Aqui esto alguns importantes para lembrar. Tabela 9.2. Lista de ligaes de teclas para o screen

+---------------------------------------------------------------+ |tecla de |significado | |atalho | | |-------------+-------------------------------------------------| |^A ? |mostra um cran de ajuda (mostra as teclas de | | |atalho) | |-------------+-------------------------------------------------| |^A c |cria uma nova janela e muda para ela | |-------------+-------------------------------------------------| |^A n |vai para a janela seguinte | |-------------+-------------------------------------------------| |^A p |vai para a janela anterior | |-------------+-------------------------------------------------| |^A 0 |vai para a janela nmero 0 | |-------------+-------------------------------------------------| |^A 1 |vai para a janela nmero 1 | |-------------+-------------------------------------------------| |^A w |mostra uma lista de janelas | |-------------+-------------------------------------------------| |^A a |envia Ctrl-A para a janela actual como entrada do| | |teclado | |-------------+-------------------------------------------------| |^A h |escreve uma cpia fsica da janela actual para um| | |ficheiro | |-------------+-------------------------------------------------| |^A H |inicia/termina o registo da janela actual para um| | |ficheiro | |-------------+-------------------------------------------------| |^A ^X |bloqueia o terminal (protegido por palavra-passe)| |-------------+-------------------------------------------------| |^A d |separa a sesso do ecr do terminal | |-------------+-------------------------------------------------| |^A DD |separa a sesso do ecr e termina a sesso | +---------------------------------------------------------------+ Veja screen(1) para detalhes. 9.2. Gravao de dados e apresentao 9.2.1. O daemon de log Muitos programas registam as suas actividades sob o directrio "/ var/log/". * O daemon de log do kernel: klogd(8) * O daemon de log do sistema: rsyslogd(8) Veja Seco3.5.9, A mensagem do sistema e Seco3.5.10, A mensagem do kernel. 9.2.2. Analizador de log Aqui esto analisadores de logs notveis ("~Gsecurity::log-analyzer" no aptitude(8)). Tabela 9.3. Lista de analisadores de log do sistema +--------------------------------------------------------------------------+

|pacote |popcon |tamanho |descrio | |-------------------+---------------+----------------------+---------------| | |V:26, I:29 | | | |logwatch (http:// |(http:// |2018 (http:// |analisador de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|log com sada | |/sid/logwatch) |popcon.php? |/l/logwatch.html) |bonita escrito | | |package= | |em Perl | | |logwatch) | | | |-------------------+---------------+----------------------+---------------| | |V:65, I:74 | | | |fail2ban (http:// |(http:// |414 (http:// |banir IPs que | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|causam vrios | |/sid/fail2ban) |popcon.php? |/f/fail2ban.html) |erros de | | |package= | |autenticao | | |fail2ban) | | | |-------------------+---------------+----------------------+---------------| | |V:9, I:145 | | | |analog (http:// |(http:// |3187 (http:// |analisador de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|log do servidor| |/sid/analog) |popcon.php? |/a/analog.html) |web | | |package=analog)| | | |-------------------+---------------+----------------------+---------------| | |V:20, I:29 | |analisador de | |awstats (http:// |(http:// |3101 (http:// |logs de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|servidor web | |/sid/awstats) |popcon.php? |/a/awstats.html) |poderoso e | | |package= | |cheio de | | |awstats) | |funcionalidades| |-------------------+---------------+----------------------+---------------| | |V:12, I:13 | |gerador de | |sarg (http:// |(http:// |921 (http:// |relatrios de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|anlises do | |/sid/sarg) |popcon.php? |/s/sarg.html) |squid | | |package=sarg) | | | |-------------------+---------------+----------------------+---------------| | |V:2, I:5 (http:| |resumidor de | |pflogsumm (http:// |//qa.debian.org|133 (http:// |entradas do | |packages.debian.org|/popcon.php? |packages.qa.debian.org|relatrio do | |/sid/pflogsumm) |package= |/p/pflogsumm.html) |Postfix | | |pflogsumm) | | | |-------------------+---------------+----------------------+---------------| |syslog-summary |V:1, I:12 | | | |(http:// |(http:// |84 (http:// |resume o | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|contedo do um | |/sid/ |popcon.php? |/s/ |ficheiro de log| |syslog-summary) |package= |syslog-summary.html) |do syslog | | |syslog-summary)| | | |-------------------+---------------+----------------------+---------------| | | | |analisador de | |lire (http:// |V:0, I:1 (http:|5040 (http:// |registos cheiro| |packages.debian.org|//qa.debian.org|packages.qa.debian.org|de | |/sid/lire) |/popcon.php? |/l/lire.html) |funcionalidades| | |package=lire) | |e gerador de | | | | |relatrios | |-------------------+---------------+----------------------+---------------| | |V:0, I:1 (http:| | | |fwlogwatch (http://|//qa.debian.org|440 (http:// |analisador de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|log da firewall| |/sid/fwlogwatch) |package= |/f/fwlogwatch.html) | | | |fwlogwatch) | | |

|-------------------+---------------+----------------------+---------------| | |V:0, I:4 (http:| |monitoriza e | |squidview (http:// |//qa.debian.org|198 (http:// |analisa | |packages.debian.org|/popcon.php? |packages.qa.debian.org|ficheiros | |/sid/squidview) |package= |/s/squidview.html) |access.log do | | |squidview) | |squid | |-------------------+---------------+----------------------+---------------| | |V:0, I:2 (http:| | | |visitors (http:// |//qa.debian.org|293 (http:// |analisador de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|log do servidor| |/sid/visitors) |package= |/v/visitors.html) |web rpido | | |visitors) | | | |-------------------+---------------+----------------------+---------------| | | | |visualizador de| | | | |ficheiros de | |swatch (http:// |V:0, I:1 (http:|112 (http:// |registo com | |packages.debian.org|//qa.debian.org|packages.qa.debian.org|correspondncia| |/sid/swatch) |/popcon.php? |/s/swatch.html) |de expresses | | |package=swatch)| |regulares, | | | | |destaque, e | | | | |hooks. | |-------------------+---------------+----------------------+---------------| | | | |Mutilador de | |crm114 (http:// |V:0, I:1 (http:|1066 (http:// |Expresses | |packages.debian.org|//qa.debian.org|packages.qa.debian.org|Regulares | |/sid/crm114) |/popcon.php? |/c/crm114.html) |Controlvel e | | |package=crm114)| |Filtro de Spam | | | | |(CRM114) | |-------------------+---------------+----------------------+---------------| | |V:0, I:1 (http:| | | |icmpinfo (http:// |//qa.debian.org|84 (http:// |interpretar | |packages.debian.org|/popcon.php? |packages.qa.debian.org|mensagens ICMP | |/sid/icmpinfo) |package= |/i/icmpinfo.html) | | | |icmpinfo) | | | +--------------------------------------------------------------------------+ Nota CRM114 (http://crm114.sourceforge.net/) disponibiliza uma infraestrutura de linguagem para escrever filtros fuzzy com a biblioteca de expresses regulares TRE (http://www.laurikari.net/ tre/) . O seu uso popular o filtro de spam de mail, mas pode ser usado como um analisador de registos. 9.2.3. Gravar as actividades da shell de modo limpo O uso simples de script(1) (veja Seco1.4.9, Gravar as actividades da shell) para gravar a actividade da shell produz um ficheiro com caracteres de controle. Isto pode ser evitado ao usar o col(1) como o seguinte. $ script Script iniciado, ficheiro typescript Faa o que tem a fazer ... e carregue em Ctrl-D para terminar o script. $ col -bx <typescript >ficheiro_limpo $ vim ficheiro_limpo

Se voc no tem o script (por exemplo, durante o processo de arranque no initramfs), ento use antes o seguinte. $ sh -i 2>&1 | tee typescript Dica Alguns emuladores de terminal x como o gnome-terminal podem gravar. Voc pode desejar estender o buffer de linhas para ter deslocamento para trs. Dica Voc pode usar o screen(1) com "^A H" (veja Seco9.1.2, ligaes de teclas para o comando screen) para executar a gravao da consola. Dica Voc pode usar o emacs(1) com "M-x shell", "M-x eshell", ou "M-x term" para executar gravao da consola. Pode usar mais tarde "C-x C-w" para escrever o buffer num ficheiro. 9.2.4. Amostragem personalizada de dados em texto Apesar de ferramentas paginadoras com o more(1) e less(1) (veja Seco1.4.5, O pager) e ferramentas personalizadas para destaque e formatao (veja Seco11.1.8, Destacar e formatar dados de texto simples) poderem mostrar dados de texto muito bem, os editores de objectivos gerais (veja Seco1.4.6, O editor de texto) so mais versteis e personalizveis. Dica Para o vim(1) e o seu alias de modo paginador view(1), ":set hls" activa pesquisas destacadas. 9.2.5. Amostragem personalizada de hora e data O formato de amostragem predefinido da hora e data pelo comando "ls -l" depende do locale (veja Seco1.2.6, Marcas temporais (Timetamps) para o valor). A varivel "$LANG" referida primeiro e pode ser sobreposta pela varivel "$LC_TIME". O formato mostrado predefinido actual para cada locale depende da verso da biblioteca C standard (o pacote libc6) usada. Isto , lanamentos diferentes de Debian tiveram diferentes predefinies. Se voc deseja realmente personalizar este formato de amostragem da hora e data para alm do locale, voc deve definir o valor de estilo de hora com o argumento "--time-style" ou com o valor "$TIME_STYLE" (veja ls(1), date(1), "info coreutils 'ls invocation'"). Tabela 9.4. Mostrar exemplos de hora e data para o comando "ls -l" para wheezy +---------------------------------------------------------------+

|valor do estilo de |localizao |mostra a hora e data | |hora | | | |-------------------+-------------+-----------------------------| |iso |qualquer |01-19 00:15 | |-------------------+-------------+-----------------------------| |long-iso |qualquer |2009-01-19 00:15 | |-------------------+-------------+-----------------------------| |full-iso |qualquer |2009-01-19 00:15:16.000000000| | | |+0900 | |-------------------+-------------+-----------------------------| |locale |C |Jan 19 00:15 | |-------------------+-------------+-----------------------------| |locale |en_US.UTF-8 |Jan 19 00:15 | |-------------------+-------------+-----------------------------| |locale |es_ES.UTF-8 |ene 19 00:15 | |-------------------+-------------+-----------------------------| |+%d.%m.%y %H:%M |qualquer |19.01.09 00:15 | |-------------------+-------------+-----------------------------| |+%d.%b.%y %H:%M |C ou |19.Jan.09 00:15 | | |en_US.UTF-8 | | |-------------------+-------------+-----------------------------| |+%d.%b.%y %H:%M |es_ES.UTF-8 |19.ene.09 00:15 | +---------------------------------------------------------------+ Dica Voc pode eliminar a escrita de opes longas na linha de comandos usando nomes alternativos de comandos, ex. "alias ls='ls --time-style= +%d.%m.%y\ %H:%M'" (veja Seco1.5.9, Comando alias). Dica ISO 8601 (http://en.wikipedia.org/wiki/ISO_8601) seguido por estes formatos iso. 9.2.6. Echo de shell colorido A escrita da shell nos terminais mais modernos pode ser colorida usando cdigo de escape de ANSI (http://en.wikipedia.org/wiki/ ANSI_escape_code) (veja "/usr/share/doc/xterm/ctlseqs.txt.gz"). Por exemplo, tente o seguinte: $ $ $ $ RED=$(printf "\x1b[31m") NORMAL=$(printf "\x1b[0m") REVERSE=$(printf "\x1b[7m") echo "${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}"

9.2.7. Comandos coloridos Comandos coloridos so teis para inspeccionar os seus resultados no ambiente interactivo. Eu inclu o seguinte no meu "~/.bashrc". if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=always' alias ll='ls --color=always -l' alias la='ls --color=always -A'

alias alias alias alias alias alias else

less='less -R' ls='ls --color=always' grep='grep --color=always' egrep='egrep --color=always' fgrep='fgrep --color=always' zgrep='zgrep --color=always'

alias ll='ls -l' alias la='ls -A' fi O uso de alias limita os efeitos coloridos da utilizao interactiva do comando. Tem vantagem sobre exportar a varivel de ambiente "export GREP_OPTIONS='--color=auto'" porque a cor pode ser vista sob programas paginadores como o less(1). Se voc deseja suprimir a cor quando canaliza (pipe) para outros programas, use antes "--color=auto" no exemplo em cima para "~ /.bashrc". Dica Voc pode desligar estes nomes alternativos coloridos no ambiente interactivo ao invocar a shell com "TERM=dumb bash". 9.2.8. Recordando as actividades do editor para repeties complexas Voc pode recordar as actividades do editor para repeties complexas. Para o Vim (http://en.wikipedia.org/wiki/Vim_(text_editor)) , como se segue. * "qa": inicia a gravao de caracteres teclados no registo nomeado "a". * ... actividades do editor * "q": termina a gravao de caracteres escritos * "@a": executa o contedo do registo "a". Para Emacs (http://en.wikipedia.org/wiki/Emacs) , como se segue * "C-x (": comea a definir uma macro de teclado. * ... actividades do editor * "C-x )": termina de definir uma macro de teclado. * "C-x e": executa uma macro de teclado. 9.2.9. Gravar a imagem grfica de uma aplicao X Existem algumas maneiras de gravar a imagem grfica de uma aplicao X, incluindo um mostrador xterm. Tabela 9.5. Lista de ferramentas grficas de manipulao de imagens +-----------------------------------------------------------------+ |pacote |popcon |tamanho |comando|

|-------------------+--------------+----------------------+-------| |xbase-clients |I:369 (http://| | | |(http:// |qa.debian.org/|62 (http:// | | |packages.debian.org|popcon.php? |packages.qa.debian.org|xwd(1) | |/sid/xbase-clients)|package= |/x/xbase-clients.html)| | | |xbase-clients)| | | |-------------------+--------------+----------------------+-------| | |V:126, I:468 | | | |gimp (http:// |(http:// |15578 (http:// |Menu | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|GUI | |/sid/gimp) |popcon.php? |/g/gimp.html) | | | |package=gimp) | | | |-------------------+--------------+----------------------+-------| | |V:248, I:502 | | | |imagemagick (http:/|(http:// |419 (http:// | | |/ |qa.debian.org/|packages.qa.debian.org|import | |packages.debian.org|popcon.php? |/i/imagemagick.html) |(1) | |/sid/imagemagick) |package= | | | | |imagemagick) | | | |-------------------+--------------+----------------------+-------| | |V:3, I:15 | | | |scrot (http:// |(http:// |80 (http:// |scrot | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|(1) | |/sid/scrot) |popcon.php? |/s/scrot.html) | | | |package=scrot)| | | +-----------------------------------------------------------------+ 9.2.10. Gravar alteraes em ficheiros de configurao Existem ferramentas especializadas para gravar alteraes em ficheiros de configurao com a ajuda do sistema DVCS. Tabela 9.6. Lista de pacotes para gravar histrico de configurao em VCS +--------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-----------------------| | | | |armazenar ficheiro s de | | | | |configurao e os seus | | | | |meta-dados com Git | | |V:19, I:23 | |(http://en.wikiped ia.org| |etckeeper (http:// |(http:// |243 (http:// |/wiki/Git_(softwar e)) | |packages.debian.org|qa.debian.org|packages.qa.debian.org|(predefinido), Mer curial| |/sid/etckeeper) |/popcon.php? |/e/etckeeper.html) |(http://en.wikiped ia.org| | |package= | |/wiki/Mercurial_ | | |etckeeper) | |(software)) , ou B azaar |

| | | |(http://en.wikiped ia.org| | | | |/wiki/Bazaar_(soft ware))| | | | |(novo) | |-------------------+-------------+----------------------+-----------------------| | |V:1, I:1 | |armazenar ficheiro s de | |changetrack (http:/|(http:// |148 (http:// |configurao com RCS | |/ |qa.debian.org|packages.qa.debian.org|(http://en.wikiped ia.org| |packages.debian.org|/popcon.php? |/c/changetrack.html) |/wiki/ | |/sid/changetrack) |package= | |Revision_Control_S ystem)| | |changetrack) | |(antigo) | +--------------------------------------------------------------------------------+ Eu recomendo usar o pacote etckeeper com o git(1) o qual pe o "/ etc" inteiro sob controle de VCS. O seu guia de instalao e tutorial podem ser encontrados em "/usr/share/doc/etckeeper/ README.gz". Essencialmente , executar "sudo repositrio git para "/etc" tal Seco10.9.5, Git para gravar com scripts hook especiais para etckeeper init" inicializa o como o processo explicado em o histrico de configurao mas configuraes mais cuidadosas.

Conforme voc muda a sua configurao, pode usar o git(1) normalmente para grav-la. Ele tambm grava as alteraes automaticamente de todas as vezes que voc executa comandos de gesto de pacote. Dica Voc pode explorar o histrico de alteraes de "/etc" ao executar "sudo GIT_DIR=/etc/.git gitk" com viso clara para novos pacotes instalados, pacotes removidos, e alteraes da verso de pacotes. 9.3. Dicas de armazenamento de dados Arrancar o seu sistema com live CDs (http://en.wikipedia.org/wiki /Live_CD) de Linux ou CDs de instalao de debian (http:// www.debian.org/releases/stable/debian-installer/) em modo de recuperao torna fcil para si reconfigurar o armazenamento de dados no seu dispositivo de arranque. Veja tambm Seco10.3, Os dados binrios. 9.3.1. Utilizao do espao em disco A utilizao do espao em disco pode ser analisada por programas disponibilizados pelos pacotes mount, coreutils e xdu:Lista de comandos de converso de TAB dos pacotes bsdmainutils e coreutils

* mount(8) reporta todos os sistemas de ficheiros montados (= discos). * df(1) reporta a utilizao do espao em disco para o sistema de ficheiros. * du(1) reporta a utilizao do espao em disco para a rvore do directrio. Dica Pode alimentar a sada de du(8) a xdu(1x) para produzir a sua apresentao grfica e interactiva com "du -k . |xdu", "sudo du -k -x / |xdu", etc. 9.3.2. Configurao das parties do disco Para configurao de parties de disco (http://en.wikipedia.org/ wiki/Disk_partitioning) , apesar do fdisk(8) ser considerado o standard, o parted(8) merece alguma ateno. "Dados de particionamento do disco", "Tabela de parties", "Mapa de parties", e "Etiqueta do disco" so todos sinnimos. A maioria dos PCs usa o esquema clssico do Master Boot Record (MBR) (http://en.wikipedia.org/wiki/Master_boot_record) para manter os dados de parties do disco (http://en.wikipedia.org/ wiki/Disk_partitioning) no primeiro sector, isto , LBA (http:// en.wikipedia.org/wiki/Logical_block_addressing) sector 0 (512 bytes). Nota Alguns PCs novos com Extensible Firmware Interface (EFI) (http:// en.wikipedia.org/wiki/Extensible_Firmware_Interface) , incluindo os Macs baseados em Intel, usam o esquema GUID Partition Table (GPT) (http://en.wikipedia.org/wiki/GUID_Partition_Table) para manter os dados de parties do disco (http://en.wikipedia.org/ wiki/Disk_partitioning) no no primeiro sector. Apesar do fdisk(8) ter sido o standard como ferramenta de particionamento de disco, o parted(8) est a substitu-lo. Tabela 9.7. Lista de pacotes de gesto de parties do disco +-----------------------------------------------------------------------------------+ |pacote |popcon |tamanho |GPT |descrio | |-------------------+-------------+----------------------+---------+----------------| | |V:902, I:999 | | |vrios | |util-linux (http://|(http:// |1603 (http:// | |utilitrio s de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|No |sistema in cluindo| |/sid/util-linux) |/popcon.php? |/u/util-linux.html) |suportado|fdisk(8) e cfdisk| | |package= | | |(8)

| |util-linux) | | | | |-------------------+-------------+----------------------+---------+----------------| | |V:17, I:169 | | |GNU Part ed | |parted (http:// |(http:// |267 (http:// | |programa de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Suportado|redimens ionamento| |/sid/parted) |/popcon.php? |/p/parted.html) | |de parties do | | |package= | | |disco | | |parted) | | | | |-------------------+-------------+----------------------+---------+----------------| | |V:29, I:173 | | | | |gparted (http:// |(http:// |6045 (http:// | |Editor d e | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Suportado|parties do | |/sid/gparted) |/popcon.php? |/g/gparted.html) | |GNOME ba seado na | | |package= | | |libparte d | | |gparted) | | | | |-------------------+-------------+----------------------+---------+----------------| | |V:3, I:15 | | | | |gnu-fdisk (http:// |(http:// |215 (http:// | |Substituies GNU| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Suportado|da conso la fdisk | |/sid/gnu-fdisk) |/popcon.php? |/g/gnu-fdisk.html) | |(8), cfd isk(8), | | |package= | | |etc. | | |gnu-fdisk) | | | | |-------------------+-------------+----------------------+---------+----------------| | |V:1, I:8 | | | | |gdisk (http:// |(http:// |736 (http:// | |editor d e | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Suportado|parties pa ra o | |/sid/gdisk) |/popcon.php? |/g/gdisk.html) | |disco GP T | | |package= | | | | | |gdisk) | | | | |-------------------+-------------+----------------------+---------+----------------| |

|V:0, I:2 | | |sincroni | |gptsync (http:// |(http:// |72 (http:// | |tabela d e | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Suportado|parties MB R | |/sid/gptsync) |/popcon.php? |/g/gptsync.html) | |clssica c om a | | |package= | | |GPT | | |gptsync) | | | | |-------------------+-------------+----------------------+---------+----------------| | |V:11, I:21 | | | | |kpartx (http:// |(http:// |104 (http:// | |programa para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Suportado|criar ma peamentos| |/sid/kpartx) |/popcon.php? |/k/kpartx.html) | |de dispo sitivo | | |package= | | |para par ties | | |kpartx) | | | | +-----------------------------------------------------------------------------------+ za a Cuidado Apesar do parted(8) afirmar tambm criar e redimensionar sistemas de ficheiros, mais seguro fazer tais coisas usando ferramentas especializadas e com melhor manuteno como o mkfs(8) (mkfs.msdos (8), mkfs.ext2(8), mkfs.ext3(8), ) e resize2fs(8). Nota De modo a mudar entre GPT (http://en.wikipedia.org/wiki/ GUID_Partition_Table) e MBR (http://en.wikipedia.org/wiki/ Master_boot_record) , voc precisa de apagar os primeiros blocos de contedo do disco directamente (veja Seco10.3.6, Limpar contedo de ficheiro) e usar "parted /dev/sdx mklabel gpt" ou "parted /dev/sdx mklabel msdos" para o definir. Por favor note que "msdos" usado aqui para o MBR (http://en.wikipedia.org/wiki /Master_boot_record) . 9.3.3. Aceder a partio usando UUID Apesar da reconfigurao da sua partio ou ordem de activao de medias de armazenamento amovveis poder apresentar nomes diferentes para as parties, voc pode aceder-lhes de modo consistente. Isto tambm til se voc tem mltiplos discos e a sua BIOS no lhes fornecer nomes de dispositivo consistentes. * mount(8) com a opo "-U" pode montar um dispositivo de bloco usando o UUID (http://en.wikipedia.org/wiki/ Universally_Unique_Identifier) , em vez de usar o seu nome de ficheiro tal como "/dev/sda3".

* "/etc/fstab" (veja fstab(5)) pode usar UUID (http:// en.wikipedia.org/wiki/Universally_Unique_Identifier) . * Os gestores de arranque (Seco3.3, Estgio 2: o gestor de arranque) tambm podem usar UUID (http://en.wikipedia.org/ wiki/Universally_Unique_Identifier) . Dica

Voc pode testar o UUID (http://en.wikipedia.org/wiki/ Universally_Unique_Identifier) de um dispositivo especial de bloco com blkid(8). Dica Ns de dispositivos de dispositivos como medias de armazenamento amovveis podem ser tornados estticos ao usar regras do udev (http://www.reactivated.net/writing_udev_rules.html) , caso necessrio. Veja Seco3.5.11, O sistema udev. 9.3.4. Configurao do sistema de ficheiros Para o sistema de ficheiro ext3 (http://en.wikipedia.org/wiki/ Ext3) , o pacote e2fsprogs disponibiliza o seguinte. * mkfs.ext3(8) para criar um novo sistema de ficheiros ext3 (http://en.wikipedia.org/wiki/Ext3) * fsck.ext3(8) para verificar e reparar um sistema de ficheiros ext3 (http://en.wikipedia.org/wiki/Ext3) existente * tune2fs(8) para configurar o super-bloco do sistema de ficheiros ext3 (http://en.wikipedia.org/wiki/Ext3) Os comandos mkfs(8) e fsck(8) so disponibilizados pelo pacote e2fsprogs como frontends para vrios programas dependentes do sistema de ficheiros (mkfs.fstype e fsck.fstype). Para o sistema de ficheiros ext3 (http://en.wikipedia.org/wiki/Ext3) existem o mkfs.ext3(8) e o fsck.ext3(8) (esto ligados por hardlink aos mke2fs(8) and e2fsck(8)). Esto disponveis comandos semelhantes para cada sistema de ficheiros suportado pelo Linux. Tabela 9.8. Lista de pacotes de gesto de sistemas de ficheiros +----------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+--------------+----------------------+------------------------| | | | |utilitrios para os | | |V:596, I:999 | |sistemas de fiche iros | | |(http:// | |ext2 (http:// | |e2fsprogs (http:// |qa.debian.org/|2364 (http:// |en.wikipedia.org/

wiki/ | |packages.debian.org|popcon.php? |packages.qa.debian.org|Ext2) /ext3 (http :// | |/sid/e2fsprogs) |package= |/e/e2fsprogs.html) |en.wikipedia.org/ wiki/ | | |e2fsprogs) | |Ext3) /ext4 (http :// | | | | |en.wikipedia.org/ wiki/ | | | | |Ext4) | |-------------------+--------------+----------------------+------------------------| | |V:10, I:42 | |utilitrios para o | |reiserfsprogs |(http:// |1200 (http:// |sistema de fichei ros | |(http:// |qa.debian.org/|packages.qa.debian.org|Reiserfs (http:// | |packages.debian.org|popcon.php? |/r/reiserfsprogs.html)|en.wikipedia.org/ wiki/ | |/sid/reiserfsprogs)|package= | |Reiserfs) | | |reiserfsprogs)| | | |-------------------+--------------+----------------------+------------------------| | |V:49, I:510 | |utilitrios para o | | |(http:// | |sistema de fichei ros FAT | |dosfstools (http://|qa.debian.org/|201 (http:// |(http://en.wikipe dia.org/| |packages.debian.org|popcon.php? |packages.qa.debian.org|wiki/ | |/sid/dosfstools) |package= |/d/dosfstools.html) |File_Allocation_T able) . | | |dosfstools) | |(Microsoft: MS-DO S, | | | | |Windows) | |-------------------+--------------+----------------------+------------------------| | |V:26, I:85 | | | |xfsprogs (http:// |(http:// |3078 (http:// |utilitrios para o | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|sistema de fichei ros XFS | |/sid/xfsprogs) |popcon.php? |/x/xfsprogs.html) |(http://en.wikipe dia.org/| | |package= | |wiki/XFS) . (SGI: IRIX) | | |xfsprogs) | | | |-------------------+--------------+----------------------+------------------------| | |V:177, I:485 | |utilitrios para o | |ntfs-3g (http:// |(http:// |1468 (http:// |sistema de fichei

ros NTFS| |packages.debian.org|qa.debian.org/|packages.qa.debian.org|(http://en.wikipe dia.org/| |/sid/ntfs-3g) |popcon.php? |/n/ntfs-3g.html) |wiki/NTFS) . (Mic rosoft: | | |package= | |Windows NT, ) | | |ntfs-3g) | | | |-------------------+--------------+----------------------+------------------------| | |V:4, I:19 | |utilitrios para o | |jfsutils (http:// |(http:// |1024 (http:// |sistema de fichei ros JFS | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|(http://en.wikipe dia.org/| |/sid/jfsutils) |popcon.php? |/j/jfsutils.html) |wiki/JFS_(file_sy stem)) .| | |package= | |(IBM: AIX, OS/2) | | |jfsutils) | | | |-------------------+--------------+----------------------+------------------------| | |V:0, I:6 | |utilitrios para o | |reiser4progs (http:|(http:// |1296 (http:// |sistema de fichei ros | |// |qa.debian.org/|packages.qa.debian.org|Reiser4 (http:// | |packages.debian.org|popcon.php? |/r/reiser4progs.html) |en.wikipedia.org/ wiki/ | |/sid/reiser4progs) |package= | |Reiser4) | | |reiser4progs) | | | |-------------------+--------------+----------------------+------------------------| | | | |utilitrios para os | | |V:0, I:9 | |sistemas de fiche iros HFS| | |(http:// | |(http://en.wikipe dia.org/| |hfsprogs (http:// |qa.debian.org/|317 (http:// |wiki/ | |packages.debian.org|popcon.php? |packages.qa.debian.org|Hierarchical_File _System)| |/sid/hfsprogs) |package= |/h/hfsprogs.html) |e HFS Plus (http: // | | |hfsprogs) | |en.wikipedia.org/ wiki/ | | | | |HFS_Plus) . (Appl e: Mac | | | | |OS) | |-------------------+--------------+----------------------+------------------------| | |V:10, I:21 | |utilitrios para o

| |btrfs-tools (http:/|(http:// |2250 (http:// |sistema de fichei ros | |/ |qa.debian.org/|packages.qa.debian.org|btrfs (http:// | |packages.debian.org|popcon.php? |/b/btrfs-tools.html) |en.wikipedia.org/ wiki/ | |/sid/btrfs-tools) |package= | |Btrfs) | | |btrfs-tools) | | | |-------------------+--------------+----------------------+------------------------| | |V:1, I:12 | | | |zerofree (http:// |(http:// |14 (http:// |programa para zer ar | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|blocos livres de sistemas| |/sid/zerofree) |popcon.php? |/z/zerofree.html) |de ficheiros ext2 /3 | | |package= | | | | |zerofree) | | | +----------------------------------------------------------------------------------+ Dica O sistema de ficheiros Ext4 (http://en.wikipedia.org/wiki/Ext4) o sistema de ficheiros predefinido para o sistema Linux e a utilizao fortemente recomendada a menos que tenha razes especificas para no o fazer. Dica O sistema de ficheiros Btrfs (http://en.wikipedia.org/wiki/Btrfs) est disponvel no kernel Linux 3.2 (Debian wheezy). esperado que seja o prximo sistema de ficheiros predefinido aps o sistema de ficheiros ext4. Ateno No deve utilizar o sistema de ficheiros Btrfs para os seus dados crticos antes de este obter a funcionalidade de fsck(8) do kernel ao vivo e suporte de gestores de arranque. Dica Algumas ferramentas permitem acesso a sistemas de ficheiros sem suporte do kernel do Linux (veja Seco10.3.2, Manipular ficheiros sem montar o disco). 9.3.5. Criao do sistema de ficheiros e verificao de integridade O comando mkfs(8) cria o sistema de ficheiros num sistema Linux. O comando fsck(8) disponibiliza a verificao de integridade e reparao do sistema de ficheiros num sistema Linux.

Cuidado Geralmente no seguro correr o fsck em sistemas de ficheiros montados. Dica Verifique os ficheiros em "/var/log/fsck/" para os resultados do comando fsck(8) executado a partir do script de arranque. Dica Use "shutdown -F -r now" para forar a execuo do comando fsck (8) em segurana em todos os sistemas de ficheiros incluindo o sistema de ficheiros raiz ao reiniciar a mquina. Veja o manual do shutdown(8) para mais detalhes. 9.3.6. Optimizao do sistema de ficheiros por opes de montagem A configurao esttica bsica dos sistemas de ficheiros dada por "/etc/fstab". Por exemplo, # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 UUID=709cbe4c-80c1-56db-8ab1-dbce3146d2f7 / ext4 noatime,errors=remount-ro 0 1 UUID=817bae6b-45d2-5aca-4d2a-1267ab46ac23 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 Dica Pode ser utilizado o UUID (http://en.wikipedia.org/wiki/ Universally_Unique_Identifier) (veja Seco9.3.3, Aceder a partio usando UUID) para identificar um dispositivo de bloco em vez do seu vulgar nome de dispositivo de bloco, tal como "/dev /sda1", "/dev/sda2". A performance e caractersticas de um sistema de ficheiros pode ser optimizada pelas opes de montagem usadas (veja fstab(5) e mount(8)). As mais notveis so as seguintes. * A opo "defaults" implica opes predefinidas: "rw,suid,dev,exec,auto,nouser,async". (geral) * A opo "noatime" ou "relatime" muito eficaz para acelerar o acesso de leitura. (geral) * A opo "user" permite que um utilizador normal monte o sistema de ficheiros. Esta opo implica a combinao com a opo "noexec,nosuid,nodev". (geral, usada para CDs e disquetes) * A combinao de opes "noexec,nodev,nosuid" usada para melhorar a segurana. (geral) * A opo "noauto" limita a montagem apenas por operao explcita. (geral) * A opo "data=journal" para ext3fs pode melhorar a integridade dos dados contra falhas de energia com alguma

perda na velocidade de gravao. Dica Voc precisa de disponibilizar o parmetro de boot do kernel (veja Seco3.3, Estgio 2: o gestor de arranque), ex. "rootflags=data=journal" para implantar um modo de journal no predefinido para o sistema de ficheiros raiz. Para lenny, o modo de journal predefinido "rootflags=data=ordered". Para squeeze, "rootflags=data=writeback". 9.3.7. Optimizao do sistema de ficheiros atravs do superblock As caractersticas de um sistema de ficheiros podem ser optimizadas via o seu super-bloco usando o comando tune2fs(8). * A execuo de "sudo tune2fs -l /dev/hda1" mostra o contedo do super-bloco do sistema de ficheiros em "/dev/hda1". * A execuo de "sudo tune2fs -c 50 /dev/hda1" muda a frequncia das verificaes do sistema de ficheiros (execuo do fsck durante o arranque) para cada 50 arranques em "/dev/ hda1". * A execuo de "sudo tune2fs -j /dev/hda1" adiciona capacidade de journal ao sistema de ficheiros, isto , converso de ext2 (http://en.wikipedia.org/wiki/Ext2) para ext3 (http:// en.wikipedia.org/wiki/Ext3) em "/dev/hda1". (Faa isto no sistema de ficheiros desmontado.) * A execuo de "sudo tune2fs -O extents,uninit_bg,dir_index / dev/hda1 && fsck -pf /dev/hda1" converte-o de ext3 (http:// en.wikipedia.org/wiki/Ext3) para ext4 (http:// en.wikipedia.org/wiki/Ext4) em "/dev/hda1". (Faa isto no sistema de ficheiros desmontado.) Ateno A converso do sistema de ficheiros do dispositivo de arranque para ext4 (http://en.wikipedia.org/wiki/Ext4) deve ser evitada at que o GRUB boot loader suporte bem o sistema de ficheiros ext4 (http://bugs.debian.org/511121) e o kernel Linux instalado seja mais recente que 2.6.30. Dica Apesar do seu nome, o tune2fs(8) no funciona apenas no sistema de ficheiros ext2 (http://en.wikipedia.org/wiki/Ext2) , mas tambm nos sistemas de ficheiros ext3 (http://en.wikipedia.org/ wiki/Ext3) e ext4 (http://en.wikipedia.org/wiki/Ext4) . 9.3.8. Optimizao do disco rgido Ateno Por favor verifique o seu hardware e leia o manual do hdparam(8) antes de brincar com a configurao do disco rgido porque isto pode ser bastante perigoso para a integridade dos dados. Voc pode testar a velocidade de acesso ao disco de um disco

rgido, p.e. "/dev/hda", por "hdparm -tT /dev/hda". Para algum disco rgido ligado com (E)IDE, voc pode aceler-lo com "hdparm -q -c3 -d1 -u1 -m16 /dev/hda" ao activar o suporte a "(E)IDE 32-bit I/O", activando a flag "using_dma", definindo a flag "interrupt-unmask", e definindo o "multiple 16 sector I/O" (perigoso!). Voc pode testar a funcionalidade de cache de escrita de um disco rgido, por exemplo "/dev/sda", com "hdparm -W /dev/sda". Voc pode desactivar a sua funcionalidade de cache de escrita com "hdparm -W 0 /dev/sda". Voc pode ser capaz de ler CDROMs muito pressionados em drives de CDROM modernas de alta velocidade ao abrand-la com "setcd -x 2". 9.3.9. Optimizao de disco de estado slido (SSD) O desempenho e desgaste do disco de estado slido (SSD) (http:// en.wikipedia.org/wiki/Solid-state_drive) podem ser optimizados como se segue. * Utilize o kernel Linux mais recente. (>= 3.2) * Reduz as escritas em disco para acessos de leitura ao disco. o Defina a opo de mount "noatime" ou "relatime" em /etc/ fstab. * Activar o comando TRIM (http://en.wikipedia.org/wiki/TRIM) o Defina a opo "discard", do mount, em /etc/fstab para os sistemas de ficheiross ext4, partio swap, Btrfs, etc. Veja fstab(5). o Para LVM (http://en.wikipedia.org/wiki/ Logical_Volume_Manager_(Linux)) defina a opo "discard em /etc/lvm/lvm.conf. Veja lvm.conf(5). o Para dm-crypt (http://en.wikipedia.org/wiki/Dm-crypt) veja a opo "discard" em /etc/crypttab. Veja crypttab(5) . * Activar o esquema de alocao de espao em disco optimizado para SSD. o Para Btrfs defina a opo "ssd", de mount, em /etc/fstab. * Para computadores portteis fazer o sistema esvaziar os dados para o disco a cada 10 minutos. o Defina a opo, de mount,"commit=600" em /etc/fstab. Veja fstab(5). o Faa o pm-utils utilizar o laptop-mode mesmo quando ligado corrente. Veja Debian BTS #659260 (http:// bugs.debian.org/659260) . Ateno Alterar o intervalo de esvaziamento dos normais 5 segundos para

10 minutos torna o seus dados vulnerveis a falhas de alimentao. 9.3.10. Usar SMART para prever falhas no disco rgido Voc pode monitorizar e registar em log o seu disco rgido que compatvel com SMART (http://en.wikipedia.org/wiki/S.M.A.R.T.) com o daemon smartd(8). 1. Activar a funo SMART (http://en.wikipedia.org/wiki/ S.M.A.R.T.) na BIOS (http://en.wikipedia.org/wiki/BIOS) . 2. Instalar o pacote smartmontools 3. Identificar os seus discos rgidos ao list-los com df(1). * Vamos assumir uma drive de disco rgido a ser monitorizada como "/dev/hda". 4. Verifique o resultado de "smartctl -a /dev/hda" para ver se a funcionalidade SMART (http://en.wikipedia.org/wiki/ S.M.A.R.T.) est actualmente ligada. * Se no, active-o com "smartctl -s on -a /dev/hda". 5. Active o daemon smartd(8) ao correr o seguinte. * retire a marca de comentrio na linha "start_smartd=yes" no ficheiro "/etc/default/smartmontools" * reinicie o daemon smartd(8) com "sudo /etc/init.d/ smartmontools restart". Dica O daemon smartd(8) pode ser personalizado com o ficheiro /etc/ smartd.conf incluindo em como ser notificado dos avisos. 9.3.11. Especifique o directrio de armazenamento temporrio atravs de $TMPDIR As aplicaes criam ficheiros temporrios normalmente sob o directrio de armazenamento temporrio "/tmp". Se "/tmp" no disponibilizar espao suficiente, pode especificar um directrio de espao temporrio, a programas bem-comportados, atravs da varivel $TMPDIR. 9.3.12. Expandir o espao de armazenamento utilizvel via LVM Para parties criadas em Logical Volume Manager (LVM) (http:// en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) (funcionalidade do Linux) durante a instalao, elas podem ser redimensionadas facilmente ao concatenar extenses nelas ou ao truncar extenses delas sobre mltiplos dispositivos de armazenamento sem grandes reconfiguraes do sistema. Cuidado A implantao do sistema LVM actual pode degradar a garantia contra corrupo do sistema de ficheiros oferecida pelos sistemas

de ficheiros com journal como o ext3fs a menos que a performance do sistema seja sacrificada ao desactivar a cache de escrita no disco rgido. 9.3.13. Expandir o espao de armazenamento utilizvel ao montar outra partio Se tiver uma partio vazia (ex. "/dev/sdx"), voc pode format-la com mkfs.ext3(1) e mount(8) para um directrio onde precise de mais espao. (necessita copiar os contedos originais.) $ $ $ $ $ sudo sudo sudo sudo sudo mv work-dir old-dir mkfs.ext3 /dev/sdx mount -t ext3 /dev/sdx work-dir cp -a old-dir/* work-dir rm -rf old-dir

Dica Voc pode em alternativa montar um ficheiro de imagem de disco vazio (veja Seco10.2.5, Criar um ficheiro de imagem de disco vazio) como um dispositivo de loop (veja Seco10.2.3, Montar o ficheiro de imagem de disco). A utilizao real do disco cresce com os dados reais armazenados. 9.3.14. Expandir o espao de armazenamento utilizvel ao fazer bind-mount para outro directrio Se tiver um directrio vazio (p.e. "/caminho/para/ directrio-vazio") com espao utilizvel noutra partio, voc pode fazer mount(8) para o mesmo com a opo "--bind para um directrio (p.e., "directrio-de-trabalho") onde necessite de mais espao. $ sudo mount --bind /caminho/para/directrio-vazio directrio-de-trabalho 9.3.15. Expandir o espao de armazenamento utilizvel usando links simblicos Dica Este mtodo depreciado. Em vez disso, se possvel, utilize Seco9.3.14, Expandir o espao de armazenamento utilizvel ao fazer bind-mount para outro directrio Se tem um directrio vazio (ex. "/caminho/para/directrio-vazio") noutra partio com espao utilizvel, voc pode criar um link simblico para o directrio com o ln(8). $ $ $ $ $ sudo sudo sudo sudo sudo mv work-dir old-dir mkdir -p /path/to/emp-dir ln -sf /path/to/emp-dir work-dir cp -a old-dir/* work-dir rm -rf old-dir

Ateno No utilize uma "ligao simblica para um directrio" para directrios geridos pelo sistema, tais como o "/opt". Tal ligao

simblica poder ser sobreescrita quando o sistema for actualizado. Cuidado Algum software pode no funcionar bem com "links simblicos para directrios". 9.3.16. Expandir o espao de armazenamento utilizvel usando aufs Se voc tem espao utilizvel noutra partio (ex. "/caminho/para /"), voc pode criar um directrio nela e empilh-lo no directrio onde precisa de espao com o aufs (http:// en.wikipedia.org/wiki/Aufs) . $ $ $ $ sudo sudo sudo sudo mv work-dir old-dir mkdir work-dir mkdir -p /path/to/emp-dir mount -t aufs -o br:/path/to/emp-dir:old-dir none work-dir

Cuidado O uso do aufs (http://en.wikipedia.org/wiki/Aufs) para armazenamento de dados a longo termo no boa ideia porque est sob desenvolvimento e as alteraes ao seu desenho podem introduzir problemas. Dica De modo a usar o aufs (http://en.wikipedia.org/wiki/Aufs) , precisam de ser instalados o seu pacote de utilitrio aufs-tools e o pacote de mdulo de kernel para aufs (http://en.wikipedia.org /wiki/Aufs) como o aufs-modules-2.6-amd64. Dica O aufs (http://en.wikipedia.org/wiki/Aufs) usado para disponibilizar um sistema de ficheiros raiz com modo de escrita por muitos projectos modernos de live CD (http://en.wikipedia.org /wiki/Live_CD) . 9.4. Dicas de encriptao de dados Com acesso fsico ao seu PC, qualquer um pode facilmente ganhar privilgios de root e aceder a todos os ficheiros no seu PC (veja Seco4.7.4, Tornar a palavra-passe do root segura). Isto significa que o sistema de palavra passe no login no pode proteger os seus dados privados e sensveis contra um possvel roubo do seu PC. Voc tem que implementar uma tecnologia de encriptao de dados para o fazer. Apesar do GNU privacy guard (http://en.wikipedia.org/wiki/GNU_Privacy_Guard) (veja Seco10.4, Infraestrutura da segurana de dados) poder encriptar ficheiro,consome alguns esforos do utilizador. dm-crypt (http://en.wikipedia.org/wiki/Dm-crypt) e eCryptfs (http://ecryptfs.sourceforge.net/) facilitam a encriptao de dados automtica nativamente atravs de mdulos do kernel Linux com o mnimo de esforo do utilizador. Tabela 9.9. Lista de utilitrios de encriptao de dados

+----------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+---------------+----------------------+-----------------------| | | | |utilitrios para | | |V:40, I:63 | |dispositivos de bloco | | |(http:// | |encriptados (dmcrypt | |cryptsetup (http://|qa.debian.org/ |297 (http:// |(http://en.wikip edia.org| |packages.debian.org|popcon.php? |packages.qa.debian.org|/wiki/Dm-crypt) / LUKS | |/sid/cryptsetup) |package= |/c/cryptsetup.html) |(http://en.wikip edia.org| | |cryptsetup) | |/wiki/ | | | | |Linux_Unified_Ke y_Setup)| | | | |) | |-------------------+---------------+----------------------+-----------------------| | | | |utilitrios para | | | | |dispositivos de bloco | | | | |encriptados (dm-crypt | | |V:3, I:5 (http:| |(http://en.wikip edia.org| |cryptmount (http://|//qa.debian.org|342 (http:// |/wiki/Dm-crypt) / LUKS | |packages.debian.org|/popcon.php? |packages.qa.debian.org|(http://en.wikip edia.org| |/sid/cryptmount) |package= |/c/cryptmount.html) |/wiki/ | | |cryptmount) | |Linux_Unified_Ke y_Setup)| | | | |) com focagem na | | | | |montagem/desmont agem por| | | | |utilizadores nor mais. | |-------------------+---------------+----------------------+-----------------------| |ecryptfs-utils |V:4, I:6 (http:| |utilitrios para | |(http:// |//qa.debian.org|308 (http:// |sistemas de fich eiros em| |packages.debian.org|/popcon.php? |packages.qa.debian.org|pilha encriptado s ( | |/sid/ |package= |/e/ |eCryptfs (http:/ / | |ecryptfs-utils) |ecryptfs-utils)|ecryptfs-utils.html) |ecryptfs.sourcef

orge.net| | | | |/) ) | +----------------------------------------------------------------------------------+ Dm-crypt (http://en.wikipedia.org/wiki/Dm-crypt) um sistema de ficheiros criptogrfico que usa mapeador-de-dispositivo (http:// en.wikipedia.org/wiki/Device_mapper) . O mapeador-de-dispositivo (http://en.wikipedia.org/wiki/Device_mapper) mapeia um dispositivo de bloco para outro. eCryptfs (http://ecryptfs.sourceforge.net/) outro sistema de ficheiros criptogrfico que usa sistema de ficheiros em pilha. Os sistemas de ficheiros em pilha empilham-se a si prprios no topo de um directrio existente de um sistema de ficheiros montado. Cuidado A encriptao de dados custa tempo da CPU e etc. Por favor pese os seus benefcios e custos. Nota O sistema Debian inteiro pode ser instalado num disco encriptado pelo instalador debian (http://en.wikipedia.org/wiki/ Debian-Installer) (lenny ou mais recente) usando dm-crypt (http:/ /en.wikipedia.org/wiki/Dm-crypt) /LUKS (http://en.wikipedia.org/ wiki/Linux_Unified_Key_Setup) e initramfs. Dica Veja Seco10.4, Infraestrutura da segurana de dados para utilitrio de encriptao do espao de utilizador: GNU Privacy Guard (http://en.wikipedia.org/wiki/GNU_Privacy_Guard) . 9.4.1. Encriptao de discos amovveis com dm-crypt/LUKS Voc pode encriptar o contedo de dispositivos de massa amovveis, por exemplo, uma pen USB em "/dev/sdx", usando dm-crypt (http://en.wikipedia.org/wiki/Dm-crypt) /LUKS (http:// en.wikipedia.org/wiki/Linux_Unified_Key_Setup) . Simplesmente formate-a como se segue. # badblocks -c 10240 -s -w -t random -v /dev/sdx # fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup luksOpen /dev/sdx1 sdx1 ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2008-10-04 18:44 control brw-rw---- 1 root disk 254, 0 2008-10-04 23:55 sdx1 # mkfs.vfat /dev/mapper/sdx1 ... # cryptsetup luksClose sdx1

Depois, pode ser montada tal como uma normal em "/media/ <etiqueta_do_disco>", excepo de pedir a palavra-passe (veja Seco10.1.10, Dispositivo de armazenamento amovvel) sob ambientes de trabalho modernos como o GNOME usando gnome-mount(1) . A diferena que todos os dados escritos nela so encriptados. Voc pode alternativamente formatar o meio num formato diferente, por exemplo, ext3 com "mkfs.ext3 /dev/sdx1". Nota Se voc realmente paranico pela segurana dos dados, pode precisar de sobrescrever vrias vezes no exemplo em cima. No entanto esta operao ir consumir muito tempo. 9.4.2. Partio swap encriptada com dm-crypt Vamos assumir que o seu "/etc/fstab" original contm o seguinte. /dev/sda7 swap sw 0 0 Voc pode activar a encriptao da partio swap usando o dm-crypt (http://en.wikipedia.org/wiki/Dm-crypt) com o seguinte. # # # # # aptitude install cryptsetup swapoff -a echo "cswap /dev/sda7 /dev/urandom swap" >> /etc/crypttab perl -i -p -e "s/\/dev\/sda7/\/dev\/mapper\/cswap/" /etc/fstab /etc/init.d/cryptdisks restart ... # swapon -a

9.4.3. Encriptar ficheiros automaticamente com eCryptfs Voc pode encriptar ficheiros escritos sob "~/Private/" automaticamente usando eCryptfs (http://ecryptfs.sourceforge.net /) e o pacote ecryptfs-utils. * Execute ecryptfs-setup-private(1) e configure "~/Private/" pelos seguintes avisos. * Active "~/Private/" ao executar ecryptfs-mount-private(1). * Move ficheiros de dados sensitivos para "~/Private/" e cria os links simblicos necessrios. o Candidatos: "~/.fetchmailrc", "~/.ssh/identity", "~/.ssh/ id_rsa", "~/.ssh/id_dsa" e outros ficheiros com "go-rwx" * Mova directrios de dados sensveis para um sub-directrio em "~/Private/" e crie os links simblicos necessrios. o Candidatos: "~/.gnupg" e outros directrios com "go-rwx" * Crie um link simblico de "~/Desktop/Private/" para "~/ Private/" para facilitar as operaes do ambiente de trabalho. * Desactive "~/Private/" ao executar ecryptfs-umount-private(1) .

* Active "~/Private/" ao emitir "ecryptfs-mount-private" quando necessitar de dados encriptados. Dica Como o eCryptfs (http://ecryptfs.sourceforge.net/) apenas encripta de modo selectivo os ficheiros sensveis, o seu custo para o sistema muito menor do que usar o dm-crypt (http:// en.wikipedia.org/wiki/Dm-crypt) no dispositivo de raiz inteiro ou "/home". No precisa de nenhuns esforos de alocao de armazenamento no disco especial mas no podem manter em confidencial todos os meta-dados do sistema de ficheiros. 9.4.4. Montar eCryptfs automaticamente Se voc usar a sua palavra-passe do login para embrulhar as chaves de encriptao, voc pode automatizar a montagem do eCryptfs via PAM (Pluggable Authentication Modules) (http:// en.wikipedia.org/wiki/Pluggable_Authentication_Modules) . Insira a seguinte linha mesmo antes de "pam_permit.so" em "/etc/ pam.d/common-auth". auth required pam_ecryptfs.so unwrap Insira a seguinte linha mesmo na ltima linha em "/etc/pam.d/ common-session". session optional pam_ecryptfs.so unwrap Insira a seguinte linha na primeira linha activa em "/etc/pam.d/ common-password". password required pam_ecryptfs.so Isto bastante conveniente. Ateno Erros de configurao do PAM (http://en.wikipedia.org/wiki/ Pluggable_Authentication_Modules) podem bloque-lo fora do seu prprio sistema. Veja Captulo4, Autenticao. Cuidado Se voc usar a sua palavra-passe de login para embrulhar chaves de encriptao, os seus dados encriptados so to seguros como a sua palavra-passe de login de utilizador (veja Seco4.3, Boa palavra-passe). A menos que seja cuidadoso a configurar uma palavra-passe forte (http://en.wikipedia.org/wiki/ Password_strength) , os seus dados esto em risco quando algum corre software de crackar palavras-passe (http://en.wikipedia.org /wiki/Password_cracking) aps roubar o seu porttil (veja Seco4.7.4, Tornar a palavra-passe do root segura). 9.5. Monitorizar, controlar e iniciar as actividades de programas As actividades de programas podem ser monitorizadas e controladas usando ferramentas especiais

Tabela 9.10. Lista de ferramentas para monitorizar e controlar as actividades de programas +---------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+------------| | |V:902, I:999 | |nice(1): | | |(http:// | |correr um | |coreutils (http:// |qa.debian.org|13731 (http:// |programa com| |packages.debian.org|/popcon.php? |packages.qa.debian.org|prioridade | |/sid/coreutils) |package= |/c/coreutils.html) |de | | |coreutils) | |agendamento | | | | |modificada | |-------------------+-------------+----------------------+------------| | | | |renice(1): | | |V:828, I:999 | |modifica a | |bsdutils (http:// |(http:// |189 (http:// |prioridade | |packages.debian.org|qa.debian.org|packages.qa.debian.org|de | |/sid/bsdutils) |/popcon.php? |/b/bsdutils.html) |agendamento | | |package= | |de um | | |bsdutils) | |processo em | | | | |execuo | |-------------------+-------------+----------------------+------------| | | | |"/proc" | | |V:858, I:998 | |utilitrios | | |(http:// | |de sistema | |procps (http:// |qa.debian.org|621 (http:// |de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|ficheiros: | |/sid/procps) |package= |/p/procps.html) |ps(1), top | | |procps) | |(1), kill(1)| | | | |, watch(1), | | | | | | |-------------------+-------------+----------------------+------------| | | | |"/proc" | | |V:676, I:948 | |utilitrios | | |(http:// | |de sistema | |psmisc (http:// |qa.debian.org|721 (http:// |de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|ficheiros: | |/sid/psmisc) |package= |/p/psmisc.html) |killall(1), | | |psmisc) | |fuser(1), | | | | |peekfd(1), | | | | |pstree(1) | |-------------------+-------------+----------------------+------------| | | | |time(1): | | | | |corre um | | | | |programa | | |V:75, I:877 | |para | |time (http:// |(http:// |78 (http:// |reportar as | |packages.debian.org|qa.debian.org|packages.qa.debian.org|utilizaes | |/sid/time) |/popcon.php? |/t/time.html) |de recursos | | |package=time)| |do sistema | | | | |no que | | | | |respeita a | | | | |tempo | |-------------------+-------------+----------------------+------------| | | | |sar(1), | | |V:79, I:103 | |iostat(1), | | |(http:// | |mpstat(1), | |sysstat (http:// |qa.debian.org|1311 (http:// |: | |packages.debian.org|/popcon.php? |packages.qa.debian.org|ferramentas |

|/sid/sysstat) |package= |/s/sysstat.html) |de | | |sysstat) | |performance | | | | |do sistema | | | | |para Linux | |-------------------+-------------+----------------------+------------| | |V:0, I:9 | |Interactive | |isag (http:// |(http:// |126 (http:// |System | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Activity | |/sid/isag) |/popcon.php? |/i/isag.html) |Grapher para| | |package=isag)| |sysstat | |-------------------+-------------+----------------------+------------| | | | |lsof(8): | | |V:155, I:925 | |lista os | |lsof (http:// |(http:// |420 (http:// |ficheiro | |packages.debian.org|qa.debian.org|packages.qa.debian.org|abertos por | |/sid/lsof) |/popcon.php? |/l/lsof.html) |um processo | | |package=lsof)| |em execuo | | | | |usando a | | | | |opo "-p" | |-------------------+-------------+----------------------+------------| | |V:41, I:254 | |strace(1): | |strace (http:// |(http:// |404 (http:// |rastreia | |packages.debian.org|qa.debian.org|packages.qa.debian.org|chamadas e | |/sid/strace) |/popcon.php? |/s/strace.html) |sinais do | | |package= | |sistema | | |strace) | | | |-------------------+-------------+----------------------+------------| | |V:3, I:30 | | | |ltrace (http:// |(http:// |188 (http:// |ltrace(1): | |packages.debian.org|qa.debian.org|packages.qa.debian.org|rastreia | |/sid/ltrace) |/popcon.php? |/l/ltrace.html) |chamadas de | | |package= | |bibliotecas | | |ltrace) | | | |-------------------+-------------+----------------------+------------| | |V:0, I:1 | |xtrace(1): | |xtrace (http:// |(http:// |336 (http:// |rastreia a | |packages.debian.org|qa.debian.org|packages.qa.debian.org|comunicao | |/sid/xtrace) |/popcon.php? |/x/xtrace.html) |entre | | |package= | |cliente X11 | | |xtrace) | |e servidor | |-------------------+-------------+----------------------+------------| | | | |powertop(1):| | |V:8, I:185 | |informao | | |(http:// | |sobre | |powertop (http:// |qa.debian.org|473 (http:// |sistema de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|energia | |/sid/powertop) |package= |/p/powertop.html) |usado em | | |powertop) | |portteis | | | | |baseados em | | | | |Intel | |-------------------+-------------+----------------------+------------| | | | |corre | | | | |processos de| | |V:899, I:998 | |acordo com | |cron (http:// |(http:// |300 (http:// |uma agenda | |packages.debian.org|qa.debian.org|packages.qa.debian.org|nos | |/sid/cron) |/popcon.php? |/c/cron.html) |bastidores a| | |package=cron)| |partir do | | | | |daemon cron | | | | |(8) |

|-------------------+-------------+----------------------+------------| | | | |agenda de | | |V:432, I:489 | |comandos | | |(http:// | |tipo cron | |anacron (http:// |qa.debian.org|163 (http:// |para | |packages.debian.org|/popcon.php? |packages.qa.debian.org|sistemas que| |/sid/anacron) |package= |/a/anacron.html) |no | | |anacron) | |funcionam 24| | | | |horas por | | | | |dia | |-------------------+-------------+----------------------+------------| | | | |at(1) ou | | | | |batch(1): | | |V:504, I:876 | |executam um | |at (http:// |(http:// |101 (http:// |trabalho a | |packages.debian.org|qa.debian.org|packages.qa.debian.org|uma hora | |/sid/at) |/popcon.php? |/a/at.html) |especificada| | |package=at) | |ou abaixo de| | | | |um certo | | | | |nvel de | | | | |carga. | +---------------------------------------------------------------------+ Dica Os pacotes procps disponibilizam as bases de monitorizar, controlar e iniciar actividades de programas. Voc deve aprend-las todas. 9.5.1. Temporizando um processo Mostrar o tempo usado pelo processo invocado pelo comando. # time real user sys qualquer_comando >/dev/null 0m0.035s # tempo no relgio (tempo real) 0m0.000s # tempo em modo de utilizador 0m0.020s # tempo em modo de kernel

9.5.2. A prioridade de agendamento Um valor nice usado para controlar a prioridade de agendamento para o processo. Tabela 9.11. Lista de valores nice para a prioridade de agendamento +---------------------------------------------------------------+ |o valor |prioridade de agendamento | |nice | | |-----------+---------------------------------------------------| |19 |processo de prioridade menor (nice) | |-----------+---------------------------------------------------| |0 |processo de prioridade muito alta para o utilizador| |-----------+---------------------------------------------------| |-20 |processo de prioridade muito alta para o root | | |(no-nice) | +---------------------------------------------------------------+

# nice -19 top # muito bom # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # muito rpido Por vezes um valor nice extremo faz mais danos que benefcios ao sistema. Use este comando com cuidado. 9.5.3. O comando ps O comando ps(1) em Debian suporta ambas funcionalidades do BSD e SystemV e ajuda-o a identificar estaticamente a actividade do processo. Tabela 9.12. Lista dos estilos do comando ps +-----------------------------------------+ |estilo |comando tpico|funcionalidade | |--------+--------------+-----------------| |BSD |ps aux |mostrar %CPU %MEM| |--------+--------------+-----------------| |System V|ps -efH |mostra PPID | +-----------------------------------------+ Para o processo filho zombie (defunto), voc pode mat-lo pelo ID do processo pai identificado no campo "PPID". O comando pstree(1) mostra uma rvore de processos. 9.5.4. O comando top O top(1) em Debian tem funcionalidades ricas e ajuda-o a identificar dinamicamente que processo est a actuar de modo esquisito. Tabela 9.13. Lista de comandos para o top +--------------------------------------------------+ |tecla comando|descrio da resposta | |-------------+------------------------------------| |h ou ? |mostrar ajuda | |-------------+------------------------------------| |f |define/redefine o campo do mostrador| |-------------+------------------------------------| |o |reorganiza o campo do mostrador | |-------------+------------------------------------| |F |define a ordem de campo de chave | |-------------+------------------------------------| |k |matar um processo | |-------------+------------------------------------| |r |fazer renice a um processo | |-------------+------------------------------------| |q |sair do comando top | +--------------------------------------------------+ 9.5.5. Listar ficheiros abertos por um processo Voc pode listar todos os ficheiros abertos por um processo com o ID do processo (PID), ex. 1, com o seguinte.

$ sudo lsof -p 1 PID=1 geralmente um programa de init. 9.5.6. Rastear as actividades de programas Voc pode rastrear a actividade do programa com o strace(1), ltrace(1), ou xtrace(1) para chamadas de sistema e sinais, chamadas de bibliotecas, ou comunicao entre cliente e servidor do X11. Voc pode rastrear as chamadas do sistema do comando ls como se segue. $ sudo strace ls 9.5.7. Identificao de um processo usando ficheiros ou sockets Voc tambm pode identificar processos que usam ficheiros pelo fuser(1), ex. para "/var/log/mail.log" com o seguinte. $ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND /var/log/mail.log: root 2946 F.... rsyslogd

V que o ficheiro "/var/log/mail.log" est aberto para escrita pelo comando rsyslogd(8). Voc tambm pode identificar processos que usam sockets pelo fuser(1), ex. para "smtp/tcp" com o seguinte. $ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4

Agora voc sabe que o seu sistema correr o exim4(8) para lidar com as ligaes TCP (http://en.wikipedia.org/wiki/ Transmission_Control_Protocol) para o porto SMTP (http:// en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol) (25). 9.5.8. Repetir um comando com um intervalo constante O watch(1) executa um programa repetidamente num intervalo constante enquanto mostra os seus resultados em ecr completo. $ watch w Isto mostra quem tem sesso iniciada (logged) no sistema e actualizado a cada 2 segundos. 9.5.9. Repetindo um ciclo de comandos sobre ficheiros Existem vrias maneiras de repetir um ciclo de comandos sobre ficheiros que correspondem a alguma condio, ex. que correspondem ao padro glob "*.ext". * Mtodo for-loop da shell (veja Seco12.1.4, Ciclos (loops) da shell):

for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done

* combinao do find(1) e do xargs(1):

find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command * find(1) com a opo "-exec" com um comando:

find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \; * find(1) com a opo "-exec" com um script de shell curto:

find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'sucess o'" \; Os exemplos em cima foram escritos para assegurar o lidar apropriado dos nomes de ficheiros esquisitos como os que contm espaos. Veja Seco10.1.5, Idiomas para a seleco de ficheiros para utilizaes mais avanadas do find(1). 9.5.10. Arrancar um programa a partir da GUI Voc pode configurar para iniciar um processo a partir da interface grfica de utilizador (GUI) (http://en.wikipedia.org/ wiki/Graphical_user_interface) . Sob o ambiente de trabalho GNOME, um programa pode ser iniciado com o argumento apropriado ao fazer duplo-clique no cone do lanador, ao arrastar-e-largar um cone de ficheiro no cone do lanador, ou pelo menu "Abrir com " via clique direito num cone de ficheiro. O KDE tambm faz o equivalente. Aqui est um exemplo sob GNOME para criar um cone de lanamento para o mc(1) arrancado em gnome-terminal(1). Criar um programa executvel "mc-term" com o seguinte. # cat >/usr/local/bin/mc-term <<EOF #!/bin/sh gnome-terminal -e "mc \$1" EOF # chmod 755 /usr/local/bin/mc-term Crie um lanador de ambiente de trabalho com o seguinte. 1. Clique com o boto direito no espao de trabalho para seleccionar "Criar Lanador ". 2. Defina "Tipo" para "Aplicao". 3. Defina "Nome" para "mc". 4. Defina "Comando" para "mc-term %f" 5. Clique "OK". Crie uma associao de 'abrir com' como o seguinte. 1. Clique com o boto direito na pasta para seleccionar "Abrir com Outra Aplicao ".

2. Clique para abrir o dilogo "Use um comando personalizado" e insira "mc-term %f". 3. Clique "Abrir" Dica o lanador um ficheiro em "~/Desktop" com a extenso ".desktop". 9.5.11. Personalizar o programa a ser iniciado Alguns programas iniciam outros programas automaticamente. Aqui esto alguns pontos de controle para personalizar este processo. * Menu de configurao da aplicao: o Ambiente GNOME: "Sistema" "Preferncias" "Aplicao Preferida" o Ambiente KDE: "K" "Centro de Controle" "Componentes do KDE" "Seleccionar Componente" o Navegador Iceweasel: "Editar" "Preferncias" "Aplicaes" o mc(1): "/etc/mc/mc.ext" * Variveis de ambiente como a "$BROWSER", "$EDITOR", "$VISUAL", e "$PAGER" (veja eviron(7)) * O sistema update-alternatives(8) para programas como o "editor", "view", "x-www-browser", "gnome-www-browser", e "www-browser" (veja Seco1.4.7, Definir um editor de texto predefinido) * os contedos dos ficheiros "~/.mailcap" e "/etc/mailcap" com a associao do tipo MIME (http://en.wikipedia.org/wiki/MIME) com o programa (veja mailcap(5)) * Os contedos dos ficheiros "~/.mime.types" e "/etc/ mime.types" que associam a extenso do nome do ficheiro com o tipo MIME (http://en.wikipedia.org/wiki/MIME) (veja run-mailcap(1)) Dica update-mime(8) actualiza o ficheiro "/etc/mailcap" usando o ficheiro "/etc/mailcap.order" (veja mailcap.order(5)). Dica O pacote debianutils disponibiliza sensible-browser(1), sensible-editor(1), e sensible-pager(1) que fazem decises sensveis sobre qual editor, paginador, e explorador web chamar, respectivamente. Eu recomendo-lhe a leitura destes scripts de shell. Dica

De modo a correr uma aplicao de consola como o mutt sob o X como a sua aplicao preferida, voc deve criar uma aplicao X como se segue e definir "/usr/local/bin/mutt-term" como a sua aplicao preferida a ser iniciada como descrito. # cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF chmod 755 /usr/local/bin/mutt-term 9.5.12. Matar um processo Use kill(1) para matar (ou enviar um sinal para) um processo pelo ID do processo. Use killall(1) ou pkill(1) para fazer o mesmo pelo nome do comando do processo ou outro atributo. Tabela 9.14. Lista dos sinais frequentemente usados para o comando kill +---------------------------------------------+ |valor do sinal|nome do sinal|funo | |--------------+-------------+----------------| |1 |HUP |reiniciar daemon| |--------------+-------------+----------------| |15 |TERM |morte normal | |--------------+-------------+----------------| |9 |KILL |morte forada | +---------------------------------------------+ 9.5.13. Agendar tarefas uma vez Corra o comando at(1) para agendar uma tarefa de uma-vez com o seguinte. $ echo 'command -args'| at 3:40 monday 9.5.14. Agendar tarefas regularmente Use cron(8) para agendar tarefas regularmente. Veja crontab(1) e crontab(5). Voc pode agendar a execuo de processos como um utilizador normal, ex. foo ao criar um ficheiro crontab(5) como "/var/spool/ cron/crontabs/foo" com o comando "crontab -e". Aqui est um exemplo de um ficheiro crontab(5). # use /bin/sh to run commands, no matter what /etc/passwd says SHELL=/bin/sh # mail any output to paul, no matter whose crontab this is MAILTO=paul # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed) # run at 00:05, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 14:15 on the first of every month -- output mailed to paul 15 14 1 * * $HOME/bin/monthly

# run at 0 22 * 23 */2 1 5 4 * # run at 40 3 1-7 Dica

22:00 * 1-5 2 * * sun 03:40 * *

on weekdays(1-5), annoy Joe. % for newline, last % for cc: mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" echo "run at 04:05 every Sunday" on the first Monday of each month [ "$(date +%a)" == "Mon" ] && command -args

Para o sistema que no corre continuamente, instale o pacote anacron para agendar comandos peridicos a intervalos especificados o mais prximo que os tempos de ligao de mquina permitem. Veja anacron(8) e anacrontab(5). Dica Para scripts agendados de manuteno do sistema, voc pode corr-los periodicamente a partir da conta root ao colocar tais scripts em "/etc/cron.hourly/", "/etc/cron.daily/", "/etc/ cron.weekly/", ou "/etc/cron.monthly/". Os tempos de execuo destes scripts podem ser personalizados pelo "/etc/crontab" e "/ etc/anacrontab". 9.5.15. Tecla Alt-SysRq A segurana contra falhas do sistema disponibiliza pela opo de compilao do kernel "Magic SysRq key" (tecla SAK (http:// en.wikipedia.org/wiki/Secure_attention_key) ) a qual agora a predefinio para o kernel Debian. Pressionar Alt-SysRq seguido de uma das seguintes teclas faz a magia de recuperar o controle do sistema. Tabela 9.15. Lista de teclas de comando SAK +---------------------------------------------------------------+ |tecla que segue|descrio da aco | |a Alt-SysRq | | |---------------+-----------------------------------------------| |r |restaurar o teclado a partir de modo raw aps | | |crash do X | |---------------+-----------------------------------------------| |0 |mudar o nvel de log da consola para 0 para | | |reduzir as mensagens de erro | |---------------+-----------------------------------------------| |k |kill (mata) todos os processos da consola | | |virtual actual | |---------------+-----------------------------------------------| |e |enviar um SIGTERM a todos os processos, excepto| | |para init(8) | |---------------+-----------------------------------------------| |i |enviar um SIGKILL a todos os processos, excepto| | |para init(8) | |---------------+-----------------------------------------------| |s |sincronizar todos os sistemas de ficheiros | | |montados | |---------------+-----------------------------------------------| |u |remontar todos os sistemas de ficheiros | | |montados em modo de apenas-leitura (umount) | |---------------+-----------------------------------------------| |b |reboot (reiniciar) o sistema sem sincronizao |

| |ou desmontagem | +---------------------------------------------------------------+ A combinao de "Alt-SysRq s", "Alt-SysRq u", e "Alt-SysRq r" boa para sair de situaes realmente ms. Veja "/usr/share/doc/linux-doc-2.6.*/Documentation/sysrq.txt.gz". Cuidado A funcionalidade Alt-SysRq pode ser considerada um risco de segurana ao permitir que os utilizadores tenham acesso a funes com privilgios de root. Colocar "echo 0 >/proc/sys/kernel/sysrq" em "/etc/rc.local" ou "kernel.sysrq = 0" em "/etc/sysctl.conf" desactiva a funcionalidade Alt-SysRq. Dica A partir de um terminal SSH etc., voc pode usar a funcionalidade Alt-SysRq ao escrever para o "/proc/sysrq-trigger". Por exemplo, "echo s > /proc/sysrq-trigger; echo u > /proc/sysrq-trigger" a partir do aviso da shell de root ssincroniza e umounts (desmonta) todos os sistemas de ficheiros montados. 9.6. Dicas de manuteno do sistema 9.6.1. Quem est no sistema? Voc pode verificar quem est no sistema com o seguinte. * who(1) mostra quem tem sesso iniciada. * w(1) mostra quem tem sesso iniciada e o que esto a fazer. * last(1) mostra a listagem do ltimo utilizador a iniciar sesso. * lastb(1 )mostra a listagem dos ltimos utilizadores a falharem o inicio de sesso. Dica "/var/run/utmp", "/var/log/wtmp", e "/var/run/utmp" detm tal informao do utilizador. Veja login(1) e utmp(5). 9.6.2. Avisar todos Voc pode mandar uma mensagem para todos os que tm sesso iniciada no sistema com wall(1) com o seguinte. $ echo "Vamos desligar dentro de 1 hora" | wall 9.6.3. Identificao do hardware Para os dispositivos tipo PCI (http://en.wikipedia.org/wiki/ Peripheral_Component_Interconnect) (AGP (http://en.wikipedia.org/ wiki/Accelerated_Graphics_Port) , PCI-Express (http:// en.wikipedia.org/wiki/PCI_Express) , CardBus (http:// en.wikipedia.org/wiki/PC_Card#CardBus) , ExpressCard (http://

en.wikipedia.org/wiki/ExpressCard) , etc.), o lspci(8) (provavelmente com a opo "-nn") um bom inicio para a identificao do hardware. Alternativamente, voc pode identificar o hardware ao ler os contedos de "/proc/bus/pci/devices" ou explorar a rvore de directrios sob "/sys/bus/pci" (veja Seco1.2.12, procfs e sysfs). Tabela 9.16. Lista de ferramenta de identificao de hardware +----------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-------------| | |V:176, I:974 | | | |pciutils (http:// |(http:// |962 (http:// |Utilitrios | |packages.debian.org|qa.debian.org|packages.qa.debian.org|PCI do Linux:| |/sid/pciutils) |/popcon.php? |/p/pciutils.html) |lspci(8) | | |package= | | | | |pciutils) | | | |-------------------+-------------+----------------------+-------------| | |V:278, I:913 | | | |usbutils (http:// |(http:// |630 (http:// |Utilitrios | |packages.debian.org|qa.debian.org|packages.qa.debian.org|USB do Linux:| |/sid/usbutils) |/popcon.php? |/u/usbutils.html) |lsusb(8) | | |package= | | | | |usbutils) | | | |-------------------+-------------+----------------------+-------------| | |V:54, I:175 | | | |pcmciautils (http:/|(http:// |121 (http:// |Utilitrios | |/ |qa.debian.org|packages.qa.debian.org|PCMCIA par | |packages.debian.org|/popcon.php? |/p/pcmciautils.html) |Linux 2.6: | |/sid/pcmciautils) |package= | |pccardctl(8) | | |pcmciautils) | | | |-------------------+-------------+----------------------+-------------| | |V:1, I:7 | |coleco de | |scsitools (http:// |(http:// |316 (http:// |ferramentas | |packages.debian.org|qa.debian.org|packages.qa.debian.org|para gesto | |/sid/scsitools) |/popcon.php? |/s/scsitools.html) |de hardware | | |package= | |SCSI: lsscsi | | |scsitools) | |(8) | |-------------------+-------------+----------------------+-------------| | |V:2, I:29 | |informao do| |procinfo (http:// |(http:// |164 (http:// |sistema | |packages.debian.org|qa.debian.org|packages.qa.debian.org|obtida de "/ | |/sid/procinfo) |/popcon.php? |/p/procinfo.html) |proc": lsdev | | |package= | |(8) | | |procinfo) | | | |-------------------+-------------+----------------------+-------------| | |V:12, I:87 | |informao | |lshw (http:// |(http:// |653 (http:// |acerca da | |packages.debian.org|qa.debian.org|packages.qa.debian.org|configurao | |/sid/lshw) |/popcon.php? |/l/lshw.html) |do hardware: | | |package=lshw)| |lshw(1) | |-------------------+-------------+----------------------+-------------| | |V:54, I:699 | | | |discover (http:// |(http:// |66 (http:// |sistema de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|identificao| |/sid/discover) |/popcon.php? |/d/discover.html) |de hardware: | | |package= | |discover(8) |

| |discover) | | | +----------------------------------------------------------------------+ 9.6.4. Configurao do hardware Apesar da maioria da configurao de hardware nos sistemas de ambiente de trabalho GUI modernos como o GNOME e KDE poder ser gerida atravs de acompanhamento por ferramentas de configurao com GUI, uma boa ideia conhecer alguns mtodos bsicos de o configurar. Tabela 9.17. Lista de ferramentas de configurao do hardware +------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+------------------+-----------------------+---------------| | |V:178, I:244 | | | |hal (http:// |(http:// |1495 (http:// |Hardware | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|Abstraction | |/sid/hal) |popcon.php?package|h/hal.html) |Layer: lshal (1) | | |=hal) | | | |-------------------+------------------+-----------------------+---------------| |console-tools |V:148, I:317 | |tipo de letr a da| |(http:// |(http:// |956 (http:// |consola Linu x e | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|utilitrios da | |/sid/console-tools)|popcon.php?package|c/console-tools.html) |tabela de te clas| | |=console-tools) | | | |-------------------+------------------+-----------------------+---------------| |x11-xserver-utils |V:369, I:564 | | | |(http:// |(http:// |485 (http:// |Utilitrios do | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|servidor X: xset| |/sid/ |popcon.php?package|x/ |(1), xmodmap (1) | |x11-xserver-utils) |= |x11-xserver-utils.html)| | | |x11-xserver-utils)| | | |-------------------+------------------+-----------------------+---------------| | | | |daemon para |

| |V:524, I:934 | |gerir evento | |acpid (http:// |(http:// |188 (http:// |entregues pe lo | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|Advanced | |/sid/acpid) |popcon.php?package|a/acpid.html) |Configuratio n | | |=acpid) | |and Power | | | | |Interface (A CPI)| |-------------------+------------------+-----------------------+---------------| | |V:57, I:733 (http:| |utilitrio par a | |acpi (http:// |//qa.debian.org/ |70 (http:// |mostrar | |packages.debian.org|popcon.php?package|packages.qa.debian.org/|informao em | |/sid/acpi) |=acpi) |a/acpi.html) |dispositivos | | | | |ACPI | |-------------------+------------------+-----------------------+---------------| | |V:9, I:119 (http:/| |daemon para | |apmd (http:// |/qa.debian.org/ |252 (http:// |gerir evento s | |packages.debian.org|popcon.php?package|packages.qa.debian.org/|entregues pe lo | |/sid/apmd) |=apmd) |a/apmd.html) |Advanced Pow er | | | | |Management ( APM)| |-------------------+------------------+-----------------------+---------------| | | | |daemon para | |sleepd (http:// |V:0, I:1 (http:// |148 (http:// |colocar um | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|porttil em mo do| |/sid/sleepd) |popcon.php?package|s/sleepd.html) |de adormecim ento| | |=sleepd) | |durante a | | | | |inactividade | |-------------------+------------------+-----------------------+---------------| | |V:222, I:571 | |optimizao do | |hdparm (http:// |(http:// |285 (http:// |acesso ao di sco | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|rgido (veja | |/sid/hdparm) |popcon.php?package|h/hdparm.html) |Seco9.3.8, | | |=hdparm) | |Optimizao do | | | | |disco rgido) s

| |-------------------+------------------+-----------------------+---------------| | | | |controlar e | | | | |monitorizar | | | | |sistemas de | |smartmontools |V:72, I:249 (http:|1156 (http:// |armazenament o | |(http:// |//qa.debian.org/ |packages.qa.debian.org/|usando | |packages.debian.org|popcon.php?package|s/smartmontools.html) |S.M.A.R.T. | |/sid/smartmontools)|=smartmontools) | |(http:// | | | | |en.wikipedia .org| | | | |/wiki/ | | | | |S.M.A.R.T.) | |-------------------+------------------+-----------------------+---------------| |setserial (http:// |V:10, I:23 (http:/|141 (http:// |coleco de | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org/|ferramentas para| |/sid/setserial) |popcon.php?package|s/setserial.html) |gesto de port as| | |=setserial) | |srie | |-------------------+------------------+-----------------------+---------------| | |V:4, I:72 (http://| |coleco de | |memtest86+ (http://|qa.debian.org/ |2342 (http:// |ferramentas para| |packages.debian.org|popcon.php?package|packages.qa.debian.org/|gesto de | |/sid/memtest86+) |=memtest86+) |m/memtest86+.html) |hardware de | | | | |memria | |-------------------+------------------+-----------------------+---------------| | | | |coleco de | | |V:1, I:7 (http:// | |ferramentas para| |scsitools (http:// |qa.debian.org/ |316 (http:// |gesto de | |packages.debian.org|popcon.php?package|packages.qa.debian.org/|hardware SCS I | |/sid/scsitools) |=scsitools) |s/scsitools.html) |(http:// | | | | |en.wikipedia .org| | | | |/wiki/SCSI)

| |-------------------+------------------+-----------------------+---------------| |tpconfig (http:// |V:2, I:6 (http:// |164 (http:// |utilitrio par a | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|configurar | |/sid/tpconfig) |popcon.php?package|t/tpconfig.html) |dispositivos | | |=tpconfig) | |touchpad | |-------------------+------------------+-----------------------+---------------| |setcd (http:// |V:0, I:2 (http:// |28 (http:// |optimizao de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|acesso a dri ves | |/sid/setcd) |popcon.php?package|s/setcd.html) |de discos | | |=setcd) | |compactos | |-------------------+------------------+-----------------------+---------------| |big-cursor (http://|I:1 (http:// |68 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/|cursores de rato| |/sid/big-cursor) |popcon.php?package|b/big-cursor.html) |maiores para o X| | |=big-cursor) | | | +------------------------------------------------------------------------------+ Aqui, o ACPI (http://en.wikipedia.org/wiki/ Advanced_Configuration_and_Power_Interface) uma estrutura mais recente para o sistema de gesto de energia que o APM (http:// en.wikipedia.org/wiki/Advanced_Power_Management) . Dica O escalar de frequncias da CPU em sistemas modernos governado por mdulos do kernel como o acpi_cpufreq. 9.6.5. Hora do sistema e do hardware O seguinte define a hora do sistema e hardware para MM/DD hh:mm, AAAA. # date MMDDhhmmAAAA # hwclock --utc --systohc # hwclock --show A horas so mostradas normalmente na hora local no sistema Debian mas o hardware e a hora do sistema geralmente usam UT(GMT) (http: //en.wikipedia.org/wiki/Universal_Time) . Se a hora do hardware (BIOS) estiver definida para UT, mude a definio para "UTC=yes" em "/etc/default/rcS".

Se desejar actualizar a hora do sistema atravs da rede, considere usar o servio NTP (http://en.wikipedia.org/wiki/ Network_Time_Protocol) como pacotes como os ntp, ntpdate, e chrony. Veja o seguinte. * Como Gerir a Data e Hora com Preciso (http://www.tldp.org/ HOWTO/TimePrecision-HOWTO/index.html) * NTP Public Services Project (http://www.ntp.org/) * O pacote ntp-doc Dica O ntptrace(8) no pacote ntp pode rastrear uma cadeia de servidores NTP at sua fonte principal. 9.6.6. A configurao do terminal Existem vrios componentes para configurar a consola de caracteres e as funcionalidades do sistema ncurses(3). * O ficheiro "/etc/terminfo/*/*" (terminfo(5)) * A varivel de ambiente "$TERM" (term(7)) * setterm(1), stty(1), tic(1), e toe(1) Se a entrada terminfo para o xterm no funcionar com um xterm no Debian, mude o seu tipo e terminal, "$TERM", de "xterm" para uma das verses de funcionalidades limitadas como o "xterm-r6" quando iniciar sesso num sistema Debian remotamente. Veja "/usr/share/ doc/libncurses5/FAQ" para mais. O "dumb" o denominador comum mais baixo para "$TERM". 9.6.7. A infraestrutura de som As drivers para placas de som para o Linux 2.6 actual so disponibilizadas pelo Advanced Linux Sound Architecture (ALSA) (http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture) . ALSA disponibiliza um modo de emulao para o anterior Open Sound System (OSS) (http://en.wikipedia.org/wiki/ Open_Sound_System) para compatibilidade. Dica Use "cat /dev/urandom > /dev/audio" ou speaker-test(1) para testar os altifalantes (^C para parar) Dica Se no conseguir obter som, os seus altifalantes podem estar ligados a uma sada silenciada (mute). Os sistemas de som modernos tm muitas sadas. O alsamixer(1) no pacote alsa-utils til para configurar as definies de volume e mute. As aplicaes de software podem ser configuradas para no s

aceder directamente a dispositivos de som, mas tambm para aceder a eles atravs de alguns sistemas servidores de som normalizados. Tabela 9.18. Lista de pacotes de som +------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------------+------------------------+-------------------------| |alsa-base (http:// |V:18, I:510 (http:/|130 (http:// | | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org/a|ficheiros de configurao | |/sid/alsa-base) |popcon.php?package=|/alsa-base.html) |da driver ALSA | | |alsa-base) | | | |-------------------+-------------------+------------------------+-------------------------| |alsa-utils (http://|V:359, I:513 (http:|1998 (http:// | | |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org/a|utilitrios para | |/sid/alsa-utils) |popcon.php?package=|/alsa-utils.html) |configurar e utilizar ALSA| | |alsa-utils) | | | |-------------------+-------------------+------------------------+-------------------------| |oss-compat (http://|V:97, I:185 (http:/|53 (http:// |compatibil idade de OSS sob| |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org/o|ALSA para prevenir erros | |/sid/oss-compat) |popcon.php?package=|/oss-compat.html) |de "/dev/d sp no | | |oss-compat) | |encontrado " | |-------------------+-------------------+------------------------+-------------------------| | |V:6, I:32 (http:// | |servidor ( baixa latncia) | |jackd (http:// |qa.debian.org/ |32 (http:// |JACK Audio Connection Kit.| |packages.debian.org|popcon.php?package=|packages.qa.debian.org/j|(JACK) (ht tp:// | |/sid/jackd) |jackd) |/jackd.html) |en.wikiped ia.org/wiki/ | | | | |JACK_Audio _Connection_Kit)| |-------------------+-------------------+------------------------+-------------------------| | | | |biblioteca (baixa | |libjack0 (http:// |I:100 (http:// |137 (http:// |latncia) JA CK Audio | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/ |Connection Kit. (JACK) | |/sid/libjack0) |popcon.php?package=|libj/libjack0.html) |(http://en

.wikipedia.org/ | | |libjack0) | |wiki/ | | | | |JACK_Audio _Connection_Kit)| |-------------------+-------------------+------------------------+-------------------------| |nas (http:// |V:1, I:1 (http:// |267 (http:// |servidor N etwork Audio | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/n|System (NA S) (http:// | |/sid/nas) |popcon.php?package=|/nas.html) |en.wikipedia.org /wiki/ | | |nas) | |Network_Au dio_System) | |-------------------+-------------------+------------------------+-------------------------| |libaudio2 (http:// |V:176, I:483 (http:|179 (http:// |biblioteca Network Audio | |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org/ |System (NA S) (http:// | |/sid/libaudio2) |popcon.php?package=|liba/libaudio2.html) |en.wikiped ia.org/wiki/ | | |libaudio2) | |Network_Au dio_System) | |-------------------+-------------------+------------------------+-------------------------| |pulseaudio (http://|V:153, I:196 (http:|4722 (http:// |servidor P ulseAudio (http:| |packages.debian.org|//qa.debian.org/ |packages.qa.debian.org/p|//en.wikip edia.org/wiki/ | |/sid/pulseaudio) |popcon.php?package=|/pulseaudio.html) |PulseAudio ) , substituto | | |pulseaudio) | |para o ESD | |-------------------+-------------------+------------------------+-------------------------| | |V:299, I:565 (http:| |biblioteca cliente | |libpulse0 (http:// |//qa.debian.org/ |802 (http:// |PulseAudio (http:// | |packages.debian.org|popcon.php?package=|packages.qa.debian.org/ |en.wikiped ia.org/wiki/ | |/sid/libpulse0) |libpulse0) |libp/libpulse0.html) |PulseAudio ) , substituto | | | | |para o ESD | |-------------------+-------------------+------------------------+-------------------------| |libgstreamer0.10-0 |V:378, I:550 (http:|3919 (http:// |GStreamer (http:// | |(http:// |//qa.debian.org/ |packages.qa.debian.org/ |en.wikiped ia.org/wiki/ | |packages.debian.org|popcon.php?package=|libg/ |GStreamer) : motor de som | |/sid/ |libgstreamer0.10-0)|libgstreamer0.10-0.html)|do GNOME | |libgstreamer0.10-0)| | | | |-------------------+-------------------+------------------------+----------

----------------| |libxine1 (http:// |I:184 (http:// |1 (http:// |xine (http :// | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/ |en.wikiped ia.org/wiki/ | |/sid/libxine1) |popcon.php?package=|libx/libxine1.html) |Xine) : an tigo motor de | | |libxine1) | |som do KDE | |-------------------+-------------------+------------------------+-------------------------| |libphonon4 (http://|I:267 (http:// |574 (http:// |Phonon (ht tp:// | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org/ |en.wikiped ia.org/wiki/ | |/sid/libphonon4) |popcon.php?package=|libp/libphonon4.html) |Phonon_(KD E)) : motor de | | |libphonon4) | |som do KDE | +------------------------------------------------------------------------------------------+ Existe normalmente um motor de som comum para cada ambiente de trabalho popular. Cada motor de som usado pela aplicao pode escolher ligar a diferentes servidores de som. 9.6.8. Desactivar o protector de ecr (screensaver) Para desactivar o protector de ecr, utilize os seguintes comandos. Tabela 9.19. Lista de comandos para desactivar o protector de ecr +---------------------------------------------------------------+ |ambiente |comando | |-----------------------------------------+---------------------| |A consola do Linux |setterm -powersave | | |off | |-----------------------------------------+---------------------| |O X Window (desactivar o protector de |xset s off | |ecr) | | |-----------------------------------------+---------------------| |O X Window (desactivar o dpms) |xset -dpms | |-----------------------------------------+---------------------| |O X Window (GUI de configurao do |xscreensaver-command | |protector de ecr) |-prefs | +---------------------------------------------------------------+ 9.6.9. Desactivar os sons de beep Pode-se sempre desligar o altifalante do PC para desactivar os apitos. Remover o mdulo de kernel pcspkr faz isso por si. O seguinte previne o programa readline(3) usando pelo bash(1) de apitar quando encontra "\a" (ASCII=7). $ echo "set bell-style none">> ~/.inputrc

9.6.10. Utilizao da memria A mensagem de arranque do kernel em "/var/log/dmesg" contm o tamanho total exacto da memria disponvel. free(1) e top(1) mostram informao sobre os recursos de memria no sistema em execuo. # grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572 Dica No se preocupe com o grande tamanho de "used" e o pequeno tamanho de "free" na linha "Mem:", mas leia a que est sob elas (675404 e 321780 no exemplo em baixo) e relaxe. Para o meu MacBook com 1GB=1048576k de DRAM (o sistema de vdeo rouba alguma), eu vejo o seguinte. Tabela 9.20. Lista dos tamanhos de memria reportados +---------------------------------------------------------+ |relatrio |tamanho | |----------------------+----------------------------------| |Tamanho total no dmesg|1016784k = 1GB - 31792k | |----------------------+----------------------------------| |Livre no dmesg |990528k | |----------------------+----------------------------------| |Total sob a shell |997184k | |----------------------+----------------------------------| |Livre sob a shell |20256k (mas efectivamente 321780k)| +---------------------------------------------------------+ 9.6.11. Segurana do sistema e verificao de integridade Uma manuteno pobre do sistema pode expor o seu sistema a explorao externa. Para segurana do sistema e verificao de integridade, voc deve comear com o seguinte. * O pacote debsums. Veja debsums(1) e Seco2.5.2, Ficheiro "Release" de nvel de topo e autenticidade:. * O pacote chkrootkit. Veja chkrootkit(1). * A famlia de pacotes clamav. Veja clamscan(1) e freahclam(1). * FAQ de Segurana Debian (http://www.debian.org/security/faq) .

* Manual de Segurana Debian (http://www.debian.org/doc/manuals /securing-debian-howto/) . Tabela 9.21. Lista de ferramentas para segurana do sistema e verificao de integridade +-------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+----------------| | |V:23, I:30 | |daemon para | | |(http:// | |enviar para o | |logcheck (http:// |qa.debian.org|218 (http:// |administrador | |packages.debian.org|/popcon.php? |packages.qa.debian.org|por mail as | |/sid/logcheck) |package= |/l/logcheck.html) |anomalias nos | | |logcheck) | |ficheiros de log| | | | |do sistema | |-------------------+-------------+----------------------+----------------| | |V:27, I:46 | |utilitrio para | |debsums (http:// |(http:// |199 (http:// |verificar os | |packages.debian.org|qa.debian.org|packages.qa.debian.org|pacotes | |/sid/debsums) |/popcon.php? |/d/debsums.html) |instalados | | |package= | |contra chaves de| | |debsums) | |verificao MD5 | |-------------------+-------------+----------------------+----------------| | |V:16, I:54 | | | |chkrootkit (http://|(http:// |920 (http:// |detector de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|rootkit (http://| |/sid/chkrootkit) |/popcon.php? |/c/chkrootkit.html) |en.wikipedia.org| | |package= | |/wiki/Rootkit) | | |chkrootkit) | | | |-------------------+-------------+----------------------+----------------| | |V:25, I:91 | |utilitrio de | |clamav (http:// |(http:// |593 (http:// |anti-vrus para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|Unix - interface| |/sid/clamav) |/popcon.php? |/c/clamav.html) |de linha de | | |package= | |comandos | | |clamav) | | | |-------------------+-------------+----------------------+----------------| | |V:7, I:8 | | | |tiger (http:// |(http:// |2374 (http:// |relatar | |packages.debian.org|qa.debian.org|packages.qa.debian.org|vulnerabilidades| |/sid/tiger) |/popcon.php? |/t/tiger.html) |de segurana do | | |package= | |sistema | | |tiger) | | | |-------------------+-------------+----------------------+----------------| | |V:6, I:7 | | | |tripwire (http:// |(http:// |9049 (http:// |verificador de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|integridade de | |/sid/tripwire) |/popcon.php? |/t/tripwire.html) |ficheiros e | | |package= | |directrios | | |tripwire) | | | |-------------------+-------------+----------------------+----------------| | |V:6, I:21 | |ferramenta | |john (http:// |(http:// |472 (http:// |activa de crack | |packages.debian.org|qa.debian.org|packages.qa.debian.org|de | |/sid/john) |/popcon.php? |/j/john.html) |palavras-passe | | |package=john)| | | |-------------------+-------------+----------------------+----------------| | |V:2, I:2 | |Ambiente de | |aide (http:// |(http:// |1351 (http:// |Deteco de |

|packages.debian.org|qa.debian.org|packages.qa.debian.org|Intruso | |/sid/aide) |/popcon.php? |/a/aide.html) |Avanado | | |package=aide)| |binrio esttico| |-------------------+-------------+----------------------+----------------| | |V:0, I:1 | | | |bastille (http:// |(http:// |1960 (http:// |ferramenta de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|melhoria de | |/sid/bastille) |/popcon.php? |/b/bastille.html) |segurana | | |package= | | | | |bastille) | | | |-------------------+-------------+----------------------+----------------| | |V:0, I:1 | | | |integrit (http:// |(http:// |440 (http:// |programa de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|verificao de | |/sid/integrit) |/popcon.php? |/i/integrit.html) |integridade de | | |package= | |ficheiros | | |integrit) | | | |-------------------+-------------+----------------------+----------------| | |V:0, I:1 | | | |crack (http:// |(http:// |160 (http:// |programa de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|adivinhao de | |/sid/crack) |/popcon.php? |/c/crack.html) |palavra-passe | | |package= | | | | |crack) | | | +-------------------------------------------------------------------------+ Aqui est um script simples para verificar as tpicas permisses de ficheiros escritas incorrectamente. # find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \) Cuidado Como o pacote debsums usa sumrios de verificao MD5 (http:// en.wikipedia.org/wiki/MD5) armazenados localmente, no pode ser de total confiana como ferramenta de auditoria segurana do sistema contra ataques maliciosos. 9.7. O kernel Debian distribui o kernel Linux (http://en.wikipedia.org/wiki/ Linux_kernel) modularizado em pacotes para as arquitecturas suportadas. 9.7.1. Kernel Linux 2.6 Existem algumas funcionalidades notveis no kernel Linux 2.6 comparado ao 2.4. * Os dispositivos so criados pelo sistema udev (veja Seco3.5.11, O sistema udev). * Os acessos de leitura/escrita a dispositivos CD/DVD IDE no usam o mdulo ide-scsi. * As funes de filtragem de pacotes de rede usam mdulos iptable do kernel. 9.7.2. Parmetros do kernel

Muitas funcionalidades do Linux so configurveis via parmetros de kernel como se segue. * Parmetros de kernel iniciados pelo gestor de arranque (veja Seco3.3, Estgio 2: o gestor de arranque) * Parmetros de kernel alterados pelo sysctl(8) durante a execuo para os acessveis via sysfs (veja Seco1.2.12, procfs e sysfs) * Parmetros de mdulos definidos por argumentos do modprobe(8) quando um mdulo activado (veja Seco10.2.3, Montar o ficheiro de imagem de disco) Veja "kernel-parameters.txt(.gz)" e outros documentos relacionados na documentao do kernel Linux ("/usr/share/doc/ linux-doc-2.6.*/Documentation/filesystems/*") disponibilizados pelo pacote linux-doc-2.6.*. 9.7.3. Cabealhos do kernel A maioria dos programas normais no precisa dos cabealhos do kernel e na verdade podem bloquear se os usar directamente para compilao. Eles devem ser compilados contra os cabealhos em "/ usr/include/linux" e "/usr/include/asm" disponibilizado pelo pacote libc6-dev (criado a partir do pacote fonte glibc) no sistema Debian. Nota Para compilar alguns programas especficos do kernel como mdulos de kernel a partir de fonte externa e o daemon de auto-montagem (amd), voc tem de incluir o caminho para os cabealhos de kernel correspondentes, ex. "-I/usr/src/verso-de-linux/include/", sua linha de comandos.O module-assistant(8) (ou a sua forma abreviada m-a) ajuda os utilizadores a construir e instalar pacotes de mdulos facilmente para um ou mais kernels personalizados. 9.7.4. Compilar o kernel e mdulos relacionados O Debian tem o seu mtodo prprio para compilar o kernel e os mdulos relacionados. Tabela 9.22. Lista de pacotes chave a serem instalados para a recompilao do kernel no sistema Debian +-----------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+----------------+----------------------+-----------------------------| |build-essential |I:482 (http:// |48 (http:// | | |(http:// |qa.debian.org/ |packages.qa.debian.org|pacotes essenci ais para | |packages.debian.org|popcon.php? |/b/ |construir pacot es Debian: | |/sid/ |package= |build-essential.html) |make, gcc,

| |build-essential) |build-essential)| | | |-------------------+----------------+----------------------+-----------------------------| | |V:497, I:813 | | | |bzip2 (http:// |(http:// |91 (http:// |utilitrios de co mpresso e | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|descompresso par a ficheiros | |/sid/bzip2) |popcon.php? |/b/bzip2.html) |bz2 | | |package=bzip2) | | | |-------------------+----------------+----------------------+-----------------------------| |libncurses5-dev |V:26, I:220 | | | |(http:// |(http:// |1008 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|bibliotecas de programadores e| |/sid/ |popcon.php? |/libn/ |documentos para ncurses | |libncurses5-dev) |package= |libncurses5-dev.html) | | | |libncurses5-dev)| | | |-------------------+----------------+----------------------+-----------------------------| | |V:132, I:421 | | | |git (http:// |(http:// |13144 (http:// |git: sistema de controle de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|verso distribudo usado pelo | |/sid/git) |popcon.php? |/g/git.html) |kernel Linux | | |package=git) | | | |-------------------+----------------+----------------------+-----------------------------| | |V:56, I:501 | | | |fakeroot (http:// |(http:// |317 (http:// |disponibiliza u m ambiente de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|falso-root para construo de | |/sid/fakeroot) |popcon.php? |/f/fakeroot.html) |pacotes como noroot | | |package= | | | | |fakeroot) | | | |-------------------+----------------+----------------------+-----------------------------| |initramfs-tools |V:425, I:986 | | | |(http:// |(http:// |323 (http:// |ferramenta para

construir uma | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|initramfs (espe cfico de | |/sid/ |popcon.php? |/i/ |Debian) | |initramfs-tools) |package= |initramfs-tools.html) | | | |initramfs-tools)| | | |-------------------+----------------+----------------------+-----------------------------| | |V:76, I:210 | |suporte de mdulo s de kernel | |dkms (http:// |(http:// |191 (http:// |dinmicos (DKMS) (http:// | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|en.wikipedia.or g/wiki/ | |/sid/dkms) |popcon.php? |/d/dkms.html) |Dynamic_Kernel_ Module_Support)| | |package=dkms) | |(genrico) | |-------------------+----------------+----------------------+-----------------------------| | |V:15, I:95 | | | |devscripts (http://|(http:// |1697 (http:// |scripts de ajud a para um | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|responsvel de pa cote Debian | |/sid/devscripts) |popcon.php? |/d/devscripts.html) |(especfico de De bian) | | |package= | | | | |devscripts) | | | +-----------------------------------------------------------------------------------------+ Se voc usa initrd em Seco3.3, Estgio 2: o gestor de arranque, certifique-se de ler a informao relacionada em initramfs-tools(8), update-initramfs(8), mkinitramfs(8) e initramfs.conf(5). Ateno No coloque links simblicos para os directrios na rvore fonte (ex. "/usr/src/linux*") a partir de "/usr/include/linux" e "/usr/ include/asm" quando compilar a fonte do kernel Linux. (Alguns documentos antigos sugerem isto.) Nota Quando compilar o kernel Linux mais recente no sistema Debian stable, pode ser necessrio o uso das ferramentas backport mais recentes do Debian unstable. Nota O suporte dinmico a mdulos do kernel (DKMS) (http://

en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support) uma nova infraestrutura independente da distribuio desenhada para permitir que mdulos de kernel individuais sejam actualizados sem se alterar todo o kernel. Isto ser aprovado para a manuteno de mdulos de fora-da-rvore para squeeze. Isto tambm facilita a reconstruo de mdulos quando actualiza os kernels. 9.7.5. Compilar cdigo-fonte do kernel: a recomendao da equipa do kernel de Debian Para compilar pacotes binrios de kernels personalizados a partir do cdigo-fonte original, deve utilizar o alvo disponibilizado por "deb-pkg". $ $ $ $ $ $ $ sudo apt-get build-dep linux-2.6 cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v3.2/linux-<version>.tar.bz2 tar -xjvf linux-<version>.tar.bz2 cd linux-<version> cp /boot/config-<version> .config make menuconfig ... $ make deb-pkg Dica O pacote linux-source-<version> disponibiliza o cdigo-fonte do kernel Linux com os patches Debian como "/usr/src/linux<version>.tar.bz2". Para construir pacotes binrios especificos a partir do pacote de cdigo-fonte do kernel Debian, deve utilizar os alvos "binary-arch_<architecture>_<featureset>_<flavour>"em "debian/ rules.gen". $ $ $ $ sudo apt-get build-dep linux-2.6 apt-get source linux-2.6 cd linux-2.6-* fakeroot make -f debian/rules.gen binary-arch_i386_none_686

Veja mais informao: * Wiki Debian: KernelFAQ (http://wiki.debian.org/KernelFAQ) * Wiki Debian: DebianKernel (http://wiki.debian.org/ DebianKernel) . * Debian Linux Kernel Handbook: http:// kernel-handbook.alioth.debian.org (http:// kernel-handbook.alioth.debian.org) 9.7.6. Controladores de hardware e firmware O controlador de hardware o cdigo que corre no sistema alvo. A maioria dos controladores de hardware esto agora disponveis como software livre e esto includos nos pacotes normais de kernel Debian na rea main. * Controlador de GPU (http://en.wikipedia.org/wiki/ Graphics_processing_unit)

o Controlador de GPU Intel (main) o Controlador de GPU AMD/ATI (main) o Controlador de GPU NVIDIA (main nouveau (http:// en.wikipedia.org/wiki/Nouveau_(software)) , e em non-free controladores binrios, sem cdigo fonte, suportados pelo fabricante.) * controlador de Softmodem (http://en.wikipedia.org/wiki/ Softmodem) o os pacotes martian-modem e sl-modem-dkms (non-free) O firmware o cdigo ou dados carregados no dispositivo (e.g. CPU microcode (http://en.wikipedia.org/wiki/Microcode) , cdigo de renderizao na GPU, ou dados FPGA (http://en.wikipedia.org/ wiki/FPGA) / CPLD (http://en.wikipedia.org/wiki/ Complex_programmable_logic_device) , ...). Alguns pacotes de firmware esto disponveis como software livre, mas muitos pacotes de firmware no esto disponveis como software livre j que so compostos por dados binrios sem cdigo-fonte. * firmware-linux-free (main) * firmware-linux-nonfree (non-free) * firmware-linux-* (non-free) * firmware (non-free) * intel-microcode (non-free) * amd64-microcode (non-free) Por favor note que os pacotes non-free e contrib no fazem parte do sistema Debian. A configurao de acesso para activar ou desactivar as reas non-free e contrib descrita em Seco2.1.4, Bsico do arquivos Debian. Deve estar ciente dos contras associados utilizao de pacotes non-free e contrib, conforme descrito em Seco2.1.5, Debian 100% software livre. 9.8. Sistema virtualizado O uso de sistema virtualizado permite-nos correr vrias instncias do sistema simultneamente num nico hardware. Dica Veja http://wiki.debian.org/SystemVirtualization (http:// wiki.debian.org/SystemVirtualization) . 9.8.1. Ferramentas de virtualizao Existem vrios pacotes relacionados com sistemas de virtualizao (http://en.wikipedia.org/wiki/Virtualization) e emulao (http:// en.wikipedia.org/wiki/Emulator) em Debian para alm do simples chroot (http://en.wikipedia.org/wiki/Chroot) . Alguns pacotes

tambm o ajudam a configurar tais sistemas. Tabela 9.23. Lista de ferramentas de virtualizao +--------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+----------------+----------------------+--------------------------------| |schroot (http:// |V:9, I:14 (http:|2633 (http:// |ferramenta espe cializada para | |packages.debian.org|//qa.debian.org/|packages.qa.debian.org|executar pacote s binrios Debian | |/sid/schroot) |popcon.php? |/s/schroot.html) |em chroot | | |package=schroot)| | | |-------------------+----------------+----------------------+--------------------------------| |sbuild (http:// |V:1, I:3 (http:/|456 (http:// |ferramenta para construir pacotes| |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|binrios Debian a partir de | |/sid/sbuild) |popcon.php? |/s/sbuild.html) |fontes Debian | | |package=sbuild) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:4, I:25 (http:| | | |pbuilder (http:// |//qa.debian.org/|993 (http:// |construtor de p acotes pessoais | |packages.debian.org|popcon.php? |packages.qa.debian.org|para pacotes De bian | |/sid/pbuilder) |package= |/p/pbuilder.html) | | | |pbuilder) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:13, I:92 | | | |debootstrap (http:/|(http:// |226 (http:// | | |/ |qa.debian.org/ |packages.qa.debian.org|bootstrap um si stema Debian | |packages.debian.org|popcon.php? |/d/debootstrap.html) |bsico (escrito e m sh) | |/sid/debootstrap) |package= | | | | |debootstrap) | | | |-------------------+----------------+----------------------+--------------------------------| |cdebootstrap (http:|V:1, I:13 (http:| | | |// |//qa.debian.org/|66 (http:// |bootstrap um si stema Debian |

|packages.debian.org|popcon.php? |packages.qa.debian.org|(escrito em C) | |/sid/cdebootstrap) |package= |/c/cdebootstrap.html) | | | |cdebootstrap) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:0, I:1 (http:/| | | |rootstrap (http:// |/qa.debian.org/ |97 (http:// |ferramenta para construir imagens| |packages.debian.org|popcon.php? |packages.qa.debian.org|de sistema de f icheiros de Linux | |/sid/rootstrap) |package= |/r/rootstrap.html) |completas | | |rootstrap) | | | |-------------------+----------------+----------------------+--------------------------------| |virt-manager (http:|V:8, I:25 (http:| |Virtual Machine Manager (http:// | |// |//qa.debian.org/|6132 (http:// |en.wikipedia.or g/wiki/ | |packages.debian.org|popcon.php? |packages.qa.debian.org|Virtual_Machine _Manager) : | |/sid/virt-manager) |package= |/v/virt-manager.html) |aplicao de ambien te de trabalho| | |virt-manager) | |para gerir mquin as virtuais | |-------------------+----------------+----------------------+--------------------------------| | |V:61, I:85 | | | |libvirt-bin (http:/|(http:// |4467 (http:// |programas para a biblioteca | |/ |qa.debian.org/ |packages.qa.debian.org|libvirt (http:/ /en.wikipedia.org/| |packages.debian.org|popcon.php? |/libv/ |wiki/Libvirt) | |/sid/libvirt-bin) |package= |libvirt-bin.html) | | | |libvirt-bin) | | | |-------------------+----------------+----------------------+--------------------------------| |user-mode-linux |V:0, I:3 (http:/|24015 (http:// | | |(http:// |/qa.debian.org/ |packages.qa.debian.org|Modo-de-utiliza dor Linux (http://| |packages.debian.org|popcon.php? |/u/ |en.wikipedia.or g/wiki/ | |/sid/ |package= |user-mode-linux.html) |User-mode_Linux ) (kernel) | |user-mode-linux) |user-mode-linux)| | | |-------------------+----------------+----------------------+--------------------------------| |bochs (http:// |V:0, I:2 (http:/|3018 (http:// | |

|packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|Bochs (http://e n.wikipedia.org/ | |/sid/bochs) |popcon.php? |/b/bochs.html) |wiki/Bochs) : e mulador PC IA-32 | | |package=bochs) | | | |-------------------+----------------+----------------------+--------------------------------| |qemu (http:// |I:64 (http:// |370 (http:// |QEMU (http://en .wikipedia.org/ | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|wiki/QEMU) : em ulador de | |/sid/qemu) |popcon.php? |/q/qemu.html) |processador genr ico rpido | | |package=qemu) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:36, I:66 | | | |qemu-system (http:/|(http:// |80774 (http:// |QEMU (http://en.wikip edia.org/ | |/ |qa.debian.org/ |packages.qa.debian.org|wiki/QEMU) : bi nrios de emulao| |packages.debian.org|popcon.php? |/q/qemu-system.html) |de sistema comp leto | |/sid/qemu-system) |package= | | | | |qemu-system) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:6, I:62 (http:| | | |qemu-user (http:// |//qa.debian.org/|47014 (http:// |QEMU (http://en .wikipedia.org/ | |packages.debian.org|popcon.php? |packages.qa.debian.org|wiki/QEMU) : bi nrios de emulao| |/sid/qemu-user) |package= |/q/qemu-user.html) |em modo de util izador | | |qemu-user) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:14, I:119 | | | |qemu-utils (http://|(http:// |1496 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|QEMU (http://en .wikipedia.org/ | |/sid/qemu-utils) |popcon.php? |/q/qemu-utils.html) |wiki/QEMU) : ut ilitrios | | |package= | | | | |qemu-utils) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:58, I:92 | |KVM (http://en. wikipedia.org/wiki|

| |(http:// | |/Kernel-based_V irtual_Machine) : | |qemu-kvm (http:// |qa.debian.org/ |5040 (http:// |virtualizao compl eta em | |packages.debian.org|popcon.php? |packages.qa.debian.org|hardware x86 co m virtualizao | |/sid/qemu-kvm) |package= |/q/qemu-kvm.html) |assistida por h ardware (http:// | | |qemu-kvm) | |en.wikipedia.or g/wiki/ | | | | |Hardware-assist ed_virtualization)| |-------------------+----------------+----------------------+--------------------------------| |virtualbox-ose |V:8, I:29 (http:|118 (http:// |VirtualBox (htt p:// | |(http:// |//qa.debian.org/|packages.qa.debian.org|en.wikipedia.or g/wiki/VirtualBox)| |packages.debian.org|popcon.php? |/v/ |: soluo de virtua lizao x86 em| |/sid/ |package= |virtualbox-ose.html) |i386 e amd64 | |virtualbox-ose) |virtualbox-ose) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:1, I:15 (http:| |ferramentas par a gerir o servidor| |xen-tools (http:// |//qa.debian.org/|604 (http:// |virtual XEN (ht tp:// | |packages.debian.org|popcon.php? |packages.qa.debian.org|en.wikipedia.or g/wiki/Xfce) do | |/sid/xen-tools) |package= |/x/xen-tools.html) |debian | | |xen-tools) | | | |-------------------+----------------+----------------------+--------------------------------| | |V:8, I:117 | |Wine (http://en .wikipedia.org/ | |wine (http:// |(http:// |80 (http:// |wiki/Wine_(soft ware)) : Windows | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|API Implementat ion (suite | |/sid/wine) |popcon.php? |/w/wine.html) |standard) | | |package=wine) | | | |-------------------+----------------+----------------------+--------------------------------| |dosbox (http:// |V:4, I:26 (http:|2526 (http:// |DOSBox (http:// en.wikipedia.org/ | |packages.debian.org|//qa.debian.org/|packages.qa.debian.org|wiki/DOSBox) : emulador x86 com | |/sid/dosbox) |popcon.php? |/d/dosbox.html) |grficos Tandy/He rc/CGA/EGA/VGA/ | | |package=dosbox) | |SVGA, som e DOS | |-------------------+----------------+----------------------+--------------------------------|

|dosemu (http:// |V:2, I:9 (http:/|4820 (http:// |DOSEMU (http:// en.wikipedia.org/ | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|wiki/DOSEMU) : O Emulador de DOS | |/sid/dosemu) |popcon.php? |/d/dosemu.html) |do Linux | | |package=dosemu) | | | |-------------------+----------------+----------------------+--------------------------------| |vzctl (http:// |V:6, I:9 (http:/|657 (http:// |OpenVZ (http:// en.wikipedia.org/ | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|wiki/OpenVZ) so luo de | |/sid/vzctl) |popcon.php? |/v/vzctl.html) |virtualizao de se rvidor | | |package=vzctl) | |ferramentas de controle | |-------------------+----------------+----------------------+--------------------------------| |vzquota (http:// |V:6, I:10 (http:|204 (http:// |OpenVZ (http:// en.wikipedia.org/ | |packages.debian.org|//qa.debian.org/|packages.qa.debian.org|wiki/OpenVZ) so luo de | |/sid/vzquota) |popcon.php? |/v/vzquota.html) |virtualizao de se rvidor | | |package=vzquota)| |ferramentas de quotas | |-------------------+----------------+----------------------+--------------------------------| |lxc (http:// |V:1, I:7 (http:/|612 (http:// |Ferramentas de utilizador para | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|Linux container s (http:// | |/sid/lxc) |popcon.php? |/l/lxc.html) |lxc.sourceforge .net/) | | |package=lxc) | | | +--------------------------------------------------------------------------------------------+ Veja o artigo da Wikipedia Comparao de plataformas de mquinas virtuais (http://en.wikipedia.org/wiki/ Comparison_of_platform_virtual_machines) para uma comparao detalhada das diferentes solues de plataformas de virtualizao. 9.8.2. Fluxo de trabalho da virtualizao Nota Algumas funcionalidades descritas aqui apenas esto disponveis em squeeze. Nota Os kernels predefinidos de Debian suportam KVM (http:// en.wikipedia.org/wiki/Kernel-based_Virtual_Machine) desde lenny.

O fluxo e trabalho tpico para virtualizao (http:// en.wikipedia.org/wiki/Virtualization) envolve vrios passos. * Criar um sistema de ficheiros vazio (uma rvore de ficheiros ou uma imagem de disco). o A rvore de ficheiros pode ser criada por "mkdir -p /path /to/chroot". o A imagem de disco crua pode ser criada com o dd(1) (veja Seco10.2.1, Criando o ficheiro de imagem de disco e Seco10.2.5, Criar um ficheiro de imagem de disco vazio). o qemu-img(1) pode ser usado para criar e converter ficheiros de imagem de disco suportados pelo QEMU (http:/ /en.wikipedia.org/wiki/QEMU) . o Os formatos de ficheiro cru e VMDK (http:// en.wikipedia.org/wiki/VMDK) podem ser usados como formatos comuns entre ferramentas de virtualizao. * Montar a imagem de disco com mount(8) no sistema de ficheiros (opcional). o Para o ficheiro de imagem de disco cru, monte-o como dispositivo loop (http://en.wikipedia.org/wiki/ Loop_device) ou dispositivo do device mapper (http:// en.wikipedia.org/wiki/Device_mapper) (veja Seco10.2.3, Montar o ficheiro de imagem de disco). o Para imagens de disco suportadas pelo QEMU (http:// en.wikipedia.org/wiki/QEMU) , monte-as como dispositivos de bloco de rede (http://en.wikipedia.org/wiki/ Network_block_device) (veja Seco9.8.3, Montar o ficheiro de imagem de disco virtual). * Povoar o sistema de ficheiros alvo com os dados de sistema necessrios. o Usar programas como o debootstrap e o cdebootstrap ajudam neste processo (veja Seco9.8.4, Sistema chroot). o Use instaladores de SOs sob o emulador de sistema completo. * Correr um programa sob um ambiente virtualizado. o chroot (http://en.wikipedia.org/wiki/Chroot) disponibiliza um ambiente virtualizado bsico suficiente para compilar programas, correr aplicaes de consola, e correr daemons nele. o QEMU (http://en.wikipedia.org/wiki/QEMU) oferece emulao de CPU de vrias plataformas. o QEMU (http://en.wikipedia.org/wiki/QEMU) com KVM (http:// en.wikipedia.org/wiki/Kernel-based_Virtual_Machine) oferece emulao de sistema completo pela virtualizao assistida a hardware (http://en.wikipedia.org/wiki/

Hardware-assisted_virtualization) . o VirtualBox (http://en.wikipedia.org/wiki/VirtualBox) oferece emulao de sistema completo em i386 ou amd64 com ou sem a virtualizao assistida a hardware (http:// en.wikipedia.org/wiki/Hardware-assisted_virtualization) . 9.8.3. Montar o ficheiro de imagem de disco virtual Para o ficheiro de imagem de disco raw, veja Seco10.2, A imagem de disco. Para outros ficheiros de imagem de disco virtual, voc pode usar o qemu-nbd para export-los usando o protocolo dispositivo de bloco de rede (http://en.wikipedia.org/wiki/Network_block_device) e mont-los usando o mdulo de kernel nbd. O qemu-nbd(8) suporta os formatos de disco suportados pelo QEMU (http://en.wikipedia.org/wiki/QEMU) : O QEMU (http:// en.wikipedia.org/wiki/QEMU) suporta os seguintes formatos de discos: raw, qcow2, qcow (http://en.wikipedia.org/wiki/Qcow) , vmdk (http://en.wikipedia.org/wiki/VMDK) , vdi (http:// en.wikipedia.org/wiki/VirtualBox#Virtual_Desktop_Image) , bochs (http://en.wikipedia.org/wiki/Bochs) , cow (modo-de-utilizador de Linux de copiar-ao-escrever), parallels (http://en.wikipedia.org/ wiki/Parallels_Workstation) , dmg (http://en.wikipedia.org/wiki/ Apple_Disk_Image) , cloop (http://en.wikipedia.org/wiki/Cloop) , vpc (http://en.wikipedia.org/wiki/VHD_(file_format)) , vvfat (VFAT virtual), e dispositivo_mquina. O dispositivo de bloco em rede (http://en.wikipedia.org/wiki/ Network_block_device) pode suportar parties do mesmo modo que o dispositivo de loop (http://en.wikipedia.org/wiki/Loop_device) (veja Seco10.2.3, Montar o ficheiro de imagem de disco). Voc pode montar a primeira partio de "disk.img" como se segue. # modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1 Dica Voc pode exportar apenas a primeira partio de "disk.img" usando a opo "-P 1" para qemu-nbd(8). 9.8.4. Sistema chroot chroot(8) oferece a maneira mais bsica de correr diferentes instncias do ambiente GNU/Linux num nico sistema em simultneo sem reiniciar. Cuidado Os exemplos em baixo assumem que ambos os sistemas pai e chroot partilham a mesma arquitectura de CPU. Voc pode aprender a como configurar e usar chroot(8) ao correr o programa pbuilder(8) sob script(1) como se segue.

$ sudo mkdir /sid-root $ sudo pbuilder --create --no-targz --debug --buildplace /sid-root Voc v como debootstrap(8) ou cdebootstrap(1) povoam dados do sistema para ambiente sid sob "/sid-root". Dica Estes debootstrap(8) ou cdebootstrap(1) so usados para instalar Debian (http://www.debian.org/releases/stable/installmanual) pelo instalador Debian Installer. Estes tambm podem ser usados para instalar Debian num sistema sem usar um disco de instalao de Debian, mas em vez disso, a partir de outra distribuio de GNU/ Linux. $ sudo pbuilder --login --no-targz --debug --buildplace /sid-root Voc pode ver como uma shell de sistema a correr sob ambiente sid criada como o seguinte. 1. Copiar configurao local ("/etc/hosts", "/etc/hostname", "/ etc/resolv.conf") 2. Montar o sistema de ficheiros "/proc" 3. Montar o sistema de ficheiros "/dev/pts" 4. Criar "/usr/sbin/policy-rc.d" o qual sempre existe com 101 5. Corra "chroot /sid-root bin/bash -c 'exec -a -bash bin/bash'" Nota Alguns programas sob chroot podem requerer acesso a mais ficheiros do sistema pai para funcionarem do que o pbuilder disponibiliza. Por exemplo, "/sys", "/etc/passwd", "/etc/group", "/var/run/utmp", "/var/log/wtmp", etc. podem precisar de ser montados em unio ou copiados. Nota O ficheiro "/usr/sbin/policy-rc.d" previne que programas daemon arranquem automaticamente no sistema Debian. Veja "/usr/share/doc /sysv-rc/README.policy-rc.d.gz". Dica O objectivo original do pacote especializado chroot, pbuilder construir um sistema chroot system e construir um pacote dentro do chroot. um sistema ideal para usar para verificar se as dependncias de compilao de um pacote esto correctas, e para certificar que dependncias de compilao erradas e desnecessrias no existem no pacote resultante. Dica De modo semelhante, o pacote schroot pode dar-lhe uma uma ideia de correr um sistema chroot i386 sob um sistema pai amd64.

9.8.5. Sistemas de vrios ambientes de trabalho Eu recomendo usar o QEMU (http://en.wikipedia.org/wiki/QEMU) ou o VirtualBox (http://en.wikipedia.org/wiki/VirtualBox) num sistema Debian stable para correr vrios sistemas de ambiente de trabalho em segurana usando virtualizao (http://en.wikipedia.org/wiki/ Virtualization) . Isto permite-lhe correr aplicaes de ambiente de trabalho do Debian unstable e testing sem os riscos usuais associados a elas. Como o QEMU (http://en.wikipedia.org/wiki/QEMU) puro muito lento, recomendado aceler-lo com KVM (http://en.wikipedia.org/ wiki/Kernel-based_Virtual_Machine) quando o sistema da mquina o suporta. A imagem de disco virtual "virtdisk.qcow2" que contem o sistema Debian para o QEMU (http://en.wikipedia.org/wiki/QEMU) pode ser criada usando o instalador de debian em pequenos CDs (http:// www.debian.org/distrib/netinst) como se segue. $ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd 64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 25 6 ... Veja mais dicas em Debian wiki: QEMU (http://wiki.debian.org/ QEMU) . O VirtualBox (http://en.wikipedia.org/wiki/VirtualBox) vem com ferramentas GUI Qt (http://en.wikipedia.org/wiki/Qt_(toolkit)) e bastante intuitivo. As suas ferramentas GUI e de linha de comandos esto explicadas em Manual do Utilizador do VirtualBox (http://www.virtualbox.org/manual/UserManual.html) e Manual do Utilizador do VirtualBox (PDF) (http://download.virtualbox.org/ virtualbox/UserManual.pdf) . Dica Correr outras distribuies de GNU/Linux como o Ubuntu (http:// www.ubuntu.com/) e o Fedra (http://fedoraproject.org/) sob virtualizao (http://en.wikipedia.org/wiki/Virtualization) um bom modo de aprender dicas de configurao. Tambm outros SOs proprietrios podem correr muito bem sob esta virtualizao (http://en.wikipedia.org/wiki/Virtualization) do GNU/Linux. Captulo 10. Gesto de dados So descritas ferramentas e dicas para gerir dados binrios e de texto no sistema Debian. Ateno O acesso de escrita descoordenado a dispositivos acedidos activamente e a ficheiros a partir de mltiplos processos no deve ser feito para evitar a condio de competio (http:// en.wikipedia.org/wiki/Race_condition) . Devem ser usados mecanismos de bloqueio de ficheiro (http://en.wikipedia.org/wiki/ File_locking) que usem o flock(1) para o evitar.

10.1. Partilhar, copiar e arquivar A segurana dos dados e a sua partilha controlada tm vrios aspectos. * A criao de um arquivo de dados * O acesso a armazenamento remoto * A duplicao * O acompanhar do histrico de modificao * A facilitao da partilha de dados * A preveno de acessos no autorizados a ficheiros * A deteco de modificao no autorizada de ficheiros Estas podem ser realizadas usando a combinao de algumas ferramentas * Ferramentas de arquivo e compresso * Ferramentas de cpia de sincronizao * Sistemas de ficheiros de rede * Media de armazenamento amovvel * A shell segura * O sistema de autenticao * Ferramentas de sistema de controle de verso * Ferramentas de hash e encriptao criptogrfica 10.1.1. Ferramentas de arquivo e compresso Aqui est um sumrio das ferramentas de arquivo e compresso disponveis no sistema Debian. Tabela 10.1. Lista de ferramentas de arquivo e compresso +-----------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |extenso|comando|com entrio | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:564, I:999 | | | | | |tar (http:// |(http:// |2464 (http:// | | |o arquivador standard (de facto | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.tar |tar(1) |s tandard) | |/sid/tar) |/popcon.php? |/t/tar.html) | | | |

|package=tar) | | | | | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:435, I:998 | | | | | |cpio (http:// |(http:// |855 (http:// | | |a rquivador estilo Unix System V, | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.cpio |cpio(1)|u sar com o find(1) | |/sid/cpio) |/popcon.php? |/c/cpio.html) | | | | | |package=cpio)| | | | | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:561, I:745 | | | | | |binutils (http:// |(http:// |14618 (http:// | | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.ar |ar(1) |a rquivador para a criao de | |/sid/binutils) |/popcon.php? |/b/binutils.html) | | |b ibliotecas estticas | | |package= | | | | | | |binutils) | | | | | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:19, I:132 | | | | | |fastjar (http:// |(http:// |191 (http:// | | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.jar |fastjar|a rquivador para Java (estilo zip) | |/sid/fastjar) |/popcon.php? |/f/fastjar.html) | |(1) | | | |package= | | | | | | |fastjar) | | | | | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:22, I:82 | | | | | |pax (http:// |(http:// |181 (http:// | | |n ovo arquivador standard do POSIX,| |packages.debian.org|qa.debian.org|packages.qa.debian.org|.pax |pax(1) |u m compromisso entre tar e cpio | |/sid/pax) |/popcon.php? |/p/pax.html) | | | | | |package=pax) | | | | | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:903, I:999 | | | |L Z77 (http://en.wikipedia.org/wiki| |gzip (http:// |(http:// |202 (http:// | |gzip(1)|/ LZ77_and_LZ78) utilitrio de |

|packages.debian.org|qa.debian.org|packages.qa.debian.org|.gz |, zcat |c ompresso do GNU (o standard de | |/sid/gzip) |/popcon.php? |/g/gzip.html) | |(1), |fac to) | | |package=gzip)| | | | | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | | | | | |C ompresso de organizao de | | |V:497, I:813 | | | |b locos de Burrows-Wheeler (http://| |bzip2 (http:// |(http:// |91 (http:// | |bzip2 |e n.wikipedia.org/wiki/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.bz2 |(1), |B urrows-Wheeler_transform) | |/sid/bzip2) |/popcon.php? |/b/bzip2.html) | |bzcat |u tilitrio com um rcio de | | |package= | | |(1), |com presso mais alto que o gzip(1)| | |bzip2) | | | |( mais lento que o gzip com sintaxe| | | | | | |s emelhante) | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:24, I:295 | | | |L ZMA (http://en.wikipedia.org/wiki| |lzma (http:// |(http:// |144 (http:// | | |/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.lzma |lzma(1)|L empel-Ziv-Markov_chain_algorithm)| |/sid/lzma) |/popcon.php? |/l/lzma.html) | | |u tilitrio de compresso com rcio| | |package=lzma)| | | |d e compresso mais alto que o gzip| | | | | | |( 1) (descontinuado) | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | | | | | |X Z (http://en.wikipedia.org/wiki/ | | | | | | |X ML) utilitrio de compresso com | | |V:207, I:838 | | | |rc io de compresso mais alto que | |xz-utils (http:// |(http:// |472 (http:// | |xz(1), |o bzip2(1) (mais lento que o gzip | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.xz |xzdec |m as mais rpido que o bzip2; | |/sid/xz-utils) |/popcon.php? |/x/xz-utils.html) | |(1), |sub stituto para o utilitrio de | | |package= | | | |c ompresso LZMA (http:// | | |xz-utils) | | | |e n.wikipedia.org/wiki/ | | | | | | |L empel-Ziv-Markov_chain_algorithm)| | | | | | |) |

|-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:10, I:101 | | | |7 -Zip (http://en.wikipedia.org/ | | |(http:// | | | |w iki/7-Zip) arquivador de | |p7zip (http:// |qa.debian.org|986 (http:// | |7zr(1),|f icheiros com alta taxa de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|.7z |p7zip |c ompresso (compresso LZMA (http:| |/sid/p7zip) |package= |/p/p7zip.html) | |(1) |/ /en.wikipedia.org/wiki/ | | |p7zip) | | | |L empel-Ziv-Markov_chain_algorithm)| | | | | | |) | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:259, I:450 | | | |7 -Zip (http://en.wikipedia.org/ | | |(http:// | | | |w iki/7-Zip) arquivador de | |p7zip-full (http://|qa.debian.org|3895 (http:// | |7z(1), |f icheiros com rcio de compresso | |packages.debian.org|/popcon.php? |packages.qa.debian.org|.7z |7za(1) |a lto (LZMA (http:// | |/sid/p7zip-full) |package= |/p/p7zip-full.html) | | |e n.wikipedia.org/wiki/ | | |p7zip-full) | | | |L empel-Ziv-Markov_chain_algorithm)| | | | | | |c ompresso e outros) | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | | | | | |L ZO (http://en.wikipedia.org/wiki/| | |V:5, I:41 | | | |L empel-Ziv-Oberhumer) utilitrio | |lzop (http:// |(http:// |112 (http:// | | |d e compresso com mais alta | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.lzo |lzop(1)|c ompresso e mais rpida | |/sid/lzop) |/popcon.php? |/l/lzop.html) | | |d escompresso que o gzip(1) (rcio| | |package=lzop)| | | |d e compresso mais baixo que o | | | | | | |g zip com sintaxe semelhante) | |-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:64, I:391 | | | | | |zip (http:// |(http:// |597 (http:// | | |I nfoZIP (http://en.wikipedia.org/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.zip |zip(1) |w iki/Info-ZIP) : ferramenta de | |/sid/zip) |/popcon.php? |/z/zip.html) | | |c ompresso e arquivo do DOS | | |package=zip) | | | | |

|-------------------+-------------+----------------------+--------+-------+---------------------------------| | |V:301, I:716 | | | | | |unzip (http:// |(http:// |377 (http:// | | |I nfoZIP (http://en.wikipedia.org/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|.zip |unzip |w iki/Info-ZIP) : ferramenta de | |/sid/unzip) |/popcon.php? |/u/unzip.html) | |(1) |d escompresso e de desarquivar do | | |package= | | | |D OS | | |unzip) | | | | | +-----------------------------------------------------------------------------------------------------------+ Ateno No defina a varivel "$TAPE" a menos que saiba com o que esperar. Altera o comportamento do tar(1). Nota O arquivo tar(1) gzipado usa a extenso de ficheiro ".tgz" ou ".tar.gz". Nota O arquivo tar(1) comprimido em xz usa a extenso de ficheiro ".txz" ou ".tar.xz". Nota Mtodo de compresso popular em ferramentas FOSS (http:// en.wikipedia.org/wiki/Free_and_open_source_software) tal como o tar(1) tm se movido como se segue: gzip bzip2 xz Nota cp(1), scp(1) e tar(1) podem ter algumas limitaes para ficheiros especiais. cpio(1) o mais verstil. Nota O cpio(1) desenhado para ser utilizado com o find(1) e outros comandos e apropriado para criar scripts de backup pois a parte de seleco de ficheiros do script pode ser testada independentemente. Nota A estrutura interna dos ficheiros de dados do OpenOffice so ficheiros ".jar". 10.1.2. Ferramentas de cpia de sincronizao Aqui est um sumrio de ferramentas de cpia simples e salvaguarda disponveis no sistema Debian.

Tabela 10.2. Lista de ferramentas de cpia e sincronizao +----------------------------------------------------------------------------------+ |pacote |popcon |tamanho |ferramenta|funo | |-------------------+---------------+----------------------+----------+------------| | |V:902, I:999 | | |copia | | |(http:// | | |local mente | |coreutils (http:// |qa.debian.org/ |13731 (http:// | |fiche iros e | |packages.debian.org|popcon.php? |packages.qa.debian.org|GNU cp |direc trios | |/sid/coreutils) |package= |/c/coreutils.html) | |("-a" para | | |coreutils) | | |ser | | | | | |recur sivo) | |-------------------+---------------+----------------------+----------+------------| | |V:564, I:995 | | |copia | |openssh-client |(http:// |2276 (http:// | |remot amente | |(http:// |qa.debian.org/ |packages.qa.debian.org| |fiche iros e | |packages.debian.org|popcon.php? |/o/ |scp |direc trios | |/sid/ |package= |openssh-client.html) | |(clie nte, | |openssh-client) |openssh-client)| | |"-r" para ser| | | | | |recur sivo) | |-------------------+---------------+----------------------+----------+------------| |openssh-server |V:689, I:847 | | |copia | |(http:// |(http:// |708 (http:// | |fiche iros e | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|sshd |direc trios | |/sid/ |popcon.php? |/o/ | |remot amente | |openssh-server) |package= |openssh-server.html) | |(serv idor | | |openssh-server)| | |remot o) | |-------------------+---------------+----------------------+----------+------------| | |V:197, I:618 | | |sincr onizao| |rsync (http:// |(http:// |638 (http:// | |remot a a | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org||salva

guarda | |/sid/rsync) |popcon.php? |/r/rsync.html) | |de 1 via | | |package=rsync) | | | | |-------------------+---------------+----------------------+----------+------------| | |V:8, I:31 | | |sincr onizao| |unison (http:// |(http:// |1987 (http:// | |remot a a | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org||salva guarda | |/sid/unison) |popcon.php? |/u/unison.html) | |de 2 vias | | |package=unison)| | | | +----------------------------------------------------------------------------------+ Copiar ficheiros com o rsync(8) oferece funcionalidades mais ricas que os outros. * algoritmo de transferncia delta que envia apenas as diferenas entre os ficheiros da fonte e os ficheiros existentes no destino * algoritmo de verificao rpida (predefinido) que procura ficheiros que alteraram no tamanho ou hora da ltima modificao * opes "--exclude" e "--exclude-from" semelhantes ao tar(1) * sintaxe de "uma barra final no directrio fonte" que evita a criao de um nvel de directrio adicional no destino. Dica A execuo do script bkup mencionado em Seco10.1.9, Um script de cpia para a salvaguarda de dados com a opo "-gl" sob cron (8) dever disponibilizar uma funcionalidade muito semelhante como o dumpfs do Plan9 para o arquivo de dados esttico. Dica Ferramentas de sistema de controlo de verso (VCS) em Tabela10.15, lista de ferramentas de sistemas de controle de verso podem funcionar como a copia de multi-modos e ferramentas de sincronizao. 10.1.3. Idiomas para o arquivo Aqui esto vrias maneiras de arquivar e "desarquivar" o contedo completo do directrio "./source" usando diferentes ferramentas. GNU tar(1): $ tar cvzf archive.tar.gz ./source $ tar xvzf archive.tar.gz

cpio(1): $ find ./source -xdev -print0 | cpio -ov --null > archive.cpio; gzip archive.cpio $ zcat archive.cpio.gz | cpio -i 10.1.4. Idiomas para a cpia Aqui esto algumas maneiras de copiar o contedo inteiro do directrio "./source" usando diferentes ferramentas. * Cpia local: directrio "./source" directrio "/dest" * Cpia remota: directrio "./source" em mquina local directrio "/dest" na mquina "[email protected]" rsync(8): # cd ./source; rsync -av . /dest # cd ./source; rsync -av . [email protected]:/dest Voc pode alternativamente usar a sintaxe de "uma barra direita no directrio fonte". # rsync -av ./source/ /dest # rsync -av ./source/ [email protected]:/dest cp(1) de GNU e scp(1) de openSSH: # cd ./source; cp -a . /dest # cd ./source; scp -pr . [email protected]:/dest GNU tar(1): # (cd ./source && tar cf - . ) | (cd /dest && tar xvfp - ) # (cd ./source && tar cf - . ) | ssh [email protected] '(cd /dest && ta r xvfp - )' cpio(1): # cd ./source; find . -print0 | cpio -pvdm --null --sparse /dest Pode substituir "." por "foo" para todos os exemplos que contenham "." para copiar ficheiros do directrio "./source/foo" para o directrio "/dest/foo". Pode substituir "." pelo caminho absoluto "/caminho/para/fonte/ foo" para todos os exemplos que contenham "." para abandonar "cd ./source;". Estes copiam ficheiros para localizaes diferentes dependendo das ferramentas utilizadas conforme se segue. * "/dest/foo": rsync(8), cp(1) do GNU, e scp(1) * "/path/to/source/foo": GNU tar(1), e cpio(1) Dica rsync(8) e cp(1) do GNU tm a opo "-u" para saltar ficheiros que so mais recentes no receptor.

10.1.5. Idiomas para a seleco de ficheiros O find(1) usado para seleccionar ficheiros para o arquivo e copiar comandos (veja Seco10.1.3, Idiomas para o arquivo e Seco10.1.4, Idiomas para a cpia) ou para xargs(1) (veja Seco9.5.9, Repetindo um ciclo de comandos sobre ficheiros). Isto pode ser melhorado ao usar os seus argumentos de comando. A sintaxe bsica de find(1) pode ser sumariada no seguinte. * Os seus argumentos condicionais so avaliados da esquerda para a direita. * Esta avaliao pra assim que o seu resultado determinado. * O "OU lgico" (especificado por "-o" entre condicionais) tem precedncia mais baixa que o "E lgico" (especificado por "-a" ou nada entre condicionais). * O "NO lgico" (especificado por "!" antes duma condicional) tem precedncia mas alta que o "E lgico". * "-prune" retorna sempre o VERDADEIRO lgico e, se for um directrio, a busca de ficheiro parada para alm deste ponto. * "-name" corresponde base do nome de ficheiro com glob de shell (veja Seco1.5.6, Glob da shell) mas tambm corresponde ao seu "." inicial com meta-caracteres como o "*" e o "?". (Nova funcionalidade do POSIX (http:// en.wikipedia.org/wiki/POSIX) ) * "-regex" corresponde ao caminho completo com estilo emacs BRE (veja Seco1.6.2, Expresses regulares) como predefinio. * "-size" corresponde ao ficheiro baseado no tamanho do ficheiro (valor precedido de "+" para maior, precedido de "-" para menor) * "-newer" corresponde ao ficheiro mais recente que aquele especificado no seu argumento. * "-print0" retorna sempre o TRUE lgico e escreve o nome de ficheiro completo (terminado em nulo (http://en.wikipedia.org /wiki/Null_character) ) na sada standard. O find(1) usado geralmente com um estilo idiomtico como se segue. # find /caminho/para \ -xdev -regextype posix-extended \ -type f -regex ".*\.cpio|.*~" -prune -o \ -type d -regex ".*/\.git" -prune -o \ -type f -size +99M -prune -o \ -type f -newer /caminho/para/timestamp -print0 Isto significa fazer as seguintes aces. 1. Procurar todos os ficheiros que comeam por "/caminho/para"

2. Limitar globalmente a sua busca dentro do sistema de ficheiros inicial e usa ERE (veja antes Seco1.6.2, Expresses regulares) 3. Excluir da busca os ficheiros que correspondem expresso regular ".*\.cpio" ou ".*~" ao parar o processamento 4. Excluir da busca os directrios que correspondem expresso regular ".*/\.git" ao parar o processamento 5. Exclui da busca os ficheiros maiores que 99 Mb (unidades de 1048576 bytes) ao parar o processamento 6. Escrever os nomes de ficheiros que satisfazem as condies de busca em cima e so mais recentes que "/caminho/para/ timestamp" Por favor note a utilizao idiomtica de "-prune -o" para excluir ficheiros no exemplo em cima. Nota Para um sistema wiki/Unix-like) find(1). Em tal correspondncia ter que ajustar no-Debian tipo Unix (http://en.wikipedia.org/ , algumas opes podem no ser suportadas pelo caso, por favor considere ajustar os mtodos de e substitua "-print0" por "-print". Voc poder tambm os comandos relacionados.

10.1.6. Salvaguarda (backup) e recuperao Todos ns sabemos que os computadores avariam ou que erros humanos causam danos no sistema e nos dados. As operaes de salvaguarda e recuperao so a parte essencial sucesso do administrador de sistemas. Todos os modos de falha possveis iro atingi-lo um dia. Dica Mantenha o seu sistema de backup simples e faa backups peridicos. Ter cpias de segurana dos dados mais importante do que quo bom tecnicamente o seu mtodo de backup. Existem 3 factores chave que determinam a poltica actual de salvaguarda e recuperao. 1. Saber o que salvaguardar e recuperar. * Ficheiros de dados criados directamente por si: dados em "~/" * Ficheiros de dados criados por aplicaes usadas por si: dados em "/var/" (excepto "/var/cache/", "/var/run/", e " /var/tmp/") * Ficheiros de configurao do sistema: dados em "/etc/" * Softwares locais: dados em "/usr/local/" ou "/opt/" * Informao da instalao do sistema: um memo em texto

simples em passos chave (partio, ...) * Conjunto de dados de prova: confirmado com antecedncia por operaes de recuperao experimentais 2. Saber como salvaguardar e recuperar * Armazenamento de dados seguro: proteco contra reescrita e falha do sistema * Salvaguarda frequente: salvaguarda agendada * Backup redundante: usar mirror de dados * Processo prova de tolos: backup fcil de comando nico 3. Avaliar os riscos e custos envolvidos. * O valor dos dados quando perdidos * Recursos necessrios para o backup: humano, hardware, software, ... * Modo de falha e a sua possibilidade Para o armazenamento seguro de dados, os dados devem estar pelo menos em parties de disco diferentes de preferncia em discos e mquinas diferentes para sobreviverem corrupo do sistema de ficheiros. Os dados importantes ficam melhor armazenados em medias onde s se escreve uma vez, como os CD/DVD-R para prevenir serem sobrescritos por acidente. (veja Seco10.3, Os dados binrios para como escrever na media de armazenamento a partir da linha de comandos shell. O ambiente grfico de trabalho GNOME d-lhe acesso fcil via menu: "AcessriosCriador de CD/DVD".) Nota Voc pode desejar parar alguns daemons de aplicao como o MTA (veja Seco6.3, Agente de transporte de mail (MTA)) enquanto faz cpias de segurana (backups) dos dados. Nota Voc deve ter cuidados extra com o backup e restauro de ficheiros de dados relacionados com identidade como os "/etc/ssh/ ssh_host_dsa_key", "/etc/ssh/ssh_host_rsa_key", "~/.gnupg/*", "~ /.ssh/*", "/etc/passwd", "/etc/shadow", "/etc/fetchmailrc", "popularity-contest.conf", "/etc/ppp/pap-secrets", e "/etc/exim4/ passwd.client". Alguns destes dados no podem ser regenerados ao inserir a mesma string de entrada ao sistema. Nota Se voc correr uma tarefa cron como um processo de utilizador, voc tem de restaurar os ficheiros no directrio "/var/spool/cron /crontabs" e reiniciar o cron(8). Veja Seco9.5.14, Agendar tarefas regularmente para cron(8) e crontab(1). 10.1.7. Suites de utilitrios de backup

Aqui est uma lista seleccionada de suites de utilitrios de backup notveis disponveis no sistema Debian. Tabela 10.3. Lista de suites utilitrias de salvaguarda +------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+---------------+----------------------+-------------------------------------------------| |obnam (http:// |V:0, I:1 (http:|409 (http:// | | |packages.debian.org|//qa.debian.org|packages.qa.debian.org|salvaguarda incr emental (remoto) | |/sid/obnam) |/popcon.php? |/o/obnam.html) | | | |package=obnam) | | | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:13, I:28 | | | |rdiff-backup (http:|(http:// |704 (http:// | | |// |qa.debian.org/ |packages.qa.debian.org|salvaguarda incr emental (remoto) | |packages.debian.org|popcon.php? |/r/rdiff-backup.html) | | |/sid/rdiff-backup) |package= | | | | |rdiff-backup) | | | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:2, I:12 | |4.4 BSD (http:// en.wikipedia.org/wiki/ | |dump (http:// |(http:// |716 (http:// |Berkeley_Softwar e_Distribution) dump(8) e restore | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|(8) para sistema s de ficheiros ext2 (http:// | |/sid/dump) |popcon.php? |/d/dump.html) |en.wikipedia.org /wiki/Ext2) /ext3 (http:// | | |package=dump) | |en.wikipedia.org /wiki/Ext3) | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:2, I:20 | | | |xfsdump (http:// |(http:// |595 (http:// |dump e restore c om xfsdump(8) e xfsrestore(8) para| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|sistema de fiche iros XFS (http://en.wikipedia.org/| |/sid/xfsdump) |popcon.php? |/x/xfsdump.html) |wiki/XFS) em GNU /Linux e IRIX (http:// | | |package= | |en.wikipedia.org /wiki/IRIX) | | |xfsdump) | | | |-------------------+---------------+----------------------+----------------

----------------------------------| |backupninja (http:/|V:4, I:5 (http:| | | |/ |//qa.debian.org|277 (http:// | | |packages.debian.org|/popcon.php? |packages.qa.debian.org|sistema de metabackup leve e extensvel | |/sid/backupninja) |package= |/b/backupninja.html) | | | |backupninja) | | | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:0, I:0 (http:| | | |sbackup (http:// |//qa.debian.org|488 (http:// | | |packages.debian.org|/popcon.php? |packages.qa.debian.org|suite de salvagu arda simples para o ambiente GNOME| |/sid/sbackup) |package= |/s/sbackup.html) | | | |sbackup) | | | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:12, I:25 | | | |bacula-common |(http:// |1159 (http:// |Bacula (http://e n.wikipedia.org/wiki/Bacula) : | |(http:// |qa.debian.org/ |packages.qa.debian.org|salvaguarda, rec uperao e verificao em rede - | |packages.debian.org|popcon.php? |/b/bacula-common.html)|ficheiros de sup orte comum | |/sid/bacula-common)|package= | | | | |bacula-common) | | | |-------------------+---------------+----------------------+-------------------------------------------------| |bacula-client |I:8 (http:// | | | |(http:// |qa.debian.org/ |111 (http:// |Bacula (http://e n.wikipedia.org/wiki/Bacula) : | |packages.debian.org|popcon.php? |packages.qa.debian.org|salvaguarda, rec uperao e verificao em rede - | |/sid/bacula-client)|package= |/b/bacula-client.html)|meta-pacote cliente | | |bacula-client) | | | |-------------------+---------------+----------------------+-------------------------------------------------| |bacula-console |V:3, I:11 | | | |(http:// |(http:// |170 (http:// |Bacula (http://e n.wikipedia.org/wiki/Bacula) : | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|salvaguarda, rec uperao e verificao em rede - | |/sid/ |popcon.php? |/b/ |consola de texto | |bacula-console) |package= |bacula-console.html) |

| |bacula-console)| | | |-------------------+---------------+----------------------+-------------------------------------------------| |bacula-server |I:4 (http:// | | | |(http:// |qa.debian.org/ |111 (http:// |Bacula (http://e n.wikipedia.org/wiki/Bacula) : | |packages.debian.org|popcon.php? |packages.qa.debian.org|salvaguarda, rec uperao e verificao em rede - | |/sid/bacula-server)|package= |/b/bacula-server.html)|meta-pacote serv idor | | |bacula-server) | | | |-------------------+---------------+----------------------+-------------------------------------------------| |amanda-common |V:3, I:6 (http:| |Amanda (http://e n.wikipedia.org/wiki/ | |(http:// |//qa.debian.org|6825 (http:// |Advanced_Marylan d_Automatic_Network_Disk_Archiver)| |packages.debian.org|/popcon.php? |packages.qa.debian.org|: Advanced Maryl and Automatic Network Disk | |/sid/amanda-common)|package= |/a/amanda-common.html)|Archiver (Biblio tecas) | | |amanda-common) | | | |-------------------+---------------+----------------------+-------------------------------------------------| |amanda-client |V:3, I:6 (http:| |Amanda (http://e n.wikipedia.org/wiki/ | |(http:// |//qa.debian.org|718 (http:// |Advanced_Marylan d_Automatic_Network_Disk_Archiver)| |packages.debian.org|/popcon.php? |packages.qa.debian.org|: Advanced Maryl and Automatic Network Disk | |/sid/amanda-client)|package= |/a/amanda-client.html)|Archiver (Client e) | | |amanda-client) | | | |-------------------+---------------+----------------------+-------------------------------------------------| |amanda-server |V:0, I:1 (http:| |Amanda (http://e n.wikipedia.org/wiki/ | |(http:// |//qa.debian.org|845 (http:// |Advanced_Marylan d_Automatic_Network_Disk_Archiver)| |packages.debian.org|/popcon.php? |packages.qa.debian.org|: Advanced Maryl and Automatic Network Disk | |/sid/amanda-server)|package= |/a/amanda-server.html)|Archiver (Servid or) | | |amanda-server) | | | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:7, I:9 (http:| | | |backuppc (http:// |//qa.debian.org|1956 (http:// |BackupPC (http:/ /en.wikipedia.org/wiki/Backuppc) | |packages.debian.org|/popcon.php? |packages.qa.debian.org|um sistema de gr au empresarial de alta performance| |/sid/backuppc) |package= |/b/backuppc.html) |para fazer salva |

guardas a PCs (baseado em disco) | | |backuppc) | | | |-------------------+---------------+----------------------+-------------------------------------------------| |backup-manager |V:3, I:5 (http:|615 (http:// | | |(http:// |//qa.debian.org|packages.qa.debian.org| | |packages.debian.org|/popcon.php? |/b/ |ferramenta de sa lvaguarda de linha de comandos | |/sid/ |package= |backup-manager.html) | | |backup-manager) |backup-manager)| | | |-------------------+---------------+----------------------+-------------------------------------------------| | |V:1, I:2 (http:| | | |backup2l (http:// |//qa.debian.org|86 (http:// |ferramenta de ba ixa manuteno para salvaguarda/ | |packages.debian.org|/popcon.php? |packages.qa.debian.org|restauro para me dias montveis (baseado em disco) | |/sid/backup2l) |package= |/b/backup2l.html) | | | |backup2l) | | | +------------------------------------------------------------------------------------------------------------+ As ferramentas de salvaguarda tm os seus objectivos especializados. * Mondo Rescue (http://en.wikipedia.org/wiki/Mondo_Rescue) um sistema de backup para facilitar o restauro de um sistema completo rapidamente a partir de CD/DVD, etc de backup, sem se passar por todo o processo normal de instalao do sistema. * Os pacotes sbackup e keep disponibilizam frontends GUI para utilizadores de ambiente de trabalho para fazerem cpias de segurana regulares dos dados do utilizador. Uma funo equivalente pode ser realizada por um nico script ( Seco10.1.8, Um script de exemplo para salvaguarda ao sistema) e o cron(8). * Bacula (http://en.wikipedia.org/wiki/Bacula) , Amanda (http:/ /en.wikipedia.org/wiki/ Advanced_Maryland_Automatic_Network_Disk_Archiver) , e BackupPC (http://en.wikipedia.org/wiki/Backuppc) so suites utilitrias de salvaguarda cheias de funcionalidades que se destinam a salvaguardas regulares em rede. Ferramentas bsicas descritas em Seco10.1.1, Ferramentas de arquivo e compresso e Seco10.1.2, Ferramentas de cpia de sincronizao podem ser usadas facilitar o backup do sistema via scripts personalizados. Tal script pode ser melhorado com o seguinte.

* O pacote rdiff-backup permite salvaguardas incrementais (remotas). * O pacote dump ajuda a arquivar e restaurar o sistema de ficheiros completo de modo incremental e eficiente. Dica Veja os ficheiros em "/usr/share/doc/dump/" e "est o dump mesmo obsoleto?" (http://dump.sourceforge.net/isdumpdeprecated.html) para aprender acerca do pacote dump. 10.1.8. Um script de exemplo para salvaguarda ao sistema Para um sistema de ambiente de trabalho Debian pessoal que corre a suite unstable, Eu apenas preciso de proteger os dados pessoais e crticos. Eu reinstalo o sistema uma vez por ano de qualquer maneira. Assim no vejo razo para fazer backup ao sistema completo ou para instalar um utilitrio de backup cheio de funcionalidades. Eu uso um script simples para fazer um arquivo salvaguarda e grav-lo em CD/DVD usando uma GUI. Aqui est um script exemplo para tal. #!/bin/sh -e # Copyright (C) 2007-2008 Osamu Aoki <[email protected]>, Public Domain BUUID=1000; USER=osamu # UID and name of a user who accesses backup files BUDIR="/var/backups" XDIR0=".+/Mail|.+/Desktop" XDIR1=".+/\.thumbnails|.+/\.?Trash|.+/\.?[cC]ache|.+/\.gvfs|.+/sessions" XDIR2=".+/CVS|.+/\.git|.+/\.svn|.+/Downloads|.+/Archive|.+/Checkout|.+/tmp" XSFX=".+\.iso|.+\.tgz|.+\.tar\.gz|.+\.tar\.bz2|.+\.cpio|.+\.tmp|.+\.swp|.+~" SIZE="+99M" DATE=$(date --utc +"%Y%m%d-%H%M") [ -d "$BUDIR" ] || mkdir -p "BUDIR" umask 077 dpkg --get-selections \* > /var/lib/dpkg/dpkg-selections.list debconf-get-selections > /var/cache/debconf/debconf-selections { find /etc /usr/local /opt /var/lib/dpkg/dpkg-selections.list \ /var/cache/debconf/debconf-selections -xdev -print0 find /home/$USER /root -xdev -regextype posix-extended \ -type d -regex "$XDIR0|$XDIR1" -prune -o -type f -regex "$XSFX" -prune -o \ -type f -size "$SIZE" -prune -o -print0 find /home/$USER/Mail/Inbox /home/$USER/Mail/Outbox -print0 find /home/$USER/Desktop -xdev -regextype posix-extended \ -type d -regex "$XDIR2" -prune -o -type f -regex "$XSFX" -prune -o \ -type f -size "$SIZE" -prune -o -print0 } | cpio -ov --null -O $BUDIR/BU$DATE.cpio chown $BUUID $BUDIR/BU$DATE.cpio touch $BUDIR/backup.stamp Este suposto ser um script de exemplo executado pelo root. Eu espero que voc altere e execute isto conforme o seguinte. * Edite este script para cobrir todos os seus dados importantes

(veja Seco10.1.5, Idiomas para a seleco de ficheiros e Seco10.1.6, Salvaguarda (backup) e recuperao). * Substitua "find -print0" por "find -newer $BUDIR/ backup.stamp -print0" para fazer uma salvaguarda incremental. * Transfira os ficheiros de backup para a mquina remota usando scp(1) ou rsync(1) ou grave-os em CD/DVD para segurana extra dos dados. (Eu uso a GUI do ambiente GNOME para gravar CD/ DVD. Veja See Seco12.1.8, Exemplo de script de shell com zenity para redundncia extra.) Mantenha a coisa simples! Dica Voc pode recuperar dados configurao debconf com "debconf-set-selections debconf-selections" e dados de seleco do dpkg com "dpkg --set-selection <dpkg-selections.list". 10.1.9. Um script de cpia para a salvaguarda de dados Para o conjunto de dados sob uma rvore de directrios, a cpia com "cp -a" disponibiliza um backup normal. Para o conjunto de grandes dados estticos no-sobrescritos sob uma rvore de directrios como aquela sob o directrio "/var/ cache/apt/packages/", os hardlinks com "cp -al" disponibilizam uma alternativa ao backup normal com uso eficiente do espao do disco. Aqui est um script de cpia, que Eu chamei de bkup, para o backup de dados. O script copia todos os ficheiro (no-VCS) sob o directrio actual para o directrio datado no directrio pai ou numa mquina remota. #!/bin/sh -e # Copyright (C) 2007-2008 Osamu Aoki <[email protected]>, Public Domain fdot(){ find . -type d \( -iname ".?*" -o -iname "CVS" \) -prune -o -print0; } fall(){ find . -print0;} mkdircd(){ mkdir -p "$1";chmod 700 "$1";cd "$1">/dev/null;} FIND="fdot";OPT="-a";MODE="CPIOP";HOST="localhost";EXTP="$(hostname -f)" BKUP="$(basename $(pwd)).bkup";TIME="$(date +%Y%m%d-%H%M%S)";BU="$BKUP/$TIM E" while getopts gcCsStrlLaAxe:h:T f; do case $f in g) MODE="GNUCP";; # cp (GNU) c) MODE="CPIOP";; # cpio -p C) MODE="CPIOI";; # cpio -i s) MODE="CPIOSSH";; # cpio/ssh t) MODE="TARSSH";; # tar/ssh r) MODE="RSYNCSSH";; # rsync/ssh l) OPT="-alv";; # hardlink (GNU cp) L) OPT="-av";; # copy (GNU cp) a) FIND="fall";; # find all A) FIND="fdot";; # find non CVS/ .???/ x) set -x;; # trace e) EXTP="${OPTARG}";; # hostname -f h) HOST="${OPTARG}";; # [email protected] T) MODE="TEST";; # test find mode

\?) echo "use -x for trace." esac; done shift $(expr $OPTIND - 1) if [ $# -gt 0 ]; then for x in $@; do cp $OPT $x $x.$TIME; done elif [ $MODE = GNUCP ]; then mkdir -p "../$BU";chmod 700 "../$BU";cp $OPT . "../$BU/" elif [ $MODE = CPIOP ]; then mkdir -p "../$BU";chmod 700 "../$BU" $FIND|cpio --null --sparse -pvd ../$BU elif [ $MODE = CPIOI ]; then $FIND|cpio -ov --null | ( mkdircd "../$BU"&&cpio -i ) elif [ $MODE = CPIOSSH ]; then $FIND|cpio -ov --null|ssh -C $HOST "( mkdircd \"$EXTP/$BU\"&&cpio -i )" elif [ $MODE = TARSSH ]; then (tar cvf - . )|ssh -C $HOST "( mkdircd \"$EXTP/$BU\"&& tar xvfp - )" elif [ $MODE = RSYNCSSH ]; then rsync -rlpt ./ "${HOST}:${EXTP}-${BKUP}-${TIME}" else echo "Any other idea to backup?" $FIND |xargs -0 -n 1 echo fi Isto suposto ser exemplos de comandos. Por favor, leia o script e edite-o sua necessidade antes de o usar. Dica Eu tenho este bkup no meu directrio "/usr/local/bin/". Eu chamo este comando bkup sem nenhuma opo no directrio de trabalho sempre que preciso duma imagem de backup temporria. Dica Para fazer um histrico de imagens de uma rvore de ficheiros fonte ou duma rvore de ficheiros de configurao, mais fcil e eficiente em espao usar o git(7) (veja Seco10.9.5, Git para gravar o histrico de configurao). 10.1.10. Dispositivo de armazenamento amovvel Dispositivos de armazenamento amovvel podem ser qualquer um dos seguintes. * Pen USB (http://en.wikipedia.org/wiki/USB_flash_drive) * Disco Rgido (http://en.wikipedia.org/wiki/Hard_disk_drive) * Leitor de disco ptico (http://en.wikipedia.org/wiki/ Optical_disc_drive) * Cmara digital * Leitor digital de msica Podem ser ligados por qualquer um dos seguintes: * USB (http://en.wikipedia.org/wiki/Universal_Serial_Bus) * IEEE 1394 / FireWire (http://en.wikipedia.org/wiki/IEEE_1394)

* PC Card (http://en.wikipedia.org/wiki/PC_card) Os ambientes de trabalho modernos tais como o GNOME e KDE podem montar automaticamente estes dispositivos amovveis sem uma entrada correspondente no "/etc/fstab" * O pacote udisks disponibiliza um daemon e utilitrios associados para (des)montar esses dispositivos. * D-bus (http://en.wikipedia.org/wiki/D-Bus) cria eventos para iniciar processos automticos. * PolicyKit (http://en.wikipedia.org/wiki/PolicyKit) disponibiliza os privilgios necessrios. Dica Os dispositivos auto-montados podem ter a opo de montagem "uhelper=" que utilizada por umount(8). Dica A auto-montagem em ambientes de trabalho modernos apenas acontece quando esses dispositivos amovveis no esto listados em "/etc/ fstab". O ponto de montagem num ambiente de trabalho moderno escolhido como "/media/<disk_label>", o qual pode ser personalizado conforme o seguinte: * mlabel(1) para o sistema de ficheiros FAT * genisoimage(1) com a opo "-V" para o sistema de ficheiros ISO9660 * tune2fs(1) com a opo "-L" para sistemas de ficheiros ext2/ ext3/ext4 Dica A escolha de codificao pode necessitar de ser disponibilizada como opo de montagem (veja Seco8.3.6, Codificao de nomes de ficheiros). 10.1.11. Escolha de sistema de ficheiros para partilhar dados Quando partilha dados com outros sistemas via dispositivos de armazenamento amovvel, voc deve format-lo num sistema de ficheiros (http://en.wikipedia.org/wiki/File_system) comum que seja suportado pelos dois sistemas. Aqui est uma lista de escolhas de sistemas de ficheiros. Tabela 10.4. Lista de hipteses de sistemas de ficheiros para dispositivos de armazenamento amovveis com cenrios de utilizao tpica +---------------------------------------------------------------+ |sistema de ficheiros |descrio do cenrio de utilizao | | |tpico |

|----------------------+----------------------------------------| |FAT12 (http:// |partilha de dados em vrias plataformas | |en.wikipedia.org/wiki/|em disquetes (<32MiB) | |File_Allocation_Table)| | |----------------------+----------------------------------------| |FAT16 (http:// |partilha de dados em vrias plataformas | |en.wikipedia.org/wiki/|em dispositivos como pequenos discos | |File_Allocation_Table)|rgidos (<2GiB) | |----------------------+----------------------------------------| |FAT32 (http:// |partilha de dados em vrias plataformas | |en.wikipedia.org/wiki/|em dispositivos como grandes discos | |File_Allocation_Table)|rgidos (<8TiB, suportado por mais | | |recente que MS Windows95 OSR2) | |----------------------+----------------------------------------| | |partilha de dados em vrias plataformas | | |em dispositivos como grandes discos | | |rgidos (suportado nativamente no MS | |NTFS (http:// |Windows NT (http://en.wikipedia.org/wiki| |en.wikipedia.org/wiki/|/Windows_NT) e verses posteriores, e | |NTFS) |suportado pelo NTFS-3G (http:// | | |en.wikipedia.org/wiki/NTFS-3G) via FUSE | | |(http://en.wikipedia.org/wiki/ | | |Filesystem_in_Userspace) em Linux) | |----------------------+----------------------------------------| |ISO9660 (http:// |partilha de dados estticos em vrias | |en.wikipedia.org/wiki/|plataformas em CD-R e DVD+/-R | |ISO_9660) | | |----------------------+----------------------------------------| |UDF (http:// |escrita de dados incremental em CD-R e | |en.wikipedia.org/wiki/|DVD+/-R (novo) | |Universal_Disk_Format)| | |----------------------+----------------------------------------| |sistema de ficheiros | | |MINIX (http:// |armazenamento de dados em ficheiros unix| |en.wikipedia.org/wiki/|eficiente em espao em disquetes | |Minix_file_system) | | |----------------------+----------------------------------------| |sistema de ficheiros |partilha de dados em dispositivos tipo | |ext2 (http:// |disco rgido com sistemas Linux mais | |en.wikipedia.org/wiki/|antigos | |Ext2) | | |----------------------+----------------------------------------| |sistema de ficheiros |partilha de dados em dispositivos tipo | |ext3 (http:// |disco rgido com sistemas Linux mais | |en.wikipedia.org/wiki/|antigos | |Ext3) | | |----------------------+----------------------------------------| |sistema de ficheiros |partilha de dados em dispositivos de | |ext4 (http:// |tipo disco rgido com sistemas Linux | |en.wikipedia.org/wiki/|actuais | |Ext4) | | +---------------------------------------------------------------+ Dica Veja Seco9.4.1, Encriptao de discos amovveis com dm-crypt/ LUKS para partilha de dados em vrias plataformas usando encriptao ao nvel do dispositivo.

O sistema de ficheiros FAT suportado pela maioria dos sistemas operativos modernos e bastante til para objectivos de trocas de dados via dispositivos tipo disco rgido. Quando formatar dispositivos tipo disco rgido amovveis para partilha de dados em multi-plataformas com o sistema de ficheiros FAT, as seguintes devero ser escolhas seguras. * Particion-los com o fdisk(8), cfdisk(8) ou parted(8) (veja Seco9.3.2, Configurao das parties do disco) numa nica partio primria e marc-la como se segue. o Tipo "6" para FAT16 para mdias inferiores a 2GB o Tipo "c" para FAT32 (LBA) para mdias maiores * Formatar a partio primria com o mkfs.vfat(8) com o seguinte. o Apenas o seu nome de dispositivo, ex. "/dev/sda1" para FAT16 o A opo explcita e o seu nome de dispositivo, ex. "-F 32 /dev/sda1" para FAT32 Quando se usa sistemas de ficheiros FAT ou ISO9660 para partilhar dados, as consideraes de segurana devero ser as seguintes. * Arquivar ficheiros para um ficheiro de arquivo primeiro utilizando o tar(1), ou cpio(1) para reter o nome longo do ficheiro, o link simblico, as permisses originais de ficheiro Unix e a informao do dono. * Dividir o ficheiro de arquivo em fatias com menos de 2 GiB com o comando split(1) para o proteger contra limites de tamanho de ficheiro. * Encriptar o ficheiro de arquivo para tornar seguro o seu contedo contra acesso no autorizado. Nota Para o sistema de ficheiros FAT pelo seu desenho, o tamanho mximo de ficheiro (2^32 - 1) bytes = (4GiB - 1 byte). Para algumas aplicaes do antigo SO de 32 bits, o tamanho mximo de ficheiro mais pequeno (2^31 - 1) bytes = (2GiB - 1 byte). O Debian no sofre do segundo problema. Nota A prpria Microsoft no recomenda o uso de FAT para discos ou parties maiores que 200 MB. A Microsoft destaca as suas deficincias como sendo a utilizao ineficiente do espao do disco na sua "Viso geral dos sistemas de ficheiros FAT, HPFS, e NTFS (http://support.microsoft.com/kb/100108/) ". Claro que, ns devemos normalmente usar o sistema de ficheiros ext4 para Linux. Dica Para mais sistemas de ficheiros e acesso a sistemas de ficheiros,

por favor leia "HOWTO dos Sistemas de Ficheiros (http://tldp.org/ HOWTO/Filesystems-HOWTO.html) ". 10.1.12. Partilhando dados via rede Quando se partilha dados com outro sistema via rede, voc deve usar servios comuns. Aqui esto algumas dicas. Tabela 10.5. Lista de servios de rede para escolher com o cenrio de utilizao tpico +---------------------------------------------------------------+ |servio de rede |descrio do cenrio de | | |utilizao tpico | |-----------------------------+---------------------------------| |SMB/CIFS (http:// |partilha ficheiros via "Rede | |en.wikipedia.org/wiki/ |Microsoft Windows", veja smb.conf| |Server_Message_Block) sistema|(5) e O HOWTO Oficial do Samba | |de ficheiros montado em rede |3.2.x e Guia de Referncia (http:| |com o Samba (http:// |//www.samba.org/samba/docs/man/ | |en.wikipedia.org/wiki/Samba_ |Samba-HOWTO-Collection/) ou o | |(software)) |pacote samba-doc | |-----------------------------+---------------------------------| |NFS (http://en.wikipedia.org/|partilhar ficheiros via "Rede | |wiki/Network_File_System_ |Unix/Linux", veja exports(5) e | |(protocol)) sistema de |Linux NFS-HOWTO (http://tldp.org/| |ficheiros montado em rede com|HOWTO/NFS-HOWTO/index.html) | |o kernel do Linux. | | |-----------------------------+---------------------------------| |servio HTTP (http:// |partilhando ficheiros entre o | |en.wikipedia.org/wiki/ |servidor/cliente web | |Hypertext_Transfer_Protocol) | | |-----------------------------+---------------------------------| | |partilhar ficheiros entre o | | |servidor/cliente web com Secure | |servio HTTPS (http:// |Sockets Layer encriptado (SSL) ou| |en.wikipedia.org/wiki/Https) |Transport Layer Security (http://| | |en.wikipedia.org/wiki/ | | |Transport_Layer_Security) (TLS) | |-----------------------------+---------------------------------| |servio FTP (http:// |partilhando ficheiros entre o | |en.wikipedia.org/wiki/ |servidor/cliente FTP | |File_Transfer_Protocol) | | +---------------------------------------------------------------+ Apesar de estes sistemas de ficheiros montados sobre rede e mtodos de transferncia de ficheiros em rede serem bastante convenientes para partilhar dados, estes podem ser inseguros. A sua ligao de rede tem de ser segurada com o seguinte. * Encriptar com SSL/TLS (http://en.wikipedia.org/wiki/ Transport_Layer_Security) * Ligue-o em tnel via SSH (http://en.wikipedia.org/wiki/ Secure_Shell) * Ligue-o em tnel via VPN (http://en.wikipedia.org/wiki/ Secure_Shell)

* Limitar por detrs da firewall segura Veja tambm Seco6.10, Outras aplicaes de servidor de rede e Seco6.11, Outros clientes de aplicao de rede. 10.1.13. Meio de arquivo Quando escolher o meio de armazenamento de dados de computador (http://en.wikipedia.org/wiki/Computer_data_storage) para arquivar dados importantes, dever ter cuidado com as suas limitaes. Para os pequenos backups de dados pessoais, Eu uso CD-R e DVD-R de uma boa marca e guardo-os num ambiente fresco, sombra, seco e limpo. (O meio de cassete de fita magntica parece ser popular para uso profissional.) Nota A segurana de resistncia ao fogo (http://en.wikipedia.org/wiki/ Safe) destina-se a documentos de papel. A maioria dos meios de armazenamento de dados de computador tm menos tolerncia temperatura que o papel. Geralmente Eu confio em mltiplas cpias de segurana encriptadas em mltiplas localizaes seguras. A durao de vida optimista de meios de arquivo vista na net (a maioria informao do fabricante). * + de 100 anos : Papel livre de cidos com tinta * 100 anos : Armazenamento ptico (CD/DVD, CD/DVD-R) * 30 anos : Armazenamento magntico (fita, disquete) * 20 anos : Armazenamento ptico de mudana de fase (CD-RW) Estes no contam com falhas mecnicas devido a manuseamento e etc. Ciclos de escrita optimistas dos meios de arquivo vistos na net (a maioria informao do fabricante). * + de 250,000 ciclos : Disco rgido * + de 10,000 ciclos : Memria Flash * 1,000 ciclos : CD/DVD-RW * 1 ciclo : CD/DVD-R, papel Cuidado As figuras de vida de armazenamento e ciclos de escrita mostradas aqui no devem ser usadas para decises em qualquer armazenamento de dados crtico. Por favor consulte a informao especfica do produto disponibilizada pelo fabricante. Dica Como os CD/DVD-R e o papel tm apenas 1 ciclo de escrita, eles previnem perdas de dados acidentais ao sobrescrever. Isto uma vantagem!

Dica Se voc precisa dum backup rpido e frequente de grandes quantidades de dados, um disco rgido numa mquina remota ligada por uma ligao de rede rpida, pode ser a nica opo realista. 10.2. A imagem de disco Aqui discutimos manipulaes da imagem do disco. Veja tambm Seco9.3, Dicas de armazenamento de dados. 10.2.1. Criando o ficheiro de imagem de disco O ficheiro de imagem de disco, "disco.img", de um dispositivo no montado, ex., a segunda drive SCSI "/dev/sdb", pode ser feito usando o cp(1) ou o dd(1) com o seguinte. # cp /dev/sdb disco.img # dd if=/dev/sdb of=disco.img O master boot record (MBR) (http://en.wikipedia.org/wiki/ Master_boot_record) da imagem de disco dos PC's tradicionais (veja Seco9.3.2, Configurao das parties do disco) que reside no primeiro sector no disco IDE primrio pode ser feito usando o dd(1) com o seguinte. # dd if=/dev/hda of=mbr.img bs=512 count=1 # dd if=/dev/hda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/hda of=mbr-part.img skip=446 bs=1 count=66 * "mbr.img": O MBR com a tabela de parties * "mbr-nopart.img": O MBR sem a tabela de parties * "part.img": A tabela de parties apenas do MBR Se voc tem um dispositivo SCSI (incluindo a nova drive serial ATA) como o disco de arranque, substitua "/dev/hda" por "/dev/ sda". Se voc est a criar uma imagem de uma partio de disco do disco original, substitua "/dev/hda" por "/dev/hda1" etc. 10.2.2. Escrever directamente no disco O ficheiro de imagem de disco "disk.img" pode ser escrito para um dispositivo desmontado, ex. a segunda drive SCSI "/dev/sdb" como tamanho correspondente, com o seguinte. # dd if=disk.img of=/dev/sdb Se modo semelhante, o ficheiro de imagem de partio de disco, "partition.img" pode ser escrito para uma partio desmontada, ex., a primeira partio do segundo disco SCSI "/dev/sdb1" com tamanho correspondente, com o seguinte. # dd if=partition.img of=/dev/sdb1 10.2.3. Montar o ficheiro de imagem de disco

A imagem de disco "partition.img" que contm uma partio nica pode ser montada e desmontada ao usar o dispositivo loop (http:// en.wikipedia.org/wiki/Loop_device) como se segue. # losetup -v -f partition.img Loop device is /dev/loop0 # mkdir -p /mnt/loop0 # mount -t auto /dev/loop0 /mnt/loop0 ...hack...hack...hack # umount /dev/loop0 # losetup -d /dev/loop0 Isto pode ser simplificado como se segue. # mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img Cada partio da imagem de disco "disk.img" que contm mltiplas parties pode ser montada usando o dispositivo loop (http:// en.wikipedia.org/wiki/Loop_device) . Como o dispositivo loop no gere parties por predefinio, temos que o redefinir como se segue. # modinfo -p loop # verify kernel capability max_part:Maximum number of partitions per loop device max_loop:Maximum number of loop devices # losetup -a # verify nothing using the loop device # rmmod loop # modprobe loop max_part=16 Agora, o dispositivo loop pode lidar com 16 parties (mximo). # losetup -v -f disk.img Loop device is /dev/loop0 # fdisk -l /dev/loop0 Disk /dev/loop0: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x452b6464 Device Boot Start End /dev/loop0p1 1 600 /dev/loop0p2 601 652 # mkdir -p /mnt/loop0p1 # mount -t ext3 /dev/loop0p1 /mnt/loop0p1 # mkdir -p /mnt/loop0p2 # mount -t ext3 /dev/loop0p2 /mnt/loop0p2 ...hack...hack...hack # umount /dev/loop0p1 # umount /dev/loop0p2 # losetup -d /dev/loop0 Blocks Id System 4819468+ 83 Linux 417690 83 Linux

Alternativamente, podem-se fazer efeitos semelhantes ao usar os dispositivos device mapper (http://en.wikipedia.org/wiki/ Device_mapper) criados pelo kpartx(8) do pacote kpartx como se segue.

# kpartx -a -v disk.img ... # mkdir -p /mnt/loop0p2 # mount -t ext3 /dev/mapper/loop0p2 /mnt/loop0p2 ... ...hack...hack...hack # umount /dev/mapper/loop0p2 ... # kpartx -d /mnt/loop0 Nota Voc tambm pode montar uma nica partio de tal imagem de disco com o dispositivo loop (http://en.wikipedia.org/wiki/Loop_device) usando um offset para saltar o MBR (http://en.wikipedia.org/wiki/ Master_boot_record) etc. Mas isto mais inclinado a erros. 10.2.4. Limpar um ficheiro de imagem de disco Um ficheiro de imagem de disco, "disk.img" pode ser limpo de todos os ficheiros removidos em uma imagem limpa "new.img" com o seguinte. # # # # # # # # # mkdir old; mkdir new mount -t auto -o loop disk.img old dd bs=1 count=0 if=/dev/zero of=new.img seek=5G mount -t auto -o loop new.img new cd old cp -a --sparse=always ./ ../new/ cd .. umount new.img umount disk.img

Se o "disk.img" est em ext2 ou ext3, voc tambm pode usar o zerofree(8) do pacote zerofree como se segue. # losetup -f -v disk.img Loop device is /dev/loop3 # zerofree /dev/loop3 # cp --sparse=always disco.img novo.img 10.2.5. Criar um ficheiro de imagem de disco vazio A imagem de disco vazia "disk.img" que pode crescer at aos 5GiB pode ser feita usando o dd(1) como se segue. $ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G Voc pode criar um sistema de ficheiros ext3 nesta imagem de disco "disk.img" usando o dispositivo loop (http:// en.wikipedia.org/wiki/Loop_device) como se segue. # losetup -f -v disk.img Loop device is /dev/loop1 # mkfs.ext3 /dev/loop1 ...hack...hack...hack # losetup -d /dev/loop1 $ du --apparent-size -h disk.img 5.0G disk.img

$ du -h disk.img 83M disk.img Para "disk.img", o seu tamanho de ficheiro 5.0 Gb e a sua utilizao real do disco apenas 83 Mb. Esta discrepncia possvel porque o ext2fs (http://en.wikipedia.org/wiki/Ext3) ponde manter o ficheiro sparse (http://en.wikipedia.org/wiki/ Sparse_file) . Dica A utilizao de disco real do ficheiro sparse (http:// en.wikipedia.org/wiki/Sparse_file) cresce com os dados que so escritos nele. Usando uma operao semelhante em dispositivos criados pelo dispositivo loop (http://en.wikipedia.org/wiki/Loop_device) ou o mapeador de dispositivos (http://en.wikipedia.org/wiki/ Device_mapper) como Seco10.2.3, Montar o ficheiro de imagem de disco, voc pode particionar esta imagem de disco "disk.img" usando o parted(8) ou o fdisk(8), e pode criar um sistema de ficheiros nela usando mkfs.ext3(8), mkswap(8), etc. 10.2.6. Criar o ficheiro de imagem ISO9660 O ficheiro de imagem ISO9660 (http://en.wikipedia.org/wiki/ ISO_9660) , "cd.iso", a partir da rvore de directrios fonte em "source_directory" pode ser feito usando o genisoimage(1) disponibilizado pelo cdrkit (http://en.wikipedia.org/wiki/Cdrkit) com o seguinte. # genisoimage -r -J -T -V volume_id -o cd.iso directrio_fonte De modo semelhante, o ficheiro de imagem ISO9660 de arranque, "cdboot.iso", pode ser feito a partir do instalador-debian como rvore de directrios em "source_directory" com o seguinte. # genisoimage -r -o cdboot.iso -V volume_id \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table directrio_fonte

Aqui usado para arranque o boot loader Isolinux (http:// en.wikipedia.org/wiki/SYSLINUX) (veja Seco3.3, Estgio 2: o gestor de arranque). Voc pode calcular o valor md5sum e fazer a imagem ISO9660 directamente a partir do dispositivo CD-ROM como se segue. $ isoinfo -d -i /dev/cdrom CD-ROM is in ISO 9660 format ... Logical block size is: 2048 Volume size is: 23150592 ... # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror | md5sum # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror > cd.iso Ateno Voc tem de ter o cuidado de evitar o bug de leitura antecipada

do sistema de ficheiros ISO9660 do Linux como em cima para obter o resultado correcto. 10.2.7. Escrever directamente para o CD/DVD-R/RW Dica Um DVD apenas um CD grande para o wodim(1) disponibilizado pelo cdrkit (http://en.wikipedia.org/wiki/Cdrkit) . Voc pode procurar um dispositivo utilizvel com o seguinte. # wodim --devices Ento o CD-R vazio inserido na drive de CD, e o ficheiro de imagem ISO9660, "cd.iso" escrito neste dispositivo, ex. "/dev/ hda", usando o wodim(1) com o seguinte. # wodim -v -eject dev=/dev/hda cd.iso Se for usado um CD-RW em vez de um CD-R, faa antes o seguinte. # wodim -v -eject blank=fast dev=/dev/hda cd.iso Dica Se o seu ambiente montar CDs automaticamente, desmonte-o com "sudo unmount /dev/hda" antes de usar o wodim(1). 10.2.8. Montar o ficheiro de imagem ISO9660 Se "cd.iso" conter uma imagem ISO9660, ento o seguinte monta-o manualmente em "/cdrom". # mount -t iso9660 -o ro,loop cd.iso /cdrom Dica Os sistemas de ambiente de trabalho modernos montam medias amovveis automaticamente (veja Seco10.1.10, Dispositivo de armazenamento amovvel). 10.3. Os dados binrios Aqui, discutimos manipulao directa de dados binrios em meios de armazenamento. Veja tambm Seco9.3, Dicas de armazenamento de dados. 10.3.1. Ver e editar dados binrios o mtodo de visualizao mais bsico de dados binrios usar o comando "od -t x1". Tabela 10.6. Lista de pacote para ver e editar dados binrios +--------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+----------------+----------------------+--------------|

| |V:902, I:999 |coreutils (http:// |(http:// | | |/sid/coreutils) | | | |package= |popcon.php?

| |13731 (http://

|pacote bsico | |que tem od(1)

|packages.debian.org|qa.debian.org/ |packages.qa.debian.org|para despejar |/c/coreutils.html) | |ficheiros (HEX, |ASCII, OCTAL,

| |coreutils) | |) | |-------------------+----------------+----------------------+--------------| | | |bsdmainutils (http:|(http:// | |// |qa.debian.org/ |558 (http:// | |packages.debian.org|popcon.php? | |/sid/bsdmainutils) |package= | | | | | | |) | |-------------------+----------------+----------------------+--------------| |hexedit (http:// |V:2, I:17 (http:|108 (http:// |editor binrio | |packages.debian.org|//qa.debian.org/|packages.qa.debian.org|e visualizador | |/sid/hexedit) | | |package=hexedit)| | | |-------------------+----------------+----------------------+---------------| | |V:0, I:4 (http:/| |editor | |bless (http:// |/qa.debian.org/ |991 (http:// |hexadecimal | |packages.debian.org|popcon.php? |packages.qa.debian.org|cheiro de | |/sid/bless) |package=bless) |/b/bless.html) |funcionalidades | | | | |(GNOME) | |-------------------+----------------+----------------------+--------------| | |V:6, I:46 (http:| |editor | |okteta (http:// |//qa.debian.org/|321 (http:// |hexadecimal | |packages.debian.org|popcon.php? |packages.qa.debian.org|cheiro de | |/sid/okteta) |package=okteta) |/o/okteta.html) |funcionalidades | | | | |(KDE4) | |-------------------+----------------+----------------------+--------------| |ncurses-hexedit |V:0, I:4 (http:/|152 (http:// |editor binrio | |(http:// |/qa.debian.org/ |packages.qa.debian.org|e visualizador |popcon.php? |/h/hexedit.html) |(HEX, ASCII) |bsdmainutils) | |ASCII, OCTAL, |/b/bsdmainutils.html) |ficheiros (HEX, |packages.qa.debian.org|despejar |utilitrio que | |tem hd(1) para |V:870, I:998 | |pacote

| |packages.debian.org|popcon.php? | |/sid/ | |ncurses-hexedit) | |-------------------+----------------+----------------------+--------------| | |beav (http:// | |packages.debian.org|popcon.php? | |/sid/beav) | | | | |) | +--------------------------------------------------------------------------+ Dica HEX usado como um acrnimo para o formato hexadecimal (http:// en.wikipedia.org/wiki/Hexadecimal) com radix (http:// en.wikipedia.org/wiki/Radix) 16. OCTAL para formato octal (http://en.wikipedia.org/wiki/Octal) com radix (http:// en.wikipedia.org/wiki/Radix) 8. ASCII para American Standard Code for Information Interchange (http://en.wikipedia.org/wiki/ ASCII) , isto , cdigo de texto Ingls normal. EBCDIC para Extended Binary Coded Decimal Interchange Code (http:// en.wikipedia.org/wiki/ Extended_Binary_Coded_Decimal_Interchange_Code) usado em sistemas operativos com infraestrutura da IBM (http://en.wikipedia.org/ wiki/IBM_mainframe) . 10.3.2. Manipular ficheiros sem montar o disco Existem ferramentas para ler e escrever ficheiros sem montar o disco. Tabela 10.7. Lista de pacotes para ler e escrever ficheiros sem montar o disco. +--------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-----------| | |V:50, I:475 | |utilitrios| |mtools (http:// |(http:// |341 (http:// |para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|sistemas de| |/sid/mtools) |/popcon.php? |/m/mtools.html) |ficheiros | | |package= | |MSDOS sem | | |mtools) | |os montar | |-------------------+-------------+----------------------+-----------| | |V:1, I:15 | |utilitrios| | |(http:// | |para | |hfsutils (http:// |qa.debian.org|236 (http:// |sistemas de| |packages.debian.org|/popcon.php? |packages.qa.debian.org|ficheiros | |/sid/hfsutils) |package= |/h/hfsutils.html) |HFS e HFS+ | | |hfsutils) | |sem os | |package=beav) |/b/beav.html) |EBCDIC, OCTAL, |packages.qa.debian.org|(HEX, ASCII, |V:0, I:2 (http:/| |/qa.debian.org/ |164 (http:// |editor binrio | |e visualizador |ncurses-hexedit)| | |package= |ncurses-hexedit.html) |EBCDIC) |/n/ |(HEX, ASCII,

| | | |montar | +--------------------------------------------------------------------+ 10.3.3. Redundncia de dados Os sistemas RAID (http://en.wikipedia.org/wiki/RAID) por software oferecidos pelo kernel Linux oferecem redundncia de dados ao nvel do sistema de ficheiros do kernel, para se conseguir altos nveis de fiabilidade de armazenamento. Tambm existem ferramentas para adicionar redundncia a ficheiros ao nvel de programa aplicao, para se conseguir altos nveis de fiabilidade de armazenamento. Tabela 10.8. Lista de ferramentas para adicionar redundncia de dados a ficheiros +--------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-----------------| | |V:5, I:17 | |Parity Archive | |par2 (http:// |(http:// |272 (http:// |Volume Set, para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|verificao e | |/sid/par2) |/popcon.php? |/p/par2.html) |reparao de | | |package=par2)| |ficheiros | |-------------------+-------------+----------------------+-----------------| | |V:0, I:5 | |proteco de | |dvdisaster (http://|(http:// |1481 (http:// |dados contra | |packages.debian.org|qa.debian.org|packages.qa.debian.org|percas/riscos/ | |/sid/dvdisaster) |/popcon.php? |/d/dvdisaster.html) |envelhecimento | | |package= | |para medias CD/ | | |dvdisaster) | |DVD | |-------------------+-------------+----------------------+-----------------| | |V:0, I:0 | |ferramenta de | |dvbackup (http:// |(http:// |392 (http:// |backup que usa | |packages.debian.org|qa.debian.org|packages.qa.debian.org|cmaras de filmar| |/sid/dvbackup) |/popcon.php? |/d/dvbackup.html) |MiniDV | | |package= | |(disponibilizando| | |dvbackup) | |rsbep(1)) | |-------------------+-------------+----------------------+-----------------| | |V:0, I:0 | | | |vdmfec (http:// |(http:// |88 (http:// |recuperar blocos | |packages.debian.org|qa.debian.org|packages.qa.debian.org|perdidos usando o| |/sid/vdmfec) |/popcon.php? |/v/vdmfec.html) |Forward Error | | |package= | |Correction | | |vdmfec) | | | +--------------------------------------------------------------------------+ 10.3.4. Recuperao de ficheiros e dados e anlise forense Existem ferramentas para recuperao de ficheiros e dados e anlise forense. Tabela 10.9. Lista de pacotes para recuperao de ficheiros e dados e anlise forense +---------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio |

|-------------------+--------------+----------------------+-----------| | |V:4, I:40 | |utilitrios| |testdisk (http:// |(http:// |1153 (http:// |para | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|sondagem de| |/sid/testdisk) |popcon.php? |/t/testdisk.html) |parties e| | |package= | |recuperao| | |testdisk) | |de discos | |-------------------+--------------+----------------------+-----------| | |V:0, I:4 | |utilitrio | |magicrescue (http:/|(http:// | |para | |/ |qa.debian.org/|344 (http:// |recuperar | |packages.debian.org|popcon.php? |packages.qa.debian.org|ficheiros | |/sid/magicrescue) |package= |/m/magicrescue.html) |ao procurar| | |magicrescue) | |por bytes | | | | |mgicos | |-------------------+--------------+----------------------+-----------| | |V:0, I:3 | |frugal, | |scalpel (http:// |(http:// |124 (http:// |entalhador | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|de | |/sid/scalpel) |popcon.php? |/s/scalpel.html) |ficheiros | | |package= | |de alta | | |scalpel) | |performance| |-------------------+--------------+----------------------+-----------| | |V:0, I:1 | |recuperar | |myrescue (http:// |(http:// |84 (http:// |dados de | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|discos | |/sid/myrescue) |popcon.php? |/m/myrescue.html) |rgidos | | |package= | |danificados| | |myrescue) | | | |-------------------+--------------+----------------------+-----------| | | | |utilitrios| | |V:0, I:4 | |para | |recover (http:// |(http:// |104 (http:// |recuperar | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|ficheiros | |/sid/recover) |popcon.php? |/r/recover.html) |apagados no| | |package= | |sistema de | | |recover) | |ficheiros | | | | |ext2 | |-------------------+--------------+----------------------+-----------| | | | |utilitrios| | |V:0, I:3 | |para | |e2undel (http:// |(http:// |244 (http:// |recuperar | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|ficheiros | |/sid/e2undel) |popcon.php? |/e/e2undel.html) |apagados no| | |package= | |sistema de | | |e2undel) | |ficheiros | | | | |ext2 | |-------------------+--------------+----------------------+-----------| | | | |ferramenta | | |V:0, I:5 | |para ajudar| |ext3grep (http:// |(http:// |286 (http:// |a recuperar| |packages.debian.org|qa.debian.org/|packages.qa.debian.org|ficheiros | |/sid/ext3grep) |popcon.php? |/e/ext3grep.html) |apagados no| | |package= | |sistema de | | |ext3grep) | |ficheiros | | | | |ext3 | |-------------------+--------------+----------------------+-----------| | |V:0, I:3 | |programa de| |scrounge-ntfs |(http:// | |recuperao| |(http:// |qa.debian.org/|80 (http:// |de dados |

|packages.debian.org|popcon.php? |packages.qa.debian.org|para | |/sid/scrounge-ntfs)|package= |/s/scrounge-ntfs.html)|sistemas de| | |scrounge-ntfs)| |ficheiros | | | | |NTFS | |-------------------+--------------+----------------------+-----------| | |V:0, I:1 | |conjunto de| |gzrt (http:// |(http:// |56 (http:// |ferramentas| |packages.debian.org|qa.debian.org/|packages.qa.debian.org|de | |/sid/gzrt) |popcon.php? |/g/gzrt.html) |recuperao| | |package=gzrt) | |gzip | |-------------------+--------------+----------------------+-----------| | |V:0, I:5 | |ferramentas| |sleuthkit (http:// |(http:// |750 (http:// |para | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|anlise | |/sid/sleuthkit) |popcon.php? |/s/sleuthkit.html) |forense. | | |package= | |(Sleuthkit)| | |sleuthkit) | | | |-------------------+--------------+----------------------+-----------| | |V:0, I:3 | | | |autopsy (http:// |(http:// |1372 (http:// |interface | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|grfica | |/sid/autopsy) |popcon.php? |/a/autopsy.html) |para o | | |package= | |SleuthKit | | |autopsy) | | | |-------------------+--------------+----------------------+-----------| | |V:1, I:8 | |aplicao | |foremost (http:// |(http:// |83 (http:// |forense | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|para | |/sid/foremost) |popcon.php? |/f/foremost.html) |recuperar | | |package= | |dados | | |foremost) | | | |-------------------+--------------+----------------------+-----------| | |V:0, I:0 | |ferramenta | |guymager (http:// |(http:// |949 (http:// |de imagem | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|forense | |/sid/guymager) |popcon.php? |/g/guymager.html) |baseada em | | |package= | |Qt | | |guymager) | | | |-------------------+--------------+----------------------+-----------| | |V:0, I:2 | |verso | |dcfldd (http:// |(http:// |109 (http:// |melhorada | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|do dd para | |/sid/dcfldd) |popcon.php? |/d/dcfldd.html) |forenses e | | |package= | |segurana | | |dcfldd) | | | |-------------------+--------------+----------------------+-----------| | |V:0, I:0 | | | |rdd (http:// |(http:// |200 (http:// |programa de| |packages.debian.org|qa.debian.org/|packages.qa.debian.org|cpia | |/sid/rdd) |popcon.php? |/r/rdd.html) |forense | | |package=rdd) | | | +---------------------------------------------------------------------+ 10.3.5. Dividir um ficheiro grande em ficheiros pequenos Quando os dados so muito grandes para fazer backup num ficheiro nico, voc pode fazer backup ao seu contedo aps dividi-lo em fatias de, por exemplo, 2000Mb e mais tarde fundir essas fatias de volta para o ficheiro original.

$ split -b 2000m ficheiro_grande $ cat x* >ficheiro_grande Cuidado Por favor certifique-se que no tem nenhuns ficheiros que comeam com "x" para evitar crashes com nomes. 10.3.6. Limpar contedo de ficheiro De modo a limpar o contedo de um ficheiro como um ficheiro log, no use o rm(1) para apagar o ficheiro e depois crie um ficheiro vazio, porque o ficheiro pode ainda estar a ser acedido no intervalo entre comandos. O seguinte o modo seguro de limpar o contedo do ficheiro. $ :>ficheiro_a_ser_limpo 10.3.7. Ficheiros dummy Os seguintes comandos criam ficheiros dummy ou vazios. $ $ $ $ dd if=/dev/zero of=5kb.file bs=1k count=5 dd if=/dev/urandom of=7mb.file bs=1M count=7 touch zero.file : > alwayszero.file

Voc deve encontrar os seguintes ficheiros. * "5kb.file" 5KB de zeros. * "7mb.file" so 7MB de dados aleatrios. * "zero.file" pode ser um ficheiro de 0 bytes. Se existir, o seu mtime actualizado enquanto o seu contedo e tamanho so mantidos. * "alwayszero.file" sempre um ficheiro de 0 bytes. Se existir, o seu mtime actualizado e o seu contedo reposto. 10.3.8. apagar um disco rgido inteiro Existem vrias maneiras de apagar completamente os dados de um dispositivo inteiro tipo disco rgido, ex., pen de memria USB em "/dev/sda". Cuidado Primeiro verifique a localizao da sua pen de memria USB com o mount(8) antes de executar os comandos aqui. O dispositivo apontado por "/dev/sda" pode ser um disco rgido SCSI ou SATA onde pode residir todo o seu sistema. Apagar todo o contedo do disco ao repor os dados a 0 com o seguinte. # dd if=/dev/zero of=/dev/sda

Apagar tudo ao sobrescrever dados aleatrios com o seguinte. # dd if=/dev/urandom of=/dev/sda Apagar tudo ao sobrescrever dados aleatrios muito eficientemente com o seguinte. # shred -v -n 1 /dev/sda Como o dd(1) est disponvel a partir da shell de muitos CDs de arranque de Linux como o CD de instalao de Debian, voc pode apagar completamente o seu sistema instalado no disco rgido, por exemplo, "/dev/hda", "/dev/sda", etc., ao correr um comando de limpeza a partir de tal media de arranque. 10.3.9. Apagar uma rea no utilizada do disco rgido A rea no utilizada de um disco rgido (ou duma pen USB ), por exemplo "/dev/sdb1" pode ainda conter os prprios dados apagados pois eles so apenas 'desligados' do sistema de ficheiros. Estes podem ser limpos ao sobrescrever a rea onde esto. # mount -t auto /dev/sdb1 /mnt/foo # cd /mnt/foo # dd if=/dev/zero of=junk dd: writing to `junk': No space left on device ... # sync # umount /dev/sdb1 Ateno Normalmente isto suficientemente bom para a sua pen de memria USB. Mas no perfeito. A maioria das partes dos nomes de ficheiros apagados e os seus atributos podem ficar escondidos e permanecerem no sistema de ficheiros. 10.3.10. Recuperar ficheiros apagados mas ainda abertos Mesmo que tenha acidentalmente apagado um ficheiro, desde que esse ficheiro esteja ainda a ser usado por alguma aplicao (em modo de leitura ou escrita), possvel recuperar tal ficheiro. Por exemplo, tente o seguinte: $ echo foo > bar $ less bar $ ps aux | grep ' less[ ]' bozo 4775 0.0 0.0 92200 884 pts/8 S+ 00:18 0:00 less bar $ rm bar $ ls -l /proc/4775/fd | grep bar lr-x------ 1 bozo bozo 64 2008-05-09 00:19 4 -> /home/bozo/bar (apagado) $ cat /proc/4775/fd/4 >bar $ ls -l -rw-r--r-- 1 bozo bozo 4 2008-05-09 00:25 bar $ cat bar foo Execute em outro terminal (quando tem o pacote lsof instalado) o seguinte.

$ ls -li bar 2228329 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:02 bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar $ rm bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar (apagado) $ cat /proc/4775/fd/4 >bar $ ls -li bar 2228302 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:05 bar $ cat bar foo 10.3.11. Procurar todos os hardlinks Os ficheiros com hardlinks podem ser identificados com "ls -li". $ ls -li total 0 2738405 -rw-r--r-- 1 root root 0 2008-09-15 20:21 bar 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 baz 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 foo Ambos "baz" e "foo" tm contagens de link de "2" (>1) mostrando que tm hardlinks. Os nmeros de inode (http://en.wikipedia.org/ wiki/Inode) deles so comuns "2738404". Isto significa que eles so o mesmo ficheiro em hardlink. Se voc no encontrar todos os ficheiros em hardlink por acaso, pode procur-los pelo inode (http://en.wikipedia.org/wiki/Inode) , ex., "2738404" com o seguinte. # find /caminho/para/ponto/de/montagem -xdev -inum 2738404 10.3.12. Consumo invisvel do espao do disco Todos os ficheiros apagadas mas abertos consomem espao no disco apesar de no estarem visveis ao du(1) normal. Eles podem ser listados com o seu tamanho com o seguinte. # lsof -s -X / |grep deleted 10.4. Infraestrutura da segurana de dados A infraestrutura de segurana dos dados disponibilizada pela combinao de uma ferramenta de encriptao de dados, ferramenta de resumo de mensagens, e ferramenta de assinaturas. Tabela 10.10. Lista de ferramentas de infraestrutura da segurana de dados +---------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |comando |descr io | |-------------------+---------------+----------------------+----------+-----------------------| | |V:439, I:998 | | |GNU P rivacy Guard (http:| |gnupg (http:// |(http:// |4957 (http:// | |//en.

wikipedia.org/wiki/| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|gpg(1) |GNU_P rivacy_Guard) | |/sid/gnupg) |popcon.php? |/g/gnupg.html) | |ferra menta de | | |package=gnupg) | | |encri ptao e assinatura| | | | | |OpenP GP | |-------------------+---------------+----------------------+----------+-----------------------| | |I:8 (http:// | | | | |gnupg-doc (http:// |qa.debian.org/ |4124 (http:// | |Docum entao do GNU | |packages.debian.org|popcon.php? |packages.qa.debian.org|N/D |Priva cy Guard | |/sid/gnupg-doc) |package= |/g/gnupg-doc.html) | | | | |gnupg-doc) | | | | |-------------------+---------------+----------------------+----------+-----------------------| | |V:571, I:997 | | |GNU P rivacy Guard | |gpgv (http:// |(http:// |433 (http:// | |ferra menta de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|gpgv(1) |verif icao de | |/sid/gpgv) |popcon.php? |/g/gpgv.html) | |assin aturas | | |package=gpgv) | | | | |-------------------+---------------+----------------------+----------+-----------------------| | |V:0, I:0 (http:| | | | |paperkey (http:// |//qa.debian.org|88 (http:// |paperkey |extra i apenas a | |packages.debian.org|/popcon.php? |packages.qa.debian.org|(1) |infor mao secreta de | |/sid/paperkey) |package= |/p/paperkey.html) | |chave s secretas OpenPGP | | |paperkey) | | | | |-------------------+---------------+----------------------+----------+-----------------------| | | | | |utili trios para | | |V:40, I:63 | | |encri ptao de | | |(http:// | | |dispo sitivos de bloco do| |cryptsetup (http://|qa.debian.org/ |297 (http:// |cryptsetup|dm-crypto ( http:// | |packages.debian.org|popcon.php? |packages.qa.debian.org|(8), |en.wiki pedia.org/wiki/ | |/sid/cryptsetup) |package= |/c/cryptsetup.html) | |Dm-cr ypt) que suportam | | |cryptsetup) | | |LUKS

(http:// | | | | | |en.wi kipedia.org/wiki/ | | | | | |Linux _Unified_Key_Setup)| |-------------------+---------------+----------------------+----------+-----------------------| |ecryptfs-utils |V:4, I:6 (http:| | |utili trios para | |(http:// |//qa.debian.org|308 (http:// | |encri ptao de sistemas | |packages.debian.org|/popcon.php? |packages.qa.debian.org|ecryptfs |de fi cheiros empilhados | |/sid/ |package= |/e/ |(7), |do ecry ptfs (http:// | |ecryptfs-utils) |ecryptfs-utils)|ecryptfs-utils.html) | |ecryp tfs.sourceforge.net| | | | | |/) | |-------------------+---------------+----------------------+----------+-----------------------| | |V:902, I:999 | | | | |coreutils (http:// |(http:// |13731 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|md5sum(1) |compu ta e verifica o | |/sid/coreutils) |popcon.php? |/c/coreutils.html) | |resum o da mensagem MD5 | | |package= | | | | | |coreutils) | | | | |-------------------+---------------+----------------------+----------+-----------------------| | |V:902, I:999 | | | | |coreutils (http:// |(http:// |13731 (http:// | | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|sha1sum(1)|compu ta e verifica o | |/sid/coreutils) |popcon.php? |/c/coreutils.html) | |resum o da mensagem SHA1 | | |package= | | | | | |coreutils) | | | | |-------------------+---------------+----------------------+----------+-----------------------| | |V:759, I:970 | | | | |openssl (http:// |(http:// |1080 (http:// | |compu ta o resumo da | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|openssl |mensa gem com "openssl | |/sid/openssl) |popcon.php? |/o/openssl.html) |(1ssl) |dgst" (OpenSSL) | | |package= | | | | | |openssl) | | |

| +---------------------------------------------------------------------------------------------+ Veja Seco9.4, Dicas de encriptao de dados em dm-crypto (http://en.wikipedia.org/wiki/Dm-crypt) e ecryptfs (http:// ecryptfs.sourceforge.net/) os quais implementam infraestruturas de encriptao de dados automtica via mdulos do kernel Linux. 10.4.1. Gesto de chaves para GnuPG Aqui esto comandos do GNU Privacy Guard (http://en.wikipedia.org /wiki/GNU_Privacy_Guard) para gesto de chaves bsica. Tabela 10.11. Lista de comandos do GNU Privacy Guard para gesto de chaves +---------------------------------------------------------------+ |comando |descrio | |------------------------+--------------------------------------| |gpg --gen-key |gerar uma chave nova | |------------------------+--------------------------------------| |gpg --gen-revoke |gera chave de revogao para | |meu_ID_utilizador |meu_ID_utilizador | |------------------------+--------------------------------------| |gpg --edit-key |edita chave interactivamente, "help" | |ID_utilizador |para ajuda | |------------------------+--------------------------------------| |gpg -o ficheiro |exporta todas as chaves para ficheiro | |--exports | | |------------------------+--------------------------------------| |gpg --imports ficheiro |importa todas as chaves de ficheiro | |------------------------+--------------------------------------| |gpg --send-keys |envia chave de ID_utilizador para | |ID_utilizador |servidor de chaves | |------------------------+--------------------------------------| |gpg --recv-keys |recupera chave de ID_utilizador do | |ID_utilizador |servidor de chaves | |------------------------+--------------------------------------| |gpg --list-keys |lista chaves de ID_utilizador | |ID_utilizador | | |------------------------+--------------------------------------| |gpg --list-sigs |lista assinaturas de ID_utilizador | |ID_utilizador | | |------------------------+--------------------------------------| |gpg --check-sigs |verifica assinaturas de ID_utilizador | |ID_utilizador | | |------------------------+--------------------------------------| |gpg --fingerprint |verifica a impresso digital de | |ID_utilizador |ID_utilizador | |------------------------+--------------------------------------| |gpg --refresh-keys |actualiza o chaveiro local | +---------------------------------------------------------------+ Aqui est o significado do cdigo de confiana Tabela 10.12. Lista do significado do cdigo de confiana

+---------------------------------------------------------------+ |cdigo|descrio de confiana | |------+--------------------------------------------------------| ||nenhuma confiana de dono atribuda / ainda no | | |calculado | |------+--------------------------------------------------------| |e |falha no clculo da confiana | |------+--------------------------------------------------------| |q |no existe informao suficiente para o clculo | |------+--------------------------------------------------------| |n |nunca confiar nesta chave | |------+--------------------------------------------------------| |m |marginalmente confivel | |------+--------------------------------------------------------| |f |totalmente confivel | |------+--------------------------------------------------------| |u |de confiana absoluta | +---------------------------------------------------------------+ O seguinte envia a minha chave "1DD8D791" para o popular servidor de chaves "hkp://keys.gnupg.net". $ gpg --keyserver hkp://keys.gnupg.net --send-keys 1DD8D791 Um bom servidor de chaves predefinido configurado em "~/.gnupg/ gpg.conf" (ou na antiga localizao "~/.gnupg/options") contm o seguinte. keyserver hkp://keys.gnupg.net O seguinte obtm chaves desconhecidas do servidor de chaves. $ gpg --list-sigs --with-colons | grep '^sig.*\[User ID not found\]' |\ cut -d ':' -f 5| sort | uniq | xargs gpg --recv-keys Existiu um bug no OpenPGP Public Key Server (http:// sourceforge.net/projects/pks/) (verso anterior a 0.9.6) que corrompeu as chaves com mais de 2 sub-chaves. O novo pacote gnupg (>1.2.1-2) consegue lidar com estas chaves corrompidas. Veja gpg (1) sob a opo "--repair-pks-subkey-bug". 10.4.2. Usa GnuPG em ficheiros Aqui esto exemplos para usar comandos do GNU Privacy Guard (http://en.wikipedia.org/wiki/GNU_Privacy_Guard) em ficheiros. Tabela 10.13. Lista de comandos do GNU Privacy Guard em ficheiros +---------------------------------------------------------------+ |comando |descrio | |--------------------+------------------------------------------| | |assina ficheiro em ficheiro.asc blindado | |gpg -a -s ficheiro |de ASCII (http://en.wikipedia.org/wiki/ | | |ASCII) | |--------------------+------------------------------------------| |gpg --armor --sign |, , | |ficheiro | | |--------------------+------------------------------------------| |gpg --clearsign |mensagem com assinatura clara |

|ficheiro | | |--------------------+------------------------------------------| |gpg --clearsign file|envia por mail uma mensagem com assinatura| ||mail |clara para [email protected] | |[email protected] | | |--------------------+------------------------------------------| |gpg --clearsign | | |--not-dash-escaped |ficheiro patch com assinatura clara | |patchfile | | |--------------------+------------------------------------------| |gpg --verify |verifica ficheiro com assinatura clara | |ficheiro | | |--------------------+------------------------------------------| |gpg -o ficheiro.sig |cria assinatura separada | |-b ficheiro | | |--------------------+------------------------------------------| |gpg -o ficheiro.sig | | |--detach-sig |, , | |ficheiro | | |--------------------+------------------------------------------| |gpg --verify | | |ficheiro.sig |verifica ficheiro com file.sig | |ficheiro | | |--------------------+------------------------------------------| |gpg -o |encriptao de chave pblica destinada a | |crypt_file.gpg -r |nome a partir de ficheiro para | |nome -e ficheiro |crypt_file.gpg binrio | |--------------------+------------------------------------------| |gpg -o | | |crypt_file.gpg |, , | |--recipient nome | | |--encrypt ficheiro | | |--------------------+------------------------------------------| |gpg -o |encriptao de chave pblica destinada a | |crypt_file.asc -a -r|nome a partir de ficheiro para | |nome -e ficheiro |crypt_file.asc blindado de ASCII (http:// | | |en.wikipedia.org/wiki/ASCII) | |--------------------+------------------------------------------| |gpg -o |encriptao simtrica a partir de ficheiro| |crypt_file.gpg -c |para crypt_file.gpg | |ficheiro | | |--------------------+------------------------------------------| |gpg -o | | |crypt_file.gpg |, , | |--symmetric ficheiro| | |--------------------+------------------------------------------| |gpg -o |encriptao simtrica destinada a nome a | |crypt_file.asc -a -c|partir de ficheiro para crypt_file.asc | |ficheiro |blindado de ASCII (http://en.wikipedia.org| | |/wiki/ASCII) | |--------------------+------------------------------------------| |gpg -o ficheiro -d | | |crypt_file.gpg -r |desencriptao | |nome | | |--------------------+------------------------------------------| |gpg -o ficheiro | | |--decrypt |, , | |crypt_file.gpg | | +---------------------------------------------------------------+

10.4.3. Usar GnuPG com o Mutt Adicione o seguinte a "~/.muttrc" para impedir o GnuPG lento de arrancar automaticamente, enquanto permite que seja usado ao escrever "S" no menu de ndice. macro index S ":toggle pgp_verify_sig\n" set pgp_verify_sig=no 10.4.4. Usar GnuPG com o Vim O plugin do gnupg permite-lhe correr o GnuPG transparentemente para ficheiros com extenso ".gpg", ".asc", e ".ppg". # aptitude install vim-scripts vim-addon-manager $ vim-addons install gnupg 10.4.5. O valor de controlo MD5 O md5sum(1) disponibiliza um utilitrio para fazer um ficheiro de sumrio usando o mtodo em rfc1321 (http://tools.ietf.org/html/ rfc1321) e verificar cada ficheiro com ele. $ md5sum foo bar >baz.md5 $ cat baz.md5 d3b07384d113edec49eaa6238ad5ff00 foo c157a79031e1c40f85931829bc5fc552 bar $ md5sum -c baz.md5 foo: OK bar: OK Nota O clculo do sumrio MD5 (http://en.wikipedia.org/wiki/MD5) menos intensivo para a CPU que o da assinatura criptogrfica do GNU Privacy Guard (GnuPG) (http://en.wikipedia.org/wiki/ GNU_Privacy_Guard) . Normalmente, apenas o ficheiro de digesto do nvel de topo assinado criptograficamente para assegurar a integridade dos dados. 10.5. Ferramentas de fuso de cdigo fonte Existem muitas ferramentas de fuso para cdigo fonte. Os seguinte comandos chamaram a minha ateno. Tabela 10.14. Lista de ferramentas de fuso de cdigo fonte +--------------------------------------------------------------------------------+ |pacote |popcon |tamanho |comando |descrio | |-------------------+-------------+----------------------+-----------+-----------| | |V:746, I:834 | | | | |diffutils (http:// |(http:// |1114 (http:// | |compar a | |packages.debian.org|qa.debian.org|packages.qa.debian.org|diff(1) |fichei ros |

|/sid/diffutils) |/popcon.php? |/d/diffutils.html) | |linha | | |package= | | |linha | | |diffutils) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:746, I:834 | | |compar a e | |diffutils (http:// |(http:// |1114 (http:// | |junta trs | |packages.debian.org|qa.debian.org|packages.qa.debian.org|diff3(1) |fichei ros | |/sid/diffutils) |/popcon.php? |/d/diffutils.html) | |linha a | | |package= | | |linha | | |diffutils) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:168, I:400 | | |compar a dois| |vim (http:// |(http:// |1877 (http:// | |fichei ros | |packages.debian.org|qa.debian.org|packages.qa.debian.org|vimdiff(1) |lado a lado | |/sid/vim) |/popcon.php? |/v/vim.html) | |no vim | | |package=vim) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:139, I:943 | | | | |patch (http:// |(http:// |218 (http:// | |aplica | |packages.debian.org|qa.debian.org|packages.qa.debian.org|patch(1) |fichei ro | |/sid/patch) |/popcon.php? |/p/patch.html) | |diff a um | | |package= | | |origin al | | |patch) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:6, I:68 | | | | |dpatch (http:// |(http:// |237 (http:// | |gere sr ies | |packages.debian.org|qa.debian.org|packages.qa.debian.org|dpatch(1) |de pat ches | |/sid/dpatch) |/popcon.php? |/d/dpatch.html) | |para p acote | | |package= | | |Debian | | |dpatch) | | | | a

|-------------------+-------------+----------------------+-----------+-----------| | |V:19, I:146 | | |produz um | |diffstat (http:// |(http:// |45 (http:// | |histog rama | |packages.debian.org|qa.debian.org|packages.qa.debian.org|diffstat(1)|de | |/sid/diffstat) |/popcon.php? |/d/diffstat.html) | |alteraes | | |package= | | |feitas pelo | | |diffstat) | | |diff | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | |cria u ma | |patchutils (http://|(http:// |221 (http:// | |patch | |packages.debian.org|qa.debian.org|packages.qa.debian.org|combinediff|cumula tiva | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |de dua s | | |package= | | |patche s | | |patchutils) | | |increm entais| |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | | | |patchutils (http://|(http:// |221 (http:// | |extrai um | |packages.debian.org|qa.debian.org|packages.qa.debian.org|dehtmldiff |diff d e uma | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |pgina H TML | | |package= | | | | | |patchutils) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | |extrai ou | |patchutils (http://|(http:// |221 (http:// | |execut a | |packages.debian.org|qa.debian.org|packages.qa.debian.org|filterdiff |diffs de um | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |fichei ro | | |package= | | |diff | | |patchutils) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | |corrig e |

|(http:// | | |fichei | |patchutils (http://|qa.debian.org|221 (http:// |fixcvsdiff |diff c riados| |packages.debian.org|/popcon.php? |packages.qa.debian.org|(1) |pelo C VS que| |/sid/patchutils) |package= |/p/patchutils.html) | |o patc h(1) | | |patchutils) | | |interp reta | | | | | |mal | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | | | |patchutils (http://|(http:// |221 (http:// | |troca a | |packages.debian.org|qa.debian.org|packages.qa.debian.org|flipdiff(1)|ordem de | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) | |duas p atches| | |package= | | | | | |patchutils) | | | | |-------------------+-------------+----------------------+-----------+-----------| | | | | |mostra que | | |V:15, I:122 | | |fichei ros | |patchutils (http://|(http:// |221 (http:// | |so | |packages.debian.org|qa.debian.org|packages.qa.debian.org|grepdiff(1)|modifi cados | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) | |por um a | | |package= | | |patch que | | |patchutils) | | |corres ponde | | | | | |a um r egex | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | |mostra as | |patchutils (http://|(http:// |221 (http:// | |difere nas | |packages.debian.org|qa.debian.org|packages.qa.debian.org|interdiff |entre dois | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |fichei ros | | |package= | | |diff | | |patchutils) | | |unific ados | |-------------------+-------------+----------------------+-----------+-----------| ros

| |V:15, I:122 | | |mostra quais| |patchutils (http://|(http:// |221 (http:// | |ficheiros | |packages.debian.org|qa.debian.org|packages.qa.debian.org|lsdiff(1) |so | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) | |modifi cados | | |package= | | |por um a | | |patchutils) | | |patch | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | |recalc ula | |patchutils (http://|(http:// |221 (http:// | |contag ens e | |packages.debian.org|qa.debian.org|packages.qa.debian.org|recountdiff|offset s em | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |diffs de | | |package= | | |contex to | | |patchutils) | | |unific ado | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | |corrig e os | |patchutils (http://|(http:// |221 (http:// | |offset s e as| |packages.debian.org|qa.debian.org|packages.qa.debian.org|rediff(1) |contag ens de| |/sid/patchutils) |/popcon.php? |/p/patchutils.html) | |um dif f | | |package= | | |editad o | | |patchutils) | | |manual mente | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:122 | | | | |patchutils (http://|(http:// |221 (http:// | |separa | |packages.debian.org|qa.debian.org|packages.qa.debian.org|splitdiff |patche s | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |increm entais| | |package= | | | | | |patchutils) | | | | |-------------------+-------------+----------------------+-----------+-----------| | | | | |desemb aralha| | |V:15, I:122 | | |patche s |

|patchutils (http://|(http:// |221 (http:// | |cujas linhas| |packages.debian.org|qa.debian.org|packages.qa.debian.org|unwrapdiff |foram | |/sid/patchutils) |/popcon.php? |/p/patchutils.html) |(1) |altera das | | |package= | | |para | | |patchutils) | | |arrumao de| | | | | |palavr as | |-------------------+-------------+----------------------+-----------+-----------| | |V:0, I:0 | | | | |wiggle (http:// |(http:// |203 (http:// | |aplica | |packages.debian.org|qa.debian.org|packages.qa.debian.org|wiggle(1) |patche s | |/sid/wiggle) |/popcon.php? |/w/wiggle.html) | |rejeit adas | | |package= | | | | | |wiggle) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:12, I:91 | | | | |quilt (http:// |(http:// |814 (http:// | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|quilt(1) |gere sr ies | |/sid/quilt) |/popcon.php? |/q/quilt.html) | |de pat ches | | |package= | | | | | |quilt) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:9, I:39 | | |compar a e | |meld (http:// |(http:// |1540 (http:// | |funde | |packages.debian.org|qa.debian.org|packages.qa.debian.org|meld(1) |fichei ros | |/sid/meld) |/popcon.php? |/m/meld.html) | |(GTK) | | |package=meld)| | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:0, I:5 | | |mostra | | |(http:// | | |difere nas e| |dirdiff (http:// |qa.debian.org|224 (http:// | |funde |

|packages.debian.org|/popcon.php? |packages.qa.debian.org|dirdiff(1) |alteraes | |/sid/dirdiff) |package= |/d/dirdiff.html) | |entre | | |dirdiff) | | |rvores de | | | | | |directr ios | |-------------------+-------------+----------------------+-----------+-----------| | |V:0, I:0 | | |compar a dois| |docdiff (http:// |(http:// |543 (http:// | |fichei ros | |packages.debian.org|qa.debian.org|packages.qa.debian.org|docdiff(1) |palavr a a | |/sid/docdiff) |/popcon.php? |/d/docdiff.html) | |palavr a / | | |package= | | |caract ere a | | |docdiff) | | |caract ere | |-------------------+-------------+----------------------+-----------+-----------| | |V:0, I:0 | | |ferram enta | |imediff2 (http:// |(http:// |76 (http:// | |de fuso de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|imediff2(1)|2 vias | |/sid/imediff2) |/popcon.php? |/i/imediff2.html) | |intera ctiva | | |package= | | |de cran | | |imediff2) | | |comple to | |-------------------+-------------+----------------------+-----------+-----------| | |V:0, I:0 | | | | |makepatch (http:// |(http:// |148 (http:// | |gera | |packages.debian.org|qa.debian.org|packages.qa.debian.org|makepatch |fichei ros de| |/sid/makepatch) |/popcon.php? |/m/makepatch.html) |(1) |patch | | |package= | | |extens os | | |makepatch) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:0, I:0 | | | | |makepatch (http:// |(http:// |148 (http:// | |aplica | |packages.debian.org|qa.debian.org|packages.qa.debian.org|applypatch |fichei ros de| |/sid/makepatch) |/popcon.php? |/m/makepatch.html) |(1) |patch |

| os | |

|package=

|extens

|makepatch) | | | | |-------------------+-------------+----------------------+-----------+-----------| | |V:15, I:144 | | |mostra | |wdiff (http:// |(http:// |902 (http:// | |difere nas | |packages.debian.org|qa.debian.org|packages.qa.debian.org|wdiff(1) |de pal avras | |/sid/wdiff) |/popcon.php? |/w/wdiff.html) | |entre | | |package= | | |fichei ros de| | |wdiff) | | |texto | +--------------------------------------------------------------------------------+ 10.5.1. Extrair as diferenas para ficheiros fonte Um dos seguintes procedimentos extrai as diferenas entre dois ficheiros de fonte e cria os ficheiros diff unificados "file.patch0" ou "file.patch1" dependendo da localizao do ficheiro. $ diff -u ficheiro.antigo ficheiro.novo > ficheiro.patch0 $ diff -u antigo/ficheiro novo/ficheiro > ficheiro.patch1 10.5.2. Fundir actualizaes para ficheiros de fonte O ficheiro diff (alternativamente chamado ficheiro patch) usado para enviar uma actualizao de um programa. A parte receptora aplica esta actualizao a outro ficheiro com o seguinte. $ patch -p0 ficheiro < ficheiro.patch0 $ patch -p1 ficheiro < ficheiro.patch1 10.5.3. Actualizar via fuso-de-3-vias Se voc tiver trs verses de um cdigo fonte, voc pode executar uma fuso-de-3-vias efectiva usando o diff3(1) com o seguinte. $ diff3 -m meu.ficheiro ficheiro.antigo teu.ficheiro > ficheiro 10.6. Sistemas de controle de verso Aqui est um sumrio dos sistemas de controle de verso (VCS) (http://en.wikipedia.org/wiki/Revision_control) no sistema Debian. Nota Se voc novato nos sistemas VCS, dever comear a aprender com o Git, o qual est a crescer rapidamente na popularidade. Tabela 10.15. lista de ferramentas de sistemas de controle de verso

+---------------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |ferramenta |Tipo VCS |comentrio | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:0, I:4 | | | |clone do SCCS do Unix | |cssc (http:// |(http:// |2240 (http:// |CSSC (http:// | |(http://en.wikipedia.org/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|cssc.sourceforge.n et/) |local |wiki/ | |/sid/cssc) |/popcon.php? |/c/cssc.html) | | |Source_Code_Control_System)| | |package=cssc)| | | |(descontinuado) | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:8, I:47 | | | |"SCCS do Unix (http:// | |rcs (http:// |(http:// |1211 (http:// |RCS (http:// | |en.wikipedia.org/wiki/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |local |Source_Code_Control_System)| |/sid/rcs) |/popcon.php? |/r/rcs.html) |Revision_Control_S ystem) | |bem feito" | | |package=rcs) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:19, I:133 | | | | | |cvs (http:// |(http:// |4059 (http:// |CVS (http:// | |VCS remoto standard | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |remoto |anterior | |/sid/cvs) |/popcon.php? |/c/cvs.html) |Concurrent_Version s_System)| | | | |package=cvs) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:81, I:285 | | | | | |subversion (http://|(http:// |3899 (http:// |Subversion (http:/ / | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |remoto |"CVS bem feito", o novo VCS| |/sid/subversion) |/popcon.php? |/s/subversion.html) |Subversion_(softwa re)) | |remoto standard "de facto" | | |package= | | | | | | |subversion) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:132, I:421 | | | | | |git (http:// |(http:// |13144 (http:// |Git (http://

| |DVCS rpido em C (usado | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/Git_ |distribudo|pelo kernel Linux e outros)| |/sid/git) |/popcon.php? |/g/git.html) |(software)) | | | | |package=git) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:20, I:84 | | | | | |mercurial (http:// |(http:// |371 (http:// |Mercurial (http:// | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |distribudo|DVCS em Python e algum C | |/sid/mercurial) |/popcon.php? |/m/mercurial.html) |Mercurial_(softwar e)) | | | | |package= | | | | | | |mercurial) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:9, I:43 | | | |DVCS influenciado por tla | |bzr (http:// |(http:// |98 (http:// |Bazaar (http:// | |escrito em Python (usado | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |distribudo|pelo Ubuntu (http:// | |/sid/bzr) |/popcon.php? |/b/bzr.html) |Bazaar_(software)) | |www.ubuntu.com/) ) | | |package=bzr) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:2, I:13 | | | | | |darcs (http:// |(http:// |13424 (http:// |Darcs (http:// | |DVCS com lgebra | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |distribudo|inteligente de patches | |/sid/darcs) |/popcon.php? |/d/darcs.html) |Darcs) | |(lento) | | |package= | | | | | | |darcs) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:1, I:11 | | | | | |tla (http:// |(http:// |881 (http:// |GNU arch (http:// | |DVCS principalmente por Tom| |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |distribudo|Lord (Histrico) | |/sid/tla) |/popcon.php? |/t/tla.html) |GNU_arch) | | | | |package=tla) | | | | | |-------------------+-------------+----------------------+------------------

---------+-----------+---------------------------| | |V:0, I:2 | | | | | |monotone (http:// |(http:// |5150 (http:// |Monotone (http:// | | | |packages.debian.org|qa.debian.org|packages.qa.debian.org|en.wikipedia.org/w iki/ |distribudo|DVCS em C++ | |/sid/monotone) |/popcon.php? |/m/monotone.html) |Monotone_(software )) | | | | |package= | | | | | | |monotone) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:0, I:3 | | | | | |tkcvs (http:// |(http:// |1400 (http:// | | |Mostrador GUI de rvores de| |packages.debian.org|qa.debian.org|packages.qa.debian.org|CVS, |remoto |repositrio VCS (CVS, | |/sid/tkcvs) |/popcon.php? |/t/tkcvs.html) | | |Subversion, RCS) | | |package= | | | | | | |tkcvs) | | | | | |-------------------+-------------+----------------------+--------------------------+-----------+---------------------------| | |V:11, I:56 | | | | | |gitk (http:// |(http:// |1049 (http:// | | |Mostrador GUI de rvores de| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Git |distribudo|repositrio VCS (Git) | |/sid/gitk) |/popcon.php? |/g/gitk.html) | | | | | |package=gitk)| | | | | +---------------------------------------------------------------------------------------------------------------------------+ O VCS por vezes conhecido como um sistema de controle de reviso (RCS), ou gesto de configurao de software (SCM). O VCS distribudo como o Git a ferramenta escolhida nos dias de hoje. O CVS e Subversion podem ainda ser teis para juntar algumas actividades de programas de cdigo aberto existentes. O Debian disponibiliza servios VCS livres via servio Debian Alioth (http://alioth.debian.org/) . Suporta praticamente todos os VCSs. A sua documentao pode ser encontrada em http:// wiki.debian.org/Alioth (http://wiki.debian.org/Alioth) . Existem algumas bases para criar um arquivo VCS de acesso partilhado. * Use "umask 002" (veja Seco1.2.4, Controlo de permisses para ficheiros acabados de criar: umask)

* Tornar todos os ficheiros de arquivo VCS pertencentes a um grupo pertinente. * Activar a definio de ID de grupo em todos os directrios do arquivo VCS (esquema de criao de ficheiros do tipo BSD, veja Seco1.2.3, Permisses do sistema de ficheiros) * Fazer o utilizador que partilha o arquivo VCS pertencer ao grupo 10.6.1. Comparao dos comandos VCS Aqui est uma comparao muito simplificada dos comandos VCS nativos para disponibilizar a ideia geral. A sequncia de comandos tpica pode requerer opes e argumentos. Tabela 10.16. Comparao dos comandos VCS nativos +---------------------------------------------------------------+ |CVS |Subversion|Git |funo | |------+----------+--------------+------------------------------| |cvs |svn create|git init |cria o repositrio (local) | |init | | | | |------+----------+--------------+------------------------------| |cvs |||login ao repositrio remoto | |login | | | | |------+----------+--------------+------------------------------| | | | |faz check out ao repositrio | |cvs co|svn co |git clone |remoto como a rvore de | | | | |trabalho | |------+----------+--------------+------------------------------| |cvs up|svn up |git pull |actualiza a rvore de trabalho| | | | |ao fundir o repositrio remoto| |------+----------+--------------+------------------------------| |cvs |svn add |git add . |adiciona ficheiro(s) na rvore| |add | | |de trabalho do VCS | |------+----------+--------------+------------------------------| |cvs rm|svn rm |git rm |remove ficheiro(s) na rvore | | | | |de trabalho do VCS | |------+----------+--------------+------------------------------| |cvs ci|svn ci ||comete alteraes para o | | | | |repositrio remoto | |------+----------+--------------+------------------------------| |||git commit -a |comete alteraes para o | | | | |repositrio local | |------+----------+--------------+------------------------------| |||git push |actualiza o repositrio remoto| | | | |pelo repositrio local | |------+----------+--------------+------------------------------| |cvs |svn status|git status |mostra o estado da rvore de | |status| | |trabalho do VCS | |------+----------+--------------+------------------------------| |cvs |svn diff |git diff |diff <repositrio_referncia> | |diff | | |<rvore_de_trabalho> | |------+----------+--------------+------------------------------| |||git repack -a |re-empacota o repositrio | | | |-d; git prune |local em um nico pacote | |------+----------+--------------+------------------------------| |tkcvs |tkcvs |gitk |Mostrador GUI de rvore de |

| | | |repositrio VCS | +---------------------------------------------------------------+ Cuidado Invocar um sub-comando git directamente como "git-xyz" a partir da linha de comandos foi descontinuado desde o inicio de 2006. Dica Ferramentas GUI como o tkcvs(1) e gitk(1) ajudam-no realmente com o acompanhamento do histrico de reviso dos ficheiros. A interface web disponibiliza por muitos arquivos pblicos para explorao dos seus repositrios tambm muito til. Dica O git pode trabalhar directamente com diferentes repositrios CVS como aqueles disponibilizados pelo CVS e Subversion, e disponibiliza o repositrio local para alteraes locais com os pacotes git-cvs e git-svn. Veja git para utilizadores de CVS (http://www.kernel.org/pub/software/scm/git/docs/ gitcvs-migration.html) , e Seco10.9.4, Git para o repositrio Subversion. Dica Git tem comandos que no tm equivalentes em CVS e Subversion: "fetch", "rebase", "cherry-pick", 10.7. CVS Veja o seguinte. * cvs(1) * "/usr/share/doc/cvs/html-cvsclient" * "/usr/share/doc/cvs/html-info" * "/usr/share/doc/cvsbook" * "info cvs" 10.7.1. Configurao de repositrio CVS A seguinte configurao permite submisses para o repositrio CVS apenas por um membro do grupo "src", e administrao do CVS apenas por um membro do grupo "staff", assim reduzindo as hipteses de dar um tiro em si prprio. # # # # # # # # cd /var/lib; umask 002; mkdir cvs export CVSROOT=/srv/cvs/project cd $CVSROOT chown root:src . chmod 2775 . cvs -d $CVSROOT init cd CVSROOT chown -R root:staff .

# # # #

chmod touch chmod chown

2775 . val-tags 664 history val-tags root:src history val-tags

Dica Voc pode restringir a criao de novo projecto ao alterar o dono do directrio "$CVSROOT" para "root:staff" e as suas permisses para "3775". 10.7.2. Acesso local ao CVS O repositrio CVS predefinido apontado por "$CVSROOT". O seguinte define "$CVSROOT" para o acesso local. $ export CVSROOT=/srv/cvs/project 10.7.3. Acesso remoto ao CVS com pserver Muitos servidores CVS pblicos disponibilizam acesso remoto apenas de leitura a eles com o nome de conta "anonymous" via servio pserver. Por exemplo, os contedos do site web de Debian so mantidos pelo projecto webwml (http://alioth.debian.org/ projects/webwml/) via CVS no servio alioth de Debian. O seguinte configura "$CVSROOT" para o acesso remoto a este repositrio CVS. $ export CVSROOT=:pserver:[email protected]:/cvsroot/webwml $ cvs login Nota Como o pserver inclinado a ataques de escutas e inseguro, o acesso de escrita geralmente desactivado pelos administradores do servidor. 10.7.4. Acesso remoto ao CVS com ssh O seguinte configura "$CVS_RSH" e "$CVSROOT" para o acesso remoto ao repositrio CVS pelo projecto webwml (http://alioth.debian.org /projects/webwml/) com SSH. $ export CVS_RSH=ssh $ export CVSROOT=:ext:[email protected]:/cvs/webwml Voc tambm pode usar autenticao de chave pblica para SSH o que elimina o pedido remoto de palavra-passe. 10.7.5. Importar uma nova fonte para o CVS Crie uma nova localizao de rvore fonte local em "~/caminho/ para/module1" com o seguinte. $ mkdir -p ~/caminho/para/module1; cd ~/caminho/para/module1 Povoa uma nova rvore fonte local sob "~/caminho/para/module1" como ficheiros. Importe-o para o CVS com os seguintes parmetros.

* Module name: "module1" * Vendor tag: "Main-branch" (etiqueta para o branch completo) * Release tag: "Release-initial" (etiqueta para um lanamento especfico) $ cd ~/caminho/para/module1 $ cvs import -m "Start module1" module1 Main-branch Release-initial $ rm -Rf . # opcional 10.7.6. Permisses de ficheiros no repositrio CVS O CVS no sobrescreve o ficheiro do repositrio actual mas substitui-o por outros. Assim, a permisso de escrita no directrio do repositrio crtica. Para cada novo mdulo para "module1" no repositrio em "/srv/cvs/project", corra o seguinte para assegurar esta condio se necessrio. # # # # cd /srv/cvs/project chown -R root:src module1 chmod -R ug+rwX module1 chmod 2775 module1

10.7.7. Fluxo de trabalho do CVS Aqui est um exemplo de um fluxo de trabalho tpico usando CVS Verifique todos os mdulos disponveis do projecto CVS apontados por "$CVSROOT" com o seguinte. $ cvs rls CVSROOT module1 module2 ... Faa o checkout a "module1" para o seu directrio predefinido "./ module1" com o seguinte. $ cd ~/caminho/para $ cvs co module1 $ cd module1 Faa as alteraes necessrias ao contedo. Verifique alteraes ao fazer "diff -u [repositrio] [local]" equivalente ao seguinte. $ cvs diff -u Voc descobre que danificou o ficheiro "ficheiro-a-desfazer" severamente mas os outros ficheiros esto bem. Sobrescreva o ficheiro "ficheiro-a-desfazer" com uma cpia limpa do CVS com o seguinte. $ cvs up -C ficheiro-a-desfazer Salva a rvore de fonte local actualizada para o CVS com o

seguinte. $ cvs ci -m "Descreve alterao" Crie e adicione o ficheiro "ficheiro-a-adicionar" ao CVS com o seguinte. $ vi ficheiro-a-adicionar $ cvs add ficheiro-a-adicionar $ cvs ci -m "ficheiro-a-adicionar adicionado" Funda a verso mais recente do CVS com o seguinte. $ cvs up -d Procure por linhas que comecem com "C filename" as quais indicam alteraes em conflito. Procura cdigo no modificado em ".#nome-ficheiro.verso". Procura por "<<<<<<<" e ">>>>>>>" em ficheiros por alteraes em conflito. Edite os ficheiros para corrigir os conflitos como necessrio. Adicione uma etiqueta de lanamento "Release-1" com o seguinte. $ cvs ci -m "ltima submisso para Release-1" $ cvs tag Release-1 Continuar a editar. Remova a etiqueta de lanamento "Release-1" com o seguinte. $ cvs tag -d Release-1 Verifique as alteraes no CVS com o seguinte. $ cvs ci -m "ltima submisso real para Release-1" Re-adicione a etiqueta de lanamento "Release-1" para o CABEALHO CVS actualizado de main com o seguinte. $ cvs tag Release-1 Crie um branch com uma etiqueta autocolante de branch "Release-initial-bugfixes" a partir da verso original apontada pela etiqueta "Release-initial" e faa o check out para o directrio "~/path/to/old" com o seguinte. $ $ $ $ cvs rtag -b -r Release-initial Release-initial-bugfixes module1 cd ~/path/to cvs co -r Release-initial-bugfixes -d old module1 cd old

Dica Use "-D 2005-12-20" (formato de data ISO 8601 (http:// en.wikipedia.org/wiki/ISO_8601) ) em vez de "-r Release-initial" para especificar uma data particular como o ponto do branch.

Trabalhe nesta rvore de fonte local tendo a etiqueta autocolante "Release-initial-bugfixes" a qual baseada na verso original. Trabalhe neste branch por si at que algum se junte a este branch "Release-initial-bugfixes". Sincronize com ficheiros modificados por outros neste branch enquanto cria novos directrios se necessrio com o seguinte. $ cvs up -d Edite os ficheiros para corrigir os conflitos como necessrio. Verifique as alteraes no CVS com o seguinte. $ cvs ci -m "check feito para este branch" Actualize a rvore local pelo CABEALHO do main enquanto remove a etiqueta autocolante ("-A") e sem a extenso de palavra chave ("-kk") com o seguinte. $ cvs up -d -kk -A Actualize a rvore local (contedo = CABEALHO de main) ao fundir do branch "Release-initial-bugfixes" e sem a expanso palavra chave com o seguinte. $ cvs up -d -kk -j Release-initial-bugfixes Corrigir conflitos com o editor. Verifique as alteraes no CVS com o seguinte. $ cvs ci -m "Juntei Release-initial-bugfixes" Criar arquivo com o seguinte. $ $ $ $ O comando "cvs up" pode receber a opo "-d" para criar novos directrios e a opo "-P" para suprimir os directrios vazios. Dica Voc pode fazer checkout apenas a um sub directrio de "module1" ao fornecer o seu nome como "cvs co module1/subdir". Tabela 10.17. Opes notveis para comandos CVS (use como primeiro argumento(s) para o cvs(1)) +---------------------------------------------------------------+ |opo|significado | |-----+---------------------------------------------------------| |-n |simulao, nenhum efeito | cd .. mv old old-module1-bugfixes tar -cvzf old-module1-bugfixes.tar.gz old-module1-bugfixes rm -rf old-module1-bugfixes

Dica

|-----+---------------------------------------------------------| |-t |mostra mensagens que mostram os passos da actividade do | | |cvs | +---------------------------------------------------------------+ 10.7.8. Ficheiros mais recentes do CVS Para obter os ficheiros mais recentes do CVS, use "tomorrow" com o seguinte. $ cvs ex -D tomorrow nome-do-mdulo 10.7.9. Administrao do CVS Adicione o alias de mdulo "mx" a um projecto de CVS (servidor local) com o seguinte. $ $ $ $ $ $ export CVSROOT=/srv/cvs/project cvs co CVSROOT/modules cd CVSROOT echo "mx -a module1" >>modules cvs ci -m "Agora mx um alias para module1" cvs release -d .

Agora, voc pode fazer check out ao "module1" (alias: "mx") do CVS para o directrio "new" com o seguinte. $ cvs co -d new mx $ cd new Nota De modo a executar o procedimento em cima, voc precisa ter as permisses de ficheiro apropriadas. 10.7.10. Bit de execuo para verificao do CVS Quando voc faz checkout a ficheiros de CVS, o seu bit de permisso de execuo retido. Sempre que veja problemas com a permisso de execuo num ficheiro a que fez check out, ex. "nome-de-ficheiro", mude as suas permisses no repositrio CVS correspondente com o seguinte para a corrigir. # chmod ugo-x nome-de-ficheiro 10.8. Subversion Subversion um sistema de controle de verso de gerao-recente que substitui o antigo CVS. Tem a maioria das funcionalidades do CVS excepto as tags e branches. Voc precisa instalar os pacotes subversion, libapache2-svn e subversion-tools para configurar um servidor Subversion. 10.8.1. Configurao do repositrio Subversion Actualmente, o pacote subversion no configura um repositrio,

ento preciso configurar um manualmente. Uma possvel localizao para um repositrio em "/srv/svn/project". Crie um directrio com o seguinte. # mkdir -p /srv/svn/project

Crie a base de dados do repositrio com o seguinte. # svnadmin create /srv/svn/project 10.8.2. Acesso ao Subversion via servidor Apache2 Se voc apenas aceder ao repositrio Subversion via servidor Apache2, voc apenas precisa de activar a escrita no repositrio pelo servidor WWW com o seguinte. # chown -R www-data:www-data /srv/svn/project Adicione (ou descomente) o seguinte em "/etc/apache2/ mods-available/dav_svn.conf" para permitir o acesso ao repositrio via autenticao do utilizador. <Location /project> DAV svn SVNPath /srv/svn/project AuthType Basic AuthName "Subversion repository" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location> Crie um ficheiro de autenticao de utilizador com o comando com o seguinte. # htpasswd2 -c /etc/subversion/passwd algum_nome_de_utilizador Reiniciar o Apache2 O seu novo repositrio Subversion est acessvel no URL "http:// localhost/project" e "http://exemplo.com/project" a partir de svn (1) (assumindo que o URL do seu servidor web "http:// exemplo.com/"). 10.8.3. Acesso local ao Subversion pelo grupo O seguinte configura um repositrio Subversion para acesso local pelo grupo, ex. project. # chmod 2775 /srv/svn/project # chown -R root:src /srv/svn/project # chmod -R ug+rwX /srv/svn/project O seu novo repositrio Subversion est acessvel ao grupo no URL "file:///localhost/srv/svn/project" ou "file:///srv/svn/project" a partir de svn(1) para os utilizadores locais que pertenam ao grupo project. Voc tem de correr comandos, como o svn, svnserve, svnlook, e svnadmin sob "umask 002" para assegurar o acesso do

grupo. 10.8.4. Acesso remoto ao Subversion via SSH Um repositrio Subversion acessvel por grupo est no URL "example.com:/srv/svn/project" para SSH, voc pode aceder-lhe a partir de svn(1) no URL "svn+ssh://example.com:/srv/svn/project". 10.8.5. Estrutura de directrios do Subversion Muitos projectos usam rvores de directrios semelhantes seguinte para o Subversion para compensar a falta de branches e tags. ----| | | | | | | | | | `-Dica Voc tem de usar o comando "svn copy " para marcar os branches e as etiquetas. Isto assegura que o Subversion grave um histrico de modificaes dos ficheiros de modo apropriado e poupe espao de armazenamento. 10.8.6. importar uma nova fonte para o Subversion Crie uma nova localizao de rvore fonte local em "~/caminho/ para/module1" com o seguinte. $ mkdir -p ~/caminho/para/module1; cd ~/caminho/para/module1 Povoa uma nova rvore fonte local sob "~/caminho/para/module1" como ficheiros. Importe-o para Subversion com os seguintes parmetros. * Module name: "module1" * Subversion site URL: "file:///srv/svn/project" * Subversion directory: "module1/trunk" * Subversion tag: "module1/tags/Release-initial" $ cd ~/path/to/module1 $ svn import file:///srv/svn/project/module1/trunk -m "Start module1" $ svn cp file:///srv/svn/project/module1/trunk file:///srv/svn/project/modul e1/tags/Release-initial Alternativamente, pelo seguinte. module1 |-- branches |-- tags | |-- release-1.0 | `-- release-2.0 | `-- trunk |-- file1 |-- file2 `-- file3 module2

$ svn import ~/path/to/module1 file:///srv/svn/project/module1/trunk -m "Start mod ule1" $ svn cp file:///srv/svn/project/module1/trunk file:///srv/svn/project/modul e1/tags/Release-initial Dica Voc pode substituir URLs como o "file:///" por qualquer outro formato de URL como o "http://" e "svn+ssh://". 10.8.7. Fluxo de trabalho do Subversion Aqui est um exemplo do fluxo de trabalho tpico usando o Subversion com o seu cliente nativo. Dica Os comandos de cliente oferecidos pelo pacote git-svn podem oferecer um fluxo de trabalho alternativo do Subversion usando o comando git. Veja Seco10.9.4, Git para o repositrio Subversion. Verifique todos os mdulos disponveis do projecto do Subversion apontado pelo URL "file:///srv/svn/project" com o seguinte. $ svn list file:///srv/svn/project module1 module2 ... Faz checkout a "module1/trunk" para um directrio "module1" com o seguinte. $ cd ~/caminho/para $ svn co file:///srv/svn/project/module1/trunk module1 $ cd module1 Faa as alteraes necessrias ao contedo. Verifique alteraes ao fazer "diff -u [repositrio] [local]" equivalente ao seguinte. $ svn diff Voc descobre que danificou o ficheiro "ficheiro-a-desfazer" severamente mas os outros ficheiros esto bem. Sobrescreve "ficheiro_a_desfazer" com a cpia limpa do Subversion com o seguinte. $ svn revert ficheiro_a_desfazer Salve a rvore de fonte local actualizada para o Subversion com o seguinte. $ svn ci -m "Descreve alterao" Crie e adicione o ficheiro "ficheiro_a_adicionar" ao Subversion com o seguinte.

$ vi ficheiro_a_adicionar $ svn add ficheiro_a_adicionar $ svn ci -m "Adicionado ficheiro_a_adicionar" Junta a verso mais recente do Subversion com o seguinte. $ svn up Procure por linhas que comecem com "C filename" as quais indicam alteraes em conflito. Procura por cdigo no modificado em, ex., "filename.r6", "filename.r9", e "filename.mine". Procura por "<<<<<<<" e ">>>>>>>" em ficheiros por alteraes em conflito. Edite os ficheiros para corrigir os conflitos como necessrio. Adicione uma etiqueta de lanamento "Release-1" com o seguinte. $ svn ci -m "ltima submisso para Release-1" $ svn cp file:///srv/svn/project/module1/trunk file:///srv/svn/project/modul e1/tags/Release-1 Continuar a editar. Remova a etiqueta de lanamento "Release-1" com o seguinte. $ svn rm file:///srv/svn/project/module1/tags/Release-1 Verifique as alteraes ao Subversion com o seguinte. $ svn ci -m "ltima submisso real para Release-1" Re-adicione a etiqueta de lanamento "Release-1" a partir de do CABEALHO do trunk Subversion actualizado com o seguinte. $ svn cp file:///srv/svn/project/module1/trunk file:///srv/svn/project/module1/tag s/Release-1 Crie um branch com o caminho "module1/branches/ Release-initial-bugfixes" a partir da verso original apontada pelo caminho "module1/tags/Release-initial" e faa check out a ele para o directrio "~/path/to/old" com o seguinte. $ svn cp file:///srv/svn/project/module1/tags/Release-initial file:///srv/sv n/project/module1/branches/Release-initial-bugfixes $ cd ~/path/to $ svn co file:///srv/svn/project/module1/branches/Release-initial-bugfixes o ld $ cd old Dica Use "module1/trunk@{2005-12-20}" (formato de data ISO 8601 (http: //en.wikipedia.org/wiki/ISO_8601) ) em vez de "module1/tags/ Release-initial" para especificar uma data particular como o ponto do branch.

Trabalhe nesta rvore de fonte local que aponta para o branch "Release-initial-bugfixes" o qual baseado na verso original. Trabalhe neste branch por si at que algum se junte a este branch "Release-initial-bugfixes". Sincronize com ficheiros modificados por outros neste branch com o seguinte. $ svn up Edite os ficheiros para corrigir os conflitos como necessrio. Verifique as alteraes ao Subversion com o seguinte. $ svn ci -m "check feito para este branch" Actualize a rvore local com o CABEALHO do trunk com o seguinte. $ svn switch file:///srv/svn/project/module1/trunk Actualize a rvore local (contedo = CABEALHO do trunk) ao fundir a partir do branch "Release-initial-bugfixes" com o seguinte. $ svn merge file:///srv/svn/project/module1/branches/Release-initial-bugfixes Corrigir conflitos com o editor. Verifique as alteraes ao Subversion com o seguinte. $ svn ci -m "merged Release-initial-bugfixes" Criar arquivo com o seguinte. $ $ $ $ Voc pode substituir URLs como o "file:///" por qualquer outro formato de URL como o "http://" e "svn+ssh://". Dica Voc pode fazer checkout apenas a um sub directrio do "module1" ao fornecer o seu nome como "svn co file:///srv/svn/project/ module1/trunk/subdir module1/subdir", etc. Tabela 10.18. Opes notveis para os comandos do Subversion (use como primeiro argumento) para o svn(1)) +----------------------------------------------------------+ |opo |significado | |---------+------------------------------------------------| |--dry-run|simulao, nenhum efeito | |---------+------------------------------------------------| cd .. mv old old-module1-bugfixes tar -cvzf old-module1-bugfixes.tar.gz old-module1-bugfixes rm -rf old-module1-bugfixes

Dica

|-v |mostra mensagens detalhadas da actividade do svn| +----------------------------------------------------------+ 10.9. Git O Git pode fazer tudo para gesto de cdigo fonte tanto local como remoto. Isto significa que voc pode gravar as alteraes no cdigo fonte sem precisar de ligao de rede ao repositrio remoto. 10.9.1. Configurao do cliente Git Voc pode desejar definir vrias configuraes globais em "~ /.gitconfig" como o seu nome e endereo de mail usado pelo Git com o seguinte. $ git config --global user.name "Nome Apelido" $ git config --global user.email [email protected] Se voc est muito acostumado aos comandos do CVS ou Subversion, pode desejar definir nomes alternativos a vrios comandos com o seguinte. $ git config --global alias.ci "commit -a" $ git config --global alias.co checkout Voc pode verificar a sua configurao global com o seguinte. $ git config --global --list 10.9.2. Referncias do Git Veja o seguinte. * manual: git(1) (http://www.kernel.org/pub/software/scm/git/ docs/git.html) (/usr/share/doc/git-doc/git.html) * Manual do Utilizador do Git (http://www.kernel.org/pub/ software/scm/git/docs/user-manual.html) (/usr/share/doc/ git-doc/user-manual.html) * Um tutorial de introduo ao git (http://www.kernel.org/pub/ software/scm/git/docs/gittutorial.html) (/usr/share/doc/ git-doc/gittutorial.html) * Um tutorial de introduo ao git: parte dois (http:// www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html) (/usr/share/doc/git-doc/gittutorial-2.html) * Git do Dia-a-Dia com Cerca de 20 Comandos (http:// www.kernel.org/pub/software/scm/git/docs/everyday.html) (/usr /share/doc/git-doc/everyday.html) * git para utilizadores do CVS (http://www.kernel.org/pub/ software/scm/git/docs/gitcvs-migration.html) (/usr/share/doc/ git-doc/gitcvs-migration.html) o Isto tambm descreve como configurar um servidor tipo CVS e extrair dados antigos do CVS para o Git.

* Outros recursos do git disponveis na web (http://git-scm.com /documentation) o Git - Curso Relmpago de SVN (http://git-scm.com/course/ svn.html) o Magia do Git (http://www-cs-students.stanford.edu/~blynn/ gitmagic/) (/usr/share/doc/gitmagic/html/index.html) Os comandos git-gui(1) e gitk(1) tornam a utilizao do Git muito fcil. Ateno No use a string de etiqueta (tag) com espaos nela, mesmo que algumas ferramentas como o gitk(1) o permitam. Pode estrangular outros comandos do git. 10.9.3. Comandos do Git Mesmo que o seu repositrio de origem use um VCS diferente, pode ser boa ideia usar o git(1) para actividade local porque voc pode gerir a sua cpia local da rvore fonte sem a ligao de rede ao repositrio de origem. Aqui esto alguns pacotes e comandos usados com o git(1). Tabela 10.19. Lista de pacotes e comandos relacionados com o git +----------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |comando |descrio | |-------------------+-----------------+----------------------+------------------+--------------| |git-doc (http:// |I:29 (http:// |8406 (http:// | |documentao | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|N/D |oficial para o| |/sid/git-doc) |popcon.php? |/g/git-doc.html) | |Git | | |package=git-doc) | | | | |-------------------+-----------------+----------------------+------------------+--------------| | |I:3 (http:// | | |"Magia do | |gitmagic (http:// |qa.debian.org/ |740 (http:// | |Git", guia | |packages.debian.org|popcon.php? |packages.qa.debian.org|N/D |fcil de | |/sid/gitmagic) |package=gitmagic)|/g/gitmagic.html) | |compreender | | | | | |para o Git | |-------------------+-----------------+----------------------+------------------+--------------| | |V:132, I:421 | | |Git, o sistema| |git (http:// |(http:// |13144 (http:// |

|de controlo de| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|git(7) |reviso | |/sid/git) |popcon.php? |/g/git.html) | |distribudo, | | |package=git) | | |rpido e | | | | | |escalvel | |-------------------+-----------------+----------------------+------------------+--------------| | |V:11, I:56 (http:| | |explorador GUI| |gitk (http:// |//qa.debian.org/ |1049 (http:// | |de | |packages.debian.org|popcon.php? |packages.qa.debian.org|gitk(1) |repositrios | |/sid/gitk) |package=gitk) |/g/gitk.html) | |Git com | | | | | |histrico | |-------------------+-----------------+----------------------+------------------+--------------| |git-gui (http:// |V:3, I:35 (http:/|1670 (http:// | |GUI para Git | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|git-gui(1) |(Nenhum | |/sid/git-gui) |popcon.php? |/g/git-gui.html) | |histrico) | | |package=git-gui) | | | | |-------------------+-----------------+----------------------+------------------+--------------| |git-svn (http:// |V:5, I:46 (http:/|693 (http:// | |importa os | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|git-svnimport( 1) |dados de | |/sid/git-svn) |popcon.php? |/g/git-svn.html) | |Subversion | | |package=git-svn) | | |para Git | |-------------------+-----------------+----------------------+------------------+--------------| | | | | |disponibiliza | |git-svn (http:// |V:5, I:46 (http:/|693 (http:// | |operao | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|git-svn(1) |bi-direccional| |/sid/git-svn) |popcon.php? |/g/git-svn.html) | entre | | |package=git-svn) | | |Subversion e | | | | | |Git | |-------------------+-----------------+----------------------+------------------+--------------| |git-cvs (http:// |V:1, I:22 (http:/|783 (http:// | |importa os | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|git-cvsimport(

1)

|dados de CVS | |/sid/git-cvs) |popcon.php? |/g/git-cvs.html) | |para Git | | |package=git-cvs) | | | | |-------------------+-----------------+----------------------+------------------+--------------| | |V:1, I:22 (http:/| | |exporta uma | |git-cvs (http:// |/qa.debian.org/ |783 (http:// |git-cvsexportc ommit|submisso para| |packages.debian.org|popcon.php? |packages.qa.debian.org|(1) |um checkout do| |/sid/git-cvs) |package=git-cvs) |/g/git-cvs.html) | |CVS a partir | | | | | |do Git | |-------------------+-----------------+----------------------+------------------+--------------| |git-cvs (http:// |V:1, I:22 (http:/|783 (http:// | |emulador de | |packages.debian.org|/qa.debian.org/ |packages.qa.debian.org|git-cvsserver( 1) |servidor CVS | |/sid/git-cvs) |popcon.php? |/g/git-cvs.html) | |para o Git | | |package=git-cvs) | | | | |-------------------+-----------------+----------------------+------------------+--------------| | |V:1, I:20 (http:/| | |envia uma | |git-email (http:// |/qa.debian.org/ |534 (http:// | |coleco de | |packages.debian.org|popcon.php? |packages.qa.debian.org|git-send-email (1) |patches como | |/sid/git-email) |package= |/g/git-email.html) | |email a partir| | |git-email) | | |do Git | |-------------------+-----------------+----------------------+------------------+--------------| |stgit (http:// |V:0, I:7 (http://|1628 (http:// | |quilt no topo | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|stg(1) |do git | |/sid/stgit) |popcon.php? |/s/stgit.html) | |(Python) | | |package=stgit) | | | | |-------------------+-----------------+----------------------+------------------+--------------| |git-buildpackage |V:2, I:12 (http:/|2579 (http:// | |automatiza o | |(http:// |/qa.debian.org/ |packages.qa.debian.org| |empacotamento | |packages.debian.org|popcon.php? |/g/ |git-buildpacka ge(1)|Debian com o | |/sid/ |package= |git-buildpackage.html)| |Git | |git-buildpackage) |git-buildpackage)| |

| | |-------------------+-----------------+----------------------+------------------+--------------| |guilt (http:// |V:0, I:0 (http://|360 (http:// | |quilt no topo | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|guilt(7) |do git (SH/AWK| |/sid/guilt) |popcon.php? |/g/guilt.html) | |/SED/) | | |package=guilt) | | | | +----------------------------------------------------------------------------------------------+ Dica Com o git(1), voc trabalha num branch local com muitas submisses e usa algo como "git rebase -i master" para reorganizar o histrico de alteraes mais tarde. Isto permite-lhe fazer um histrico de alteraes limpo. Veja git-rebase(1) e git-cherry-pick(1). Dica Quando voc deseja recuar para um directrio de trabalho limpo sem perder o estado actual do directrio de trabalho, voc pode usar o "git stash". Veja git-stash(1). 10.9.4. Git para o repositrio Subversion Voc pode fazer check out a um repositrio Subversion em "svn+ssh://svn.example.org/project/module/trunk" para um repositrio Git local em "./dest" e submeter de volta para o repositrio Subversion. Ex.: $ git svn clone -s -rHEAD svn+ssh://svn.example.org/project dest $ cd dest ... faz as alteraes $ git commit -a ... continua a trabalhar localmente com o git $ git svn dcommit Dica O uso de "-rHEAD" permite-nos evitar clonar os contedos histricos inteiros do repositrio Subversion. 10.9.5. Git para gravar o histrico de configurao Voc pode gravar manualmente o histrico cronolgico da configurao usando ferramentas do Git (http://en.wikipedia.org/ wiki/Git_(software)) . Aqui est um exemplo simples para voc praticar a gravar os contedos de "/etc/apt/". $ $ $ $ $ cd /etc/apt/ sudo git init sudo chmod 700 .git sudo git add . sudo git commit -a

Cometer configurao com descrio Fazer modificaes nos ficheiros de configurao. $ cd /etc/apt/ $ sudo git commit -a Cometer a configurao com descrio e continuar com a sua vida. $ cd /etc/apt/ $ sudo gitk --all Voc tem o histrico de configurao completo consigo. Nota O sudo(8) necessrio para trabalhar com quaisquer permisses de ficheiros de dados de configurao. Para os dados de configurao do utilizador, voc pode descartar o sudo. Nota O comando "chmod 700 .git" no exemplo em cima necessrio para proteger os dados do arquivo contra acesso de leitura no autorizado. Dica Para uma soluo mais completa para gravao do histrico de configurao, por favor procure o pacote etckeeper: Seco9.2.10, Gravar alteraes em ficheiros de configurao. Captulo 11. Converso de dados So descritas ferramentas e dicas para converter formatos de dados no sistema Debian. As ferramentas baseadas em standards so muitos boas mas o suporte para formatos proprietrios de dados limitado. 11.1. Ferramentas de converso de dados em texto Os seguinte pacotes para a converso de dados de texto saltaram-me vista. Tabela 11.1. Lista de ferramentas de converso de dados em texto +------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra |descrio | | | | |chave | | |-------------------+-------------+----------------------+-----------+---------------| | |V:959, I:997 | | |conver ter | |libc6 (http:// |(http:// |9516 (http:// |conjunto e |codifi cao de |

|packages.debian.org|qa.debian.org|packages.qa.debian.org|caracteres |texto entre | |/sid/libc6) |/popcon.php? |/libc/libc6.html) |(charset) |locale s por | | |package= | | |iconv( 1) | | |libc6) | | |(funda mental) | |-------------------+-------------+----------------------+-----------+---------------| | | | | |conver sor de | | |V:10, I:61 | | |codifi cao de | | |(http:// | | |texto entre | |recode (http:// |qa.debian.org|780 (http:// | |locale s | |packages.debian.org|/popcon.php? |packages.qa.debian.org|charset+eol|(versti l, com | |/sid/recode) |package= |/r/recode.html) | |mais n omes | | |recode) | | |altern ativos | | | | | |(alias ) e | | | | | |funcio nalidades)| |-------------------+-------------+----------------------+-----------+---------------| | |V:3, I:58 | | |conver sor de | |konwert (http:// |(http:// |192 (http:// |conjunto e |codifi cao de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|caracteres |texto entre | |/sid/konwert) |/popcon.php? |/k/konwert.html) |(charset) |locale s | | |package= | | |(imagi nativo) | | |konwert) | | | | |-------------------+-------------+----------------------+-----------+---------------| | |V:2, I:16 | | |tradut or de | |nkf (http:// |(http:// |205 (http:// |conjunto e |conjunto de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|caracteres |caract eres para | |/sid/nkf) |/popcon.php? |/n/nkf.html) |(charset) |Japons | | |package=nkf) | | | | |-------------------+-------------+----------------------+-----------+---------------| | |V:0, I:0 | | | | |tcs (http:// |(http:// |544 (http:// |conjunto e |tradut or de |

|packages.debian.org|qa.debian.org|packages.qa.debian.org|caracteres |conjun to de | |/sid/tcs) |/popcon.php? |/t/tcs.html) |(charset) |caract eres | | |package=tcs) | | | | |-------------------+-------------+----------------------+-----------+---------------| | |V:0, I:1 | | | | |unaccent (http:// |(http:// |76 (http:// |conjunto e |substi tui letras| |packages.debian.org|qa.debian.org|packages.qa.debian.org|caracteres |acentu adas pelo | |/sid/unaccent) |/popcon.php? |/u/unaccent.html) |(charset) |seu eq uivalente | | |package= | | |no acen tuado | | |unaccent) | | | | |-------------------+-------------+----------------------+-----------+---------------| | |V:7, I:63 | | |conver sor de | |tofrodos (http:// |(http:// |67 (http:// | |format o de texto| |packages.debian.org|qa.debian.org|packages.qa.debian.org|eol |entre DOS e | |/sid/tofrodos) |/popcon.php? |/t/tofrodos.html) | |Unix: de dos(1) | | |package= | | |e para dos(1) | | |tofrodos) | | | | |-------------------+-------------+----------------------+-----------+---------------| | |V:0, I:2 | | |conver sor de | |macutils (http:// |(http:// |320 (http:// | |format o de texto| |packages.debian.org|qa.debian.org|packages.qa.debian.org|eol |entre Macintosh | |/sid/macutils) |/popcon.php? |/m/macutils.html) | |e Unix : de mac | | |package= | | |(1) e para mac | | |macutils) | | |(1) | +------------------------------------------------------------------------------------+ 11.1.1. Converter um ficheiro de texto com o iconv Dica iconv(1) disponibilizado como parte do pacote libc6 e est sempre disponvel em praticamente todos os sistemas para converter a codificao de caracteres.

Voc pode converter a codificao de um ficheiro de texto com o iconv(1) com o seguinte. $ iconv -f codificao1 -t codificao2 entrada.txt >sada.txt Os valores de codificao so sensveis a maisculas/minsculas e ignoram "-" e "_" para correspondncia. As codificaes suportadas podem ser verificadas pelo comando "iconv -l" Tabela 11.2. Lista de valores de codificao e a sua utilizao +---------------------------------------------------------------+ |valor de |utilizao | |codificao | | |-------------------+-------------------------------------------| |ASCII (http:// |American Standard Code for Information | |en.wikipedia.org/ |Interchange (http://en.wikipedia.org/wiki/ | |wiki/ASCII) . |ASCII) , cdigo de 7 bits sem caracteres | | |acentuados | |-------------------+-------------------------------------------| |UTF-8 (http:// |standard multilingue actual para todos os | |en.wikipedia.org/ |sistemas operativos modernos | |wiki/UTF-8) | | |-------------------+-------------------------------------------| |ISO-8859-1 (http://| | |en.wikipedia.org/ |antigo standard para linguagens da Europa | |wiki/ISO/ |ocidental, ASCII + caracteres acentuados | |IEC_8859-1) | | |-------------------+-------------------------------------------| |ISO-8859-2 (http://| | |en.wikipedia.org/ |antigo standard para linguagens da Europa | |wiki/ISO/ |oriental, ASCII + caracteres acentuados | |IEC_8859-2) | | |-------------------+-------------------------------------------| |ISO-8859-15 (http:/|antigo standard para linguagens da Europa | |/en.wikipedia.org/ |ocidental, o ISO-8859-1 (http:// | |wiki/ISO/ |en.wikipedia.org/wiki/ISO/IEC_8859-1) com o| |IEC_8859-15) |smbolo do euro | |-------------------+-------------------------------------------| | |pgina de cdigo 850, caracteres DOS da | |CP850 (http:// |Microsoft com grficos para linguagens da | |en.wikipedia.org/ |Europa ocidental, variante ISO-8859-1 | |wiki/Code_page_850)|(http://en.wikipedia.org/wiki/ISO/ | | |IEC_8859-1) | |-------------------+-------------------------------------------| |CP932 (http:// |pgina de cdigo 932, variante Shift-JIS | |en.wikipedia.org/ |(http://en.wikipedia.org/wiki/Shift_JIS) do| |wiki/Code_page_932)|estilo Microsoft Windows para Japons | |-------------------+-------------------------------------------| | |pgina de cdigo 936, variantes GB2312 | |CP936 (http:// |(http://en.wikipedia.org/wiki/GB2312) , GBK| |en.wikipedia.org/ |(http://en.wikipedia.org/wiki/GBK) ou | |wiki/Code_page_936)|GB18030 (http://en.wikipedia.org/wiki/ | | |GB18030) do estilo Microsoft Windows para | | |Chins Simplificado | |-------------------+-------------------------------------------| | |pgina de cdigo 949, variante EUC-KR | |CP949 (http:// |(http://en.wikipedia.org/wiki/ | |en.wikipedia.org/ |Extended_Unix_Code#EUC-KR) ou or Unified | |wiki/Code_page_949)|Hangul Code de estilo Microsoft Windows |

| |para Coreano | |-------------------+-------------------------------------------| |CP950 (http:// |pgina de cdigo 950, variante Big5 (http:/| |en.wikipedia.org/ |/en.wikipedia.org/wiki/Big5) de estilo | |wiki/Code_page_950)|Microsoft Windows para Chins Tradicional | |-------------------+-------------------------------------------| |CP1251 (http:// |pgina de cdigo 1251, codificao estilo | |en.wikipedia.org/ |Microsoft Windows para o alfabeto Cirlico | |wiki/Windows-1251) | | |-------------------+-------------------------------------------| |CP1252 (http:// |pgina de cdigo 1252, variante ISO-8859-15| |en.wikipedia.org/ |(http://en.wikipedia.org/wiki/ISO/ | |wiki/Windows-1252) |IEC_8859-15) de estilo Microsoft Windows | | |para linguagens de Europeu ocidental. | |-------------------+-------------------------------------------| |KOI8-R (http:// |antigo standard Russo de UNIX para o | |en.wikipedia.org/ |alfabeto Cirlico | |wiki/KOI8-R) | | |-------------------+-------------------------------------------| |ISO-2022-JP (http:/|codificao standard para email Japons que| |/en.wikipedia.org/ |usar apenas cdigos de 7 bits | |wiki/ISO/IEC_2022) | | |-------------------+-------------------------------------------| |eucJP (http:// |antigo standard Unix de Japons de cdigo | |en.wikipedia.org/ |de 8 bits e completamente diferente do | |wiki/ |Shift-JIS (http://en.wikipedia.org/wiki/ | |Extended_Unix_Code)|Shift_JIS) | |-------------------+-------------------------------------------| |Shift-JIS (http:// |JIS X 0208 Appendix 1 standard para Japons| |en.wikipedia.org/ |(veja CP932 (http://en.wikipedia.org/wiki/ | |wiki/Shift_JIS) |Code_page_932) ) | +---------------------------------------------------------------+ Nota Algumas codificaes so apenas suportadas para converso de dados e no so usados como valores do locale (Seco8.3.1, Bases de codificao). Para os conjuntos de caracteres que cabem num byte nico como os conjuntos de caracteres ASCII (http://en.wikipedia.org/wiki/ ASCII) e ISO-8859 (http://en.wikipedia.org/wiki/ISO/IEC_8859) , a codificao de caracteres (http://en.wikipedia.org/wiki/ Character_encoding) significa quase o mesmo que o conjunto de caracteres. Para conjuntos de caracteres com muitos caracteres como o JIS X 0213 (http://en.wikipedia.org/wiki/JIS_X_0213) para Japons ou Universal Character Set (UCS, Unicode, ISO-10646-1) (http:// en.wikipedia.org/wiki/Universal_Character_Set) para praticamente todas as linguagens, existem muitos esquemas de codificao para os colocar na sequncia dos dados do byte. * EUC (http://en.wikipedia.org/wiki/Extended_Unix_Code) e ISO/ IEC 2022 (tambm conhecido como JIS X 0202) (http:// en.wikipedia.org/wiki/ISO/IEC_2022) para Japons * UTF-8 (http://en.wikipedia.org/wiki/UTF-8) , UTF-16/UCS-2 (http://en.wikipedia.org/wiki/UTF-16/UCS-2) e UTF-32/UCS-4

(http://en.wikipedia.org/wiki/UTF-32/UCS-4) para Unicode Para estes, existem diferenciaes claras entre o conjunto de caracteres e a codificao de caracteres. A pgina de cdigo (http://en.wikipedia.org/wiki/Code_page) usada para como o sinnimo para as tabelas de codificao de caracteres para alguns especficos de marcas. Nota Por favor note que a maioria dos sistemas de codificao partilham o mesmo cdigo com o ASCII para os caracteres de 7 bits. Mas h algumas excepes Se voc est a converter programas C antigos Japoneses e dados de URLs a partir do casualmente chamado formato de codificao shift-JIS para o formato UTF-8, use "CP932" como o nome de codificao em vez de "shift-JIS" para obter os resultados esperados: 0x5C "\" e 0x7E "~" . Caso contrrio, estes so convertidos para caracteres errados. Dica O recode(1) tambm pode ser usado e oferece mais do que as funcionalidades combinadas do iconv(1), fromdos(1), todos(1), frommac(1), e tomac(1). Para mais, veja "info recode". 11.1.2. Verifica ficheiro se UTF-8 com o iconv Voc pode verificar se um ficheiro de texto est codificado em UTF-8 com o iconv(1) com o seguinte. $ iconv -f utf8 -t utf8 input.txt >/dev/null || echo "non-UTF-8 found" Dica Use a opo "--verbose" no exemplo em cima para encontrar o primeiro caractere no-UTF-8. 11.1.3. Converter os nomes dos ficheiros com o iconv Aqui est um script de exemplo para converter a codificao dos nomes de ficheiros daqueles criados sob sistemas operativos antigos para os modernos de UTF-8 num nico directrio. #!/bin/sh ENCDN=iso-8859-1 for x in *; do mv "$x" "$(echo "$x" | iconv -f $ENCDN -t utf-8)" done A varivel "$ENCDN" deve ser definida pelo valor de codificao em Tabela11.2, Lista de valores de codificao e a sua utilizao. Para um caso mais complicado, por favor monte um sistema de ficheiros (ex. uma partio de uma unidade de disco) que contenha tais nomes de ficheiros com a codificao apropriada como opo do mount(8) (veja Seco8.3.6, Codificao de nomes de ficheiros) e copie o seu contedo inteiro para outro sistema de

ficheiros montado como UTF-8 com o comando "cp -a". 11.1.4. converso EOL O formato de ficheiro de texto, especificamente o cdigo de fim de linha (EOL), dependente da plataforma. Tabela 11.3. Lista de estilos EOL para diferentes plataformas +----------------------------------------------------------+ |plataforma |cdigo EOL|controle|decimal|hexadecimal| |------------------+----------+--------+-------+-----------| |Debian (unix) |LF |^J |10 |0A | |------------------+----------+--------+-------+-----------| |MSDOS e Windows |CR-LF |^M^J |13 10 |0D 0A | |------------------+----------+--------+-------+-----------| |Macintosh da Apple|CR |^M |13 |0D | +----------------------------------------------------------+ Os programas de converso de formato EOL, fromdos(1), todos(1), frommac(1), e tomac(1), so muito teis. O recode(1) tambm til. Nota Alguns dados no sistema Debian, como os dados da pgina wiki para o pacote python-moinmoin, usam o estilo MSDOS (CR-LF) como o cdigo de EOL. Ento a regra em cima apenas uma regra geral. Nota A maioria dos editores (ex. vim, emacs, gedit, ) podem lidar com ficheiros em estilo EOL de MSDOS transparentemente. Dica O uso de "sed -e '/\r$/!s/$/\r/'" em vez de todos(1) melhor quando pretende unificar o estilo de EOL para o estilo do MSDOS a partir da mistura de estilos de MSDOS e Unix. (ex. aps fundir 2 ficheiros de estilo MSDOS com o diff3(1).) Isto porque o todos adiciona CR a todas as linhas. 11.1.5. Converso de TAB Existem alguns programas populares especializados para converter os cdigos de tab. Tabela 11.4. Lista de comandos de converso de TAB dos pacotes bsdmainutils e coreutils +------------------------------------------------------+ |funo |bsdmainutils|coreutils| |-------------------------------+------------+---------| |expande tab para espaos |"col -x" |expand | |-------------------------------+------------+---------| |contrai tab a partir de espaos|"col -h" |unexpand | +------------------------------------------------------+

indent(1) do pacote indent reformata completamente os espaos em branco no programa C. Os programas editores como o vim e o emacs tambm podem ser usados para converso de TAB. Por exemplo com o vim, voc pode expandir a TAB com a sequncia de comandos ":set expandtab" e ":%retab". Voc pode reverter isto com a sequncia de comandos ":set noexpandtab" e ":%retab!". 11.1.6. Editores com auto-converso Os editores modernos inteligentes como o programa vim so bastante inteligentes e lidam bem com quaisquer sistemas de codificao e quaisquer formatos de ficheiro. Voc deve usar estes editores sob o locale UTF-8 numa consola com capacidades de UTF-8 para melhor compatibilidade. Um antigo ficheiro de texto Unix em Europeu ocidental, "u-file.txt", armazenado com a codificao latin1 (iso-8859-1) pode ser editado com o vim com o seguinte. $ vim u-file.txt Isto possvel porque o mecanismo de auto deteco da codificao do ficheiro no vim assume primeiro a codificao UTF-8 e, se falhar, assume que latin1. Um antigo ficheiro de texto Unix em Polaco, "pu-file.txt", armazenado com a codificao latin2 (iso-8859-2) pode ser editado com o vim com o seguinte. $ vim '+e ++enc=latin2 pu-file.txt' Um antigo ficheiro de texto unix em Japons, "ju-file.txt", armazenado com a codificao eucJP pode ser editado com o vim com o seguinte. $ vim '+e ++enc=eucJP ju-file.txt' Um antigo ficheiro de texto do MS Windows em Japons, "jw-file.txt", armazenado na chamada codificao shift-JIS (mais precisamente: CP932) pode ser editado com o vim com o seguinte. $ vim '+e ++enc=CP932 ++ff=dos jw-file.txt' Quando um ficheiro aberto com as opes "++enc" e "++ff", o ":w" na linha de comandos do Vim guarda-o no formato original e sobrescreve o ficheiro original. Voc tambm pode especificar o formato de gravao e o nome do ficheiro na linha de comandos do Vim, ex., ":w ++enc=utf8 new.txt". Por favor consulte o mbyte.txt "suporte a texto multi-byte" na ajuda on-line do vim e Tabela11.2, Lista de valores de codificao e a sua utilizao para os valores de locale usados com "++enc". A famlia de programas emacs pode executar as funes equivalentes. 11.1.7. Extraco de texto simples

O seguinte l uma pgina web para um ficheiro de texto. Isto muito til quando se copia as configuraes da Web ou se aplica ferramentas de texto bsicas do Unix como o grep(1) numa pgina web. $ w3m -dump http://www.remote-site.com/help-info.html >ficheiro_de_texto De modo semelhante, voc pode extrair dados de texto simples a partir de outros formatos usando o seguinte. Tabela 11.5. Lista de ferramentas para extraco de dados de texto simples +-------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave |f uno | |-------------------+-------------+----------------------+----------------+-----------| | |V:283, I:869 | | |C onversor de| |w3m (http:// |(http:// |2082 (http:// | |H TML para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |tex to com o | |/sid/w3m) |/popcon.php? |/w/w3m.html) | |c omando "w3m| | |package=w3m) | | |dump" | |-------------------+-------------+----------------------+----------------+-----------| | |V:150, I:333 | | |C onversor de| |html2text (http:// |(http:// |248 (http:// | |H TML para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |tex to | |/sid/html2text) |/popcon.php? |/h/html2text.html) | |a vanado | | |package= | | |( ISO 8859-1)| | |html2text) | | | | |-------------------+-------------+----------------------+----------------+-----------| | |I:173 (http:/| | |C onversor de| |lynx (http:// |/ |244 (http:// | |H TML para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |tex to com o | |/sid/lynx) |/popcon.php? |/l/lynx.html) | |c omando | | |package=lynx)| | |" lynx -dump"| |-------------------+-------------+----------------------+----------------+-----------| | |V:18, I:48 | | |C onversor de|

|elinks (http:// |(http:// |1601 (http:// | |H TML para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |tex to com o | |/sid/elinks) |/popcon.php? |/e/elinks.html) | |c omando | | |package= | | |" elinks | | |elinks) | | |dump" | |-------------------+-------------+----------------------+----------------+-----------| | |V:28, I:75 | | |C onversor de| |links (http:// |(http:// |1298 (http:// | |H TML para | |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |tex to com o | |/sid/links) |/popcon.php? |/l/links.html) | |c omando | | |package= | | |" links | | |links) | | |dump" | |-------------------+-------------+----------------------+----------------+-----------| | |V:5, I:29 | | |C onversor de| |links2 (http:// |(http:// |3150 (http:// | |HTML pa ra | |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |tex to com o | |/sid/links2) |/popcon.php? |/l/links2.html) | |c omando | | |package= | | |" links2 | | |links2) | | |dump" | |-------------------+-------------+----------------------+----------------+-----------| | |V:10, I:19 | | |c onverte | |antiword (http:// |(http:// |560 (http:// | |f icheiros do| |packages.debian.org|qa.debian.org|packages.qa.debian.org|MSWordtexto,ps |MSW ord para | |/sid/antiword) |/popcon.php? |/a/antiword.html) | |t exto | | |package= | | |s imples ou | | |antiword) | | |p s | |-------------------+-------------+----------------------+----------------+-----------| | |V:11, I:19 | | |c onverte | |catdoc (http:// |(http:// |2445 (http:// | |f icheiros do| |packages.debian.org|qa.debian.org|packages.qa.debian.org|MSWordtexto,TeX|MSW ord para |

|/sid/catdoc) |/popcon.php? |/c/catdoc.html) | |t | | |package= | | |s imples ou | | |catdoc) | | |T eX | |-------------------+-------------+----------------------+----------------+-----------| | |V:6, I:10 | | | | |pstotext (http:// |(http:// |123 (http:// | |e xtrai texto| |packages.debian.org|qa.debian.org|packages.qa.debian.org|ps/pdftexto |de ficheiros| |/sid/pstotext) |/popcon.php? |/p/pstotext.html) | |P ostScript e| | |package= | | |P DF | | |pstotext) | | | | |-------------------+-------------+----------------------+----------------+-----------| | |V:0, I:1 | | |r emove as | |unhtml (http:// |(http:// |66 (http:// | |e tiquetas de| |packages.debian.org|qa.debian.org|packages.qa.debian.org|htmltexto |mar cas de um| |/sid/unhtml) |/popcon.php? |/u/unhtml.html) | |f icheiro | | |package= | | |H TML | | |unhtml) | | | | |-------------------+-------------+----------------------+----------------+-----------| | |V:6, I:11 | | | | |odt2txt (http:// |(http:// |73 (http:// | |c onversor de| |packages.debian.org|qa.debian.org|packages.qa.debian.org|odttexto |tex to do | |/sid/odt2txt) |/popcon.php? |/o/odt2txt.html) | |O penDocument| | |package= | | |p ara texto | | |odt2txt) | | | | +-------------------------------------------------------------------------------------+ exto 11.1.8. Destacar e formatar dados de texto simples Voc pode destacar e formatar dados de texto simples com o seguinte. Tabela 11.6. Lista de ferramentas para destacar dados em texto simples

+-----------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave |descrio | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |MACRO do Vim | | |V:33, I:446 | | |para converter| |vim-runtime (http:/|(http:// |22368 (http:// | |cdigo fonte | |/ |qa.debian.org/ |packages.qa.debian.org|destaque |em HTML com | |packages.debian.org|popcon.php? |/v/vim-runtime.html) | |":source | |/sid/vim-runtime) |package= | | |$VIMRUNTIME/ | | |vim-runtime) | | |syntax/ | | | | | |html.vim" | |-------------------+-----------------+----------------------+-------------+--------------| | |V:0, I:2 (http://| | |conversor de | |cxref (http:// |qa.debian.org/ |1116 (http:// | |programa C | |packages.debian.org|popcon.php? |packages.qa.debian.org|chtml |p ara latex e | |/sid/cxref) |package=cxref) |/c/cxref.html) | |HTML | | | | | |(linguagem C) | |-------------------+-----------------+----------------------+-------------+--------------| |src2tex (http:// |V:0, I:1 (http://|1968 (http:// | |converte | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|destaque |muitos cdigos| |/sid/src2tex) |popcon.php? |/s/src2tex.html) | |fonte para TeX| | |package=src2tex) | | |(linguagem C) | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |converte | | | | | |muitos cdigos| | | | | |fonte para | | | | | |HTML, XHTML, | |source-highlight |V:1, I:13 (http:/|1939 (http:// | |LaTeX, | |(http:// |/qa.debian.org/ |packages.qa.debian.org| |Texinfo, | |packages.debian.org|popcon.php? |/s/ |destaque |sequncias de |

|/sid/ |package= |source-highlight.html)| |escape do | |source-highlight) |source-highlight)| | |cores ANSI e | | | | | |ficheiros do | | | | | |DocBook com | | | | | |destaques | | | | | |(C++) | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |converte | | | | | |muitos cdigos| | |V:2, I:20 (http:/| | |fonte para | |highlight (http:// |/qa.debian.org/ |742 (http:// | |HTML, XHTML, | |packages.debian.org|popcon.php? |packages.qa.debian.org|destaque |RTF, LaTeX, | |/sid/highlight) |package= |/h/highlight.html) | |TeX ou | | |highlight) | | |ficheiros | | | | | |XSL-FO com | | | | | |destaques | | | | | |(C++) | |-------------------+-----------------+----------------------+-------------+--------------| |grc (http:// |V:0, I:1 (http://|232 (http:// | |colorizador | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textocor |g enrico para | |/sid/grc) |popcon.php? |/g/grc.html) | |tudo (Python) | | |package=grc) | | | | |-------------------+-----------------+----------------------+-------------+--------------| |txt2html (http:// |V:0, I:6 (http://|296 (http:// | |conversor de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textohtml |t exto para | |/sid/txt2html) |popcon.php? |/t/txt2html.html) | |HTML (Perl) | | |package=txt2html)| | | | |-------------------+-----------------+----------------------+-------------+--------------| | |V:0, I:5 (http://| | |formatador de | |markdown (http:// |qa.debian.org/ |96 (http:// | |documentos de |

|packages.debian.org|popcon.php? |packages.qa.debian.org|textohtml |t exto markdown| |/sid/markdown) |package=markdown)|/m/markdown.html) | |para (X)HTML | | | | | |(Perl) | |-------------------+-----------------+----------------------+-------------+--------------| | |V:1, I:15 (http:/| | |formatador de | |asciidoc (http:// |/qa.debian.org/ |3165 (http:// | |documentos de | |packages.debian.org|popcon.php? |packages.qa.debian.org|textoqualquer|t exto AsciiDoc| |/sid/asciidoc) |package=asciidoc)|/a/asciidoc.html) | |para XML/HTML | | | | | |(Pyth on) | |-------------------+-----------------+----------------------+-------------+--------------| |pandoc (http:// |V:1, I:7 (http://|25963 (http:// | |conversor | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|g eral de | |/sid/pandoc) |popcon.php? |/p/pandoc.html) | |markup | | |package=pandoc) | | |(Haskell) | |-------------------+-----------------+----------------------+-------------+--------------| |python-docutils |V:2, I:43 (http:/| | |Formatador de | |(http:// |/qa.debian.org/ |1548 (http:// | |documento de | |packages.debian.org|popcon.php? |packages.qa.debian.org|textoqualquer|T exto | |/sid/ |package= |/p/ | |Re-Estruturado| |python-docutils) |python-docutils) |python-docutils.html) | |para XML | | | | | |(Python) | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |converso de | | | | | |documentos de | | | | | |texto para | |txt2tags (http:// |V:0, I:2 (http://|1152 (http:// | |HTML, SGML, | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|L aTeX, man | |/sid/txt2tags) |popcon.php? |/t/txt2tags.html) | |page, | | |package=txt2tags)| | |MoinMoin, | | | | | |Magic Point e |

| | | | |PageMaker | | | | | |(Python) | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |documento | |udo (http:// |V:0, I:0 (http://|556 (http:// | |universal - | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|u tilitrio de | |/sid/udo) |popcon.php? |/u/udo.html) | |processamento | | |package=udo) | | |de texto | | | | | |(linguagem C) | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |conversor de | |stx2any (http:// |V:0, I:0 (http://|484 (http:// | |documentos de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|t exto simples | |/sid/stx2any) |popcon.php? |/s/stx2any.html) | |estruturado | | |package=stx2any) | | |para outros | | | | | |formatos (m4) | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |conversor de | |rest2web (http:// |V:0, I:0 (http://|576 (http:// | |documentos de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textohtml |T exto | |/sid/rest2web) |popcon.php? |/r/rest2web.html) | |Re-Estruturado| | |package=rest2web)| | |para html | | | | | |(Python) | |-------------------+-----------------+----------------------+-------------+--------------| | |V:0, I:0 (http://| | |sistema de | |aft (http:// |qa.debian.org/ |259 (http:// | |preparao de | |packages.debian.org|popcon.php? |packages.qa.debian.org|textoqualquer|d ocumentos de | |/sid/aft) |package=aft) |/a/aft.html) | |"formato | | | | | |livre" (Perl) | |-------------------+-----------------+----------------------+-------------+--------------|

| | | | |linguagem de | |yodl (http:// |V:0, I:0 (http://|410 (http:// | |pr-documento | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|e ferramentas | |/sid/yodl) |popcon.php? |/y/yodl.html) | |para a | | |package=yodl) | | |processar | | | | | |(linguagem C) | |-------------------+-----------------+----------------------+-------------+--------------| |sdf (http:// |V:0, I:0 (http://|1414 (http:// | |analisador de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|d ocumentos | |/sid/sdf) |popcon.php? |/s/sdf.html) | |simples (Perl)| | |package=sdf) | | | | |-------------------+-----------------+----------------------+-------------+--------------| | | | | |infraestrutura| |sisu (http:// |V:0, I:0 (http://|9181 (http:// | |de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textoqualquer|e struturao | |/sid/sisu) |popcon.php? |/s/sisu.html) | |de documentos,| | |package=sisu) | | |publicao e | | | | | |busca (Ruby) | +-----------------------------------------------------------------------------------------+ 11.2. Dados XML A The Extensible Markup Language (XML) (http://en.wikipedia.org/ wiki/XML) uma linguagem de marcao para documentos que contm informao estruturada. Veja informao de introduo em XML.COM (http://xml.com/) . * "O que XML?" (http://www.xml.com/pub/a/98/10/guide0.html) * "O que XSLT?" (http://xml.com/pub/a/2000/08/holman/ index.html) * "O que XSL-FO?" (http://xml.com/pub/a/2002/03/20/ xsl-fo.html) * "O que XLink?" (http://xml.com/pub/a/2000/09/xlink/ index.html) 11.2.1. Dicas bsicas para XML

O texto em XML parece-se com HTML (http://en.wikipedia.org/wiki/ HTML) . Permite-nos gerir mltiplos formatos de sada de um documento. Um sistema XML fcil o pacote docbook-xsl, o qual usado aqui. Cada ficheiro XML comea com a declarao XML standard como o seguinte. <?xml version="1.0" encoding="UTF-8"?> A sintaxe bsica para um elemento XML marcado como se segue. <nome atributo="valor">contedo</nome> O elemento XML com contedo vazio marcado no seguinte formato curto. <nome atributo="valor"/> O "atributo="valor"" nos exemplos em cima opcional. A seco de comentrios em XML est marcada como se segue. <!-- comment --> Em vez de adicionar marcaes, o XML requer converso menor ao contedo usando entidades predefinidas para os seguintes caracteres. Tabela 11.7. Lista de entidades predefinidas para XML +--------------------------------------------------+ |entidade predefinida|caractere a ser convertido de| |--------------------+-----------------------------| |&quot; |" : cotao | |--------------------+-----------------------------| |&apos; |' : apstrofo | |--------------------+-----------------------------| |&lt; |< : menor-que | |--------------------+-----------------------------| |&gt; |> : maior-que | |--------------------+-----------------------------| |&amp; |& : ampersand | +--------------------------------------------------+ Cuidado "<" ou "&" no podem ser usados em atributos ou elementos. Nota Quando so usadas entidades definidas pelo utilizador de estilos SGML, ex. "&some-tag:", a primeira definio ganha sobre as outras. A definio de entidade expressa em "<!ENTITY alguma-etiqueta "valor da entidade">". Nota

Desde que as marcaes de XML sejam feitas de modo consistente com um certo conjunto de nomes de etiquetas (em vez de alguns dados como contedo ou valor de atributo), a converso para outro XML uma tarefa trivial usando Extensible Stylesheet Language Transformations (XSLT) (http://en.wikipedia.org/wiki/ XSL_Transformations) . 11.2.2. Processamento de XML Existem muitas ferramentas disponveis para processar ficheiros XML como o Extensible Stylesheet Language (XSL) (http:// en.wikipedia.org/wiki/Extensible_Stylesheet_Language) . Basicamente, aps voc criar um ficheiro XML bem formado, pode convert-lo para qualquer formato usando o Extensible Stylesheet Language Transformations (XSLT) (http://en.wikipedia.org/wiki/ XSL_Transformations) . A Extensible Stylesheet Language for Formatting Object (XSL-FO) (http://en.wikipedia.org/wiki/XSL_Formatting_Objects) suposto ser a soluo para a formatao. O pacote fop novo no arquivo main de Debian devido sua dependncia da linguagem de programao Java () . Por isso o cdigo LaTeX normalmente gerado a partir de XML utilizando XSLT e o sistema LaTeX utilizado para criar ficheiros imprimveis tais como DVI, PostScript e PDF. Tabela 11.8. Lista de ferramentas XML +---------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra|descrio | | | | |chave | | |-------------------+-------------+----------------------+-------+----------------| | |I:493 (http:/| | | | |docbook-xml (http:/|/ |2024 (http:// | |definio de t ipo| |/ |qa.debian.org|packages.qa.debian.org|xml |de documen to XML | |packages.debian.org|/popcon.php? |/d/docbook-xml.html) | |(DTD) para | |/sid/docbook-xml) |package= | | |DocBook | | |docbook-xml) | | | | |-------------------+-------------+----------------------+-------+----------------| | |V:33, I:381 | | |processado r de | |xsltproc (http:// |(http:// |131 (http:// | |linha de c omandos| |packages.debian.org|qa.debian.org|packages.qa.debian.org|xslt |XSLT (XML X ML, | |/sid/xsltproc) |/popcon.php? |/x/xsltproc.html) | |HTML, text o | | |package= | | |simples, e

tc.) |

|xsltproc) | | | | |-------------------+-------------+----------------------+-------+----------------| | |I:151 (http:/| | |folhas de estilo | |docbook-xsl (http:/|/ |11589 (http:// | |XSL para | |/ |qa.debian.org|packages.qa.debian.org|xml/ |processar XML do | |packages.debian.org|/popcon.php? |/d/docbook-xsl.html) |xslt |DocBook pa ra | |/sid/docbook-xsl) |package= | | |vrios forma tos | | |docbook-xsl) | | |de sada com XSLT| |-------------------+-------------+----------------------+-------+----------------| | |V:2, I:26 | | | | |xmlto (http:// |(http:// |134 (http:// | |conversor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|xml/ |XML-para-q ualquer| |/sid/xmlto) |/popcon.php? |/x/xmlto.html) |xslt |com XSLT | | |package= | | | | | |xmlto) | | | | |-------------------+-------------+----------------------+-------+----------------| | |V:0, I:1 | | | | |dbtoepub (http:// |(http:// |71 (http:// | |conversor de XML | |packages.debian.org|qa.debian.org|packages.qa.debian.org|xml/ |DocBook pa ra | |/sid/dbtoepub) |/popcon.php? |/d/dbtoepub.html) |xslt |.epub | | |package= | | | | | |dbtoepub) | | | | |-------------------+-------------+----------------------+-------+----------------| | |V:2, I:26 | | |converte | |dblatex (http:// |(http:// |6604 (http:// | |ficheiros do | |packages.debian.org|qa.debian.org|packages.qa.debian.org|xml/ |Docbook pa ra | |/sid/dblatex) |/popcon.php? |/d/dblatex.html) |xslt |documentos DVI, | | |package= | | |PostScript , PDF | | |dblatex) | | |com o XSLT | |-------------------+-------------+----------------------+-------+----------

-------| | |V:7, I:50 | | | | |fop (http:// |(http:// |90 (http:// |xml/ |converter | |packages.debian.org|qa.debian.org|packages.qa.debian.org|xsl-fo |ficheiros Docbook| |/sid/fop) |/popcon.php? |/f/fop.html) | |XML para P DF | | |package=fop) | | | | +---------------------------------------------------------------------------------+ Como o XML um sub-conjunto da Standard Generalized Markup Language (SGML) (http://en.wikipedia.org/wiki/SGML) , pode ser processado pelas ferramentas extensivas disponveis para SGML, como o Document Style Semantics and Specification Language (DSSSL) (http://en.wikipedia.org/wiki/ Document_Style_Semantics_and_Specification_Language) . Tabela 11.9. Lista de ferramentas DSSL +----------------------------------------------------------------------------+ |pacote | | |-------------------+--------------+----------------------+-------+----------| | | | 6 | |openjade (http:// |qa.debian.org/|1043 (http:// or| |packages.debian.org|popcon.php? | |/sid/openjade) | | | | | |-------------------+--------------+----------------------+-------+----------| | | |openjade1.3 (http:/|(http:// 6 | |/ or| |packages.debian.org|popcon.php? | |/sid/openjade1.3) |package= | | | | | | | |1.3.x) |openjade1.3) | | |(srie |/o/openjade1.3.html) | |standard |packages.qa.debian.org|dsssl |DSSSL |qa.debian.org/|2179 (http:// | |processad | | |10179:199 |V:0, I:1 | | |ISO/IEC | | | |recente) |openjade) | | |(mais |package= |/o/openjade.html) | |standard |packages.qa.debian.org|dsssl |DSSSL | |processad |(http:// | | |10179:199 |V:2, I:25 | | |ISO/IEC |popcon | |tamanho | |palavra|descrio | |chave |

| |-------------------+--------------+----------------------+-------+----------| | or| |jade (http:// | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|dsssl |original de| |/sid/jade) rk| | | | | |-------------------+--------------+----------------------+-------+----------| | | | | | | |estilo | | |V:4, I:38 | | |DSSSL para | |docbook-dsssl |(http:// |2578 (http:// | |processar | |(http:// |qa.debian.org/|packages.qa.debian.org|xml/ |XML do | |packages.debian.org|popcon.php? |/d/docbook-dsssl.html)|dsssl |DocBook | |/sid/docbook-dsssl)|package= | | |para vrios | | |docbook-dsssl)| | |formatos de| | | | | |sada com | | | | | |DSSSL | |-------------------+--------------+----------------------+-------+----------| | | | | |utilitrios | | | | | |para | | | | | |ficheiros | | | | | |do DocBoo k | | |V:1, I:19 | | |incluindo a| |docbook-utils |(http:// |220 (http:// | |converso | |(http:// |qa.debian.org/|packages.qa.debian.org|xml/ |para outr os| |packages.debian.org|popcon.php? |/d/docbook-utils.html)|dsssl |formatos | |/sid/docbook-utils)|package= | | |(HTML, RT F,| | |docbook-utils)| | |PS, man, | | | | | |PDF) com | | | | |folhas de | | | |1.2.x) |package=jade) | | |(srie |popcon.php? |/j/jade.html) | |James Cla |(http:// |794 (http:// | |DSSSL |V:2, I:23 | | |processad

| | | | | | --| | | |sgml2x (http:// | sa| |/sid/sgml2x) | | | | | --+ Dica

| | |

| | |

| | |

|comandos |docbook2* |com DSSSL

|-------------------+--------------+----------------------+-------+--------|V:0, I:0 |(http:// | |137 (http:// | | |conversor |de SGML e

|packages.debian.org|qa.debian.org/|packages.qa.debian.org|SGML/ |XML que u |popcon.php? |package= |sgml2x) |/s/sgml2x.html) | | |dsssl |folhas de | | |estilo |DSSSL

+---------------------------------------------------------------------------

O yelp do GNOME (http://en.wikipedia.org/wiki/GNOME) por vezes jeitoso para ler ficheiros XML do DocBook (http:// en.wikipedia.org/wiki/DocBook) directamente pois ele renderiza directamente no X. 11.2.3. A extraco de dados de XML Voc pode extrair dados de HTML ou XML a partir de outros formatos usando os seguintes. Tabela 11.10. Lista de ferramentas de extraco de dados de XML +-------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave |descrio | |-------------------+-------------+----------------------+-------------------+--------------| | |V:12, I:20 | | |conversor de | |wv (http:// |(http:// |351 (http:// | |documentos | |packages.debian.org|qa.debian.org|packages.qa.debian.org|MSWordqualquer |Microsoft Word| |/sid/wv) |/popcon.php? |/w/wv.html) | |para HTML, | | |package=wv) | | |LaTeX, etc. | |-------------------+-------------+----------------------+-------------------+--------------| | |V:2, I:23 | | | | |texi2html (http:// |(http:// |2076 (http:// | |conversor de |

|packages.debian.org|qa.debian.org|packages.qa.debian.org|texihtml |Texinfo para | |/sid/texi2html) |/popcon.php? |/t/texi2html.html) | |HTML | | |package= | | | | | |texi2html) | | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:1, I:7 | | |conversor de | |man2html (http:// |(http:// |180 (http:// | |manual | |packages.debian.org|qa.debian.org|packages.qa.debian.org|manpagehtml |(manpage) para| |/sid/man2html) |/popcon.php? |/m/man2html.html) | |HTML (suporte | | |package= | | |a CGI) | | |man2html) | | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:3, I:34 | | | | |tex4ht (http:// |(http:// |515 (http:// | |conversor | |packages.debian.org|qa.debian.org|packages.qa.debian.org|texhtml |entre (La)TeX | |/sid/tex4ht) |/popcon.php? |/t/tex4ht.html) | |e HTML | | |package= | | | | | |tex4ht) | | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:6, I:10 | | | | |xlhtml (http:// |(http:// |184 (http:// | |conversor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|MSExcelhtml |.xls do | |/sid/xlhtml) |/popcon.php? |/x/xlhtml.html) | |MSExcel para | | |package= | | |HTML | | |xlhtml) | | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:5, I:10 | | | | |ppthtml (http:// |(http:// |120 (http:// | |conversor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|MSPowerPointhtml |MSPow erPoint | |/sid/ppthtml) |/popcon.php? |/p/ppthtml.html) | |para HTML |

| | | | |

|package=

|ppthtml) | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:3, I:8 | | | | |unrtf (http:// |(http:// |224 (http:// | |conversor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|rtfhtml |documentos de | |/sid/unrtf) |/popcon.php? |/u/unrtf.html) | |RTF para HTML,| | |package= | | |etc | | |unrtf) | | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:5, I:8 | | |conversor de | |info2www (http:// |(http:// |156 (http:// | |info do GNU | |packages.debian.org|qa.debian.org|packages.qa.debian.org|infohtml |para HTML | |/sid/info2www) |/popcon.php? |/i/info2www.html) | |(suporte a | | |package= | | |CGI) | | |info2www) | | | | |-------------------+-------------+----------------------+-------------------+--------------| | |V:0, I:0 | | |conversor de | | |(http:// | | |documentos SXW| |ooo2dbk (http:// |qa.debian.org|941 (http:// | |do | |packages.debian.org|/popcon.php? |packages.qa.debian.org|sxwxml |OpenOffice.org| |/sid/ooo2dbk) |package= |/o/ooo2dbk.html) | |para | | |ooo2dbk) | | |documentos XML| | | | | |do DocBook | |-------------------+-------------+----------------------+-------------------+--------------| | |V:0, I:0 | | |Ficheiros do | |wp2x (http:// |(http:// |156 (http:// | |WordPerfect | |packages.debian.org|qa.debian.org|packages.qa.debian.org|WordPerfectqualquer |5.0 e 5.1 para| |/sid/wp2x) |/popcon.php? |/w/wp2x.html) | |TeX, LaTeX, | | |package=wp2x)| | |troff, GML e |

| | | | |HTML | |-------------------+-------------+----------------------+-------------------+--------------| | |V:0, I:0 | | | | |doclifter (http:// |(http:// |460 (http:// | |conversor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|troffxml |troff para | |/sid/doclifter) |/popcon.php? |/d/doclifter.html) | |DocBook XML | | |package= | | | | | |doclifter) | | | | +-------------------------------------------------------------------------------------------+ Para ficheiros HTML no-XML, voc pode convert-los para XHTML o que uma instncia de XML bem formado. O XHTML pode ser processado por ferramentas de XML. Tabela 11.11. Lista de ferramentas de impresso bonita de XML +-------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave |de scrio | |-------------------+--------------+----------------------+--------------+------------| | | | | |fe rramenta de| | |V:42, I:506 | | |XM L de linha | |libxml2-utils |(http:// |146 (http:// | |de comandos | |(http:// |qa.debian.org/|packages.qa.debian.org| |co m xmllint | |packages.debian.org|popcon.php? |/libx/ |xmlhtmlxhtml|(1) | |/sid/libxml2-utils)|package= |libxml2-utils.html) | |(verific ao | | |libxml2-utils)| | |de sintaxe, | | | | | |re formatao,| | | | | |li nt, ) | |-------------------+--------------+----------------------+--------------+------------| | |V:5, I:40 | | |Ve rificador e| |tidy (http:// |(http:// |82 (http:// | |re formatador | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|xmlhtmlxhtml|de sin taxe | |/sid/tidy) |popcon.php? |/t/tidy.html) | |HT ML |

|package=tidy) | | | | +-------------------------------------------------------------------------------------+ Aps o XML apropriado ser gerado, voc pode usar a tecnologia XSLT para extrair dados baseados no contexto de marcaes e etc. 11.3. Dados imprimveis Os dados imprimveis so expressos no formato PostScript (http:// en.wikipedia.org/wiki/PostScript) no sistema Debian. O Common Unix Printing System (CUPS) (http://en.wikipedia.org/wiki/ Common_Unix_Printing_System) usa o Ghostscript como o seu programa backend de rasterizao para as impressoras no-PostScript. 11.3.1. Ghostscript O ncleo da manipulao de dados imprimveis o interpretador PostScript (PS) (http://en.wikipedia.org/wiki/PostScript) Ghostscript (http://en.wikipedia.org/wiki/Ghostscript) o qual gera imagem em rasterizao. O Ghostscript original mais recente da Artifex foi re-licenciado de AFPL para GPL e fundiu todas as alteraes da verso ESP mais recente como as relacionadas com o CUPS no lanamento 8.60 como um lanamento unificado. Tabela 11.12. Lista de interpretadores PostScript Ghostscript +----------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-----------------+----------------------+---------------| | r | |ghostscript (http:/|(http:// | |/ t | |packages.debian.org|popcon.php? | |/sid/ghostscript) |package= rg| | | | | |-------------------+-----------------+----------------------+---------------| | de| |ghostscript-x | |(http:// L | |packages.debian.org|popcon.php? |/g/ghostscript-x.html)|- suporte a ec |qa.debian.org/ |packages.qa.debian.org|Ghostscript GP |(http:// |194 (http:// |PostScript/PDF |V:66, I:137 | |Interpretador | | |Ghostscript) |ghostscript) | |/wiki/ |/g/ghostscript.html) |en.wikipedia.o |packages.qa.debian.org|GPL (http:// |qa.debian.org/ |199 (http:// |PDF Ghostscrip | |de PostScript/ |V:198, I:636 | |O interpretado

r| |/sid/ghostscript-x)|package= | | | |-------------------+-----------------+----------------------+---------------| |libpoppler19 (http:|I:204 (http:// | |// |qa.debian.org/ |packages.qa.debian.org|renderizao de |packages.debian.org|popcon.php? |/libp/ |PDF baseada no |/sid/libpoppler19) |package= |libpoppler19.html) |visualizador d e | | |libpoppler19) | |PDF xpdf | |-------------------+-----------------+----------------------+---------------| |libpoppler-glib8 |V:68, I:187 | |Biblioteca de | |(http:// |(http:// |300 (http:// |renderizao de |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|PDF (bibliotec a | |/sid/ |popcon.php? |/libp/ |de partilha | |libpoppler-glib8) |package= |libpoppler-glib8.html)|baseada em GLi b)| | |libpoppler-glib8)| | | |-------------------+-----------------+----------------------+---------------| | | | |CMaps para | | | | |suporte | | |V:45, I:259 | |biblioteca de | |poppler-data (http:|(http:// |11743 (http:// |renderizao de |// |qa.debian.org/ |packages.qa.debian.org|PDF (para CJK | |packages.debian.org|popcon.php? |/p/poppler-data.html) |(http:// | |/sid/poppler-data) |package= | |en.wikipedia.o rg| | |poppler-data) | |/wiki/ | | | | |CJK_characters ) | | | | |: Adobe-*) | +----------------------------------------------------------------------------+ Dica "gs -h" pode mostrar a configurao do Ghostscript. 11.3.2. Juntar dois ficheiros PS ou PDF Pode unir dois ficheiros PostScript (PS) (http://en.wikipedia.org | | |2495 (http:// |Biblioteca de |ghostscript-x) | | | |X

/wiki/PostScript) ou Portable Document Format (PDF) (http:// en.wikipedia.org/wiki/Portable_Document_Format) usando o gs(1) do Ghostscript. $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=bla.ps -f foo1.ps foo2.ps $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f foo1.pdf foo2.pdf Nota O PDF (http://en.wikipedia.org/wiki/Portable_Document_Format) , que um formato de dados imprimveis amplamente usado em vrias plataformas, essencialmente o formato PS (http:// en.wikipedia.org/wiki/PostScript) comprimido com algumas funcionalidades e extenses adicionais. Dica Para a linha de comandos, o psmerge(1) e outros comandos do pacote psutils so teis para manipular documentos em PostScript. Os comandos no pacote pdfjam funcionam de modo semelhante para manipular documentos em PDF. O pdftk(1) do pacote pdftk tambm til para manipular documentos em PDF. 11.3.3. Utilitrios de dados imprimveis Os seguintes pacotes para utilitrios de dados imprimveis chamaram a minha ateno. Tabela 11.13. Lista de utilitrios de dados imprimveis +------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave|des crio | |-------------------+--------------+----------------------+-------------+------------------------| | |V:91, I:539 | | | | |poppler-utils |(http:// |445 (http:// | |Uti litrios de PDF: | |(http:// |qa.debian.org/|packages.qa.debian.org|pdfps,text,|pdftops , pdfinfo, | |packages.debian.org|popcon.php? |/p/poppler-utils.html)| |pdf images, pdftotext, | |/sid/poppler-utils)|package= | | |pdf fonts | | |poppler-utils)| | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:28, I:270 | | | | |psutils (http:// |(http:// |201 (http:// | | | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|psps |Ferra mentas de converso | |/sid/psutils) |popcon.php? |/p/psutils.html) | |de documentos PostScript | | |package= | | |

| |psutils) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:2, I:30 | | | | |poster (http:// |(http:// |80 (http:// | | | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|psps |criar grandes posters de | |/sid/poster) |popcon.php? |/p/poster.html) | |pgin as PostScript | | |package= | | | | | |poster) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:8, I:73 | | | | |enscript (http:// |(http:// |2147 (http:// | |con verter texto ASCII | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|textps, |para PostScript, HTML, | |/sid/enscript) |popcon.php? |/e/enscript.html) |html, rtf |RTF ou Pretty-Print | | |package= | | | | | |enscript) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:13, I:92 | | | | |a2ps (http:// |(http:// |4292 (http:// | |Con versor de 'Qualquer | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|textps |coisa para PostScript' e | |/sid/a2ps) |popcon.php? |/a/a2ps.html) | |pre tty-printer | | |package=a2ps) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:11, I:59 | | | | |pdftk (http:// |(http:// |3039 (http:// | |Fer ramenta de converso | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|pdfpdf |de do cumentos PDF: pdftk | |/sid/pdftk) |popcon.php? |/p/pdftk.html) | | | | |package=pdftk)| | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:1, I:11 | | | | |mpage (http:// |(http:// |224 (http:// | |imp |

rimir mltiplas | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|text,psps |pginas por folha | |/sid/mpage) |popcon.php? |/m/mpage.html) | | | | |package=mpage)| | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:2, I:14 | | | | |html2ps (http:// |(http:// |320 (http:// | | | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|htmlps |conve rsor de HTML para | |/sid/html2ps) |popcon.php? |/h/html2ps.html) | |Pos tScript | | |package= | | | | | |html2ps) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:1, I:14 | | | | |pdfjam (http:// |(http:// |122 (http:// | |Fer ramentas de converso | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|pdfpdf |de document os PDF: pdf90,| |/sid/pdfjam) |popcon.php? |/p/pdfjam.html) | |pdf join, e pdfnup | | |package= | | | | | |pdfjam) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:0, I:5 | | | | |gnuhtml2latex |(http:// |53 (http:// | | | |(http:// |qa.debian.org/|packages.qa.debian.org|htmllatex |conve rsor de html para | |packages.debian.org|popcon.php? |/g/gnuhtml2latex.html)| |lat ex | |/sid/gnuhtml2latex)|package= | | | | | |gnuhtml2latex)| | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:1, I:12 | | | | |latex2rtf (http:// |(http:// |383 (http:// | |con versor de documentos | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|latexrtf |LaTeX para RTF que podem | |/sid/latex2rtf) |popcon.php? |/l/latex2rtf.html) | |ser lidos pelo MS Word | | |package= | | |

| |latex2rtf) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:11, I:130 | | | | |ps2eps (http:// |(http:// |136 (http:// | |con versor de PostScript | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|pseps |para EPS (PostScript | |/sid/ps2eps) |popcon.php? |/p/ps2eps.html) | |Enc apsulado) | | |package= | | | | | |ps2eps) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:0, I:0 | | | | |e2ps (http:// |(http:// |188 (http:// | |Con versor de texto para | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|textps |PostS cript com suporte a | |/sid/e2ps) |popcon.php? |/e/e2ps.html) | |cod ificao Japonesa | | |package=e2ps) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:0, I:2 | | | | |impose+ (http:// |(http:// |180 (http:// | | | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|psps |Utili trios do PostScript| |/sid/impose+) |popcon.php? |/i/impose+.html) | | | | |package= | | | | | |impose+) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:0, I:0 | | |imp resso bonita de | |trueprint (http:// |(http:// |188 (http:// | |mui tos cdigos fonte (C, | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|textps |C++, Java, Pascal, Perl, | |/sid/trueprint) |popcon.php? |/t/trueprint.html) | |Pik e, Sh, e Verilog) para| | |package= | | |Pos tScript. (linguagem C)| | |trueprint) | | | | |-------------------+--------------+----------------------+-------------+------------------------| | |V:0, I:6 | | |con |

versor de PDF para | |pdf2svg (http:// |(http:// |48 (http:// | |for mato Grficos | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|pssvg |vecto riais escalveis | |/sid/pdf2svg) |popcon.php? |/p/pdf2svg.html) | |(ht tp://en.wikipedia.org/| | |package= | | |wik i/ | | |pdf2svg) | | |Sca lable_Vector_Graphics)| |-------------------+--------------+----------------------+-------------+------------------------| | |V:0, I:1 | | | | |pdftoipe (http:// |(http:// |92 (http:// | | | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|psipe |conve rsor de PDF para | |/sid/pdftoipe) |popcon.php? |/p/pdftoipe.html) | |for mato XML de IPE | | |package= | | | | | |pdftoipe) | | | | +------------------------------------------------------------------------------------------------+ 11.3.4. Imprimir com o CUPS Ambos comandos lp(1) e lpr(1) oferecidos pelo Common Unix Printing System (CUPS) (http://en.wikipedia.org/wiki/ Common_Unix_Printing_System) disponibilizam opes para impresso personalizada dos dados a imprimir. Voc pode imprimir 3 cpias coligidas de um ficheiro usando um dos seguintes comandos. $ lp -n 3 -o Collate=True nome_do_ficheiro $ lpr -#3 -o Collate=True nome_do_ficheiro Voc pode personalizar ainda mais as operaes da impressora ao usar opes da impresso como "-o number-up=2", "-o page-set= even", "-o page-set=odd", "-o scaling=200", "-o natural-scaling= 200", etc., documentadas em Impresso em Linha de Comandos e Opes (http://localhost:631/help/options.html) . 11.4. Formatao de texto O programa troff (http://en.wikipedia.org/wiki/Troff) do Unix desenvolvido originalmente pela AT&T pode ser usado para formatao de texto simples. geralmente usado para criar as pginas de manual (manpages). O TeX (http://en.wikipedia.org/wiki/TeX) criado por Donald Knuth uma ferramenta de formatao de texto muito poderosa e o standard de facto. O LaTeX (http://en.wikipedia.org/wiki/LaTeX) originalmente escrito por Leslie Lamport permite um acesso de

alto nvel ao poder do TeX. Tabela 11.14. Lista de ferramentas de formatao de texto +--------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra|descrio | | | | |chave | | |-------------------+-------------+----------------------+-------+---------------| | |I:85 (http://| | |sistema Te X para| |texlive (http:// |qa.debian.org|104 (http:// | |formatao de | |packages.debian.org|/popcon.php? |packages.qa.debian.org|(La)TeX|texto, | |/sid/texlive) |package= |/t/texlive.html) | |pre-visualizao| | |texlive) | | |e impresso | |-------------------+-------------+----------------------+-------+---------------| | |V:18, I:192 | | | | |groff (http:// |(http:// |8131 (http:// | |O sistema de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|troff |formato de texto| |/sid/groff) |/popcon.php? |/g/groff.html) | |troff do G NU | | |package= | | | | | |groff) | | | | +--------------------------------------------------------------------------------+ 11.4.1. formatao de texto roff Tradicionalmente, o roff (http://en.wikipedia.org/wiki/Roff) o sistema de processamento de texto principal do Unix. Veja roff(7) , groff(7), groff(1), grotty(1), troff(1), groff_mdoc(7), groff_man(7), groff_ms(7), groff_me(7), groff_mm(7), e "info groff". Voc pode ler ou imprimir um bom tutorial e referncia macro (http://en.wikipedia.org/wiki/Macro_(computer_science)) "-me" em "/usr/share/doc/groff/" ao instalar o pacote groff. Dica "groff -Tascii -me -" produz resultados em texto simples com cdigo de escape ANSI (http://en.wikipedia.org/wiki/ ANSI_escape_code) . Se voc deseja obter resultados tipo manpage com muitos "^H" e "_", ento use "GROFF_NO_SGR=1 groff -Tascii -me -". Dica

Para remover "^H" e "_" de um ficheiro de texto gerado pelo groff, filtre-o com "col -b -x". 11.4.2. TeX/LaTeX A distribuio de software TeX Live (http://en.wikipedia.org/wiki /TeX_Live) oferece um sistema TeX completo. O meta-pacote texlive disponibiliza uma seleco decente dos pacotes TeX Live (http:// en.wikipedia.org/wiki/TeX_Live) que devero ser suficientes para as tarefas mais comuns. Existem muitas referncias disponveis para TeX (http:// en.wikipedia.org/wiki/TeX) e LaTeX (http://en.wikipedia.org/wiki/ LaTeX) . * O HOWTO do The teTeX: O Guia Local de Linux-teTeX (http:// www.tldp.org/HOWTO/TeTeX-HOWTO.html) * tex(1) * latex(1) * "The TeXbook", por Donald E. Knuth, (Addison-Wesley) * "LaTeX - A Document Preparation System", por Leslie Lamport, (Addison-Wesley) * "The LaTeX Companion", por Goossens, Mittelbach, Samarin, (Addison-Wesley) Este o ambiente de formatao de texto mais poderoso. Muitos processadores SGML (http://en.wikipedia.org/wiki/ Standard_Generalized_Markup_Language) usam isto como processador de texto em backend. O Lyx (http://en.wikipedia.org/wiki/Lyx) disponibilizado pelo pacote lyx e o GNU TeXmacs (http:// en.wikipedia.org/wiki/GNU_TeXmacs) disponibilizado pelo pacote texmacs oferecem um bom ambiente de edio OQVEOQT (http:// en.wikipedia.org/wiki/WYSIWYG) para o LaTeX (http:// en.wikipedia.org/wiki/LaTeX) enquanto muitos usam o Emacs (http:/ /en.wikipedia.org/wiki/Emacs) e o Vim (http://en.wikipedia.org/ wiki/Vim_(text_editor)) como a sua escolha para editor de cdigo fonte. Existem muitos recursos online disponveis. * O Guia TEX Live - TEX Live 2007 ("/usr/share/doc/ texlive-doc-base/english/texlive-en/live.html") (pacote texlive-doc-base package) * Um Guia Simples para o Latex/Lyx (http://www.stat.rice.edu/ ~helpdesk/howto/lyxguide.html) * Processamento de Texto Usando o LaTeX (http:// www-h.eng.cam.ac.uk/help/tpl/textprocessing/latex_basic/ latex_basic.html) * Guia do Utilizador Local para o teTeX/LaTeX (http:// supportweb.cs.bham.ac.uk/documentation/LaTeX/lguide/ local-guide/local-guide.html)

Quando os documentos ficam maiores, por vezes o TeX pode causar erros. Voc tem de aumentar o tamanho do pool em "/etc/texmf/ texmf.cnf" (ou mais apropriadamente editar o "/etc/texmf/texmf.d/ 95NonPath" e correr update-texmf(8)) para corrigir isto. Nota A fonte TeX de "The TeXbook" est disponvel em http:// tug.ctan.org/tex-archive/systems/knuth/dist/tex/texbook.tex (http://tug.ctan.org/tex-archive/systems/knuth/dist/tex/ texbook.tex) . Este ficheiro contm a maioria das macros necessrias. Eu ouvi que voc pode processar este documento com o tex(1) aps comentar as linhas 7 a 10 e adicionando "\input manmac \proofmodefalse". fortemente recomendo comprar este livro (e todos os outros livros de Donald E. Knuth) em vez de usar a verso online mas a fonte um grande exemplo de entrada em TeX! 11.4.3. Impresso bonita de um manual Voc consegue uma impresso bonita dum manual em PostScript com um dos seguintes comandos. $ man -Tps qualquer_manual | lpr $ man -Tps qualquer_manual | mpage -2 | lpr O segundo exemplo imprime duas pginas em cada folha. 11.4.4. Criar um manual Apesar de escrever um manual (manpage) no formato troff (http:// en.wikipedia.org/wiki/Troff) simples ser possvel, existem alguns programas que ajudam a cri-lo. Tabela 11.15. Lista de pacotes para ajudar a criar o manual (manpage) +----------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave|de scrio | |-------------------+---------------+----------------------+-------------+---------| |docbook-to-man |V:2, I:24 | | |co nversor | |(http:// |(http:// |213 (http:// | |de DocBook| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|SGMLmanpage |SGML para | |/sid/ |popcon.php? |/d/ | |ma cros | |docbook-to-man) |package= |docbook-to-man.html) | |ro ff man | | |docbook-to-man)| | | | |-------------------+---------------+----------------------+-------------+---------| | |V:1, I:10 | | |ge

rao | |help2man (http:// |(http:// |516 (http:// | |au tomtica| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|textomanpage|de m anual | |/sid/help2man) |popcon.php? |/h/help2man.html) | |a partir | | |package= | | |do --help | | |help2man) | | | | |-------------------+---------------+----------------------+-------------+---------| | |V:0, I:1 (http:| | |co nversor | |info2man (http:// |//qa.debian.org|161 (http:// | |de info do| |packages.debian.org|/popcon.php? |packages.qa.debian.org|infomanpage |GNU para | |/sid/info2man) |package= |/i/info2man.html) | |PO D ou | | |info2man) | | |pgi nas | | | | | |ma n | |-------------------+---------------+----------------------+-------------+---------| | | | | |co nverte | | |V:0, I:2 (http:| | |te xto | |txt2man (http:// |//qa.debian.org|88 (http:// | |AS CII | |packages.debian.org|/popcon.php? |packages.qa.debian.org|textomanpage|simp les | |/sid/txt2man) |package= |/t/txt2man.html) | |pa ra o | | |txt2man) | | |fo rmato de| | | | | |pgi na man| +----------------------------------------------------------------------------------+ 11.5. A converso de dados de mail Os seguintes pacotes para converso de dados de mail chamaram a minha ateno. Tabela 11.16. Lista de pacotes para ajudar na converso de dados de mail +---------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra|descrio | | | | |chave | | |-------------------+-------------+----------------------+-------+----------

-------| | |V:19, I:209 | | | | |sharutils (http:// |(http:// |874 (http:// | |shar(1), u nshar | |packages.debian.org|qa.debian.org|packages.qa.debian.org|mail |(1), uuenc ode(1),| |/sid/sharutils) |/popcon.php? |/s/sharutils.html) | |uudecode(1 ) | | |package= | | | | | |sharutils) | | | | |-------------------+-------------+----------------------+-------+----------------| | | | | |codificar e | | |V:7, I:97 | | |descodific ar | |mpack (http:// |(http:// |116 (http:// | |mensagens MIME | |packages.debian.org|qa.debian.org|packages.qa.debian.org|MIME |(http:// | |/sid/mpack) |/popcon.php? |/m/mpack.html) | |en.wikiped ia.org/| | |package= | | |wiki/MIME) : | | |mpack) | | |mpack(1) e | | | | | |munpack(1) | |-------------------+-------------+----------------------+-------+----------------| | | | | |descompact ar | | | | | |anexos MIM E | | |V:9, I:16 | | |(http:// | |tnef (http:// |(http:// |132 (http:// | |en.wikiped ia.org/| |packages.debian.org|qa.debian.org|packages.qa.debian.org|ms-tnef|wiki/MIME) do | |/sid/tnef) |/popcon.php? |/t/tnef.html) | |tipo "appl ication| | |package=tnef)| | |/ms-tnef" o qual | | | | | | um formato | | | | | |apenas da | | | | | |Microsoft | |-------------------+-------------+----------------------+-------+----------------| | | | | |codificado r e | | | | | |descodificador | | | | | |dos seguin

tes |

| | | | | |formatos:

| | | | |uuencode ( http://| | | | | |en.wikiped ia.org/| | | | | |wiki/Uuenc oding) | | | | | |, xxencode (http:| | |V:1, I:10 | | |// | | |(http:// | | |en.wikiped ia.org/| |uudeview (http:// |qa.debian.org|117 (http:// | |wiki/Xxenc ode) , | |packages.debian.org|/popcon.php? |packages.qa.debian.org|mail |BASE64 (ht tp:// | |/sid/uudeview) |package= |/u/uudeview.html) | |en.wikiped ia.org/| | |uudeview) | | |wiki/Base6 4) , | | | | | |quoted pri ntable | | | | | |(http:// | | | | | |en.wikiped ia.org/| | | | | |wiki/ | | | | | |Quoted-pri ntable)| | | | | |, e BinHex (http:| | | | | |// | | | | | |en.wikiped ia.org/| | | | | |wiki/BinHe x) | |-------------------+-------------+----------------------+-------+----------------| | | | | |converter | | | | | |ficheiros PST do | | | | | |Outlook (h ttp:// | | |V:0, I:2 | | |en.wikiped ia.org/| |readpst (http:// |(http:// |21 (http:// | |wiki/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|PST |Personal_F olders_| |/sid/readpst) |/popcon.php? |/r/readpst.html) | |(.pst)_fil e) da | | |package= | | |Microsoft para | | |readpst) | | |formato mb

ox |

| | | | | |(http://

| | | | |en.wikiped ia.org/| | | | | |wiki/Mbox) | +---------------------------------------------------------------------------------+ Dica O servidor de Internet Message Access Protocol (http:// en.wikipedia.org/wiki/Internet_Message_Access_Protocol) verso 4 (IMAP4) (veja Seco6.7, Servidor POP3/IMAP4) pode ser usado para mover mails de sistemas de mail proprietrios se o software cliente de mail puder ser configurado para usar tambm o servidor IMAP4. 11.5.1. Noes bsicas de dados de mail Os dados (SMTP (http://en.wikipedia.org/wiki/ Simple_Mail_Transfer_Protocol) ) do mail devem data ser limitados a 7 bits. Portanto os dados binrios e os dados de texto a 8 bits so codificados em formato de 7 bits com o Multipurpose Internet Mail Extensions (MIME) (http://en.wikipedia.org/wiki/MIME) e a seleco do conjunto de caracteres (veja Seco8.3.1, Bases de codificao). O formato de armazenamento de mail standard mbox de acordo com RFC2822 (RFC822 actualizado) (http://tools.ietf.org/html/rfc2822) . Veja mbox(5) (disponibilizado pelo pacote mutt). Para as linguagens Europeias, "Content-Transfer-Encoding: quoted-printable" com o junto de caracteres ISO-8859-1 geralmente usado para mail porque no existem muitos caracteres de 8 bits. Se o texto Europeu estiver codificado em UTF-8, provvel que seja usado o "Content-Transfer-Encoding: quoted-printable" pois maioritariamente dados de 7 bits. Para Japons, tradicionalmente usa-se "Content-Type: text/plain; charset=ISO-2022-JP" para o mail para manter o texto em 7 bits. Mas os sistemas mais antigos da Microsoft podem enviar dados de mail em Shift-JIS sem a declarao apropriada. Se o testo Japons for codificado em UTF-8, provvel que se use Base64 (http:// en.wikipedia.org/wiki/Base64) pois contm muitos dados de 8 bits. A situao de outras linguagens Asiticas semelhante. Nota Se os seus dados de mail no-Unix so acessveis por um software cliente no-Debian o qual pode falar com o servidor IMAP4, voc pode ser capaz de mov-los para fora ao correr o seu prprio servidor IMAP4 (veja Seco6.7, Servidor POP3/IMAP4). Nota Se voc usa outros formatos de armazenamento de mail, mov-los para o formato mbox um bom primeiro passo. Um programa cliente

verstil como o mutt(1) pode dar jeito para isto. Voc pode dividir os contedos da mailbox para cada mensagem usando o procmail(1) e o formail(1). Cada mensagem de mail pode ser desempacotada usando o munpack(1) do pacote mpack (ou outras ferramentas especializadas) para obter os contedos codificados em MIME. 11.6. Ferramentas de dados grficos Os seguintes pacotes para converso de dados grficos, edio e ferramentas de organizao chamaram a minha ateno. Tabela 11.17. Lista de ferramentas de dados grficos +----------------------------------------------------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave |descrio | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gimp (http:// |V:126, I:468 (http:// |15578 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(bitmap) |GNU Image Manipulation Program| |gimp) |package=gimp) |gimp.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |imagemagick (http:// |V:248, I:502 (http:// |419 (http:// | |programas de manipulao de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ i/ |imagem(bitmap) |imagens | |imagemagick) |package=imagemagick) |imagemagick.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |graphicsmagick (http:// |V:10, I:19 (http:// |4605 (http:// | |programas de manipulao de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(bitmap) |imagens (parentes do | |graphicsmagick) |package=graphicsmagick) |graphicsmagick.html) | |imagemagick) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |xsane (http:// |V:47, I:328 (http:// |702 (http:// | |Frontend X11 baseado em GTK+ | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ x/ |imagem(bitmap) |para o SANE (Scanner Access | |xsane) |package=xsane) |xsane.html) | |Now Easy) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |netpbm (http:// |V:47, I:493 (http:// |3464 (http:// | |ferramentas de converso de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ n/ |imagem(bitmap) |grficos | |netpbm) |package=netpbm) |netpbm.html) | | |

|-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| | | | | |converte cones e cursores do | | | | | |MS Windows de e para formatos | |icoutils (http:// |V:7, I:35 (http:// |221 (http:// | |PNG (http://en.wikipedia.org/ | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ i/ |pngico(bitmap) |wiki/ICO_ | |icoutils) |package=icoutils) |icoutils.html) | |(icon_image_file_format)) ( | | | | | |favicon.ico (http:// | | | | | |en.wikipedia.org/wiki/Favicon)| | | | | |) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |scribus (http:// |V:13, I:34 (http:// |54122 (http:// | |editor de DTP do Scribus | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ s/ |ps/pdf/SVG/ |(http://en.wikipedia.org/wiki/| |scribus) |package=scribus) |scribus.html) | |Scribus) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |libreoffice-draw (http://|V:144, I:199 (http:// |13022 (http:// | |suite de escritrio do | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ libr/ |imagem(vector) |LibreOffice - desenho | |libreoffice-draw) |package=libreoffice-draw)|libreoffice-draw.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |inkscape (http:// |V:190, I:371 (http:// |79425 (http:// | |editor de SVG (Scalable Vector| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ i/ |imagem(vector) |Graphics) (http:// | |inkscape) |package=inkscape) |inkscape.html) | |en.wikipedia.org/wiki/ | | | | | |Scalable_Vector_Graphics) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |dia-gnome (http:// |V:14, I:22 (http:// |617 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ d/ |imagem(vector) |editor de diagramas (GNOME) | |dia-gnome) |package=dia-gnome) |dia-gnome.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |dia (http:// |V:34, I:53 (http:// |617 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ d/ |imagem(vector) |editor de diagramas (Gtk) | |dia) |package=dia) |dia.html) | | |

|-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |xfig (http:// |V:22, I:36 (http:// |1601 (http:// | |habilidade para Gerao | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ x/ |imagem(vector) |interactiva de figuras sob X11| |xfig) |package=xfig) |xfig.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |pstoedit (http:// |V:29, I:375 (http:// |683 (http:// |ps/pdfimagem |conversor de ficheiro | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ p/ |(vector) |PostScript e PDF para grficos| |pstoedit) |package=pstoedit) |pstoedit.html) | |vectoriais editveis (SVG) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |libwmf-bin (http:// |V:25, I:338 (http:// |91 (http:// |Windows/imagem |ferramentas de converso de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ libw/ |(vector) |meta-ficheiros do Windows | |libwmf-bin) |package=libwmf-bin) |libwmf-bin.html) | |(dados de grficos vectoriais)| |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |fig2sxd (http:// |V:0, I:1 (http:// |200 (http:// | |converte ficheiros XFig para o| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ f/ |figsxd(vector) |formato do OpenOffice.org Draw| |fig2sxd) |package=fig2sxd) |fig2sxd.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| | | | | |ferramenta de | |unpaper (http:// |V:2, I:16 (http:// |671 (http:// | |ps-processamento para pginas| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ u/ |imagemimagem |digitalizadas em scanner para | |unpaper) |package=unpaper) |unpaper.html) | |OCR (http://en.wikipedia.org/ | | | | | |wiki/ | | | | | |Optical_character_recognition)| |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| | | | | |software livre de OCR (http://| |tesseract-ocr (http:// |V:5, I:31 (http:// |354 (http:// | |en.wikipedia.org/wiki/ | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ t/ |imagemtexto |Optical_character_recognition)| |tesseract-ocr) |package=tesseract-ocr) |tesseract-ocr.html) | |baseado no motor de OCR | | | | | |comercial da HP | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------|

|tesseract-ocr-eng (http:/|I:31 (http:// |58870 (http:// | |Dados de motor OCR: ficheiros | |/packages.debian.org/sid/|qa.debian.org/popcon.php?|packages.qa.debian.org/ t/ |imagemtexto |de linguagem tesseract-ocr | |tesseract-ocr-eng) |package= |tesseract-ocr-eng.html) | |para texto Ingls | | |tesseract-ocr-eng) | | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gocr (http:// |V:5, I:42 (http:// |473 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagemtexto |software de OCR livre | |gocr) |package=gocr) |gocr.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |ocrad (http:// |V:2, I:18 (http:// |255 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ o/ |imagemtexto |software de OCR livre | |ocrad) |package=ocrad) |ocrad.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |eog (http:// |V:150, I:375 (http:// |8513 (http:// | |Programa de visualizao de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ e/ |imagem(Exif) |grficos Olho do GNOME | |eog) |package=eog) |eog.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gthumb (http:// |V:43, I:75 (http:// |3797 (http:// | |visualizador e navegador de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(Exif) |imagens (GNOME) | |gthumb) |package=gthumb) |gthumb.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |geeqie (http:// |V:27, I:38 (http:// |1458 (http:// | |Visualizador de imagens que | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(Exif) |usa GTK+ | |geeqie) |package=geeqie) |geeqie.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |shotwell (http:// |V:44, I:276 (http:// |5405 (http:// | |organizador de fotos digitais | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ s/ |imagem(Exif) |(GNOME) | |shotwell) |package=shotwell) |shotwell.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |f-spot (http:// |V:2, I:10 (http:// |8219 (http:// | |aplicao de gesto de fotos |

|packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ |imagem(Exif) |pessoais (GNOME) | |f-spot) |package=f-spot) |f-spot.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gtkam (http:// |V:1, I:15 (http:// |1255 (http:// | |Aplicao para recolher media | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(Exif) |de cmaras digitais (GTK+) | |gtkam) |package=gtkam) |gtkam.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gphoto2 (http:// |V:2, I:23 (http:// |1036 (http:// | |cliente de linha de comandos | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(Exif) |de camera digital gphoto2 | |gphoto2) |package=gphoto2) |gphoto2.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gwenview (http:// |V:38, I:89 (http:// |3671 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(Exif) |visualizador de imagens (KDE) | |gwenview) |package=gwenview) |gwenview.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |kamera (http:// |V:4, I:86 (http:// |237 (http:// | |Suporte para cameras digitais | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ k/ |imagem(Exif) |para aplicaes do KDE | |kamera) |package=kamera) |kamera.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |digikam (http:// |V:12, I:29 (http:// |23885 (http:// | |aplicao de gesto de fotos | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ d/ |imagem(Exif) |digitais para KDE | |digikam) |package=digikam) |digikam.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |exiv2 (http:// |V:30, I:393 (http:// |226 (http:// | |ferramenta de manipulao de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ e/ |imagem(Exif) |metadados EXIF/IPTC | |exiv2) |package=exiv2) |exiv2.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |exiftran (http:// |V:4, I:39 (http:// |91 (http:// | |transformar imagens jpeg de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ e/ |imagem(Exif) |cmaras digitais | |exiftran) |package=exiftran) |exiftran.html) | | | f/

|-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |jhead (http:// |V:4, I:29 (http:// |124 (http:// | |manipula a parte de no-imagem| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ j/ |imagem(Exif) |de ficheiros JPEG compatveis | |jhead) |package=jhead) |jhead.html) | |com Exif (fotos de cmaras | | | | | |digitais) | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |exif (http:// |V:2, I:16 (http:// |145 (http:// | |utilitrio de linha de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ e/ |imagem(Exif) |comandos para mostrar | |exif) |package=exif) |exif.html) | |informao EXIF nos ficheiros | | | | | |JPEG | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |exiftags (http:// |V:0, I:6 (http:// |198 (http:// | |utilitrio para ler etiquetas | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ e/ |imagem(Exif) |Exif de ficheiros JPEG de | |exiftags) |package=exiftags) |exiftags.html) | |cmaras digitais | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |exifprobe (http:// |V:0, I:4 (http:// |484 (http:// | |ler metadados de imagens | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ e/ |imagem(Exif) |digitais | |exifprobe) |package=exifprobe) |exifprobe.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |dcraw (http:// |V:6, I:45 (http:// |424 (http:// | |descodifica imagens cruas de | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ d/ |imagem(Raw)ppm |cmaras digitais | |dcraw) |package=dcraw) |dcraw.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |findimagedupes (http:// |V:0, I:2 (http:// |123 (http:// | |encontra imagens visualmente | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ f/ |imagefingerprint|semelhantes ou duplicadas | |findimagedupes) |package=findimagedupes) |findimagedupes.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |ale (http:// |V:0, I:1 (http:// |757 (http:// | |junta imagens para aumentar a | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ a/ |imagemimagem |fidelidade ou criar mosaicos | |ale) |package=ale) |ale.html) | | |

|-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |imageindex (http:// |V:0, I:1 (http:// |171 (http:// | |gera galerias HTML estticas a| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ i/ |imagem(Exif)html|partir de imagens | |imageindex) |package=imageindex) |imageindex.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |bins (http:// |V:0, I:1 (http:// |1173 (http:// | |gera lbuns de fotos estticos| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ b/ |imagem(Exif)html|em HTML usando XML e etiquetas| |bins) |package=bins) |bins.html) | |EXIF | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |gallery2 (http:// |V:1, I:1 (http:// |46635 (http:// | |gera lbuns de fotos | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ g/ |imagem(Exif)html|explorveis em HTML com | |gallery2) |package=gallery2) |gallery2.html) | |miniaturas | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |outguess (http:// |V:0, I:1 (http:// |252 (http:// | |ferramenta de Esteganografia | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ o/ |jpeg,png |(http://en.wikipedia.org/wiki/| |outguess) |package=outguess) |outguess.html) | |Steganography) universal | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |qcad (http:// |V:3, I:13 (http:// |31 (http:// | | | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ q/ |DXF |editor de dados CAD (KDE) | |qcad) |package=qcad) |qcad.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |blender (http:// |V:6, I:34 (http:// |57306 (http:// |blend, TIFF, |editor de contedos 3D para | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ b/ |VRML, |animao e etc | |blender) |package=blender) |blender.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |mm3d (http:// |V:0, I:1 (http:// |5171 (http:// | |editor de modelos 3D baseado | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ m/ |ms3d, obj, dxf, |em OpenGL | |mm3d) |package=mm3d) |mm3d.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |open-font-design-toolkit |I:0 (http://qa.debian.org|27 (http:// | | |

|(http:// |/popcon.php?package= |packages.qa.debian.org/ |ttf, ps, |meta pacote para desenho de | |packages.debian.org/sid/ |open-font-design-toolkit)|open-font-design-toolki t.html)| |font aberta | |open-font-design-toolkit)| | | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |fontforge (http:// |V:2, I:13 (http:// |6506 (http:// | |editor de tipo de letra para | |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ f/ |ttf, ps, |fonts PS, TrueType e OpenType | |fontforge) |package=fontforge) |fontforge.html) | | | |-------------------------+-------------------------+-----------------------------+-----------------+------------------------------| |xgridfit (http:// |V:0, I:1 (http:// |1060 (http:// | |programa para ajustar grelha| |packages.debian.org/sid/ |qa.debian.org/popcon.php?|packages.qa.debian.org/ x/ |ttf |e indicar tipos de letra | |xgridfit) |package=xgridfit) |xgridfit.html) | |TrueType | +----------------------------------------------------------------------------------------------------------------------------------+ o/ Dica Procure mais ferramentas de imagem com a expresso regular "~Gworks-with::image" no aptitude(8) (veja Seco2.2.6, Opes do mtodo de pesquisa com o aptitude). Apesar dos programas com GUI como o gimp(1) serem muito poderosos, as ferramentas de linha de comandos como o imagemagick (1) so bastante teis para automatizar a manipulao de imagens com scripts. O formato de facto de ficheiros de imagem das cmeras digitais o Exchangeable Image File Format (http://en.wikipedia.org/wiki/ Exchangeable_image_file_format) (EXIF) o qual o formato de ficheiros de imagem JPEG (http://en.wikipedia.org/wiki/JPEG) com etiquetas de meta-dados adicionais. Pode conter informaes como a data, hora e definies da camera. A patente de compresso de dados sem perdas de Lempel-Ziv-Welch (LZW) (http://en.wikipedia.org/wiki/Lempel-Ziv-Welch) expirou. Os utilitrios de Graphics Interchange Format (GIF) (http:// en.wikipedia.org/wiki/Graphics_Interchange_Format) que usam o mtodo de compresso LZW esto agora livremente disponveis no sistema Debian. Dica Qualquer camera digital ou scanner com meio de gravao amovvel funciona em Linux atravs de leitores de armazenamento USB (http: //en.wikipedia.org/wiki/USB_flash_drive) desde que sigam as Regras de Desenho para Sistemas de Ficheiros de Cmeras (http:// en.wikipedia.org/wiki/Design_rule_for_Camera_File_system) e usem o sistema de ficheiros FAT (http://en.wikipedia.org/wiki/ File_Allocation_Table) . Veja Seco10.1.10, Dispositivo de

armazenamento amovvel. 11.7. Converso de dados variados Existem muitos outros programas para converter dados. Os pacotes seguintes chamaram a minha ateno usando a expresso regular "~Guse::converting" no aptitude(8) (veja Seco2.2.6, Opes do mtodo de pesquisa com o aptitude). Tabela 11.18. Lista de ferramentas de converso de dados variados +---------------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra chave |des crio | |-------------------+-------------+----------------------+--------------+---------------| | |V:11, I:114 | | | | |alien (http:// |(http:// |209 (http:// | |con versor para o| |packages.debian.org|qa.debian.org|packages.qa.debian.org|rpm/tgzdeb |pacot e | |/sid/alien) |/popcon.php? |/a/alien.html) | |ali engena num | | |package= | | |pac ote Debian | | |alien) | | | | |-------------------+-------------+----------------------+--------------+---------------| | | | | |con versor de | | | | | |"El ectric Book" | | | | | |(po pular no | | | | | |Japo ) para um | | |V:0, I:0 | | |for mato JIS X | | |(http:// | | |4081 (htt p:// | |freepwing (http:// |qa.debian.org|568 (http:// | |ja. wikipedia.org| |packages.debian.org|/popcon.php? |packages.qa.debian.org|EBEPWING |/wiki / | |/sid/freepwing) |package= |/f/freepwing.html) | |JIS _X_4081) | | |freepwing) | | |nico (um | | | | | |sub conjunto de | | | | | |EPW ING (http:// | | | | | |ja. wikipedia.org| | | | | |/wi ki/EPWING) | | | | | |V1)

| |-------------------+-------------+----------------------+--------------+---------------| | |V:8, I:28 | | | | |calibre (http:// |(http:// |34386 (http:// | |con versor de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|qualquertEPUB|e-boo ks e gestor| |/sid/calibre) |/popcon.php? |/c/calibre.html) | |de biblioteca | | |package= | | | | | |calibre) | | | | +---------------------------------------------------------------------------------------+ Voc tambm pode extrair dados do formato RPM com o seguinte. $ rpm2cpio file.src.rpm | cpio --extract Captulo 12. Programao Eu disponibilizo algumas dicas para as pessoas aprenderem programao no sistema Debian o suficiente para rastrear o cdigo fonte do pacote. Aqui esto pacotes notveis e pacotes de documentao correspondentes para programao. Tabela 12.1. Lista de pacotes para ajudar a programar +------------------------------------------------------------------------------+ |pacote |popcon |tamanho |documentao | |-------------------+----------------+----------------------+------------------| | |V:35, I:243 | | | |autoconf (http:// |(http:// |1896 (http:// |"info autoconf" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/autoconf) |popcon.php? |/a/autoconf.html) |autoconf-doc | | |package= | | | | |autoconf) | | | |-------------------+----------------+----------------------+------------------| | |V:31, I:221 | | | |automake (http:// |(http:// |1531 (http:// |"info automake" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/automake) |popcon.php? |/a/automake.html) |automake1.10-do c |

| |package= | | | | |automake) | | | |-------------------+----------------+----------------------+------------------| | |V:904, I:999 | | | |bash (http:// |(http:// |3941 (http:// |"info bash" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/bash) |popcon.php? |/b/bash.html) |bash-doc | | |package=bash) | | | |-------------------+----------------+----------------------+------------------| | |V:19, I:145 | | | |bison (http:// |(http:// |1847 (http:// |"info bison" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/bison) |popcon.php? |/b/bison.html) |bison-doc | | |package=bison) | | | |-------------------+----------------+----------------------+------------------| | |V:406, I:842 | | | |cpp (http:// |(http:// |63 (http:// |"info cpp" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/cpp) |popcon.php? |/c/cpp.html) |cpp-doc | | |package=cpp) | | | |-------------------+----------------+----------------------+------------------| |ddd (http:// |V:2, I:28 (http:|3585 (http:// |"info ddd" | |packages.debian.org|//qa.debian.org/|packages.qa.debian.org|disponibilizado por| |/sid/ddd) |popcon.php? |/d/ddd.html) |ddd-doc | | |package=ddd) | | | |-------------------+----------------+----------------------+------------------| |exuberant-ctags |V:10, I:54 | | | |(http:// |(http:// |323 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|exuberant-ctags (1) | |/sid/ |popcon.php? |/e/ | |

|exuberant-ctags) |package= |exuberant-ctags.html) | | | |exuberant-ctags)| | | |-------------------+----------------+----------------------+------------------| | |V:19, I:141 | | | |flex (http:// |(http:// |922 (http:// |"info flex" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/flex) |popcon.php? |/f/flex.html) |flex-doc | | |package=flex) | | | |-------------------+----------------+----------------------+------------------| | |V:318, I:360 | | | |gawk (http:// |(http:// |2122 (http:// |"info gawk" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/gawk) |popcon.php? |/g/gawk.html) |gawk-doc | | |package=gawk) | | | |-------------------+----------------+----------------------+------------------| | |V:196, I:691 | | | |gcc (http:// |(http:// |41 (http:// |"info gcc" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/gcc) |popcon.php? |/g/gcc.html) |gcc-doc | | |package=gcc) | | | |-------------------+----------------+----------------------+------------------| | |V:42, I:197 | | | |gdb (http:// |(http:// |6334 (http:// |"info gdb" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/gdb) |popcon.php? |/g/gdb.html) |gdb-doc | | |package=gdb) | | | |-------------------+----------------+----------------------+------------------| | |V:72, I:406 | | | |gettext (http:// |(http:// |6403 (http:// |"info gettext" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por|

|/sid/gettext) |popcon.php? |/g/gettext.html) |gettext-doc | | |package=gettext)| | | |-------------------+----------------+----------------------+------------------| | |V:10, I:69 | | | |gfortran (http:// |(http:// |33 (http:// |"info gfortran" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/gfortran) |popcon.php? |/g/gfortran.html) |gfortran-doc | | |package= | |(Fortran 95) | | |gfortran) | | |-------------------+----------------+----------------------+------------------| |fpc (http:// |I:6 (http:// |37 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|fpc(1) e html p or | |/sid/fpc) |popcon.php? |/f/fpc.html) |fp-docs (Pascal ) | | |package=fpc) | | | |-------------------+----------------+----------------------+------------------| |glade (http:// |V:3, I:23 (http:|1752 (http:// |ajuda | |packages.debian.org|//qa.debian.org/|packages.qa.debian.org|disponibilizada via| |/sid/glade) |popcon.php? |/g/glade.html) |menu (UI Builde r) | | |package=glade) | | | |-------------------+----------------+----------------------+------------------| | |V:959, I:997 | |"info libc" | |libc6 (http:// |(http:// |9516 (http:// |disponibilizado por| |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|glibc-doc e | |/sid/libc6) |popcon.php? |/libc/libc6.html) |glibc-doc-refer ence| | |package=libc6) | | | |-------------------+----------------+----------------------+------------------| | |V:201, I:702 | | | |make (http:// |(http:// |1145 (http:// |"info make" | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/make) |popcon.php? |/m/make.html) |make-doc | | |package=make) | |

| |-------------------+----------------+----------------------+------------------| | |V:7, I:65 (http:| | | |xutils-dev (http://|//qa.debian.org/|1421 (http:// |imake(1), xmkmf (1),| |packages.debian.org|popcon.php? |packages.qa.debian.org|etc. | |/sid/xutils-dev) |package= |/x/xutils-dev.html) | | | |xutils-dev) | | | |-------------------+----------------+----------------------+------------------| | |V:615, I:996 | | | |mawk (http:// |(http:// |198 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|mawk(1) | |/sid/mawk) |popcon.php? |/m/mawk.html) | | | |package=mawk) | | | |-------------------+----------------+----------------------+------------------| | |V:784, I:994 | |perl(1) e pginas | |perl (http:// |(http:// |17097 (http:// |html | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizada s | |/sid/perl) |popcon.php? |/p/perl.html) |por perl-doc e | | |package=perl) | |perl-doc-html | |-------------------+----------------+----------------------+------------------| | |V:710, I:980 | |python(1) e pgin as| |python (http:// |(http:// |658 (http:// |html | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizada s | |/sid/python) |popcon.php? |/p/python.html) |por python-doc | | |package=python) | | | |-------------------+----------------+----------------------+------------------| | |V:73, I:448 | |tcl(3) e manuai s | |tcl8.4 (http:// |(http:// |2868 (http:// |detalhados | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado s | |/sid/tcl8.4) |popcon.php? |/t/tcl8.4.html) |pelo tcl8.4-doc | | |package=tcl8.4) | |

| |-------------------+----------------+----------------------+------------------| | |V:28, I:234 | |tk(3) e manuais | |tk8.4 (http:// |(http:// |2426 (http:// |detalhados | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado s | |/sid/tk8.4) |popcon.php? |/t/tk8.4.html) |pelo tk8.4-doc | | |package=tk8.4) | | | |-------------------+----------------+----------------------+------------------| | |V:68, I:246 | |ruby(1) e a | |ruby (http:// |(http:// |31 (http:// |referncia | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|interactiva | |/sid/ruby) |popcon.php? |/r/ruby.html) |disponibilizada | | |package=ruby) | |pelo ri | |-------------------+----------------+----------------------+------------------| | |V:168, I:400 | | | |vim (http:// |(http:// |1877 (http:// |help(F1) menu | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|disponibilizado por| |/sid/vim) |popcon.php? |/v/vim.html) |vim-doc | | |package=vim) | | | |-------------------+----------------+----------------------+------------------| | |I:0 (http:// | |buscar "The Sin gle | |susv2 (http:// |qa.debian.org/ |48 (http:// |Unix Specificat ions| |packages.debian.org|popcon.php? |packages.qa.debian.org|v2 (http:// | |/sid/susv2) |package=susv2) |/s/susv2.html) |www.unix.org/ | | | | |version2/) " | |-------------------+----------------+----------------------+------------------| | |I:0 (http:// | |buscar "The Sin gle | |susv3 (http:// |qa.debian.org/ |48 (http:// |Unix Specificat ions| |packages.debian.org|popcon.php? |packages.qa.debian.org|v3 (http:// | |/sid/susv3) |package=susv3) |/s/susv3.html) |www.unix.org/ | | | | |version3/) "

| +------------------------------------------------------------------------------+ Esto disponveis referncias online ao escrever "man nome" aps instalar os pacotes manpages e manpages-dev. As referncias online s ferramentas GNU est disponveis ao escrever "info nome_do_programa" aps instalar os pacotes de documentao pertinentes. Poder ter de incluir os arquivos contrib e non-free adicionalmente ao arquivo main pois algumas documentaes GFDL no so consideradas compatveis com DFSG. Ateno No use "test" como o nome de um ficheiro de teste executvel. "test" um comando embutido na shell. Cuidado Voc deve instalar os programas compilados directamente a partir da fonte em "/usr/local" ou "/opt" para evitar colises com os programas do sistema. Dica Os Exemplos de cdigo da criao de "Song 99 Bottles of Beer" (http://www.99-bottles-of-beer.net/) devem dar-lhe uma boa ideia de praticamente todas as linguagens de programao. 12.1. O script de shell O script de shell (http://en.wikipedia.org/wiki/Shell_script) um ficheiro de texto com o bit de execuo definido e contm os comandos no seguinte formato. #!/bin/sh ... linhas de comando A primeira linha especifica o interpretador shell que l e executa o contedo deste ficheiro. Ler scripts de shell a melhor maneira de compreender como um sistema tipo Unix funciona. Aqui, Eu dou alguns apontamentos e lembranas para programao de shell. Veja "Erros de Shell" ( http://www.greenend.org.uk/rjk/2001/04/shell.html (http:// www.greenend.org.uk/rjk/2001/04/shell.html) ) para aprender a partir de erros. Ao contrrio do modo interactivo de shell (veja Seco1.5, O comando simples da shell e Seco1.6, Processamento de texto estilo Unix), os scripts de shell usam frequentemente parmetros, condicionais, e ciclos. 12.1.1. Compatibilidade da shell do POSIX Muitos scripts de sistema podem ser interpretados por qualquer uma das shells POSIX (http://en.wikipedia.org/wiki/POSIX) (veja Tabela1.13, Lista de programas da shell). A shell predefinida para o sistema "/bin/sh" o qual um link simblico para o

programa real. * bash(1) para lenny ou mais antigo * dash(1) para squeeze ou mais recente Evite escrever um script de shell com bashisms ou zshisms para o tornar portvel entre todas as shells do POSIX. Voc pode verificar isto usando o checkbashisms(1). Tabela 12.2. Lista dos 'bashisms' tpicos +---------------------------------------------------------------+ |Bom: POSIX |Evitar: 'bashism' | |-------------------------------+-------------------------------| |if [ "$foo" = "$bar" ] ; then |if [ "$foo" == "$bar" ] ; then | | | | |-------------------------------+-------------------------------| |diff -u file.c.orig file.c |diff -u file.c{.orig,} | |-------------------------------+-------------------------------| |mkdir /foobar /foobaz |mkdir /foo{bar,baz} | |-------------------------------+-------------------------------| |funcname() { } |function funcname() { } | |-------------------------------+-------------------------------| |formato octal: "\377" |formato hexadecimal: "\xff" | +---------------------------------------------------------------+ O comando "echo" tem de ser usado com os seguintes cuidados porque a sua implementao difere entre o integrado na shell e os comandos externos. * Evite usar a opo de comando "-e" e "-E". * Evite usar quaisquer opes de comando excepto "-n". * Evite usar sequncias de escape na string porque o seu manuseamento varia. Nota Apesar da opo "-n" no ser realmente sintaxe POSIX, geralmente aceite. Dica Use o comando "printf" em vez do comando "echo" se precisar de embeber sequncias de escape na string de sada. 12.1.2. Parmetros da shell Parmetros de shell especiais so frequentemente usados no script shell. Tabela 12.3. Lista de parmetros da shell +---------------------------------------------------------------+ |parmetro da |valor | |shell | | |-----------------+---------------------------------------------|

|$0 |nome da shell ou script de shell | |-----------------+---------------------------------------------| |$1 |primeiro(1) argumento shell | |-----------------+---------------------------------------------| |$9 |nono(9) argumento shell | |-----------------+---------------------------------------------| |$# |nmero de parmetros de posio | |-----------------+---------------------------------------------| |"$*" |"$1 $2 $3 $4 " | |-----------------+---------------------------------------------| |"$@" |"$1" "$2" "$3" "$4" | |-----------------+---------------------------------------------| |$? |estado de sada do comando mais recente | |-----------------+---------------------------------------------| |$$ |PID deste script shell | |-----------------+---------------------------------------------| |$! |PID da tarefa de fundo iniciada mais | | |recentemente | +---------------------------------------------------------------+ As expanses de parmetro bsicas a lembrar so as seguintes. Tabela 12.4. Lista de expanses de parmetros de shell +---------------------------------------------------------------+ |formato da |valor se var |valor se var no estiver | |expresso do |estiver definido|definido | |parmetro | | | |-------------------+----------------+--------------------------| |${var:-string} |"$var" |"string" | |-------------------+----------------+--------------------------| |${var:+string} |"string" |"null" | |-------------------+----------------+--------------------------| |${var:=string} |"$var" |"string" (e corra "var= | | | |string") | |-------------------+----------------+--------------------------| |${var:?string} |"$var" |echo "string" para stderr | | | |(e termina com erro) | +---------------------------------------------------------------+ Aqui, o smbolo ortogrfico dois pontos ":" em todas estas operaes na realidade opcional. * com ":" = teste de operador para existe e no nulo * sem ":" = teste de operador para apenas existe Tabela 12.5. Lista de substituies de parmetros de shell chave +---------------------------------------------------------------+ |formato de substituio de |resultado | |parmetro | | |--------------------------------+------------------------------| |${var%suffix} |remover o padro de sufixo | | |menor | |--------------------------------+------------------------------| |${var%%suffix} |remover o padro de sufixo | | |maior |

|--------------------------------+------------------------------| |${var#prefix} |remover o padro de prefixo | | |menor | |--------------------------------+------------------------------| |${var##prefix} |remover o padro de prefixo | | |maior | +---------------------------------------------------------------+ 12.1.3. Condicionais da shell Cada comando retorna um estado de sada que pode ser usado para expresses condicionais. * Sucesso: 0 ("True") * Erro: no 0 ("False") Nota "0" no contexto condicional da shell significa "Verdadeiro", enquanto "0" no contexto condicional de C significa "Falso". Nota "[" o equivalente do comando test, o qual avalia os seus argumentos at ao "]" como uma expresso condicional. Os idiomas condicionais bsicos a lembrar so os seguintes. * "<comando> && <se_sucesso_corre_tambm_este_comando> || true" * "<comando> || <se_no_sucesso_corre_tambm_este_comando> || true" * Um fragmento de script de multi-linhas como o seguinte if [ <expresso_condicional> ]; then <se_sucesso_corre_este-comando> else <se_no_sucesso_corre_este_comando> fi Aqui o "|| true" final foi necessrio para assegurar que estes script de shell no termina acidentalmente nesta linha quando a shell invocada com a flag "-e". Tabela 12.6. Lista de operadores de comparao de ficheiros na expresso condicional +---------------------------------------------------------------+ |equao |condio para retornar o verdadeiro lgico | |----------------+----------------------------------------------| |-e <ficheiro> |<ficheiro> existe | |----------------+----------------------------------------------| |-d <ficheiro> |<ficheiro> existe e um directrio | |----------------+----------------------------------------------| |-f <ficheiro> |<ficheiro> existe e um ficheiro normal | |----------------+----------------------------------------------| |-w <ficheiro> |<ficheiro> existe e pode-se escrever nele |

|----------------+----------------------------------------------| |-x <ficheiro> |<ficheiro> existe e executvel | |----------------+----------------------------------------------| |<ficheiro1> -nt |<ficheiro1> mais recente que <ficheiro2> | |<ficheiro2> |(modificao) | |----------------+----------------------------------------------| |<ficheiro1> -ot |<ficheiro1> mais antigo que <ficheiro2> | |<ficheiro2> |(modificao) | |----------------+----------------------------------------------| |<ficheiro1> -ef |<ficheiro1> e <ficheiro2> esto no mesmo | |<ficheiro2> |dispositivo e no mesmo nmero de inode | +---------------------------------------------------------------+ Tabela 12.7. Lista de operadores de comparao de strings na expresso condicional +---------------------------------------------------------------+ |equao |condio para retornar o verdadeiro lgico | |---------------+-----------------------------------------------| |-z <str> |o comprimento de <str> zero | |---------------+-----------------------------------------------| |-n <str> |o comprimento de <str> no zero | |---------------+-----------------------------------------------| |<str1> = <str2>|<str1> and <str2> so iguais | |---------------+-----------------------------------------------| |<str1> != |<str1> and <str2> no so iguais | |<str2> | | |---------------+-----------------------------------------------| |<str1> < <str2>|<str1> ordena antes de <str2> (dependente do | | |locale) | |---------------+-----------------------------------------------| |<str1> > <str2>|<str1> ordena aps <str2> (dependente do | | |locale) | +---------------------------------------------------------------+ Os operadores de comparao Aritmtica de inteiros na expresso regular so "-eq", "-ne", "-lt", "-le", "-gt", e "-ge". 12.1.4. Ciclos (loops) da shell Existem vrios idiomas de ciclo para usar na shell POSIX. * "for x in foo1 foo2 ; do command ; done" faz ciclos ao atribuir itens da lista "foo1 foo2 " varivel "x" e executando o "comando". * "while condition ; do command ; done" repete o "comando" enquanto a "condio" for verdadeira. * "until condition ; do command ; done" repete o "comando" enquanto a "condio" no for verdadeira. * "break" permite sair do ciclo. * "continue" permite resumir a prxima interaco do ciclo. Dica

A interaco numrica tipo linguagem C (http://en.wikipedia.org/ wiki/C_(programming_language)) pode ser realizada usando seq(1) como o gerador de "foo1 foo2 ". Dica Veja Seco9.5.9, Repetindo um ciclo de comandos sobre ficheiros. 12.1.5. A sequncia de processamento da linha de comandos da shell A shell processa um script rudemente como a seguinte sequncia * A shell l uma linha. * A shell agrupa uma parte de uma linha como um testemunho se estiver dentro de "" ou ''. * A shell divide a outra parte de uma linha em testemunhos como o seguinte. o Espaos em branco: <espao> <tab> <nova-linha> o Meta-caracteres: < > | ; & ( ) * A shell verifica a palavra reservada para cada testemunho para ajustar o seu comportamento se no dentro de "" ou ''. o palavra reservada: if then elif else fi for in while unless do done case esac * A shell expande o alias se no estiver dentro de "" ou ''. * A shell expande o til se no dentro de "" ou ''. o "~" directrio home do utilizador actual o "~<utilizador>" directrio home do <utilizador> * A shell expande o parmetro ao seu valor se no dentro de ''. o parmetro: "$PARAMETER" ou "${PARAMETER}" * A shell expande a substituio do comando se no dentro de ''. o "$( comando )" o resultado do "comando" o "` comando `" o resultado do "comando" * A shell expande o glob nome_de-caminho para os nomes de ficheiros correspondentes se no dentro de "" ou ''. o * quaisquer caracteres o ? um caractere o [] qualquer um dos caracteres em ""

* A shell procura o comando a partir do seguinte e executa-o. o definio de funo o comando builtin o ficheiro executvel em "$PATH" * A shell vai para a prxima linha e repete este processo outra vez a partir do topo desta sequncia. Citaes singulares (') dentro de aspas no tm efeito. Executar "set -x" na shell ou invocar a shell com a opo "-x" faz a shell escrever todos os comandos executados. Isto muito til para depurao. 12.1.6. Programas utilitrios para script de shell De modo a tornar o seu programa de shell o mais portvel possvel entre o sistema Debian, uma boa ideia limitar os programas utilitrios queles disponibilizados pelos pacotes essenciais. * "aptitude search ~E" lista os pacotes essenciais. * "dpkg -L <nome_do-pacote> |grep '/man/man.*/'" lista as manpages (manuais) para o comandos oferecidos pelo pacote <nome_do_pacote>. Tabela 12.8. Lista de pacotes que contm programas utilitrios pequenos para scripts de shell +--------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+-----------| | |V:902, I:999 | | | |coreutils (http:// |(http:// |13731 (http:// |utilitrios| |packages.debian.org|qa.debian.org|packages.qa.debian.org|de ncleo | |/sid/coreutils) |/popcon.php? |/c/coreutils.html) |GNU | | |package= | | | | |coreutils) | | | |-------------------+-------------+----------------------+-----------| | |V:954, I:999 | | | |debianutils (http:/|(http:// |243 (http:// |utilitrios| |/ |qa.debian.org|packages.qa.debian.org|variados | |packages.debian.org|/popcon.php? |/d/debianutils.html) |especficos| |/sid/debianutils) |package= | |do Debian | | |debianutils) | | | |-------------------+-------------+----------------------+-----------| | |V:870, I:998 | | | |bsdmainutils (http:|(http:// |558 (http:// |coleco de| |// |qa.debian.org|packages.qa.debian.org|mais | |packages.debian.org|/popcon.php? |/b/bsdmainutils.html) |utilitrios| |/sid/bsdmainutils) |package= | |do FreeBSD | | |bsdmainutils)| | | |-------------------+-------------+----------------------+-----------| | |V:828, I:999 | | | |bsdutils (http:// |(http:// |189 (http:// |utilitrios| |packages.debian.org|qa.debian.org|packages.qa.debian.org|bsicos do | |/sid/bsdutils) |/popcon.php? |/b/bsdutils.html) |4.4BSD-Lite|

| |package= | | | | |bsdutils) | | | |-------------------+-------------+----------------------+-----------| | |V:4, I:16 | | | |moreutils (http:// |(http:// |158 (http:// |utilitrios| |packages.debian.org|qa.debian.org|packages.qa.debian.org|Unix | |/sid/moreutils) |/popcon.php? |/m/moreutils.html) |adicionais | | |package= | | | | |moreutils) | | | +--------------------------------------------------------------------+ Dica Apesar de moreutils poder no existir fora de Debian, oferece pequenos programas interessantes. O mais notvel o sponge(8) que bastante til quando desejar sobreescrever o ficheiro original. 12.1.7. Dilogo do script de shell A interface de utilizador de um programa simples de shell pode ser melhorada a partir de interaco aborrecida pelos comandos echo e read para uma mais interactiva ao usar um dos chamados programas de dilogo, etc. Tabela 12.9. Lista de programas de interface de utilizador +---------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+------------| | |V:299, I:606 | |xmessage(1):| |x11-utils (http:// |(http:// |554 (http:// |mostra uma | |packages.debian.org|qa.debian.org|packages.qa.debian.org|mensagem ou | |/sid/x11-utils) |/popcon.php? |/x/x11-utils.html) |questo numa| | |package= | |janela (X) | | |x11-utils) | | | |-------------------+-------------+----------------------+------------| | | | |mostra | | |V:415, I:994 | |caixas de | |whiptail (http:// |(http:// |87 (http:// |dilogo | |packages.debian.org|qa.debian.org|packages.qa.debian.org|amigas do | |/sid/whiptail) |/popcon.php? |/w/whiptail.html) |utilizador a| | |package= | |partir de | | |whiptail) | |scripts de | | | | |shell (newt)| |-------------------+-------------+----------------------+------------| | | | |mostra | | |V:25, I:159 | |caixas de | | |(http:// | |dilogo | |dialog (http:// |qa.debian.org|1231 (http:// |amigas do | |packages.debian.org|/popcon.php? |packages.qa.debian.org|utilizador a| |/sid/dialog) |package= |/d/dialog.html) |partir de | | |dialog) | |scripts de | | | | |shell | | | | |(ncurses) | |-------------------+-------------+----------------------+------------| | | | |mostra | | |V:128, I:451 | |caixas de | |zenity (http:// |(http:// |324 (http:// |dilogo |

|packages.debian.org|qa.debian.org|packages.qa.debian.org|grficas a | |/sid/zenity) |/popcon.php? |/z/zenity.html) |partir de | | |package= | |scripts de | | |zenity) | |shell | | | | |(gtk2.0) | |-------------------+-------------+----------------------+------------| | | | |Ferramenta | | | | |Frontend de | | |V:0, I:1 | |Scripts de | |ssft (http:// |(http:// |152 (http:// |Shell | |packages.debian.org|qa.debian.org|packages.qa.debian.org|(wrapper | |/sid/ssft) |/popcon.php? |/s/ssft.html) |para o | | |package=ssft)| |zenity, | | | | |kdialog, e | | | | |dialog com o| | | | |gettext) | |-------------------+-------------+----------------------+------------| | |V:72, I:406 | | | |gettext (http:// |(http:// |6403 (http:// |"/usr/bin/ | |packages.debian.org|qa.debian.org|packages.qa.debian.org|gettext.sh":| |/sid/gettext) |/popcon.php? |/g/gettext.html) |traduz | | |package= | |mensagem | | |gettext) | | | +---------------------------------------------------------------------+ 12.1.8. Exemplo de script de shell com zenity Aqui est um script simples que cria uma imagem ISO com dados RS02 fornecidos por dvdisaster(1). #!/bin/sh -e # gmkrs02 : Copyright (C) 2007 Osamu Aoki <[email protected]>, Public Domain #set -x error_exit() { echo "$1" >&2 exit 1 } # Initialize variables DATA_ISO="$HOME/Desktop/iso-$$.img" LABEL=$(date +%Y%m%d-%H%M%S-%Z) if [ $# != 0 ] && [ -d "$1" ]; then DATA_SRC="$1" else # Select directory for creating ISO image from folder on desktop DATA_SRC=$(zenity --file-selection --directory \ --title="Select the directory tree root to create ISO image") \ || error_exit "Exit on directory selection" fi # Check size of archive xterm -T "Check size $DATA_SRC" -e du -s $DATA_SRC/* SIZE=$(($(du -s $DATA_SRC | awk '{print $1}')/1024)) if [ $SIZE -le 520 ] ; then zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="The data size is good for CD backup:\\n $SIZE MB" elif [ $SIZE -le 3500 ]; then zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="The data size is good for DVD backup :\\n $SIZE MB" else

zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="The data size is too big to backup : $SIZE MB" error_exit "The data size is too big to backup :\\n $SIZE MB" fi # only xterm is sure to have working -e option # Create raw ISO image rm -f "$DATA_ISO" || true xterm -T "genisoimage $DATA_ISO" \ -e genisoimage -r -J -V "$LABEL" -o "$DATA_ISO" "$DATA_SRC" # Create RS02 supplemental redundancy xterm -T "dvdisaster $DATA_ISO" -e dvdisaster -i "$DATA_ISO" -mRS02 -c zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="ISO/RS02 data ($SIZE MB) \\n created at: $DATA_ISO" # EOF Voc pode desejar criar um lanador no ambiente de trabalho com um conjunto de comandos algo como "/usr/local/bin/gmkrs02 %d". 12.2. Make O Make (http://en.wikipedia.org/wiki/Make_(software)) um utilitrio para manuteno de grupos de programas Aps a execuo do make(1), o make l o ficheiro de regras, "Makefile", e actualiza um alvo se depender de ficheiros pr-requisitados que foram modificados desde que o alvo foi modificado por ltimo, ou se o alvo no existir. A execuo destas actualizaes pode ocorrer concorrentemente. A regra de sintaxe do ficheiro a seguinte. target: [TAB] [TAB] [TAB] [ pr-requisitos ... ] comando1 -comando2 # ignora erros @comando3 # suprime os ecos

Aqui "[TAB]" um cdigo TAB. Cada linha interpretada pela shell aps fazer a substituio da varivel. Use "$$" para inserir "$" para valores de ambiente para um script de shell. Podem ser escritas regras implcitas para o destino e pr-requisitos, por exemplo, com o seguinte. %.o: %.c header.h Aqui, o alvo contm o caractere "%" (exactamente um deles). O "%" pode corresponder a qualquer substring no vazia nos nomes de ficheiros do prprio alvo. Os pr-requisitos usam igualmente "%" para mostrar como os seus nomes esto relacionados ao prprio nome do alvo. Tabela 12.10. Lista de variveis automticas do make +---------------------------------------------------------------+ |varivel |valor | |automtica | | |-----------------+---------------------------------------------| |$@ |alvo | |-----------------+---------------------------------------------| |$< |primeiro pr-requisito | |-----------------+---------------------------------------------|

|$? |todos os novos pr-requisitos | |-----------------+---------------------------------------------| |$^ |todos os pr-requisitos | |-----------------+---------------------------------------------| |$* |"%" estaminal correspondente no padro de | | |destino | +---------------------------------------------------------------+ Tabela 12.11. Lista de expanses da varivel do make +----------------------------------------+ |expanso da varivel|descrio | |--------------------+-------------------| |foo1 := bar |expanso de uma vez| |--------------------+-------------------| |foo2 = bar |expanso recursiva | |--------------------+-------------------| |foo3 += bar |acrescentar | +----------------------------------------+ Corra "make -p -f/dev/null" para ver as regras internas automticas. 12.3. C Voc pode configurar um ambiente apropriado para compilar programas escritos na linguagem de programao C (http:// en.wikipedia.org/wiki/C_(programming_language)) com o seguinte. # apt-get install glibc-doc manpages-dev libc6-dev gcc build-essential O pacote libc6-dev, isto , a biblioteca C GNU, disponibiliza uma biblioteca standard C (http://en.wikipedia.org/wiki/ C_standard_library) a qual uma coleco de ficheiros cabealho e rotinas de biblioteca usadas pela linguagem de programao C. Veja referncias para C nos seguintes. * "info libc" (Referncia de funes da biblioteca C) * gcc(1) e "info gcc" * cada-nome_de_funo_da_biblioteca_C(3) * Kernighan & Ritchie, "A Linguagem de Programao C", 2 edio (Prentice Hall) 12.3.1. Programa C simples (gcc) Um simples exemplo, "example.c" pode ser compilado com uma biblioteca "libm" num executvel "run_example" com o seguinte. $ cat > example.c << EOF #include <stdio.h> #include <math.h> #include <string.h> int main(int argc, char **argv, char **envp){

double x; char y[11]; x=sqrt(argc+7.5); strncpy(y, argv[0], 10); /* prevent buffer overflow */ y[10] = '\0'; /* fill to make sure string ends with '\0' */ printf("%5i, %5.3f, %10s, %10s\n", argc, x, y, argv[1]); return 0; } EOF $ gcc -Wall -g -o run_example example.c -lm $ ./run_example 1, 2.915, ./run_exam, (null) $ ./run_example 1234567890qwerty 2, 3.082, ./run_exam, 1234567890qwerty

Aqui, o "-lm" necessrio para ligar a biblioteca "/usr/lib/ libm.so" do pacote libc6 para o sqrt(3). A biblioteca real est em "/lib/" com o nome de ficheiro "libm.so.6", o qual um link simblico para "libm-2.7.so". Olhe para o ltimo parmetro no texto resultante. Existem mais de 10 caracteres mesmo com "%10s" especificado. O uso de funes de operao de memria de ponteiro sem verificaes de limites como em sprintf(3) e strcpy(3), est descontinuado para prevenir exploits de sobrelotao do buffer que influenciam os efeitos de transbordo em cima. Em vez disso, use snprintf(3) e strncpy(3). 12.4. Depurao A depurao uma parte importante das actividades de programao. Saber como depurar programas faz de si um bom utilizador de Debian capaz de produzir relatrios de bugs significantes. 12.4.1. Execuo gdb bsica O depurador (http://en.wikipedia.org/wiki/Debugger) principal em Debian o gdb(1) que lhe permite inspeccionar um programa enquanto ele executado. Vamos instalar o gdb e programas relacionados com o seguinte. # apt-get install gdb gdb-doc build-essential devscripts Um bom tutorial do gdb disponibilizado pelo "info gdb" ou encontrado em qualquer stio na web (http://www.unknownroad.com/ rtfm/gdbtut/gdbtoc.html) . Aqui est um exemplo simples de uso do gdb(1) num "program" compilado com a opo "-g" para produzir informao de depurao. $ gdb (gdb) (gdb) (gdb) ... (gdb) ... (gdb) program b 1 run args next step p parm # define ponto de paragem na linha 1 # corre o programa com argumentos # prxima linha # passo em frente # escreve o parm

... (gdb) p parm=12 ... (gdb) quit Dica

# define valor para 12

Muitos comandos do gdb(1) podem ser abreviados. A expanso da Tab funciona como na shell. 12.4.2. Depurar o pacote Debian Como todos os binrios instalados devem estar 'despidos' de smbolos no sistema Debian por predefinio, a maioria dos smbolos de depurao so removidos no pacote normal. De modo a depurar pacotes Debian com o gdb(1), os pacotes *-dbg correspondentes precisam de ser instalados (ex. libc6-dbg no caso do libc6). Se um pacote a ser depurado no disponibilizar o seu pacote *-dbg, necessita instal-lo aps o recompilar com o seguinte. $ $ $ $ $ $ $ mkdir /path/new ; cd /path/new sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install fakeroot devscripts build-essential sudo apt-get build-dep nome_do_pacote_fonte apt-get source nome_do_pacote cd nome_do_pacote*

Corrigir bugs se necessrio. Mude a verso de pacote para uma que no colida com oficiais de Debian, por exemplo, uma adicionada com quando se recompila uma verso de pacote existente, adicionada com "~pre1" quando se compila uma verso ainda no lanada com o seguinte. $ dch -i arCompile e instalar pacotes com smbolos de depurao com o seguinte. $ $ $ $ export DEB_BUILD_OPTIONS=nostrip,noopt debuild cd .. sudo debi nome_do_pacote*.changes as verses "+debug1" ou uma de pacote

Necessita verificar os scripts de construo do pacote e assegurar o uso de "CFLAGS=-g -Wall" para compilar binrios. 12.4.3. Obter um backtrace Quando encontrar um crash num programa, uma boa ideia enviar um relatrio de bug com informao de backtrace copiada-e-colada. O backtrace pode ser obtido com os seguinte passos. * Correr o programa sob gdb(1).

* Reproduzir o erro (crash). o Isso faz com que voc volte para o aviso do gdb. * Escreva "bt" no aviso do gdb. No caso do programa congelar, voc pode 'crashar' o programa ao pressionar Ctrl-C no terminal que correr o gdb para obter o aviso do gdb. Dica Muitas vezes, voc v um backtrace onde uma ou mais linhas do topo esto em "malloc()" ou "g_malloc()". Quando isto acontece, h grandes hipteses do seu backtrace no ser muito til. O modo mais fcil de encontrar alguma informao til definir a varivel de ambiente "$MALLOC_CHECK_" para um valor de 2 (malloc (3)). Voc pode fazer isto enquanto corre o gdb ao fazer o seguinte. $ MALLOC_CHECK_=2 gdb hello 12.4.4. Comandos gdb avanados Tabela 12.12. Lista de comandos gdb avanados +---------------------------------------------------------------+ |comando |descrio dos objectivos do comando | |----------------+----------------------------------------------| |(gdb) thread |obter um backtrace para todos os processos de | |apply all bt |um programa de multi-processo | |----------------+----------------------------------------------| |(gdb) bt full |obter parmetros que vm na pilha das chamadas| | |de funo | |----------------+----------------------------------------------| |(gdb) thread |obtm um backtrace e parmetros como a | |apply all bt |combinao das opes precedentes | |full | | |----------------+----------------------------------------------| |(gdb) thread |obter um backtrace e parmetros para as 10 | |apply all bt |chamadas do topo para cortar resultados | |full 10 |irrelevantes | |----------------+----------------------------------------------| |(gdb) set |escreve um relatrio dos resultados do gdb | |logging on |para um ficheiro (a predefinio "gdb.txt") | +---------------------------------------------------------------+ 12.4.5. Depurar Erros do X Se o programa do GNOME preview1 recebeu um erro do X, voc dever ver a mensagem que se segue. O programa 'preview1' recebeu um erro do X Window System. Neste caso, voc pode tentar correr o programa com "--sync", e quebrar a funo "gdk_x_error" de modo a obter um backtrace. 12.4.6. Verificar a dependncia em bibliotecas

Use o ldd(1) para encontrar uma dependncia de um programa em bibliotecas com o seguinte. $ ldd /bin/ls librt.so.1 => /lib/librt.so.1 (0x4001e000) libc.so.6 => /lib/libc.so.6 (0x40030000) libpthread.so.0 => /lib/libpthread.so.0 (0x40153000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Para que o ls(1) funcione num ambiente 'chroot', as bibliotecas em cima tm de estar disponveis no seu ambiente 'chroot'. Veja Seco9.5.6, Rastear as actividades de programas. 12.4.7. Ferramentas de deteco de fugas de memria Aqui esto vrias ferramentas de deteco de fugas de memria em Debian. Tabela 12.13. Lista de ferramentas de deteco de fugas de memria +--------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+---------------+----------------------+---------------| | |V:401, I:694 | | | |libc6-dev (http:// |(http:// |10588 (http:// |mtrace(1): | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|funcionalidades| |/sid/libc6-dev) |popcon.php? |/libc/libc6-dev.html) |de depurao do| | |package= | |malloc em glibc| | |libc6-dev) | | | |-------------------+---------------+----------------------+---------------| | |V:13, I:83 | | | |valgrind (http:// |(http:// |103575 (http:// |depurador e | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|perfilador de | |/sid/valgrind) |popcon.php? |/v/valgrind.html) |memria | | |package= | | | | |valgrind) | | | |-------------------+---------------+----------------------+---------------| | |V:3, I:35 | |Rastreador de | |kmtrace (http:// |(http:// |260 (http:// |fugas de | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|memria do KDE | |/sid/kmtrace) |popcon.php? |/k/kmtrace.html) |que usa o | | |package= | |mtrace(1) da | | |kmtrace) | |glibc | |-------------------+---------------+----------------------+---------------| | |V:0, I:3 (http:| |Frontend do | |alleyoop (http:// |//qa.debian.org|948 (http:// |GNOME para o | |packages.debian.org|/popcon.php? |packages.qa.debian.org|verificador de | |/sid/alleyoop) |package= |/a/alleyoop.html) |memria | | |alleyoop) | |Valgrind | |-------------------+---------------+----------------------+---------------| |electric-fence |V:0, I:14 | | | |(http:// |(http:// |49 (http:// | | |packages.debian.org|qa.debian.org/ |packages.qa.debian.org|o depurador | |/sid/ |popcon.php? |/e/ |malloc(3) | |electric-fence) |package= |electric-fence.html) | | | |electric-fence)| | | |-------------------+---------------+----------------------+---------------| | |V:0, I:4 (http:| |rastreador de | |leaktracer (http://|//qa.debian.org|116 (http:// |fugas de |

|packages.debian.org|/popcon.php? |packages.qa.debian.org|memria para | |/sid/leaktracer) |package= |/l/leaktracer.html) |programas C++ | | |leaktracer) | | | |-------------------+---------------+----------------------+---------------| |libdmalloc5 (http:/|V:0, I:5 (http:|329 (http:// |biblioteca de | |/ |//qa.debian.org|packages.qa.debian.org|depurao de | |packages.debian.org|/popcon.php? |/libd/ |alocao de | |/sid/libdmalloc5) |package= |libdmalloc5.html) |memria | | |libdmalloc5) | | | +--------------------------------------------------------------------------+ 12.4.8. Ferramentas de anlise de cdigo esttico Existem ferramentas tipo lint (http://en.wikipedia.org/wiki/ Lint_programming_tool) para anlise esttica de cdigo (http:// en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) . Tabela 12.14. Lista de ferramentas para anlise de cdigo esttico +-----------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+--------------+----------------------+-------------| | |V:0, I:8 | |ferramenta | |splint (http:// |(http:// |1836 (http:// |para | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|verificao | |/sid/splint) |popcon.php? |/s/splint.html) |esttica de | | |package= | |programas C | | |splint) | |por bugs | |-------------------+--------------+----------------------+-------------| | | | |Ferramenta | | |V:0, I:1 | |geral de | |rats (http:// |(http:// |876 (http:// |Auditoria de | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|Segurana | |/sid/rats) |popcon.php? |/r/rats.html) |(cdigo C, | | |package=rats) | |C++, PHP, | | | | |Perl, e | | | | |Python) | |-------------------+--------------+----------------------+-------------| | |V:0, I:1 | |ferramenta | | |(http:// | |para examinar| |flawfinder (http://|qa.debian.org/|188 (http:// |cdigo fonte | |packages.debian.org|popcon.php? |packages.qa.debian.org|C/C++ e | |/sid/flawfinder) |package= |/f/flawfinder.html) |procurar por | | |flawfinder) | |fraquezas na | | | | |segurana | |-------------------+--------------+----------------------+-------------| | | | |interpretador| | |V:784, I:994 | |com | |perl (http:// |(http:// |17097 (http:// |verificador | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|de cdigo | |/sid/perl) |popcon.php? |/p/perl.html) |esttico | | |package=perl) | |interno: | | | | |B::Lint | | | | |(3perl) | |-------------------+--------------+----------------------+-------------| | |V:2, I:12 | | | |pylint (http:// |(http:// |416 (http:// |Verificador | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|esttico de | |/sid/pylint) |popcon.php? |/p/pylint.html) |cdigo Python|

| |package= | | | | |pylint) | | | |-------------------+--------------+----------------------+-------------| | |V:0, I:0 | | | |jlint (http:// |(http:// |124 (http:// |Verificador | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|de programa | |/sid/jlint) |popcon.php? |/j/jlint.html) |Java | | |package=jlint)| | | |-------------------+--------------+----------------------+-------------| | |V:0, I:4 | | | |weblint-perl (http:|(http:// |57 (http:// |Verificado de| |// |qa.debian.org/|packages.qa.debian.org|sintaxe e | |packages.debian.org|popcon.php? |/w/weblint-perl.html) |estilo mnimo| |/sid/weblint-perl) |package= | |para HTML | | |weblint-perl) | | | |-------------------+--------------+----------------------+-------------| | |V:0, I:2 | |verificador | |linklint (http:// |(http:// |432 (http:// |de links | |packages.debian.org|qa.debian.org/|packages.qa.debian.org|rpido e | |/sid/linklint) |popcon.php? |/l/linklint.html) |ferramenta de| | |package= | |manuteno de| | |linklint) | |sites web | |-------------------+--------------+----------------------+-------------| | |V:42, I:506 | |utilitrios | |libxml2-utils |(http:// |146 (http:// |com xmllint | |(http:// |qa.debian.org/|packages.qa.debian.org|(1) para | |packages.debian.org|popcon.php? |/libx/ |validar | |/sid/libxml2-utils)|package= |libxml2-utils.html) |ficheiros XML| | |libxml2-utils)| | | +-----------------------------------------------------------------------+ 12.4.9. Desassemblar binrio Voc pode desassemblar cdigo binrio com o objdump(1) com o seguinte. $ objdump -m i386 -b binary -D /usr/lib/grub/x86_64-pc/stage1 Nota O gdb(1) pode ser usado para desmontar (desassemblar) cdigo interactivamente. 12.5. Flex um Lex melhor. O Flex (http://en.wikipedia.org/wiki/Flex_lexical_analyser) um gerador rpido de anlise lxica (http://en.wikipedia.org/wiki/ Lexical_analysis) compatvel com o Lex (http://en.wikipedia.org/ wiki/Lex_programming_tool) . O tutorial do flex(1) pode ser encontrado em "info flex". Voc tem de fornecer o seu prprio "main()" e "yywrap()". Caso contrrio,o seu programa flex dever ficar como isto para compilar sem uma biblioteca. Isto porque o "yywrap" uma macro e a "%option main" liga implicitamente "%option noyywrap". %option main %%

.|\n %%

ECHO ;

Alternativamente, pode compilar com a opo "-lfl" do linker no final da sua linha de comandos cc(1) (como AT&T-Lex com "-ll"). Nenhuma "%opo" necessria neste caso. 12.6. Bison um Yacc melhor Vrios pacotes disponibilizam um gerador LR parser (http:// en.wikipedia.org/wiki/LR_parser) ou LALR parser (http:// en.wikipedia.org/wiki/LALR_parser) compatvel em frente com o Yacc (http://en.wikipedia.org/wiki/Yacc) em Debian. Tabela 12.15. Lista de geradores de anlise LALR compatveis com Yacc +-------------------------------------------------------------------------+ |pacote |popcon |tamanho |descrio | |-------------------+-------------+----------------------+----------------| | |V:19, I:145 | |gerador de | |bison (http:// |(http:// |1847 (http:// |anlise GNU LALR| |packages.debian.org|qa.debian.org|packages.qa.debian.org|(http:// | |/sid/bison) |/popcon.php? |/b/bison.html) |en.wikipedia.org| | |package= | |/wiki/GNU_bison)| | |bison) | | | |-------------------+-------------+----------------------+----------------| | |V:0, I:12 | | | |byacc (http:// |(http:// |143 (http:// |Gerador de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|anlise Berkeley| |/sid/byacc) |/popcon.php? |/b/byacc.html) |LALR | | |package= | | | | |byacc) | | | |-------------------+-------------+----------------------+----------------| | |V:0, I:0 | | | |btyacc (http:// |(http:// |248 (http:// |gerador de | |packages.debian.org|qa.debian.org|packages.qa.debian.org|anlises de | |/sid/btyacc) |/popcon.php? |/b/btyacc.html) |retrocesso | | |package= | |baseado no byacc| | |btyacc) | | | +-------------------------------------------------------------------------+ O tutorial para o bison(1) pode ser encontrado em "info bison". Tem de disponibilizar as suas prprias chamadas "main()" e "yyerror()". "main()" chama "yyparse()" que chama "yylex()", geralmente criada com Flex. %% %% 12.7. Autoconf Autoconf (http://en.wikipedia.org/wiki/Autoconf) uma ferramenta para produzir scripts de shell que configuram automaticamente pacotes de software em cdigo fonte para se adaptarem a muitos tipos de sistemas tipo-Unix usando o sistema de compilao completo do GNU.

O autoconf(1) produz o script de configurao "configure". O "configure" cria automaticamente um "Makefile" personalizado usando o modelo "Makefile.in". 12.7.1. Compilar e instalar um programa Ateno No substitua ficheiros do sistema com os seus programas compilados quando os instalar. Debian no toca nos ficheiros em "/usr/local/" ou em "/opt". Portanto se compilar um programa a partir do cdigo-fonte, instale-o em "/usr/local/" para que no interfira com o Debian. $ $ $ $ cd src ./configure --prefix=/usr/local make make install # isto coloca os ficheiros no sistema

12.7.2. Desinstalar um programa Se voc tiver a fonte original e esta utilizar autoconf(1)/ automake(1) e se voc se lembrar como o configurou, execute como o seguinte para desinstalar o programa. $ ./configure "todas-as-opes-que-fornecer" # make uninstall Em alternativa, se voc tiver a absoluta certeza que o processo de instalao apenas coloca ficheiros sob "/usr/local/" e no h l nada importante, voc pode apagar todos os seus contedos com o seguinte. # find /usr/local -type f -print0 | xargs -0 rm -f Se voc no tiver a certeza de onde os ficheiros esto instalados, deve considerar usar o checkinstall(8) do pacote checkinstall, que disponibiliza um caminho limpo para a desinstalao. Agora suporta criar um pacote Debian com a opo "-D". 12.8. A loucura dos scripts curtos de Perl Apesar de quaisquer scripts AWK (http://en.wikipedia.org/wiki/ AWK) poderem ser reescritos automaticamente em Perl (http:// en.wikipedia.org/wiki/Perl) usando o a2p(1), scripts AWK de uma linha ficam melhor convertidos manualmente para scripts Perl de uma linha. Vamos pensar seguindo o fragmento do script AWK. awk '($2=="1957") { print $3 }' | Isto equivalente a qualquer uma das seguintes linhas. perl -ne '@f=split; if ($f[1] eq "1957") { print "$f[2]\n"}' | perl -ne 'if ((@f=split)[1] eq "1957") { print "$f[2]\n"}' |

perl -ne '@f=split; print $f[2] if ( $f[1]==1957 )' | perl -lane 'print $F[2] if $F[1] eq "1957"' | perl -lane 'print$F[2]if$F[1]eq+1957' | Este ltimo um enigma. Aproveitei-me das seguintes funcionalidades do Perl. * O espao em branco opcional. * Existe a converso automtica de nmeros para string. Veja perlrun(1) para as opes de linha de comandos. Para mais scripts Perl doidos, Perl Golf (http://perlgolf.sourceforge.net) pode ser interessante. 12.9. Web Pginas web dinmicas interactivas podem ser feitas conforme se segue. * As questes so apresentadas ao explorador do utilizador usando formulrios HTML (http://en.wikipedia.org/wiki/HTML) . * Preencher e clicar nas entradas do formulrio envia uma das seguintes strings de URL (http://en.wikipedia.org/wiki/ Uniform_Resource_Locator) com parmetros codificados do explorador para o servidor web. o "http://www.foo.dom/cgi-bin/program.pl?VAR1=VAL1&VAR2= VAL2&VAR3=VAL3" o "http://www.foo.dom/cgi-bin/program.py?VAR1=VAL1&VAR2= VAL2&VAR3=VAL3" o "http://www.foo.dom/program.php?VAR1=VAL1&VAR2=VAL2&VAR3= VAL3" * O "%nn" no URL substitudo por um caractere com valor hexadecimal nn. * A varivel de ambiente est definida como: "QUERY_STRING= "VAR1=VAL1 VAR2=VAL2 VAR3=VAL3"". * O programa CGI (http://en.wikipedia.org/wiki/ Common_Gateway_Interface) (qualquer um de "program.*") no servidor web executa-se a si prprio com a varivel de ambiente "$QUERY_STRING". * O stdout do programa CGI enviado para o explorador web e apresentado como uma pgina web dinmica e interactiva. Por razes de segurana melhor no embarcar em novos hacks para analisar parmetros CGI. Existem mdulos definidos para eles em Perl e Python. O PHP (http://en.wikipedia.org/wiki/PHP) vem com estas funcionalidades. Quando necessrio o armazenamento de dados no cliente, usam-se cookies HTTP (http://en.wikipedia.org/ wiki/HTTP_cookie) . Quando necessrio o processamento de dados no lado do cliente, usa-se frequentemente Javascript (http://

en.wikipedia.org/wiki/JavaScript) . Para mais, veja Common Gateway Interface (http://en.wikipedia.org /wiki/Common_Gateway_Interface) , The Apache Software Foundation (http://en.wikipedia.org/wiki/Apache_Software_Foundation) , e JavaScript (http://en.wikipedia.org/wiki/JavaScript) . Procurar "CGI tutorial" no Google ao escrever directamente o URL codificado http://www.google.com/search?hl=en&ie=UTF-8&q= CGI+tutorial (http://www.google.com/search?hl=en&ie=UTF-8&q= CGI+tutorial) no endereo do explorador uma boa maneira de ver o script CGI em aco no servidor da Google. 12.10. A traduo do cdigo-fonte Existem programas para converter cdigo-fonte. Tabela 12.16. Lista de ferramentas de traduo de cdigo-fonte +------------------------------------------------------------------------------+ |pacote |popcon |tamanho |palavra |descrio | | | | |chave | | |-------------------+-------------+----------------------+---------+-----------| | |V:784, I:994 | | |converte r | |perl (http:// |(http:// |17097 (http:// | |cdigo-fon te| |packages.debian.org|qa.debian.org|packages.qa.debian.org|AWKPERL |de AWK par a | |/sid/perl) |/popcon.php? |/p/perl.html) | |PERL: a2 p(1)| | |package=perl)| | | | |-------------------+-------------+----------------------+---------+-----------| | |V:0, I:17 | | |converte r | |f2c (http:// |(http:// |424 (http:// | |cdigo-fon te| |packages.debian.org|qa.debian.org|packages.qa.debian.org|FORTRANC|de FORTRAN | |/sid/f2c) |/popcon.php? |/f/f2c.html) | |77 para C/ | | |package=f2c) | | |C++: f2c(1) | |-------------------+-------------+----------------------+---------+-----------| | |V:0, I:0 | | |Criar/ | |protoize (http:// |(http:// |125 (http:// | |remover | |packages.debian.org|qa.debian.org|packages.qa.debian.org|ANSI C |prottipos | |/sid/protoize) |/popcon.php? |/p/protoize.html) | |ANSI de | | |package= | | |cdigo C |

| |protoize) | | | | |-------------------+-------------+----------------------+---------+-----------| | |V:0, I:0 | | |converso r de| | |(http:// | | |NASM | |intel2gas (http:// |qa.debian.org|72 (http:// | |(formato | |packages.debian.org|/popcon.php? |packages.qa.debian.org|intelgas|Intel) par a | |/sid/intel2gas) |package= |/i/intel2gas.html) | |o GNU | | |intel2gas) | | |Assemble r | | | | | |(GAS) | +------------------------------------------------------------------------------+ 12.11. Criar um pacote Debian Se desejar criar um pacote Debian, leia o seguinte. * Captulo2, Gesto de pacotes Debian para compreender o sistema bsico de pacotes * Seco2.7.13, Portar um pacote para o sistema stable para compreender o processo bsico de portar * Seco9.8.4, Sistema chroot para compreender as tcnicas de chroot bsicas * debuild(1), pbuilder(1) e pdebuild(1) * Seco12.4.2, Depurar o pacote Debian para recompilar para depurao * Guia dos Novos Maintainers da Debian (http://www.debian.org/ doc/manuals/maint-guide/) como tutorial (o pacote maint-guide) * Referncia de Programadores da Debian (http://www.debian.org/ doc/manuals/developers-reference/) (o pacote developers-reference) * Manual de Polticas Debian (http://www.debian.org/doc/ debian-policy/) (o pacote debian-policy) Existem pacotes como os dh-make, dh-make-perl, etc., que auxiliam no processo em empacotamento. Apndice A. Apndice Aqui esto as origens deste documento. A.1. o labirinto Debian

O sistema Linux uma plataforma de computao muito poderosa para um computador em rede. No entanto, aprender a usar todas as suas capacidades no fcil. Configurar a impressora LPR com uma impressora no-PostScript era um bom exemplo para tropear. (No existe mais esse problema porque as instalaes recentes usam o novo sistema CUPS.) Existe um mapa completo e detalhado chamado o "CDIGO FONTE". Este muito preciso mas muito difcil de compreender. Existem tambm referncias chamadas HOWTO e mini-HOWTO. So mais fceis de compreender mas tendem a dar-lhe demasiados detalhes e a perder o objectivo principal. Por vezes tenho problemas a encontrar a seco correcta num HOWTO longo quando preciso de invocar alguns comandos. Eu espero que este "Debian Reference (verso 2)" disponibilize um bom ponto de partida para pessoas no labirinto Debian. A.2. Histria do Copyright Debian Reference foi iniciado por Osamu Aoki <osamu at debian dot org> como um memo pessoal de administrao do sistema. Muitos contedos vieram do conhecimento que ganhei a partir da lista de email debian-user (http://lists.debian.org/debian-user/) e outros recursos Debian. Seguindo uma sugesto de Josip Rodin, que estava muito activo com o Projecto de Documentao de Debian (DDP) (http://www.debian.org /doc/ddp) , o "Debian Reference (verso 1, 2001-2007)" foi criado como parte dos documentos DDP. Aps 6 anos, Osamu percebeu que a "Debian Reference (verso 1)" estava ultrapassada e comeou a reescrever muitos dos seus contedos. A nova "Debian Reference (verso 2)" lanada em 2008. Os contedos do tutorial pode ser rastreados at sua origem e inspirao com o seguinte. * "Guia do Utilizador de Linux (http://www.ibiblio.org/pub/ Linux/docs/linux-doc-project/users-guide/user-beta-1.pdf.gz) " por Larry Greenfield (Dezembro 1996) o tornado obsoleto pelo "Debian Tutorial" * "Debian Tutorial (http://www.debian.org/doc/manuals/ debian-tutorial/) " por Havoc Pennington. (11 Dezembro, 1998) o parcialmente escrito por Oliver Elphick, Ole Tetlie, James Treacy, Craig Sawyer, e Ivan E. Moore II o tornado obsoleto por "Debian GNU/Linux: Guia de Instalao e Utilizao" * "Debian GNU/Linux: Guia de Instalao e Utilizao (http:// archive.debian.net/woody/debian-guide) " por John Goerzen e Ossama Othman (1999) o tornado obsoleto pela "Debian Reference (verso 1)"

A descrio do pacote e do arquivo podem rastrear alguma da sua origem e sua inspirao no seguinte. * "FAQ do Debian (http://www.debian.org/doc/manuals/debian-faq /) " (verso de Maro 2002, quando era mantido por Josip Rodin)

Os outros contedos podem rastrear alguma da sua origem e sua inspirao no seguinte. * "Debian Reference (http://packages.debian.org/search?keywords =debian-reference&searchon=sourcenames&exact=1&suite=all& section=all) (verso 1)" por Osamu Aoki (20012007) o tornado obsoleto por esta nova "Debian Reference (verso 2)" A "Debian Reference (verso 1)" anterior foi criada com muitos contribuidores. * a maior contribuio de contedo de tpicos de configurao de rede por Thomas Hood * contribuio significativa de contedos em tpicos relacionados com X e VCS por Brian Nelson * a ajuda na construo de scripts de compilao e muitas correces no contedo por Jens Seidel * reviso extensiva por David Sewell * muitas contribuies pelos tradutores, contribuidores, e relatrios de bugs Foram usadas muitas pginas de manual e pginas info do sistema Debian como referncias principais para escrever este documento. De modo extensivo, Osamu Aoki considerou dentro da utilizao justa (http://en.wikipedia.org/wiki/Fair_use) , muitas partes delas, especialmente definies de comandos, foram usadas como pores de frases aps cuidados esforos editoriais para as adaptar no estilo e objectivo deste documento. A descrio do depurador gdb foi expandida usando Contedos wiki Debian de backtrace (http://wiki.debian.org/HowToGetABacktrace) com consentimento de Ari Pollak, Loc Minier e Dafydd Harries. O contedo do "Debian Reference (verso 2)" maioritariamente trabalho meu com excepo do descrito acima. Este foi tambm actualizado pelos contribuidores. O Documento "Debian Reference (verso 2)" foi traduzido por Amrico Monteiro a_monteiro_AT_netcabo.pt. O autor, Osamu Aoki, agradece a todos os que ajudaram a tornar possvel este documento. A.3. Formato do documento A fonte do documento original em Ingls escrita actualmente em ficheiros de texto AsciiDoc (http://packages.debian.org/search?

keywords=asciidoc) . AsciiDoc (http://packages.debian.org/search? keywords=asciidoc) usado como convenincia apenas porque escreve-se menos do que directamente em XML e suporta tabelas num formato muito intuitivo. Voc deve pensar em ficheiro XML e PO como ficheiros fonte reais. Via script de compilao, convertido para formato DocBook XML e os dados gerados automaticamente so inseridos para formar uma fonte final em Docbook XML. Esta fonte final Docbook XML pode ser convertida em HTML, texto simples, PostScript, e PDF. Actualmente, apenas as converses em HTML e texto simples esto activas.

Você também pode gostar