Escolar Documentos
Profissional Documentos
Cultura Documentos
Este captulo fornece informao fundamental sobre o sistema Debian para nodesenvolvedores. Para informao oficial, consulte :
Manual de Polticas Debian Referncia do Desenvolvedor Debian Guia do Novo Desenvolvedor Debian
listados em Referncias, Seo 15.1. Caso voc esteja procurando por explicaes "como-fazer" menos detalhadas, pule diretamente para Gerenciamento de pacotes Debian, Captulo 6 ou para outros captulos relevantes. Este captulo baseado em documentos obtidos da "FAQ Debian", altamente reorganizados para permitir que o administrador de sistemas Debian comum possa comear.
Este diretrio contm as "distribuies" e era a maneira cannica de acessar pacotes atuais disponveis nas distribuies e pr-distribuies Debian. Alguns pacotes antigos, arquivos Contents-*.gz, e arquivos Packages.gz ainda esto aqui.
pool/:
A nova localizao fsica para todos os pacotes das distribuies e prdistribuies Debian.
tools/:
Utilitrios DOS para criao de discos de partida, particionamento de seu disco, compactao/descompactao de arquivos e inicializao do Linux.
doc/:
A documentao bsica do Debian, como o FAQ, instrues do sistema de relatos de bugs, etc.
indices/:
Este diretrio contm pacotes e ferramentas que ainda esto sendo desenvolvidos, e ainda esto em estgio alpha. Os usurios no deveriam estar usando pacotes daqui porque os mesmos podem ser perigosos e causarem danos mesmo para os mais experientes.
project/orphaned/:
Pacotes que foram abandonados por seus antigos mantenedores e retirados da distribuio.
stable/main/:
Este diretrio contm os pacotes que formalmente constituem a verso lanada mais recente do sistema Debian. Estes pacotes todos seguem as Linhas Guias Debian para o Software Livre (DFSG) (tambm disponvel como file:///usr/share/doc/debian/social-contract.txt instalado por debian-doc) e so todos livremente utilizveis e livremente distribudos.
stable/non-free/:
Este diretrio contm pacotes da distribuio que so restritos de alguma forma que requer que os distribuidores tenham cuidado especial com requerimentos de direitos de cpia especificados. Por exemplo, alguns pacotes possuem licenas que probem sua distribuio comercialmente. Outros podem ser redistribudos mas so de fato shareware e no software livre. As licenas de cada um desses pacotes devem ser estudadas, e possivelmente negociadas, antes que estes pacotes possam ser includos em qualquer redistribuio (por exemplo, em um CD-ROM).
stable/contrib/:
Este diretrio contm pacotes que atendem aos requerimentos da DFSG e podem ser livremente distribudos, mas de alguma forma dependem de um pacote que no livremente distribuvel e portanto disponvel somente na seo non-free.
Agora, alm das localizaes acima, os pacotes fsicos novos so localizados sob o diretrio pool (O diretrio pool, Seo 2.1.10). O estado atual dos bugs da distribuio stable relatado na pgina web Problemas da Stable.
desculpas de atualizao problemas da testing bugs crticos ao lanamento bugs do sistema bsico bugs em pacotes standard e em tarefas outros bugs e notas sobre festas de matana de bugs
desenvolvimento, ela no possui nmero de verso e sim um codinome. O propsito destes codinomes tornar o espelhamento das distribuies Debian mais fcil (caso um diretrio como unstable seja de repente mudado para stable/, o download de uma poro de coisas teria que ser feito de novo desnecessariamente). Atualmente, stable uma ligao simblica para lenny/ e testing uma ligao simblica para squeeze/. Isto significa que Lenny a atual distribuio estvel e Squeeze a atual distribuio de testes.
unstable
uma ligao simblica permanente para sid/, uma vez que Sid sempre a distribuio instvel.
Buzz (Buzz Lightyear) era o homem do espao, Rex era o tiranossauro, Bo (Bo Peep) era a garota que cuidava do rebanho, Hamm era o porquinho cofre, Slink (Slinky Dog) era o cachorro de brinquedo, Potato era, claro, o Sr. Cabea de Batata, Woody era o cowboy, Sarge era o lder dos Homens do Exrcito de Plstico Verde, Etch (Etch-a-Sketch) era o blackboard, Sid era o garoto da porta ao lado que destrua os brinquedos.
Estes diretrios contm diversos arquivos: os pacotes binrios para cada arquitetura, e os pacotes fontes a partir dos quais os pacotes binrios foram gerados. Voc pode descobrir onde cada pacote colocado executando um comando como aptcache showsrc nomemeupacote e olhando na linha "Directory:". Por exemplo, os pacotes do apache esto armazenados em pool/main/a/apache/. Como h muitos pacotes lib*, esses so tratados especialmente: por exemplo, os pacotes libpaper esto armazenados em pool/main/libp/libpaper/. Os diretrios dists ainda so usados pelos arquivos de ndice usados por programas como o apt. Alm disso, no momento que escrevo, distribuies antigas no foram convertidas para usar piscinas portanto voc ver caminhos contendo nomes de distribuies como potato ou woody no campo "Diretrio" do cabealho. Normalmente, voc no ter que se preocupar com isto, uma vez que o novo apt e provavelmente o antigo dpkg-ftp (consulte Mtodos para atualizar um sistema Debian, Seo 2.3.1) iro gerenciar isso sem problemas. Caso voc queira mais informaes, veja a RFC: implementation of package pools.
Os pacotes enviados esto primeiro localizados em http://incoming.debian.org/ antes de serem checados para assegurar que eles realmente vieram de um desenvolvedor Debian (e so colocados no subdiretrio DELAYED caso tenham sido enviados por um no-desenvolvedor (Non-Mantainer Upload - NMU)). Uma vez por dia, eles so movidos de incoming/ para unstable/. Em uma emergncia, voc pode querer instalar pacotes de incoming/ antes que eles atinjam unstable/.
para pacotes que so independentes de arquitetura. Estes incluem, por exemplo, scripts Perl ou documentao pura.
binary-plataforma/,
particular. Por favor note que os pacotes binrios atuais para a testing e unstable no mais residem nestes diretrios, mas em um diretrio de alto nvel pool. Os arquivos de ndice (Packages e Packages.gz) foram mantidos, porm, para compatibilidade anterior. Para conhecer as arquiteturas binrias suportadas atualmente, consulte as Notas de Lanamento para cada distribuio. Elas podem ser localizadas nos sites das Notas de Lanamento para a stable e para a testing.
2.1.15 O cdigo-fonte
O cdigo-fonte est includo para tudo no sistema Debian. Alm disso, os termos das licenas da maioria dos programas no sistema requerem que o cdigo-fonte seja distribudo junto com os programas, ou que uma oferta para fornecer o cdigo-fonte acompanhe os programas. Normalmente o cdigo-fonte distribudo nos diretrios source, os quais so paralelos a todos os diretrios de binrios para arquiteturas especficas ou, mais recentemente, no diretrio pool (consulte O diretrio pool, Seo 2.1.10). Para obter o cdigo-fonte sem ter estar familiarizado com a estrutura do repositrio Debian , tente um comando como apt-get source meunomedepacote. Alguns pacotes, notavelmente pine, esto somente disponveis como pacotes fonte devido a suas limitaes de licenciamento. (Recentemente o pacote pine-tracker foi fornecido para facilitar a instalao do Pine.) Os procedimentos descritos em Portar um pacote para o sistema stable, Seo 6.4.10 e Empacotamento, Seo 13.9 fornecem meios para construir um pacote manualmente. O cdigo-fonte pode ou no estar disponvel para pacotes nos diretrios contrib e nonfree, os quais no so formalmente parte do sistema Debian.
Pacotes binrios, os quais contm executveis, arquivos de configurao, pginas de manual/info, informao de copyright e outra documentao. Estes pacotes so distribudos em um formato de arquivo especfico Debian (consulte Formato de pacotes Debian, Seo 2.2.2); eles so normalmente identificados por terem uma extenso de arquivo .deb. Pacotes binrios podem ser desempacotados usando o utilitrio Debian dpkg; detalhes so dados em sua pgina de manual. Pacotes fonte, os quais consistem de um arquivo .dsc descrevendo o pacote fonte (incluindo os nomes dos arquivos a seguir), um arquivo .orig.tar.gz que contm o fonte original no modificado em formato tar e compactado com o gzip, e normalmente um arquivo .diff.gz que contm as mudanas especficas do Debian feitas em relao ao fonte original. O utilitrio dpkgsource empacota e desempacota arquivos fonte Debian; detalhes so fornecidos em sua pgina de manual.
A instalao de software pelo sistema de pacotes utiliza "dependncias" que so cuidadosamente especificadas pelos mantenedores dos pacotes. Estas dependncias
esto documentadas no arquivo control associado a cada pacote. Por exemplo, o pacote contendo o compilador GNU C (gcc) "depende" do pacote binutils que inclui o ligador e o montador. Caso um usurio tente instalar o gcc sem ter instalado primeiro o binutils, o sistema de gerenciamento de pacotes (dpkg) emitir uma mensagem de erro dizendo que ele precisa tambm do binutils e parar de instalar o gcc. (Porm, esta facilidade pode ser circulada pelo usurio insistente, consulte dpkg(8).) Para detalhes adicionais, consulte Dependncias de pacotes, Seo 2.2.8 abaixo. As ferramentas de empacotamento Debian podem ser usadas para :
manipular e gerenciar pacotes ou partes de pacotes, auxiliar o usurio na separao de pacotes que devem ser transmitidos atravs de uma mdia de tamanho limitado, como disquetes, auxiliar desenvolvedores na construo de repositrios de pacotes, e auxiliar usurios na instalao de pacotes que se encontram em um site repositrio Debian.
onde foo representa o nome do pacote. Como uma checagem, pode-se determinar o nome do pacote associado a um arquivo Debian em particular (arquivo .deb) em uma das seguintes maneiras :
inspecione o arquivo "Packages" no diretrio onde o mesmo foi armazenado em um site repositrio Debian . Este arquivo contm uma estrofe descrevendo cada pacote; o primeiro campo de cada estrofe o nome formal do pacote. use o comando dpkg --info foo_VVV-RRR.deb (onde VVV e RRR so a verso e a reviso do pacote em questo, respectivamente). Isto exibe, entre outras coisas, o nome do pacote do arquivo sendo desempacotado.
O componente VVV o nmero de verso especificado pelo desenvolvedor original (upstream). No existem padres ditando nmeros de verso, portanto eles podem ter formatos to diferentes como "19990513" e "1.3.8pre1". O componente RRR um nmero de reviso Debian e especificado pelo desenvolvedor Debian (ou um usurio individual caso o mesmo escolha construir o pacote ele mesmo). Este nmero corresponde ao nvel de reviso do pacote Debian; portanto, um novo nvel de reviso geralmente significa mudanas no Makefile Debian (debian/rules), no arquivo de controle Debian (debian/control), nos scripts de instalao ou remoo (debian/p*) ou nos arquivos de configurao usados pelo pacote.
e olhe em "Conffiles:". Detalhes sobre o contedo de um arquivo confffiles Debian so fornecidos no Manual de Polticas Debian, seo 11.7 (consulte Referncias, Seo 15.1).
preinst Este script executado antes que seu pacote seja desempacotado de seu arquivo Debian (.deb). Muitos scripts "preinst" param servios para os pacotes que esto sendo atualizados at que sua instalao ou atualizao esteja completa (seguindo a execuo com sucesso do script "postinst"). postinst Este script tipicamente completa qualquer configurao requerida de um pacote uma vez que o mesmo tenha sido desempacotado de seu arquivo Debian (.deb). Geralmente, scripts 'postinst' fazem perguntas aos usurios e/ou avisam o usurio que caso o mesmo aceite valores padres ele dever se lembrar de voltar e reconfigurar o pacote conforme a necessidade. Muitos scripts "postinst" executam ento quaisquer comandos necessrios para iniciar ou reiniciar um servio uma vez que o novo pacote foi instalado ou atualizado. prerm Este script tipicamente pra quaisquer daemons que esto associados com um pacote. Ele executado antes da remoo de arquivos associados com um pacote. postrm Este script tipicamente modifica ligaes ou outros arquivos associados com um pacote e/ou remove arquivos criados pelo pacote. (Consulte tambm Pacotes virtuais, Seo 2.2.7.) Atualmente todos os arquivos de controle podem ser encontrados no /var/lib/dpkg/info. Os arquivos relevantes ao pacote foo iniciam com o nome "foo" e possuem extenses de arquivos "preinst", "postinst", etc, de acordo. O arquivo foo.list neste diretrio lista todos os arquivos que foram instalados com o pacote foo. (Note que a localizao destes arquivos algo interno do dpkg, e pode estar sujeita a mudanas.)
Pacotes Required so necessrios para o funcionamento correto do sistema. Isso inclui todas as ferramentas necessrias para reparar defeitos no sistema. Voc no deve remover esses pacotes ou seu sistema pode vir a se tornar completamente quebrado e voc poder provavelmente no ser capaz de usar o dpkg para colocar as coisas de volta em seus lugares. Sistemas somente com pacotes Required so provavelmente inutilizveis para muitos propsitos, mas
possuem funcionalidade o suficiente para permitir que o administrador do sistema inicie o sistema e instale mais software.
Pacotes Important devem ser encontrados em qualquer sistema parecido com Unix. Outros pacotes sem os quais o sistema no funcionar bem ou no ser muito til se encaixam aqui. Isso no inclui o Emacs ou X11 ou TeX ou quaisquer outras grandes aplicaes. Esses pacotes constituem somente a infraestrutura mnima.
Pacotes Standard so padro em qualquer sistema Linux, incluindo um sistema em modo caracter razoavelmente pequeno mas no muito limitado. Isso o que ser instalado por padro caso os usurios no selecionem mais nada. Isso no inclui muitas grandes aplicaes, mas inclui o Emacs (ele mais uma pea da infraestrutura do que uma aplicao) e um subconjunto razovel do Tex e LaTeX (caso isso seja possvel sem o X).
Pacotes Optional incluem todos aqueles pacotes que voc poderia razoavelmente querer instalar mesmo caso no esteja familiarizado com eles e caso voc no possua requerimentos especializados. Isso inclui X11, uma distribuio completa TeX e uma poro de aplicaes.
Pacotes Extra so pacotes que conflitam com outros pacotes com prioridades mais altas provavelmente, tero pouco uso para usurios que no so familiarizados a eles, ou tm requerimentos especiais que no os deixam ser encaixados em "Optional".
um como o pacote preferido. O comando relevante update-alternatives e descrito mais adiante em Comandos alternativos, Seo 6.5.3.
O Pacote A depende do Pacote B se B precisar absolutamente estar instalado para que A possa ser executado. Em alguns casos, A depende no somente de B, mas de uma verso especfica de B. Nestes casos, a dependncia da verso normalmente um limite mnimo, no sentido de que A depende em qualquer verso de B mais recente do que alguma verso especificada. O Pacote A recomenda o Pacote B caso o mantenedor do pacote julgue que a maioria dos usurios no iriam querer A sem tambm ter a funcionalidade fornecida por B. O Pacote A sugere o Pacote B caso B contenha arquivos que estejam relacionados a (e normalmente melhorem) a funcionalidade de A. O Pacote A conflita com o Pacote B quando A no funciona caso B esteja instalado no sistema. Na maioria das vezes, conflitos so casos onde A contm arquivos que so uma melhora daqueles em B. "Conflicts" (conflita) so normalmente combinados com "replaces" (substitui). O Pacote A substitui o Pacote B quando arquivos instalados por B so removidos e (em alguns casos) sobrescritos por arquivos em A. O Pacote A fornece o Pacote B quando todos os arquivos e as funcionalidades de B esto incorporadas em A. Este mecanismo oferece uma maneira para usurios com pouco espao em disco obterem somente aquela parte do pacote A que realmente precisam.
Informao mais detalhada sobre o uso de cada um desses termos pode ser encontrada no Manual de Empacotamento e no Manual de Polticas. Note que o dselect possui um controle mais refinado sobre os pacotes especificados por recomendaes e sugestes do que o apt-get, o qual simplesmente pega todos os pacotes especificados como dependncias e deixa para trs os pacotes especificados como recomendados e sugestes. Ambos os programas em sua forma moderna usam o APT como motor.
"Pre-depends" (pr-dependncias) uma dependncia especial. No caso de um pacote comum, o dpkg ir desempacotar seu arquivo (ou seja, seu arquivo .deb) independentemente dos arquivos dos quais este depende existirem ou no no sistema. Desempacotar significa que o dpkg ir extrair os arquivos de seu arquivo que foi criado para ser instalado em seu sistema e coloc-los nos lugares. Caso estes pacotes dependam da existncia de outros pacotes em seu sistema, o dpkg se recusar a completar a instalao (executando sua ao "configure") at que os outros pacotes sejam instalados. Porm, para alguns pacotes, o dpkg se recusar at mesmo a desempacot-los at que certas dependncias estejam resolvidas. dito que tais pacotes "pr-dependem" da presena de outro(s) pacote(s). O projeto Debian forneceu este mecanismo para suportar a atualizao segura do formato a.out para o formato ELF, onde a ordem na qual os pacotes eram desempacotados era crtica. Existem outras situaes de grandes atualizaes onde este mtodo til, por exemplo, para pacotes com prioridade "required" e sua dependncia libc. Novamente, informao mais detalhada sobre isso pode ser encontrada no Manual de Empacotamento.
unknown - o usurio nunca indicou se ele queria o pacote. install - o usurio quer o pacote instalado ou atualizado. remove - o usurio quer o pacote removido, mas no quer remover quaisquer arquivos de configurao. purge - o usurio quer que o pacote seja removido completamente, incluindo os arquivos de configurao. hold - o usurio quer que esse pacote no seja processado, ou seja, ele quer manter a verso atual no estado atual seja este qual for.
Edite ento o arquivo resultante selections.txt mudando a linha contendo o pacote que voc desejaria evitar que fosse atualizado, por exemplo, libc6, disso:
libc6 install
para isso :
libc6 hold
Ou, caso voc conhea o nome do pacote a ser mantido (hold), simplesmente execute :
echo libc6 hold | dpkg --set-selections
Este processo mantm pacotes no processo de instalao de cada arquivo de pacote. O mesmo efeito pode ser obtido atravs do dselect. Simplesmente entre na tela [S]elecionar, encontre o pacote que voc deseja manter em seu estado atual e pressione a tecla `=' (ou `H'). As modificaes sero vlidas imediatamente depois que voc sair da tela [S]elecionar. O sistema APT na distribuio Woody possui um novo mecanismo alternativo para manter pacotes durante o processo de obteno do arquivo usando Pin-Prioriry. Consulte a pgina de manual apt_preferences(5), e tambm http://www.debian.org/doc/manuals/apt-howto/ ou o pacote apt-howto; Viso geral do arquivo /etc/apt/preferences, Seo 6.2.8 tambm contm uma explicao breve.
para obt-los (consulte a pgina de manual apt-get(8) para maiores informaes sobre como configurar o APT para fazer isso).
Uma vez que voc os tenha, caso voc possua o pacote dpkg-dev instalado, o comando
dpkg-source -x foo_verso-reviso.dsc
ir extrair o pacote em um diretrio chamado foo-verso. Execute os seguintes comandos para criar o pacote binrio:
$ cd foo-verso $ su -c "apt-get update ; apt-get install fakeroot" $ dpkg-buildpackage -rfakeroot -us -uc
E ento,
# su -c "dpkg -i ../foo_verso-reviso_arquit.deb"
para instalar o novo pacote construdo. Veja Portar um pacote para o sistema stable, Seo 6.4.10.
fazer o download do mesmo e finalmente instal-lo usando o dpkg. Note que o dpkg ir instalar arquivos de atualizao em seus lugares, mesmo em um sistema em execuo. Algumas vezes, um pacote revisado ir requerer a instalao de uma nova verso revisada de outros pacotes e neste caso a instalao ir falhar at que/a menos que os outros pacotes sejam instalados. Muitas pessoas acham que este mtodo consome muito tempo, uma vez que o Debian se desenvolve to rapidamente tipicamente, uma dzia ou mais pacotes so disponibilizados toda semana. Este nmero maior logo antes de um lanamento de uma verso maior. Para lidar com esta avalanche, muitas pessoas preferem usar um programa automatizado para atualizar. Diversas ferramentas de gerenciamento de pacotes especializadas esto disponveis para este propsito.
2.3.3 dpkg
Este o principal programa para manipular arquivos de pacotes; leia dpkg(8) para um descrio completa. O dpkg fornecido com diversos programas suplementares primitivos.
dpkg-deb: Manipula arquivos .deb. dpkg-deb(1) dpkg-ftp: Um antigo comando de obteno de arquivos de pacotes. dpkgftp(1)
2.3.4 APT
O APT (Advanced Packaging Tool) uma avanada interface para o sistema de gerenciamento de pacotes Debian, consistindo de vrios programas cujos nomes tipicamente comeam com "apt-". O apt-get, apt-cache e o apt-cdrom so ferramentas de linha de comando para gerenciar pacotes. Eles tambm funcionam como
programas "back-end" do usurio para outras ferramentas, como o dselect e o aptitude. Para maiores informaes, instale o pacote apt e leia apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5), apt_preferences(5) (Woody), e /usr/share/doc/apt/guide.html/index.html. Uma fonte alternativa de informao o APT HOWTO. Este pode ser instalado pelo pacote apt-howto em file:///usr/share/doc/Debian/apt-howto/. apt-get upgrade e apt-get dist-upgrade instalam apenas os pacotes listados em "Depends:" e ignoram os pacotes listados em "Recommends:" e "Suggests:". Para evitar isso use o dselect.
2.3.5 dselect
Este programa uma interface de usurio baseada em menus para o sistema de gerenciamento de pacotes Debian. Ele particularmente til para primeiras instalaes e atualizaes em larga escala. Veja dselect, Seo 6.2.3 Para maiores informaes, instale o pacote install-doc e leia
/usr/share/doc/install-doc/dselect-beginner.en.html para Iniciantes do dselect.
ou Documentao
Caso voc tenha feito o download de arquivos para seu disco (o que no absolutamente necessrio, veja acima a descrio de dpkg-ftp ou APT), depois de instalar os pacotes voc pode remov-los de seu sistema. Caso o APT seja usado, esses arquivos so colocados em cache no diretrio /var/cache/apt/archives/. Voc pode apag-los depos da instalao (apt-get clean) ou copi-los para o diretrio /var/cache/apt/archives/ de outra mquina para economizar tempo de download durante instalaes subseqentes.
0 (parar o sistema), 1 (modo de usurio nico), 2 through 5 (vrios modos multiusurio), e 6 (reinicia o sistema).
Sistemas Debian vm com o valor id=2, o que indica que o nvel de execuo padro ser 2 quando o estado multiusurio for iniciado e que os scripts em /etc/rc2.d/ sero executados. De fato, os scripts em quaisquer dos diretrios em /etc/rcN.d/ so apenas ligaes simblicas que apontam para scripts em /etc/init.d/. Porm, os nomes dos arquivos em cada um dos diretrios /etc/rcN.d/ so selecionados para indicar a maneira que os scripts em /etc/init.d/ sero executados. Especificamente, antes de entrar em qualquer nvel de execuo, todos os scripts iniciados com `K' so executados; esses scripts matam (param) servios. Ento todos os scripts iniciados com `S' so executados; esses scripts iniciam servios. O nmero de dois dgitos seguido de `K' ou `S' indica a ordem na qual o script executado. Scripts de menor valor numrico so executados primeiro. Esse mtodo funciona porque todos os scripts em /etc/init.d/ aceitam um argumento que pode ser "start" (iniciar), "stop" (parar), "reload" (recarregar), "restart" (reiniciar) ou "force-reload" (forar-recarregar) e iro portanto cumprir a tarefa indicada pelo argumento. Esses scripts podem ser usados mesmo depois que um sistema tenha sido iniciado para controlar vrios processos. Por exemplo, com o argumento "reload" o comando
# /etc/init.d/exim4 reload
envia ao daemon exim4 um sinal para que o mesmo releia seu arquivo de configurao.
3. Reiniciar o sistema. O comando update-rc.d criar as ligaes entre os arquivos nos diretrios rc?.d e o script em /etc/init.d/. Cada ligao iniciar com um `S' ou um `K', seguido por um nmero, seguido pelo nome do script. Quando o sistema entra em um nvel de execuo N, scripts que iniciam com `K' em /etc/rcN.d/ so executados com stop como seu argumento, seguido por aqueles comeando com `S' em /etc/rcN.d com start como seu argumento. Algum poderia, por exemplo, fazer com que o script foo seja executado na inicializao do sistema colocando-o em /etc/init.d/ e instalando as ligaes com o comando update-rc.d foo defaults 19. O argumento defaults se refere aos nveis de execuo padres, que so do nvel 2 at o nvel 5. O argumento 19 assegura que foo seja chamado antes de quaisquer scripts contendo nmeros 20 ou superiores.
veja O pacote equivs, Seo 6.5.2. veja Comandos alternativos, Seo 6.5.3. Consulte
update-alternative,
make-kpkg pode acomodar muitos gerenciadores de inicializao. make-kpkg(1) e Mtodo Debian padro, Seo 7.1.1.
Quaisquer arquivos sob /usr/local/ pertencem ao administrador do sistema e o Debian no ir toc-los. A maioria (ou todos) dos arquivos sob /etc so conffiles e o Debian no ir sobrescrev-los em atualizaes a menos que o administrador do sistema explicitamente pea isso.
2.6 Internacionalizao
O sistema Debian internacionalizado e oferece suporte para a exibio e entrada de caracteres em muitos idiomas, seja no console ou sob o X. Muitos documentos, pginas de manual e mensagens do sistema foram traduzidos para um nmero crescente de idiomas. Durante a instalao o Debian pede ao usurio para escolher um idioma para ser usado na instalao (e algumas vezes o variante local do idioma).
Caso seu sistema instalado no suporte todos os recursos do idioma que voc precisa ou caso voc precise mudar entre idiomas ou instalar um teclado diferente para suportar seu idioma, consulte Localizao, Seo 9.7.
no diretrio de nvel principal dos fontes do kernel. Ajuda fornecida executando o comando
# make-kpkg --help
Os usurios devem fazer o download separadamente do cdigo fonte do kernel mais atual (ou o kernel de sua escolha) a partir de seu site repositrio Linux favorito, a menos que um pacote kernel-source-verso esteja disponvel (onde verso significa a verso do kernel). O script de inicializao initrd Debian requer um patch de kernel especial chamado initrd; consulte http://bugs.debian.org/149236. Informaes detalhadas para o uso do pacote kernel-package so fornecidas no arquivo /usr/doc/kernel-package/README.
( claro, substitua NNN pela verso de seu kernel e seu nmero de reviso)
A documentao oficial para instalao da Debian se encontra em http://www.debian.org/releases/stable/, e http://www.debian.org/releases/stable/installmanual. As verses em desenvolvimento so encontradas em http://www.debian.org/releases/testing/, e
http://www.debian.org/releases/testing/installmanual
(trabalho em
progresso, pode algumas vezes no existir). Embora este captulo tenha sido inicialmente escrito nos dias do lanamento do instalador da Potato, a maior parte dos seus contedos foi atualizada para o instalador do Woody e so instaladores muito similares. Como o Sarge usar um instalador totalmente novo, por favor, use isso como ponto de referncia para o instalador do Sarge.
SCSI ao invs de IDE para o trabalho, disco rgido IDE/ATAPI para uso privado. IDE/ATAPI CD-ROM (ou CD-RW). PCI ao invs de ISA, especialmente para placas de rede (NIC). Use uma placa de rede barata. Tulip para PCI, NE2000 para ISA so boas escolhas. Evite PCMCIA (porttil) em sua primeira instalao Linux.
Sem teclados USB, mouse ... a menos que voc queira aventurar-se.
Se voc tem uma mquina lenta, tirar fora o disco rgido e coloc-lo em outra mquina mais rpida uma boa idia.
Estes comandos podem ser rodados durante o processo de instalao num terminal virtual teclando Alt-F2. Usos tpicos de interrupes:
IRQ0: sada do temporizador (8254) IRQ1: controlador de teclado IRQ2: cascata para IRQ8IRQ15 no PC-AT IRQ3: porta serial secundria (io-port=0x2F8) (/dev/ttyS1) IRQ4: porta serial primria (io-port=0x3F8) (/dev/ttyS0) IRQ5: livre (era a interrupo do HD no XT) IRQ6: controlador de disquetes (io-port=0x3F0) (/dev/fd0, /dev/fd1) IRQ7: porta paralela (io-port=0x378) (/dev/lp0) IRQ8: rtc IRQ9: interrupo de software (int 0x0A), redireciona para IRQ2 IRQ10: livre IRQ11: livre IRQ12: Mouse PS/2
IRQ13: livre (era do co-processador matemtico 80287) IRQ14: controlador IDE primrio (/dev/hda, /dev/hdb) IRQ15: controlador IDE secundrio (/dev/hdc, /dev/hdd)
Cls=00 : Sem uso Cls=01 : Audio (alto-falante etc.) Cls=02 : Comunicao (MODEM, NIC, ...) Cls=03 : HID (Dispositivo de interface humana: teclado, mouse, joystick) Cls=07 : Impressora Cls=08 : Armazenamento de massa (FDD, drive CD/DVD, HDD, Flash, ...) Cls=09 : Hub (hub USB) Cls=255 : Especfico de fabricante
3.1.6 GRUB
O novo carregador de inicializao grub do projeto GNU HURD pode ser instalado no sistema Debian Woody:
# apt-get update # apt-get install grub-doc # mc file:///usr/share/doc/grub-doc/html/ ... leia o contedo # apt-get install grub # pager file:///usr/share/doc/grub/README.Debian.gz ... leia-o :)
Para editar o menu do GRUB, edite /boot/grub/menu.lst. Veja Definindo parmetros de inicializao do GRUB, Seo 8.1.6 para saber como configurar os parmetros de inicializao durante esta, pois ligeiramente diferente da configurao do lilo.
3.1.8 Instalao
Siga as instrues oficiais encontradas em
http://www.debian.org/releases/stable/installmanual ou http://www.debian.org/releases/testing/installmanual (trabalho
em
Se voc est instalando um sistema usando os boot-floppies da distribuio testing, voc pode precisar abrir um terminal durante a instalao pressionando AltF2 e edite manualmente as entradas de /etc/apt/sources.list, substituindo "stable" por "testing" para ajustar as fontes do APT. Costumo instalar o lilo em lugares como /dev/hda3, e instalo mbr em /dev/hda. Isto diminui o risco de sobrescrever a informao de inicializao. Aqui est o que escolho durante o processo de instalao.
MD5 passwords "yes" shadow passwords "yes" Install "advanced" (dselect **) e selecione o Exclua emacs (se selecionado), nvi, tex, telnet, talk(d); o Inclua mc, vim e nano-tiny ou elvis-tiny. Veja dselect, Seo 6.2.3. Mesmo que voc seja f do Emacs, evite-o por enquanto e se contente com nano durante a instalao. Evite tambm instalar grandes pacotes tais como TeX (Potato fazia isto) nesta fase. Veja Editores de recuperao, Seo 11.2 para entender as razes que justificam instalar nano-tiny ou elvis-tiny aqui.
Para todas as perguntas de configurao durante o dilogo de instalao de cada pacote: "y" (substitua verso atual). exim: seleciono 2 para a mquina pois envio correio eletrnico atravs do servidor SMTP de meu provedor de internet.
configurao de DNS) rode o pacote "dhcp" configurado para eth1 rode "exim" como e modo de host auxiliar (smarthost, mode 2) rode "fetchmail" em longos perodos (fallback) rode "bind" como o cache do servidor de nomes para a Internet a partir da LAN como servidor de nomes autoritativo para o domnio da LAN a partir da LAN rode "ssh" na porta 22 e 8080 (conecte de qualquer lugar) rode "squid" como o servido de cache para o arquivo Debian (para APT) Porta interna da mquina gateway da LAN: eth1 (IP = 192.168.1.1, fixo) | +--- LAN Switch (100base T) ---+ | | Alguns clientes de IP fixos na LAN Alguns clientes DHCP na LAN (IP = 192.168.1.2-127, fixo) dinmico) (IP = 192.168.1.128-200,
Veja Configurao de rede, Captulo 10 para detalhes de configurao da rede. Veja Construindo um roteador gateway, Seo 10.12 para detalhes de configurao do servidor gateway da LAN.
3.1.11.1 Partio do disco rgido Eu prefiro usar parties diferentes em diferentes rvores de diretrio para limitar o estrago numa eventual quebra do sistema. Por exemplo,
/ /tmp == (/ + /boot + /bin + /sbin) == 50MB+ == 100MB+
== == == ==
O tamanho do diretrio /usr depende muito das aplicaes do sistema X Window e da documentao. /usr/ pode ter 300MB se rodamos apenas um terminal console, enquanto 2GB3GB no um tamanho incomum se temos muitas aplicaes Gnome instaladas. Quando /usr ficar muito grande, mover /usr/share/ para uma partio diferente o remdio mais efetivo. Com os novos grandes kernels Linux 2.4 prempacotados, pode ser necessrio mais do que 200MB. Por exemplo, o estado atual de minha mquina gateway para Internet o seguinte (sada do comando df -h):
Filesystem /dev/hda3 /dev/hda7 /dev/hda8 /dev/hda6 /dev/hda9 /dev/hda10 /var/cache/apt/archives /dev/hda11 Size 300M 100M 596M 100M 596M 596M 1.5G Used Avail Use% Mounted on 106M 179M 38% / 12M 82M 13% /home 53M 513M 10% /var 834k 94M 1% /var/lib/cvs 222M 343M 40% /usr 130M 436M 23% 204M 1.2G 14% /var/spool/squid
(A grande rea reservada para /var/spool/squid/ para um proxy cache dos pacotes baixados.) Segue abaixo a sada de fdisk -l que fornece uma idia da estrutura de particionamento:
# fdisk -l /dev/hda # comentrio /dev/hda1 /dev/hda2 usada) /dev/hda3 Principal /dev/hda4 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 /dev/hda9 /dev/hda10 /dev/hda11 1 42 * 85 127 127 144 158 172 254 336 418 41 84 126 629 143 157 171 253 335 417 629 309928+ 325080 317520 3802680 128488+ 105808+ 105808+ 619888+ 619888+ 619888+ 1602688+ 6 83 83 5 82 83 83 83 83 83 83 FAT16 # DOS Linux # (no Linux # Extended Linux swap Linux Linux Linux Linux Linux Linux
H poucas parties no usadas. So para instalao de uma segunda distribuio Linux ou para expandir rvores de diretrios crescentes.
Para NFS, uso noauto,intr combinada com a opo padro hard. Deste modo, possvel safar-se de um processo congelado devido a uma conexo morta usando Ctrl-C. Para uma mquina Windows conectada com Samba (smbfs), rw,auto,soft,intr pode ser uma boa idia. Veja Configurao do Samba, Seo 3.5.
Para os disquetes, noauto,rw,sync,user,exec ao contrrio previne contra a corrupo de arquivos aps a ejeo acidental do disquete antes de desmont-lo, mas isto retarda o processo de escrita.
3.1.11.4 Montagem NFS O servidor NFS Linux (goofy) fica atrs de um firewall (gateway). Eu tenho uma poltica de segurana bastante aberta em minha LAN j que sou eu o nico usurio. Para permitir acesso NFS, o lado do servidor precisa adicionar a /etc/exports o seguinte:
# /etc/exports: the access control list for file systems which may be # exported to NFS clients. See exports(5). / (rw,no_root_squash)
Isto necessrio para ativar o servidor NFS, alm de instalar e ativar os pacotes de servidor e cliente NFS. Por simplicidade, normalmente crio uma partio nica de 2GB para uma instalao experimental ou secundria de Linux. Opcionalmente, compartilho a partio de troca (swap) e a partio /tmp para estas instalaes. Um esquema multipartio tambm usado nestes casos. Se necessrio apenas um simples sistema console, 500MB pode ser mais do que suficiente.
Mnimo para Mnimo para Mnimo para Mnimo para Confortvel Por que no
o kernel Linux funcionar. um sistema console razovel. um sistema X simples. o sistema X com GNOME/KDE. para o sistema X com GNOME/KDE. se voc pode se dar ao luxo disto? DRAM
Usando a opo de inicializao mem=4m (ou lilo append="mem=4m") mostrar como o sistema funcionaria com 4MB de memria instalada. necessrio o parmetro de inicializao do lilo para sistemas que contm mais do que 64 MB de memria e um BIOS antigo.
Cada partio de troca < 128MB (antigo kernel 2.0), < 2GB (em kernels recentes) Total = ou 1 a 2 vezes a RAM instalada ou de 128MB a 2GB como orientao Espalhe-as nos diferentes discos e monte-as com as opes sw,pri=1 em /etc/fstab. Isto garante que o kernel faa um striping RAID das parties de troca (swap) e oferea o mximo de performance na troca. Use uma poro central do disco rgido, quando possvel.
Mesmo que voc nunca precise disto, algum espao de troca (128MB) desejvel pois assim o sistema ficar lento antes de congelar com um programa que consuma a memria.
Utilize sua cpia privada para todas as Utilize sua cpia privada para todas as
Veja detalhes nos meus scripts de exemplo. por isto configuro umask para 002 ou 022.
PATH
Aqui, um link simblico para /dev/mouse criado e aponta para /dev/gpmdata para tornar alguns utilitrios de configurao felizes e mais a reconfigurao mais fcil. (Por exemplo, se voc decide no usar o daemon gpm, apenas aponte o link simblico /dev/mouse para /dev/psaux aps livrar-se do daemon gpm.) Este fluxo de sinal permite que o teclado e o mouse sejam desplugados e reinicializados com o gpm sendo rodado novamente na reconexo. O X permanecer vivo! O protocolo do fluxo de sinal entre a sada do gpm e a entrada do X pode ser implementado de dois modos, mutuamente exclusivos, como "ms3" (usa o protocolo Microsoft 3-button serial mouse) ou "raw" (usa o mesmo protocolo do mouse que est conectado), e esta escolha determina a escolha do protocolo usado na configurao do X. Abaixo, mostrarei os exemplos de configurao usando um mouse Logitech 3-button (mouse Unix-style tradicional) PS/2 como modelo. Se voc um dos desafortunados cuja placa de vdeo no suportada pelo novo X4 e precisa usar o antigo X3 (algumas placas ATI 64 bit), configure /etc/X11/XF86Config ao invs de /etc/X11/XF86Config-4 nos exemplos a seguir e instale os pacotes X3.
sample_rate=
| Option | EndSection
"Protocol" "IntelliMouse"
Se esta perspectiva usada, o ajuste do tipo de mouse feito apenas editando gpm.conf e a configurao do X permanece a mesma. Veja meus scripts de exemplo.
Se esta perspectiva usada, o ajuste do tipo de mouse feito editando gpm.conf assim como ajustando a configurao do X.
3.3.1.3 Como ajustar um mice diferente O tipo de dispositivo do gpm autops2 provavelmente autodetecta muitos dos mouses PS/2 no mercado. Infelizmente, nem sempre funciona e no est disponvel nas verses pr-Woody. Para tais casos, tente usar ps2, ou imps2 em gpm.conf ao invs de autops2. Para descobrir quais tipos de mouse o gpm reconhece: gpm -t help. Veja gpm(8). Se um mouse PS/2 de 2 botes usado, configure o X para habilitar Emulate3Buttons. A diferena de protocolo entre o mouse de 2 botes e o mouse de 3 botes autodetectada a auto-ajustada para o gpm aps apertar o boto central uma vez. Para o protocolo X com A perspectiva do protocolo raw, Seo 3.3.1.2 ou com gpm, use:
IntelliMouse: mouse serial (repetidor gpm com "ms3") PS/2: mouse PS/2 (sempre teste este primeiro) IMPS/2: mouses PS/2 (2, 3, ou mouses de rolagem, melhor) MouseManPlusPS/2: mouse Logitech PS/2 ...
Veja mais em Suporte a Mouse no XFree86. Sab-se que mouses de rolagem Microsoft tpicos funcionam melhor com:
/etc/gpm.conf | /etc/X11/XF86Config-4
=========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "IMPS/2" | Option "Buttons" "5" | Option "ZAxisMapping" "4 5" | EndSection
Para alguns pequenos portteis Toshiba novos, ativar gpm antes do PCMCIA no script de inicializao System-V pode ajudar a prevenir o travamento do sistema. Estranho mas verdadeiro.
Em "Input core support": o "Input core support" (CONFIG_INPUT, input.o), o "Mouse support" (CONFIG_INPUT_MOUSEDEV, mousedev.o), Em "USB support": o "Support for USB" (CONFIG_USB, usbcore.o), o "Preliminary USB device filesystem" (CONFIG_USB_DEVICEFS), o "UHCI" or "OHCI" (CONFIG_USB_UHCI || CONFIG_USB_UHCI_ALT || CONFIG_USB_OHCI, usb-uhci.o || uhci.o || usb-ohci.o), o "USB Human Interface Device (full HID) support" (CONFIG_USB_HID, hid.o), e o "HID input layer support" (CONFIG_USB_HIDINPUT)
Aqui, nomes em minsculas so nomes de mdulos. Se voc no est usando dvfs, crie um dispositivo n (node) /dev/input/mice com major 13 e minor 63 como se segue:
# cd /dev # mkdir input # mknod input/mice c 13 63
Para mouses USB com roda tpicos, as combinaes de configurao deveriam ser:
/etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/input/mice | Section "InputDevice" responsiveness= | Identifier "Generic Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "SendCoreEvents" "true"
Option
"Device"
| Option "Protocol" "IMPS/2" | Option "Buttons" "5" | Option "ZAxisMapping" "4 5" | EndSection
Configurar o Samba com modo "share" muito mais fcil pois este cria discos compartilhados tipo WfW. Mas prefervel configur-lo com mode "ser". O Samba pode ser configurado atravs de debconf ou vi:
# dpkg-reconfigure --priority=low samba # em Woody # vi /etc/samba/smb.conf Veja meus scripts de exemplo para detalhes.
Certifique-se de usar senhas criptografadas para uma compatibilidade excelente. Configure os level de acordo com o seguinte sistema de equivalncias (maior o nmero, maior a prioridade como servidor):
0: navegador mestre) 1: 16: 17: 32: 33: 255: Samba com uma atitude folgada (nunca se tornar um Wfw 3.1, Win95, Win98, Win/me? Win NT WS 3.51 Win NT WS 4.0 Win NT SVR 3.51 Win NT SVR 4.0 Samba com enorme poder
Certifique-se de que usurios sejam membros do grupo dono do diretrio que deu acesso compartilhado e que o caminho do diretrio tenha seu bit de execuo configurado para acesso.
3.6.1 lpr/lpd
Para os spoolers do tipo lpr/lpd (lpr, lprng, e gnulpr), configure /etc/printcap como se segue, deste que conectado a um impressora PostScript ou somente texto (o bsico):
lp|alias:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp0:
Linha cabealho: lp nome do spool, alias = alias mx#0 tamanho mximo do arquivo ilimitado sh suprime a impresso da primeira pgina do cabealho lp=/dev/lp0 dispositivo de impressora local, ou porta@host, se remota
Esta uma boa configurao se voc est conectado a uma impressora PostScript. Alm disto, quando imprimir a partir de uma mquina Windows atravs do Samba, esta uma boa configurao para qualquer impressora suportada por Windows (nenhuma comunicao bidirecional suportada). Voc tem d e selecionar a configurao da impressora correspondente na mquina Windows. Se voc no tem uma impressora PostScript, voc precisa configurar um sistema de filtros usando gs. H vrias ferramentas para autoconfigurao com a finalidade de configurar /etc/printcap. Quaisquer destas combinaes uma opo:
gnulpr, (lpr-ppd) e printtool lpr e apsfilter lpr e magicfilter lprng e lprngtool lprng e apsfilter lprng e magicfilter
eu uso isto.
Para rodar uma ferramenta de configurao GUI, tal como printtool, veja Obtendo root no X, Seo 9.4.12 para obter privilgios de root. Impressoras spools criadas com printtool usam gs e agem como impressoras PostScript. Assim, quando as acessar, use drivers de impressora PostScript. Na perspectiva do Windows, "Apple LaserWriter" o nico padro.
3.6.2 CUPS
Instale o Sistema de Impresso Comum UNIX (Common UNIX Printing System) (ou CUPS): # apt-get install cupsys cupsys-bsd cupsys-client cupsys-driver-gimpprint # apt-get install foomatic-db-engine foomatic-db-hpijs # apt-get install foomatic-filtersppds foomatic-gui
Por exemplo, para adicionar sua impressora em alguma porta lista de impressoras acessveis:
clique "Printers" na pgina principal e, e ento "Add Printer", tecle "root" para o nome de usurio e sua senha,
adicione a impressora seguindo os prompts, volte para a pgina "Printers" e clique "Configure Printer", e configure o tamanho do papel, resoluo, e outros parmetros.
Rode tasksel. Veja Instalar tarefa com o tasksel ou aptitude, Seo 6.2.1. Voc pode escolher estes, se necessrio:
o o o o o o
End-user (usurio final) X Window System Development (desenvolvimento) C and C++ Development Python Development Tcl/Tk Miscellaneous TeX/LaTeX environment Para outros, eu prefiro usar o tasksel como um guia, olhando os componentes listados sob <Task Info> e instalando-os seletivamente atravs do dselect.
Rode dselect. Aqui, a primeira coisa que talvez voc queira selecionar seu editor favorito e quaisquer programas que voc necessitar. Voc pode instalar muitas variaes do Emacs ao mesmo tempo. Veja dselect, Seo 6.2.3 e Editores populares, Seo 11.1. Voc pode tambm substituir alguns dos pacotes padres por outros com muitos recursos.
o
...
...
... # O que fazer quando CTRL-ALT-DEL pressionado. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now ...
3.7.2 Mdulos
Mdulos para os gerenciadores de dispositivo so configurados durante a instalao inicial. Posteriormente modconf oferece um modo de configurao dos mdulos que gerenciado por menus. Este programa muito til quando alguns mdulos foram esquecidos na instalao inicial ou um novo kernel foi instalado aps esta. O nome dos mdulos pr-carregados devem ser listados em /etc/modules. Eu tambm uso lsmod e depmod para control-los manualmente. Certifique-se, tambm de adicionar algumas linhas em /etc/modules para lidar com mascaramento de IP (FTP, etc.) em kernels 2.4. Veja O kernel 2.4 modularizado, Seo 7.2, especificamente Funo de rede, Seo 7.2.3.
Rode o lilo para instalar estas configuraes. apm=power-off necessrio para um kernel SMP e noapic, para evitar problemas com meu hardware SMP cheio de bugs. O mesmo pode ser feito diretamente, inserindo as opes no prompt de inicializao. Veja Outros truques de inicializao com o prompt de inicializao, Seo 8.1.5.
Se o APM est compilado como um mdulo, como nos kernels 2.4 padro da Debian, rode insmod apm power_off=1 aps a inicializao ou configure /etc/modules com:
# echo "apm power_off=1" >>/etc/modules
Alternativamente, ao compilar suporte a ACPI obtm-se o mesmo resultado com kernels mais novos e parece ser mais SMP-amigvel (isto requer uma placa me mais nova). O kernel 2.4 em placas me mais novas detecta corretamente grandes memrias.
CONFIG_PM=y CONFIG_ACPI=y ... CONFIG_ACPI_BUSMGR=m CONFIG_ACPI_SYS=m
Ou recompile o kernel com todas as opes acima configuradas como "y". De qualquer maneira, nenhum destes parmetros de inicializao so necessrios com ACPI.
... siga as instrues para configurar dialup PPP # adduser nome_usuario dip ... permita que nome_usuario acesse dialup PPP
Veja file:///usr/share/doc/ppp/README.Debian.gz para mais detalhes. Alternativamente, o pacote wvdial pode ser usado para configurar o acesso dialup PPP. Por favor, note que h um bug http://bugs.debian.org/82095 bem conhecido, que algumas vezes impede que usurios no-root faam a discagem (dialing). Todos os discadores (dialers) usam o daemon pppd, que inicia os programas encontrados em /etc/ppp/ip-up.d/ ou /etc/ppp/ip-down.d depois de conectar ou desconectar. Isso usado para receber e enviar mensagens.
4.1 Comeando
Depois da instalao do sistema Debian em seu PC, voc precisa aprender algumas coisas para torn-lo til. Vamos dar-lhe um treinamento expresso.
Digite root, pressione a tecla Enter e digite a senha que voc selecionou durante o processo de instalao. No sistema Debian, seguindo a tradio Unix, a senha sensvel a maisculas/minsculas. Ento o sistema comea com uma mensagem de saudao e lhe apresenta o prompt de comando root aguardando sua entrada. [3]
foo login: root Password: Last login: Sun Oct 26 19:04:09 2003 on tty3 Linux foo 2.4.22-1-686 #6 Sat Oct 4 14:09:08 EST 2003 i686 GNU/Linux Most of the programs included with the Debian GNU/Linux system are freely redistributable; 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. root@foo:root#
Voc est pronto para fazer a administrao do sistema a partir desse prompt de comando root. Essa conta root tambm chamada de super-usurio ou usurio privilegiado. A partir dessa conta, voc pode fazer qualquer coisa:
ler, gravar, e remover quaisquer arquivos no sistema independentemente das permisses de arquivo ajustar as propriedades e permisses de quaisquer arquivos no sistema ajustar a senha de qualquer usurio no-privilegiado no sistema fazer login para quaisquer contas sem suas senhas
uma idia extremamente ruim compartilhar o acesso para a conta root compartilhando a senha. O uso de um programa como o sudo(8) a maneira certa de compartilhar privilgios administrativos. Por favor note que considera-se um bom hbito de Unix fazer login para a conta de usurio no privilegiado mesmo quando voc planeja fazer atividades administrativas. Use os comandos sudo, super, ou su -c para obter o privilgio de root limitado quando necessrio. Veja Trabalhando de forma mais segura sudo, Seo 9.2.4. [4]
Como quaisquer outros SOs modernos onde a operao de arquivos envolve cache de dados na memria, o sistema Debian precisa de um procedimento de desligamento apropriado antes que a energia possa ser desligada de forma segura para manter a integridade dos arquivos. Use o comando seguinte a partir do prompt root para desligar o sistema:
# shutdown -h now
Isso para o modo multi-usurio normal. Se voc estiver no modo usurio nico, use o seguinte a partir do prompt de comando root:
# poweroff -i -f
Alternativamente, voc pode pressionar Ctrl-Alt-Delete para desligar. [8] Espere at que o sistema mostre "System halted" e ento desligue a energia. Se a funo APM ou ACPI tiver sido ativada pelo Linux e BIOS apropriadamente, o sistema se desligar sozinho. Veja Memria grande e autodesligamento, Seo 3.7.4 para maiores detalhes.
A partir daqui, o exemplo dado usar o prompt de comando simplificado por facilidade. Eu usarei:
Ns comearemos aprendendo o sistema Debian primeiro da maneira fcil, Midnight Commander (MC), Seo 4.2 e mais tarde da maneira apropriada, Ambiente de trabalho semelhante ao Unix, Seo 4.3.
O Midnight Commander (MC) um "canivete suo" do GNU para o console Linux e outros ambientes de terminal. Isso d ao novato uma experincia com o console baseada em menu que muito mais fcil de aprender que os comandos Unix padres. Use esse comando para explorar o sistema Debian. Essa a melhor maneira de aprender. Por favor, explore alguns locais chave simplesmente usando as teclas de cursor e a tecla Enter:
/etc e seus subdiretrios. /var/log e seus subdiretrios. /usr/share/doc e seus subdiretrios. /sbin e /bin
4.2.1 Melhorar o MC
Para fazer com que o MC mude o diretrio de trabalho ao sair, voc precisa modificar seu arquivo ~/.bashrc (ou /etc/bash.bashrc, chamado a partir do .bashrc), como detalhado em sua pgina de manual, mc(1), sob a opo -P. [12]
4.2.2 Iniciar o MC
$ mc
O MC cuida de todas as operaes de arquivo atravs de seu menu, requerendo esforo mnimo do usurio. Simplesmente pressione a F1 para obter a tela de ajuda. Voc pode brincar com o MC simplesmente pressionando as teclas de cursor e as teclas de funo. [13]
F1: Menu de ajuda F3: Visualizador de arquivos interno F4: Editor interno F9: Ativar o menu F10: Sair do Midnight Commander Tab: Mover entre as 2 janelas Insert: Marcar o arquivo para operao de mltiplos arquivos como cpia
Del: Apagar o arquivo (Tenha cuidado configure o MC para o modo de eliminao segura.) Teclas de cursor: Auto explicativo
Qualquer comando cd mudar o diretrio exibido na janela selecionada. Ctrl-Enter ou Alt-Enter copiar um nome de arquivo para a linha de comando. Use isso com os comandos cp ou mv junto com edio de linha de comando. Alt-Tab exibir possibilidades de expanso de um nome de arquivo no shell. Pode-se especificar o diretrio inicial para ambas as janelas como argumentos para o MC; por exemplo, mc /etc /root. Esc + tecla_numrica == Fn (isto , Esc + `1' = F1, etc.; Esc + `0' = F10) Tecla Esc == tecla Alt (= Meta, M-); isto , tecle Esc + `c' se quiser Alt-c.
4.2.5 Editor no MC
O editor interno tem um interessante esquema de cortar-e-colar. Pressionando F3, marca-se o incio da seleo, um segundo F3 marca o fim e destaca a seleo. Voc pode ento mover seu cursor. Se voc pressionar F6, a rea selecionada ser movida para o local do cursor. Se pressionar F5, a rea selecionada ser copiada e inserida no local do cursor. Para salvar o arquivo, tecle F2. Para sair, use o F10. Muitas teclas de cursor funcionam intuitivamente. Esse editor pode ser iniciado diretamente em um arquivo:
$ mc -e nome_do_arquivo_a_editar $ mcedit nome_do_arquivo_a_editar
Esse editor no multi janela, mas pode-se usar vrios consoles Linux para obter o mesmo efeito. Para copiar entre janelas, use as teclas Alt-Fn para alternar entre os consoles virtuais e use "Arquivo->Inserir arquivo" ou "Arquivo->copiar para Arquivo" para mover uma parte de um arquivo para outro. Esse editor interno pode ser substitudo por qualquer editor externo de sua escolha. Alm disso, muitos programas usam as variveis de ambiente EDITOR ou VISUAL para decidir qual editor a ser usado. Se voc no se sentir confortvel com o vim, defina essas variveis para o mcedit adicionando essas linhas ao arquivo ~/.bashrc:
...
Eu recomendo que elas sejam definidas para vim se possvel. Aprender os comandos do vim a coisa certa a fazer, j que o editor Vi est sempre l no mundo Linux/Unix. [14]
4.2.6 Visualizador no MC
Esse um visualizador muito esperto. uma grande ferramenta para procurar palavras em documentos. Eu o uso sempre para os arquivos no diretrio /usr/share/doc. Essa a maneira mais rpida de navegar entre as massas de informao do Linux. Esse visualizador pode ser iniciado diretamente assim:
$ mc -v nome_do_arquivo_a_visualizar
Para permitir que esses recursos de visualizador e arquivo virtual funcionem, os arquivos visualizveis no devem estar definidos como executveis. Mude seus estados usando o comando chmod atravs do menu de arquivo do MC.
Apesar de o MC possibilitar que voc possa fazer quase tudo, muito importante para voc que aprenda como usar as ferramentas de linha de comando invocadas a partir do prompt shell e se torne familiar com o ambiente de trabalho semelhante ao Unix. [15]
Ctrl-U: Apaga uma linha antes do cursor. Ctrl-H: Apaga um caracter antes do cursor. Ctrl-D: Finaliza a entrada. (sai do shell se voc estiver usando shell) Ctrl-C: Finaliza o programa sendo executado. Ctrl-Z: Pra temporariamente o programa. (coloca-o para trabalho de plano de fundo (background job), veja comando &, Seo 4.3.10.1) Ctrl-S: Trava (Halt) a sada para a tela. [17] Ctrl-Q: Reativa sada para a tela.
O shell padro, bash, tem capacidades de edio de histrico e tab-completar para ajudar o uso interativo.
seta-cima: Inicia busca no histrico de comandos. Ctrl-R: Inicia busca incremental no histrico de comandos. TAB: Completa a entrada do nome de arquivo para a linha de comando. Ctrl-V TAB: Entra TAB sem expanso para a linha de comando.
Ctrl-Alt-Del: Reinicia/halt o sistema, veja Instalar mais alguns pacotes aps a instalao inicial, Seo 3.7.1. Click-boto-esquerdo-e-arrasta do mouse: Seleciona e copia para a rea de tranferncia (clipboard). Click boto do meio do mouse: Cola rea de transferncia no cursor. A tecla Meta (terminologia do Emacs) atribuda tradicionalmente tecla Alt esquerda. Alguns sistemas podem ser configurados para usar a tecla Windows como a tecla Meta.
Aqui, para usar um mouse no console de caracter do Linux, voc precisa ter instalado o gpm como daemon. [18] Veja Configurao do mouse, Seo 3.3.
pwd
o Mostra o nome do diretrio atual/de trabalho. whoami o Mostra o nome do usurio atual. file foo o Mostra o tipo de arquivo do arquivo foo. type -p nomedecomando o Mostra uma localizao de arquivo do comando nomedecomando. o which nomedecomando faz o mesmo. type nomedecomando o Mostra informao sobre o comando nomedecomando. apropos palavra-chave o Encontra comandos relacionados a palavra-chave. o man -k palavra-chave faz o mesmo. whatis nomedecomando o Mostra uma explicao de uma linha sobre o comando nomedecomando. man -a nomedecomando o Mostra uma explicao curta sobre o comando nomedecomando. (estilo Unix) info nomedecomando o Mostra uma explicao longa sobre o comando nomedecomando. (estilo GNU) ls o Lista o contedo do diretrio. (arquivos no-ponto e diretrios) [20] ls -a o Lista o contedo do diretrio. (toods os arquivos e diretrios) ls -A o Lista o contedo do diretrio. (quase todos os arquivos e diretrios, isto , pula ".." e ".") ls -la o Lista todo o contedo do diretrio com informao de detalhe. Veja O conceito de sistema de arquivos no Debian, Seo 4.5.2. ls -d o Lista todos os diretrios sob o diretrio atual. lsof foo o Lista o estado de abertura do arquivo foo. mkdir foo o Cria um novo diretrio foo no diretrio atual. rmdir foo o Remove um diretrio foo no diretrio atual. cd foo o Muda para o diretrio foo no diretrio atual ou no diretrio listado na varivel CDPATH. Veja o comando cd na pgina de manual builtins(7)
cd /
o
cd Muda o diretrio para o diretrio home do usurio. cd /foo o Muda o diretrio para o caminho de diretrio absoluto /foo.
o
cd .. Muda o diretrio para o diretrio pai. cd ~foo o Muda o diretrio para o diretrio home do usurio foo. cd o Muda o diretrio para o diretrio anterior. </etc/motd pager o Mostra o contedo de /etc/motd usando o paginador padro. Veja comando < foo, Seo 4.3.10.8. [21] touch arquivolixo o Cria um arquivo arquivolixo vazio. cp foo bar o Copia um arquivo foo existente para um novo arquivo bar. rm arquivolixo o Remove um arquivo arquivolixo. mv foo bar o Renomeia um arquivo foo existente para um novo nome bar. mv foo bar/baz o Move um arquivo foo existente para um novo local com um novo nome bar/baz. O diretrio bar/ precisa existir. chmod 600 foo o Torna um arquivo foo existente no-legvel e no-gravvel para outras pessoas. (no-executvel para todos) chmod 644 foo o Torna um arquivo foo existente legvel mas no-gravvel por outras pessoas. (no-executvel para todos) chmod 755 foo o Torna um arquivo foo existente legvel mas no-gravvel por outras pessoas. (executvel para todos) top o Mostra a informao de processos usando tela cheia. Pressione "q" para sair ps aux | pager o Mostra informao sobre todos os processos sendo executados usando sada de estilo BSD. Veja comando1 | comando2, Seo 4.3.10.2. ps -ef | pager o Mostra informao sobre todos os processos sendo executados usando sada estilo Unix system-V. ps aux | grep -e "[e]xim" o Mostra todos os processos executando exim. Aprenda a expresso regular a partir da pgina de manual do grep(1) digitando man grep. ps axf | pager o Mostra informao sobre todos os processos sendo executados com sada com ASCII art. kill 1234 o Mata um processo identificado pela ID de processo: 1234. Veja Matar um processo, Seo 8.5.1. grep -e "padro" *.html
o
Encontra um "padro" em todos os arquivos terminando com .html no diretrio atual e mostra todos. gzip foo o Comprime foo para criar foo.gz usando o cdigo Lempel-Ziv (LZ77). gunzip foo.gz o Descompacta foo.gz para criar o arquivo foo. bzip2 foo o Compacta foo para criar foo.bz2 usando o algoritmo de compresso de texto por ordenao de bloco de Burrows-Wheeler, e cdigo de Huffman. (Melhor compresso que o gzip) bunzip2 foo.bz2 o Descompacta foo.bz2 para criar o arquivo foo. tar -xvvf foo.tar o Extrai arquivos a partir do arquivo foo.tar. tar -xvvzf foo.tar.gz o Extrai arquivos a partir do arquivo foo.tar.gz gzipado. tar -xvvf --bzip2 foo.tar.bz2 o Extrai arquivos a partir do arquivo foo.tar.bz2. [22] tar -cvvf foo.tar bar/ o Arquiva o contedo da pasta bar/ no arquivo foo.tar. tar -cvvzf foo.tar.gz bar/ o Arquiva o contedo da pasta bar/ no arquivo comprimido foo.tar.gz. tar -cvvf --bzip2 foo.tar.bz2 bar/ o Arquiva o contedo da pasta bar/ no arquivo foo.tar.bz2. [23] zcat README.gz | pager o Mostra o contedo do README.gz comprimido usando o paginador padro. zcat README.gz > foo o Cria um arquivo foo com o contedo descompactado de README.gz. zcat README.gz >> foo o Acrescenta o contedo descomprimido de README.gz ao final do arquivo foo. (Se ele no existir, cria-o primeiro.) find . -name padro o encontra nomes de arquivo que combinem usando o padro shell. (mais lento) locate -d . padro o encontra nomes de arquivo que combinem usando o padro shell. (mais rpido usando uma base de dados gerada regularmente)
o
Por favor cruze diretrios e mergulhe no sistema usando os comandos acima como um treinamento. Se voc tiver questes sobre qualquer um dos comandos de console, por favor, certifique-se de ler a pgina de manual. Por exemplo, esses comandos so um bom comeo:
$ man man $ man bash $ man ls
Tambm uma boa hora para iniciar o vim e pressionar a tecla F1. Voc deve ler pelo menos as primeiras 35 linhas. Ento faa o curso de treinamento online movendo o cursor para |tutor| e pressionando Ctrl-]. Veja Editores, Captulo 11 para aprender mais sobre editores. Por favor note que muitos comandos similares a Unix incluindo os do GNU e BSD mostraro uma breve informao de ajuda se voc invoc-los em uma das seguintes maneiras (ou sem nenhum argumento em alguns casos):
$ nomedecomando --help $ nomedecomando -h
Teste tambm exemplos em Dicas Debian, Captulo 8 como seu auto treinamento.
Aqui, o programa date executado como o trabalho em primeiro plano (foreground). A varivel de ambiente LC_ALL :
indefinida (padro do sistema, o mesmo que C para o primeiro comando definida para fr_FR (locale francs) para o segundo comando
Muitas execues de comandos geralmente no tm uma definio de varivel de ambiente precedendo. Para o exemplo acima, voc pode executar alternativamente:
$ LC_ALL=fr_FR $ date dim oct 26 08:17:39 CET 2003
Como voc pode ver aqui, a sada do comando afetada pela varivel de ambiente para produzir sada em francs. Se voc quiser que a varivel de ambiente seja transmitida aos subprocessos (por exemplo, quando chamando um script shell), voc precisa ao invs "export"-la usando:
$ export LC_ALL
Aqui o argumento de linha de comando -R muda o comportamento do comando date para sada com data em conformidade com a RFC-2822.
*
o o
Substitui qualquer grupo de 0 ou mais caracteres. No substitui um nome de arquivo que comece com ".". Substitui exatamente um caracter. Substitui exatamente um caracter por qualquer caracter colocado entre os colchetes.
?
o
[...]
o
[a-z]
o Substitui exatamente um caracter por qualquer caracter entre a e z. [^...] o Substitui exatamente um caracter por qualquer outro diferente dos caracteres entre colchetes (excluindo "^").
valor de retorno = 0 se o comando executado com sucesso. valor de retorno = no-zero se o comando finaliza com erro.
O valor de retorno pode ser acessado pela varivel shell $? imediatamente aps a execuo. Por favor note que, quando o valor de retorno usado no contexto lgico para o shell, sucesso tratado como o TRUE (VERDADEIRO) lgico. Isso um pouco no intuitivo j que sucesso produz valor zero.
4.3.10.1 comando & O comando executado na subshell no plano de fundo (background). Tarefas em plano de fundo permitem que usurios executem vrios programas em um nico shell. O gerenciamento de processos em plano de fundo envolve os comandos embutidos do shell: jobs, fg, bg, e kill. Por favor leia as sees da pgina de manual bash(1) em "SIGNALS", "JOB CONTROL", e "SHELL BUILTIN COMMANDS". [26]
4.3.10.2 comando1 | comando2 A sada padro do comando1 transmitida entrada padro do comando2. Ambos os comandos podem estar sendo executados ao mesmo tempo. Isso chamado de pipeline.
4.3.10.4 comando1 && comando2 O comando1 executado. Se tiver sucesso, o comando2 tambm executado seqencialmente. Retorna sucesso se o comando1 ou o comando2 tiverem sucesso.
4.3.10.5 comando > foo Redireciona a sada padro do comando para um arquivo foo. (sobrescreve)
4.3.10.6 comando >> foo Redireciona a sada padro do comando para um arquivo foo (acrescenta (append))
4.3.10.7 comando > foo 2>&1 Redireciona tanto a sada padro quanto a sada padro de erro do comando para um arquivo foo.
4.3.10.8 comando < foo Redireciona a entrada padro do comando para um arquivo foo. Teste:
$ </etc/motd pager ... (as saudaes) $ pager </etc/motd ... (as saudaes) $ pager /etc/motd ... (as saudaes) $ cat /etc/motd | pager ... (as saudaes)
Apesar de as 4 sintaxes mostrarem a mesma coisa, o ltimo exemplo executa um comando cat extra e desperdia recursos sem motivo.
Agora, la funciona como um atalho para ls -la que lista todos os arquivos em formato de listagem longa. Voc pode identificar o caminho (path) exato ou identidade do comando usando o comando type. Por exemplo:
$ type ls ls is hashed (/bin/ls) $ type la la is aliased to `ls -la' $ type echo echo is a shell builtin
Aqui o ls foi procurado recentemente enquanto file no foi, ento o ls est "hashed", isto , o shell tem um registro interno para o acesso rpido da localizao do comando ls.
Nenhuma expresso regular usada: o head tem como sada a primeira parte de arquivos. o tail tem como sada a ltima parte de arquivos. o sort ordena linhas de arquivos texto. o uniq remove linhas duplicadas de um arquivo ordenado. o tr troca ou apaga caracteres. o diff compara aquivos linha por linha. usada Expresso regular bsica (ERB): o grep encontra texto com o padro. o ed um editor de linha primitivo. o sed um editor de fluxo. o vi um editor de tela. o emacs um editor de tela. usada Expresso regular extendida (ERE): o egrep encontra texto com o padro. o awk faz processamento de texto simples. Veja Awk, Seo 13.3. o perl faz todo tipo de processamento de texto concebvel. Veja Perl, Seo 13.4.
Veja Substituio de expresses regulares, Seo 8.6.12, Pequenos scripts para ligar comandos, Seo 8.6.17, e Loucura de script Perl curto, Seo 8.6.19 para ter alguns exemplos de script.
c
o
Combina com o no-metacaracter "c". Combina com o caracter literal "c". Combina com qualquer caracter incluindo newline (nova linha). Combina com o comeo de uma string (cadeia de caracteres). Combina com o final de uma string. Combina com o comeo de uma palavra.
\c
o
.
o
^
o
$
o
\<
o
\>
o Combina com o final de uma palavra. [abc...] o Essa lista de caracteres combina com qualquer um dos caracteres "abc...". [^abc...] o Essa lista de caracteres negada combina com qualquer caracter exceto "abc...". r* o Combina com zero ou mais expresses regulares identificadas por "r". r+ o Combina com uma ou mais expresses regulares identificadas por "r". r? o Combina com zero ou uma expresses regulares identificadas por "r". r1|r2 o Combina com uma das expresses regulares identificadas por "r1" ou "r2". (r1|r2) o Combina com uma das expresses regulares identificadas por "r1" ou "r2" e a trata como uma expresso regular entre parnteses.
Em ERBs os metacaracteres "+ ? ( ) { } |" perdem seu significado especial; ao invs disso use as verses com barra invertida "\+ \? \( \) \{ \} \|". Assim a construo de agrupamento (r1|r2) precisa ser colocada como \(r1|r2\) em ERBs. No emacs, apesar de ser basicamente ERB, "+ ?" so tratados como os metacaracteres. Ento no h necessidade de usar barra invertida para eles. Veja Expresses de substituio, Seo 4.4.2 para saber como a construo de agrupamento usada. Por exemplo, o grep pode ser usado para fazedr a busca de texto usando a expresso regular:
$ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
&
o
\n
o
Para string de substituio Perl, usa-se $n ao invs de \n e & no tem significado especial. Por exemplo:
$ 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 uma ateno extra ao estilo da expresso regular entre parnteses e como as strings casadas so usadas no processo de substituio de texto em ferramentas diferentes. Essas expresses regulares podem ser usadas para os movimentos de cursor e as aes de substituies de texto nos editores tambm. Por favor leia todas as pginas de manual relacionadas para aprender esses comandos.
Nomes de arquivos so sensveis a maisculas/minsculas. Isto , MEUARQUIVO e MeuArquivo so arquivos diferentes. O diretrio raiz (root) referenciado simplesmente como /. No confunda essa "raiz"(root) com o usurio root. Veja Login em um prompt shell como root, Seo 4.1.1. Todo diretrio tem um nome que pode conter quaisquer letras ou smbolos exceto /. [28] O diretrio raiz uma exceo; seu nome / (pronunciado como "slash" (barra) ou "o diretrio raiz") e no pode ser renomeado. Cada arquivo ou diretrio designado por um nome de arquivo totalmente qualificado, nome de arquivo absoluto, ou um caminho, dando a seqncia de diretrios atravs dos quais se precisa passar para alcan-lo. Os trs termos so sinnimos. Todos os nomes de arquivo absolutos comeam com o diretrio /, e h uma / entre cada diretrio ou arquivo no nome de arquivo. A primeira / o nome de um diretrio, mas as outras so simplesmente separadores para distinguir as partes do nome de arquivo. As palavras usadas aqui podem ser confusas. Tome o seguinte exemplo:
/usr/share/keytables/us.map.gz
Esse um nome de arquivo totalmente qualificado; algumas pessoas o chamam de caminho (path). Entretanto, as pessoas tambm se referem a us.map.gz sozinho como um nome de arquivo. [29]
O diretrio raiz tem um nmero de ramos, como /etc e /usr. Esses subdiretrios tambm ramificam em ainda mais subdiretrios, como /etc/init.d e /usr/local. O conjunto todo junto chamado de rvore de diretrios. Voc pode pensar em um nome de arquivo absoluto como uma rota a partir da base da rvore (/) at o fim de algum ramo (um arquivo). Voc tambm ouvir as pessoas falarem sobre a rvore de diretrios como se fosse uma rvore familiar: assim os subdiretrios tem ancestrais, e um caminho mostra a ascendncia completa de um arquivo. H tambm caminhos relativos que comeam em algum lugar diferente do diretrio raiz. Voc deve se lembrar de que o diretrio ../ se refere ao diretrio pai.
No h diretrio que corresponda a um dispositivo fsico, tal como seu disco rgido. Isso difere do CP/M, DOS, e Windows, onde todos os caminhos
comeam com um nome de dispositivo como C:\. Veja O conceito de sistema de arquivos no Debian, Seo 4.5.2. As melhores prticas detalhadas para a hierarquia de arquivos esto descritas no Padro de Hierarquia de Sistema de Arquivos. Voc deve se lembrar dos seguintes fatos como iniciante:
/ o Uma / simples representa o diretrio raiz. /etc o Esse o lugar para os arquivos de configurao globais do sistema. /var/log o Esse o lugar dos arquivos de log do sistema. /home o Esse o diretrio que contm todos os diretrios home para todos os
usurios no privilegiados.
outros usurios no grupo (group) ao qual o arquivo pertence (g), e todos os outros (other) usurios (o).
ler (r) (read): para examinar o contedo do arquivo, escrever (w) (write): para modificar o arquivo, e executar (x): para executar o arquivo como um comando.
ler (r): para listar o contedo do diretrio, escrever (w): para adicionar ou remover arquivos no diretrio, e executar (x): para acessar arquivos no diretrio.
Aqui, permisso de executar no diretrio no significa apenas permitir a leitura dos arquivos em seu diretrio, mas tambm permitir a visualizao de seus atributos, como o tamanho e o tempo de modificao. Para obter as informaes de permisso (e outras) de arquivos e diretrios, usa-se o ls. Consulte ls(1). Quando o ls invocado com a opo -l, exibe essas informaes na seguinte ordem:
o tipo de arquivo (primeiro caracter) o -: arquivo normal o d: diretrio o l: ligao simblica (symlink) o c: n de dispositivo caracter o b: n de dispositivo bloco o p: pipe nomeada o s: soquete as permisses de acesso do arquivo (os prximos nove caracteres, consistindo de trs caracteres cada para usurio (user), grupo (group), e outros (other) nessa ordem) o nmero de ligaes diretas (hard links) para o arquivo o nome do usurio que dono do arquivo o nome do grupo ao qual o arquivo pertence o tamanho do arquivo em caracteres (bytes) a data e hora do arquivo (mtime) o nome do arquivo.
Para mudar o dono do arquivo, usa-se o chown a partir da conta root. Para mudar o grupo do arquivo, usa-se o chgrp a partir da conta do dono do arquivo ou da conta root. Para mudar as permisses de acesso de arquivo e diretrio, usa-se o chmod a partir da conta do dono do arquivo ou da conta root. A sintaxe bsica para manipular o arquivo foo :
# chown novodono foo # chgrp novogrupo foo # chmod [ugoa][+-=][rwx][,...] foo
Veja chown(1), chgrp(1), e chmod(1) para os detalhes. Por exemplo, para fazer uma rvore de diretrios ser de propriedade de um usurio foo e compartilhada por um grupo bar, execute os seguintes comandos a partir da conta root:
# cd /algum/local/ # chown -R foo:bar . # chmod -R ug+rwX,o=rX .
set user ID (s ou S ao invs do x do usurio), set group ID (s ou S ao invs do x do grupo), e sticky bit (t ou T ao invs do x de outros).
Aqui a sada de ls -l para esses bits transformada em maisculas se os bits de execuo estiverem ocultos devido a essas sadas estarem desabilitadas. Habilitar set user ID para um arquivo executvel permite que um usurio execute o arquivo executvel com ID do dono do arquivo (por exemplo root). Similarmente, definir set group ID em um arquivo executvel permite que um usurio execute o arquivo executvel com o group ID do arquivo (por exemplo root). Devido a esses ajustes poderem causar srios riscos de segurana, suas habilitaes requerem cuidado extra. Habilitar set group ID para um diretrio permite o esquema de criao de arquivo no estilo BSD, onde todos os arquivos criados no diretrio pertencem ao grupo do diretrio. Habilitar sticky bit em um diretrio impede que um arquivo no diretrio seja removido por um usurio que no dono do arquivo. Para assegurar o contedo de um arquivo em diretrios globalmente gravveis como /tmp ou em diretrios gravveis por grupo, necessrio no apenas que a permisso de escrita (write) esteja desativada para o arquivo, mas tambm ativar o sticky bit no diretrio. Caso contrrio, o arquivo pode ser removido e um novo arquivo pode ser criado com o mesmo nome por qualquer usurio que tenha permisso de escrita no diretrio. Aqui esto alguns exemplos interessantes das permisses de arquivo.
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd crw-rw---1 root dip 108, 0 Jan 18 13:32 -rw-r--r-1 root root 1051 Jan 26 08:29 /etc/passwd -rw-r----1 root shadow 746 Jan 26 08:29 /etc/shadow -rwsr-xr-1 root dip 234504 Nov 24 03:58 /usr/sbin/pppd $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src drwxrwxrwt 4 root root 4096 Feb 9 16:35 drwxrwsr-x 10 root staff 4096 Jan 18 13:31 /usr/local drwxrwsr-x 3 root src 4096 Jan 19 08:36 drwxrwsr-x 2 root mail 4096 Feb 2 22:19 /dev/ppp
drwxrwxrwt
3 root
root
H um modo numrico alternativo para descrever permisses de arquivo em comandos chmod(1). Esse modo numrico usa de 3 a 4 dgitos de nmeros octais (base=8). Cada dgito corresponde a:
primeiro dgito opcional: soma de set user ID (=4), set group ID (=2), e sticky bit (=1) segundo dgito: soma de permisses de leitura (=4), escrita (=2), e execuo (=1) para o usurio terceiro dgito: idem para o grupo quarto dgito: idem para outros
Isso parece complicado mas na verdade muito simples. Se voc olhar para as primeiras (2-10) colunas da sada do comando ls -l e l-las como uma representao binria (base=2) de permisses de arquivo ("-" sendo "0" e "rwx" sendo "1"), esse valor de modo numrico deve fazer sentido como uma representao octal (base=8) das permisses de arquivo para voc. [30] Por exemplo, teste:
$ touch foo bar $ chmod u=rw,go=r foo $ chmod 644 bar $ ls -l foo bar -rw-r--r-1 pinguim -rw-r--r-1 pinguim
pinguim pinguim
0 Nov 0 Nov
3 23:30 3 23:30
foo bar
A mscara de permisso de arquivo padro pode ser definida usando o comando interno de shell umask. Consulte builtins(7).
mtime: a hora da modificao (ls -l), ctime: a hora da mudana de estado (ls -lc), e atime: a hora do ltimo acesso (ls -lu).
Sobrescrever um arquivo altera mtime, ctime, e atime do arquivo. Mudar a permisso ou o dono de um arquivo altera o ctime e o atime do arquivo. Ler um arquivo altera o atime do arquivo.
Note que at uma simples leitura de um arquivo no sistema Debian normalmente causar uma operao de escrita de arquivo para atualizar a informao de atime no inode. Montar um sistema de arquivos com a opo noatime far com que o sistema pule essa operao e resultar em acesso para leitura mais rpido. Veja mount(8).
uma ligao direta (hard link) um nome duplicado para um arquivo existente. (ln foo bar), ligao simblica, ou "symlink", um arquivo especial que aponta para outro arquivo pelo nome (ln -s foo bar).
Veja no seguinte exemplo as mudanas no contador de ligaes e as sutis diferenas no resultado do comando rm.
$ echo "Contedo Original" > foo $ ls -l foo -rw-r--r-1 osamu osamu 4 Feb $ ln foo bar # ligao direta (hard link) $ ln -s foo baz # ligao simblica (symlink) $ ls -l foo bar baz -rw-r--r-2 osamu osamu 4 Feb lrwxrwxrwx 1 osamu osamu 3 Feb foo -rw-r--r-2 osamu osamu $ rm foo $ echo "Novo Contedo" > foo $ cat bar Contedo Original $ cat baz Novo Contedo 4 Feb 9 22:26 foo
9 22:26 foo
A ligao simblica tem as permisses nominais de acesso de arquivo como "rwxrwxrwx", como mostrado no exemplo acima, com as permisses de acesso efetivas ditadas pelas permisses do arquivo apontado por elas. O diretrio . liga ao diretrio em que aparece, ento o contador de ligaes de qualquer diretrio novo comea com 2. O diretrio .. liga ao diretrio superior, ento o contador de ligaes do diretrio aumenta com a adio de novos subdiretrios.
um pipe nomeado, o processo de leitura espera at que haja algo para ler antes de terminar. O tamanho do pipe sempre zero --- ele no grava dados, apenas liga dois processos como o | do shell. Entretanto, como o pipe tem um nome, os dois processos no precisam estar na mesma linha de comando ou mesmo serem executados pelo mesmo usurio. Voc pode testar isso fazendo o seguinte:
$ cd; mkfifo meupipe $ echo "ol" >meupipe & # pe em plano de fundo (background) [1] 5952 $ ls -l meupipe prw-r--r-1 pinguim pinguim 0 2003-11-06 23:18 meupipe $ cat meupipe hello [1]+ Done echo ol >meupipe $ ls meupipe prw-r--r-1 pinguim pinguim 0 2003-11-06 23:20 meupipe $ rm mypipe
4.5.7 Soquetes
O soquete similar ao pipe nomeado (FIFO) e possibilita que processos troquem informaes. Para o soquete, esses processos no precisam ser executados ao mesmo tempo nem ser filhos do mesmo processo pai. Esse o ponto final para a comunicao entre processos. A troca de informao pode ocorrer pela rede entre diferentes sistemas.
dispositivo caracter o Pode ser acessado um caracter por vez, isto , a menor unidade de dado que pode ser escrita ou lida do dispositivo um caracter (byte). dispositivo bloco o Precisa ser acessado em unidades maiores chamadas blocos, que contm um nmero de caracteres. Seu disco rgido um dispositivo bloco.
Voc pode ler ou escrever em arquivos de dispositivos, embora o arquivo possa conter dados binrios que podem ser algo sem nexo, incompreensvel para humanos. Escrever dados diretamente nesses arquivos algumas vezes til para resoluo de problemas de conexes de hardware. Por exemplo, voc pode enviar um arquivo texto para o dispositivo de impressora /dev/lp0 ou enviar comandos de modem para a porta serial apropriada /dev/ttyS0. Mas, a menos que isso seja feito com cautela, isso pode causar um grande desastre. Ento seja cuidadoso.
um arquivo de dispositivo especial que descarta qualquer coisa quq voc escrever nele. Se voc no quiser alguma coisa, envie para /dev/null. essencialmente um poo sem fundo. Se voc ler de /dev/null, obter um caracter fimde-arquivo (EOF) imediatamente. similar, mas se voc ler a partir dele obtm o caracter \0 (no o mesmo que o nmero zero ASCII). Veja Arquivos Falsos, Seo 8.6.33.
/dev/zero
Aqui,
/dev/hda
tem o nmero maior (major) de dispositivo 3 e nmero menor (minor) de dispositivo 0. acessvel para leitura/escrita pelo usurio que pertence ao grupo disk, /dev/ttyS0 tem nmero maior de dispositivo 4 e nmero menor de dispositivo 64. acessvel para leitura/escrita pelo usurio que pertence ao grupo dialout, e /dev/zero tem nmero maior de dispositivo 1 e nmero menor de dispositivo 5. acessvel para leitura/escrita por qualquer um.
No sistema mais antigo, o processo de instalao cria os ns de dispositivos usando o comando /sbin/MAKEDEV. Veja a pgina de manual MAKEDEV(8). No sistema mais novo, o sistema de arquivos sob o /dev povoado automaticamente pelo sistema de arquivos de dispositivos de forma similar ao sistema de arquivos /proc.
da memria de seu computador. usado para depurar (debug) o kernel. Ele no existe realmente em lugar nenhum, ento no se preocupe com seu tamanho. Veja Ajustando o kernel pelo sistema de arquivos proc, Seo 7.3 e a pgina de manual proc(5).
Para obter o prompt de comando shell, inicie o Xterm a partir do menu: o "XShells" --> "XTerm". Para navegao grfica de pginas web, inicie o Mozilla a partir do menu: o "Apps" --> "Net" --> "Mozilla Navigator". Para navegao grfica de arquivos PDF, inicie o Xpdf a partir do menu: o "Apps" --> "Viewers" --> "Xpdf".
Se voc no encontrar a entrada de menu, instale os pacotes pertinentes. Veja Bsico do gerenciamento de pacotes Debian, Seo 6.2.
Ctrl-Alt-F1 at F6: Muda para outros pseudo-terminais (a partir de uma janela X, DOSEMU, etc.) Alt-F7: Volta para o X Window
Ctrl-Alt-menos: Muda a resoluo da tela no X Window (menos refere-se s teclas no teclado numrico) Ctrl-Alt-mais: Muda a resoluo da tela da maneira oposta no X Window (mais refere-se s teclas no teclado numrico) Ctrl-Alt-Backspace: Termina o programa do Servidor X Alt-X, Alt-C, Alt-V: Combinaes de teclas comuns do Windows/Mac para Cortar, Copiar e Colar com teclas Ctrl- so substitudas por essas teclas Alt- em alguns programas como o Netscape Composer.
"The Linux System Administrators' Guide" (O Guia dos Administradores de Sistemas Linux), o Cobre todos os aspectos de como manter um sistema funcionando, manipulao de contas de usurios, backups, configurao do sistema. o pacote: sysadmin-guide o arquivo: file:///usr/share/doc/sysadmino guide/html/index.html web: http://www.tldp.org/LDP/sag/index.html
"The Linux Network Administrator's Guide, Second Edition" (O Guia dos Administradores de Rede do Linux, Segunda Edio), o uma referncia nica para administrao de rede em um ambiente Linux. o pacote: (not available) o arquivo: (not applicable) o web: http://www.tldp.org/LDP/nag2/index.html "Linux: Rute User's Tutorial and Exposition" o A nice online and hardcover book covering GNU/Linux system administration. o By Paul Sheer o Published by Prentice Hall o Package: rutebook (from non-free) o File: file:///usr/share/doc/rutebook/
As notas de lanamento oficiais para atualizao esto localizadas em http://www.debian.org/releases/stable/releasenotes e http://www.debian.org/releases/testing/releasenotes (trabalho em progresso). O processo para atualizar o sistema para os sabores testing/unstable :
atualizar o sistema APT para a verso Woody se seu sistema for Potato, j que o APT do Potato no tinha as caractersticas descritas na pgina de manual apt_preferences(5) do Woody. modificar seus arquivos /etc/apt/sources.list e /etc/apt/preferences, para incluir referncias seo "testing" dos repositrios que voc usa. Se voc desejar, pode adicionar referncias para a seo "unstable" tambm. atualizar suas listas de pacotes, e instalar quaisquer pacotes que agora so atualizveis.
# apt-setup noprobe ... selecione repositrios, acessados com mtodos HTTP ou FTP
Veja Bsico do gerenciamento de pacotes Debian, Seo 6.2 para conhecer a arte do ajuste do /etc/apt/sources.list e do /etc/apt/preferences. Agora voc pode atualizar a lista de pacotes e atualizar pacotes, usando mtodos descritos na prxima seo.
Todos os seus pacotes atuais sero selecionados quando o dselect iniciar. O dselect pode oferecer-lhe a opo de instalar pacotes adicionais, baseado em depends, suggests, e recommends. Se voc no quiser adicionar nenhum pacote, simplesmente pressione Q para sair do dselect novamente.
# dselect install
Voc precisar responder algumas questes de configurao de pacotes durante essa parte do processo, ento mantenha suas notas prontas e reserve algum tempo a essa parte. Consulte dselect, Seo 6.2.3. Use o dselect. Ele sempre funciona :)
Para reduzir o trfego de rede nos repositrios Debian, certifique-se de configurar um proxy HTTP local usando o squid para os pacotes os quais o download tenha sido feito atravs do APT e, caso necessrio, define a varivel de ambiente http_proxy ou defina o valor http no arquivo /etc/apt/sources.list. Isso melhora consideravelmente a performance de atualizaes em rede, especialmente em diversas mquinas Debian em uma LAN (rede local). Apesar do recurso de pinagem do apt_preferences(5) ser poderoso, ele no resolve todos os problemas de dependncias uma vez que os requerimentos das dependncias tendem a puxar verses mais novas de pacotes de programas fundamentais. + O uso do mtodo descrito em chroot, Seo 8.6.34 desejvel para assegurar simultaneamente tanto a estabilidade do sistema quanto o acesso s ltimas verses de softwares. Este captulo baseado em um sistema Woody mas a maioria da informao tambm se aplica a um sistema Potato (exceto para o apt_perferences(5) e tpicos relacionados ao arquivo /etc/apt/preferences).
6.1 Introduo
Se ler toda a documentao para desenvolvedor muito para voc, leia este captulo primeiro e comece a desfrutar de toda a capacidade do Debian com testing/unstable :-)
Essas no so ferramentas de mesmo nvel. O dselect roda no topo do APT (os comandos de linha so apt-get) e dpkg. O APT usa /var/lib/apt/lists/* para rastrear pacotes disponveis enquanto que o dpkg usa /var/lib/dpkg/available. Se voc instalou pacotes diretamente usando apt-get ou programas similares como o aptitude, certifique-se de atualizar o arquivo /var/lib/dpkg/available a partir do item de menu [U]pdate no dselect ou a partir do comando shell "dselect update" antes de executar dselect select, tasksel, ou dpkg -l.
Como dependncias de pacotes, o apt-get automaticamente insere pacotes com depends mas deixa os pacotes com recommends e suggests, enquanto o dselect oferece controle guiado por menus sob as opes desses pacotes e lhe pergunta pela escolha de pacotes baseado em depends, recommends, e suggests. O aptitude oferece a opo de inserir todos os pacotes automaticamente baseado em depends, recommends e suggests. Veja Dependncias de pacotes, Seo 2.2.8.
O aptitude tambm oferece acesso a tarefas seletivamente atravs de menus. Ele no somente lhe permite selecionar tarefas mas tambm lhe permite desmarcar para instalao pacotes que fazem parte de uma tarefa seletivamente atrves de um menu.
Se voc tentar seguir um ambiente misto como descrito aqui, pode comumente chegar a alguns conflitos de dependncias de pacotes. uma boa idia no misturar sabores. O que vem a seguir para pessoas que desejam experimentar reconhecendo alguns riscos. Para atualizao seletiva seguindo a distribuio testing, o sistema APT (>Woody) precisa ser configurado como em Transio do APT para a verso Woody, Seo 5.1 para usar o recurso apt_preferences(5). Primeiro, adicione os fontes para stable, tyesting, e unstable em seu arquivo /etc/apt/sources.list. Edite ento o arquivo /etc/apt/preferences para definir o Pin-Priority apropriado. [31]
Package: * Pin: release a=stable Pin-Priority: 500 Package: * Pin: release a=testing Pin-Priority: 600 Package: * Pin: release a=unstable Pin-Priority: 50
6.2.3 dselect
Quando iniciado, o dselect automaticamente seleciona todos os pacotes "Requeridos", "Importantes" e "Padro". No sistema Potato, alguns programas grandes como o teTeX e o Emacs se encaixavam nessas categorias e era melhor no instal-los na instalao inicial manualmente desmarcando para instalao os mesmos (digitando `_'). No Woody, esses pacotes foram movidos para a categoria de pacotes "Opcional". O dselect possui uma interface com o usurio de certa forma estranha. Existem quatro comandos ambguos (Maisculas significa MAISCULAS") :
Tecla-Chave Q qualquer forma. R D Faa isso ! U Ao Finalizar. Confirma a seleo atual e finaliza de (sobrescreve dependncias) Reverter ! Eu no queria dizer isso. Droga ! No me importa com o que o dselect acha. Marque todos com o estado sUgerido
Com D e Q, voc pode selecionar selees conflitantes a seu prprio risco. Lide com esses comandos com cuidado. Atualmente, o dselect a ferrementa guiada por menus madura que oferece um controle refinado sobre as escolhas de suggests e recommends. Adicione uma linha contendo a opo "expert" no arquivo /etc/dpkg/dselect.cfg para reduzir o barulho. Para uma mquina mais lenta, voc pode executar o dselect em uma outra mquina mais rpida para encontrar os pacotes e pode usar apt-get install para instal-los.
6.2.4 aptitude
O aptitude um novo instalador de pacotes guiado por menus similar ao dselect. Ele pode tambm ser usado como um comando alternativo de linha de comando no lugar do apt-get. Consulte a pgina de manual do aptitude(1). O aptitude aceita comandos de uma nica tecla, geralmente em letras minsculas.
Tecla-Chave F10 ? u g q x Enter Ao Menu Ajuda para as teclas de comandos Atualiza informaes dos pacotes do repositrio Faz o download e instala os pacotes selecionados Finaliza a tela atual e salva as mudanas Finaliza a tela atual e descarta as mudanas Visualiza informaes sobre um pacote
O aptitude oferece a opo de fazer o download de todos os pacotes automaticamente baseado nos depends, recommends, e suggests. Voc pode mudar esse comportamente escolhendo F10 -> Opes -> Gerenciamento de Dependncias nos menus do aptitude. O aptitude oferece acesso a todas as verses de um pacote.
apt-get -u upgrade Esse comando segue a distribuio testing e atualiza todos os pacotes no sistema enquanto instala suas dependncias da distribuio testing;
apt-get -u dist-upgrade Esse comando segue a distribuio testing e atualiza todos os pacotes do sistema enquanto instala e resolve suas dependncias da distribuio testing.
apt-get -u dselect-upgrade Esse comando segue a distribuio testing e atualiza todos os pacotes no sistema pela seleo do dselect.
apt-get -u install pacote Esse comando instala o pacote pacote e suas depedncias da distribuio testing.
apt-get -u install pacote/unstable Esse comando instala o pacote pacote da distribuio unstable enquanto instala suas dependncias da distribuio testing.
apt-get -u install -t unstable pacote Esse comando instala o pacote pacote da distribuio unstable enquanto instala suas depedncias tambm da distribuio unstable definindo o PinPriority de unstable para 990.
apt-cache policy foo bar ... Esse comando checa o estado dos pacotes foo bar ....
apt-cache show foo bar ... | less Esse comando checa as informaes dos pacotes foo bar ....
apt-get install foo=2.2.4-1 Esse comando instala a verso especfica 2.2.4-1 do pacote foo.
apt-get -u install foo barEsse comando instala o pacote foo e remove o pacote bar.
apt-get remove bar Esse comando remove o pacote bar mas mantm intactos os arquivos de configurao que tenham sido modificados/personalizados.
apt-get remove --purge bar Esse comando remove totalmente o pacote bar com todos os arquivos de configurao modificados/personalizados.
Nos exemplos acima, o uso da opo -u acima assegura que o apt-get exibir uma lista de todos os pacotes que sero atualizados antes de efetuar a ao. O trecho a a seguir define a opo -u como padro:
$ cat >> /etc/apt/apt.conf << . //Sempre exibe pacotes a serem atualizados (-u) APT::Get::Show-Upgraded "true"; .
Uma linha guia para a escolha do Pin-Priority mover de cima para baixo na tabela acima conforme o tempo passa de um momento imediatamente aps o lanamento de uma distribuo para um momento do congelamento (freeze) para o prximo lanamento. Ateno: seguir o tipo testing do Debian possui o efeito colateral de obter atualizaes de segurana muito lentamente. Caso voc misture os tipos do Debian testing com stable ou unstable com stable, voc provavelmente ir obter tambm muitos pacotes-chave no intencionalmente do testing ou unstable que podero conter bugs. Portanto, esteja avisado sobre esse problema. Exemplos do arquivo /etc/apt/preferences que prendem alguns pacotes chave para suas verses mais maduras enquanto seguem as verses menos maduras de outros pacotes no-essenciais esto disponveis no subdiretrios de exemplos com o nome de preferences.testing e preferences.unstable. Por outro lado, o arquivo preferences.stable fora todos os pacotes a serem rebaixados para suas verses existentes na distribuio "estvel" (um "downgrade" na verdade).
e execute "apt-get upgrade", o que fora o rebaixamento devido ao Pin-priority > 1000. Fique atento, podem haver alguns pequenos problemas com dependncias.
1001 e superior: Prioridades de "downgrade" (rebaixamento de verses). O "downgrade" (rebaixamento de verso) do pacote permitido para esta faixa de Pin-Priority.
100 a 1000: Prioridades "Standard" (Padro). O "downgrade" do pacote no permitido. Alguns valores chave de Pin-Priority :
o o o
990: a prioridade definida pela opo --target-release> ou -t do apt-get(8). 500: a prioridade para todos os arquivos de pacotes padro. 100: a prioridade para os arquivos de pacotes atualmente instalados.
0 a 99: Prioridades no-automticas. (Estas so usadas somente caso o pacote no esteja instalado e no exista nenhuma outra verso disponvel.) menor que 0: A verso no selecionada nunca.
Os mesmos efeitos de --target-release podem ser obtidos configurando o arquivo /etc/apt/apt.conf como abaixo :
# echo 'APT::Default-Release "testing";' >> /etc/apt/apt.conf
A opo de linha de comando --target-release e a configurao no arquivo /etc/apt/apt.conf tm prioridade configurao no arquivo
Procure no Google (www.google.com) com palavras de busca incluindo "site:debian.org". Quando tiver dvidas, leia o manual. Configure CDPATH como a seguir:
export CDPATH=.:/usr/local:/usr/share/doc
e digite
$ cd nome-do-pacote $ pager README.Debian # case esse exista $ mc
Mais recursos de suporte esto listados em Suporte para o Debian, Captulo 15.
Alguns scripts de atualizao realmente quebrados podem causar um problema persistente. melhor resolver esse tipo de situao inspecionando os scripts /var/lib/dpkg/info/nome-do-pacote.{post,pre}{inst,rm} do pacote problemtico e ento executar:
# dpkg --configure -a parcialmente instalados # configura todos os pacotes
Se um script reclamar de um arquivo de configurao inexistente, procure o arquivo de configurao correspondente em /etc. Se existir um com uma extenso .new (ou algo similar), modifique-o (mv) para remover o sufixo. Podem ocorrer problemas de dependncia ao instalar em unstable/testing. H maneiras de enganar dependncias.
# apt-get install -f pacote # anula dependncias quebradas
Um mtodo alternativo para resolver essas situaes usar o pacote equivs. Veja file:///usr/share/doc/equivs/README.Debian e O pacote equivs, Seo 6.5.2.
Recentemente, os pacotes atuais no servidor HTTP/FTP podem no ser localizados sob o clssico diretrio /dist, mas sob o novo diretrio /pool. (Veja O diretrio pool, Seo 2.1.10.) Ento instale com:
# dpkg -i /var/cache/apt/archives/arquivodepacote.deb
# dpkg --ignore-depends=pacote1,... -i arquivodopacote.deb # dpkg --force-depends -i arquivodopacote.deb # dpkg --force-depends --purge pacote # dpkg --force-confmiss -i arquivodopacote.deb # Instala arquivo de configurao faltando
Isso deve prover um sistema funcional. Voc pode realizar a recuperao das selees de pacotes usando a tcnica descrita em Recuperao dos dados de seleo de pacotes, Seo 6.3.4. ([FIXME]: Esse procedimento precisa mais experimentos para verificar.)
Ento configure e resolva os problemas. Por outro lado, se a nica coisa que impede de iniciar um lilo quebrado, voc pode iniciar usando um disco de resgate padro do Debian. No prompt de boot, considerando que a partio de sua instalao Linux est em /dev/hda12 e voc quer o nvel de execuo (runlevel) 3, entre:
boot: rescue root=/dev/hda12 3
Ento voc ter iniciado em um sistema quase totalmente funcional com o kernel no disquete. (Podem ocorrer problemas menores devido falta de recursos do kernel ou mdulos.)
O apt-cache showsrc no foi documentado na verso Woody mas funciona :) Voc tambm pode encontrar informao sobre pacote em (eu uso o mc para navegar entre eles):
/var/lib/apt/lists/* /var/lib/dpkg/available
A comparao dos seguintes arquivos d informao sobre o que exatamente aconteceu nas ltimas sesses de instalao.
/var/lib/dpkg/status /var/backups/dpkg.status*
Isso equivalente a executar apt-get -q -y nome-do-pacote. Como isso responde "yes" automaticamente a todas as perguntas, pode causar problemas, ento use essa dica com cuidado. Veja apt.conf(5) e dpkg(1). Voc pode configurar quaisquer pacotes particulares mais tarde seguindo Reconfigurar pacotes instalados, Seo 6.4.4.
Faa isso para o debconf se voc quiser mudar o modo de dilogo do debconf permanentemente. Alguns programas vm com scripts de configurao especiais.
apt-setup - cria /etc/apt/sources.list install-mbr - instala um gerenciador de Master Boot Record tzconfig - configura o fuso horrio local gpmconfig - configura o daemon de mouse gpm eximconfig - configura o Exim (MTA) texconfig - configura o teTeX apacheconfig - configura o Apache (httpd) cvsconfig - configura o CVS sndconfig - configura o sistema de som ... update-alternatives - define o comando padro, por exemplo, vim como vi update-rc.d - gerenciamento de script de init System-V
update-menus ...
apt-get -u install pacote no ser impedido por este "hold". Para manter um pacote forando um rebaixamento automtico para apt-get -u upgrade pacote ou apt-get -u dist-upgrade, adicione o seguinte a /etc/apt/preferences:
Package: libc6 Pin: release a=stable Pin-Priority: 2000
Aqui o campo "Package:" no pode usar entradas como "libc6*". Se voc precisa manter todos os pacotes binrios relacionados ao pacote fonte glibc em uma verso sincronizada, precisa list-los explicitamente. O seguinte listar pacotes em "hold":
dpkg --get-selections "*"|grep -e "hold$"
$ apt-show-versions | fgrep /testing | wc ... quantos pacotes voc tem da testing $ apt-show-versions -u ... lista de pacotes atualizveis $ apt-get install `apt-show-versions -u -b | fgrep /unstable`
... atualiza todos os pacotes unstable para suas verses mais novas
"*" faz minhas_selees incluir entradas de pacotes para "purge" tambm. Voc pode transferir esse arquivo para outro computador, e instal-lo l com:
# # # # dselect update debconf-set-selections < debconfsel.txt dpkg --set-selections <minhas_selees apt-get -u dselect-upgrade # ou dselect install
Aqui cada entrada para deb-src est quebrada em duas linhas devido a restries de impresso, mas a entrada real em sources.list deve consistir de uma nica linha. Ento pegue a fonte e faa um pacote local:
$ $ $ $ apt-get update # atualiza a lista de busca de pacotes fontes apt-get source pacote dpkg-source -x pacote.dsc cd pacote-verso
... inspecione pacotes necessrios (Build-depends no arquivo .dsc) e instale-os tambm. "fakeroot". $ dpkg-buildpackage -rfakeroot ...ou (sem assinatura) $ dpkg-buildpackage -rfakeroot -us -uc # use "debsign" depois se necessrio ...Ento para instalar $ su -c "dpkg -i arquivodopacote.deb" Voc tambm precisa do pacote
Geralmente, necessrio instalar uns poucos pacotes com o sufixo "-dev" para satisfazer dependncias de pacotes. O debsign est no pacote devscripts. O autoapt pode facilitar a satisfao dessas dependncias. O uso de fakeroot evita o uso desnecessrio da conta root. No Woody, esses problemas de dependncias podem ser simplificados. Por exemplo, para compilar um pacote pine de apenas fonte:
# apt-get build-dep pine # apt-get source -b pine
# mkdir /usr/local/debian # mv /algum/lugar/pacote.deb /usr/local/debian # dpkg-scanpackages /usr/local/debian /dev/null | \ gzip - > /usr/local/debian/Packages.gz # echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list
Esses repositrios podem ser acessados remotamente disponibilizando acesso a esses diretrios atravs de mtodos HTTP ou FTP e mudando as entradas em /etc/apt/sources.list apropriadamente.
possibilita a verificao de arquivos de pacotes instalados com checksums MD5. Alguns pacotes no tm checksums MD5 disponveis. Uma soluo temporria para administradores de sistema:
# cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D
Geralmente uma boa idia no usar o dpkg-divert a menos que ele seja absolutamente necessrio.
Os itens no sistema de alternativas do Debian so mantidos em /etc/alternatives como ligaes simblicas. Para definir seu ambiente X Window favorito, aplique update-alternatives para /usr/bin/x-session-manager e /usr/bin/x-window-manager. Para detalhes, veja Sesses X personalizadas, Seo 9.4.5.1.
/bin/sh uma ligao simblica direta para /bin/bash ou /bin/dash. mais seguro usar /bin/bash para ser compatvel com scripts contaminados com velho Bashismo, mas mais disciplinado usar /bin/dash para reforar a compatibilidade POSIX. A atualizao para um kernel Linux 2.4 tende a definir isso para /bin/dash.
A remoo de ligaes simblicas enquanto o script em init.d ainda existe pode ser feita com:
# update-rc.d -f nome remove
Para editar nveis de execuo, eu trapaceio. Eu edito as entradas manualmente usando o comando mv no prompt shell do mc ao copiar as entradas de ligao usando Alt-Enter. Por exemplo:
# mv S99xdm K99xdm # desabilita xdm (X display manager)
Eu tambm desabilito o daemon inserindo exit 0 no incio de um script init.d como um hack rpido. Esses so os arquivos de configurao depois de tudo.
Execute ps aux ou verifique os contedos de /etc/init.d/* e /etc/inetd.conf, se tiver qualquer dvida (sobre Exim, DHCP, ...). Verifique tambm /etc/hosts.deny como em Restringindo logins com PAM, Seo 9.2.1. O comando pidof tambm til (veja pidof(8)). O X11 no permite conexes TCP/IP (remotas) por padro nas verses recentes do Debian. Veja Usando o X sobre TCP/IP, Seo 9.4.6. O redirecionamento do X em SSH tambm desabilitado. Veja Conectando a um servidor X remoto ssh, Seo 9.4.8
pacotes kernel-image. Caso voc use initrd, certifique-se de ler mkinitrd(8) e mkinitrd.conf(5). Consulte tambm http://bugs.debian.org/149236.
make-kpkg kernel_image na verdade faz um make oldconfig e um make dep. No use --initrd caso no esteja usando um initrd. Se quiser usar mdulos de pcmcia-cs ou no usar pcmcia, deve-se selecionar "General setup >" para "PCMCIA/CardBus support >" no make menuconfig e definir a configurao para "< > PCMCIA/CardBus support" (ou seja, desmarque a caixa). Em uma mquina SMP, defina CONCURRENCY_LEVEL de acordo com kernelpkg.conf(5).
Apesar de existirem muitos exemplos para /etc/modules na seo a seguir como uma rpida correo, eu ouvi que a maneira correta de corrigir estes problemas relacionados a mdulos fornecer um alias para o dispositivo em um arquivo em /etc/modutils/ uma vez que existem aliases o bastante disponveis com os kernels atuais. Alguns mdulos podem ser auto ativados por programas de deteco de hardware como o discover. Veja tambm Deteco de hardware para o X, Seo 9.4.2. Consulte Documentation/*.txt nos fontes do kernel Linux para informao precisa.
7.2.1 PCMCIA
O arquivo /etc/modules pode precisar conter o contedo a seguir para que algum PCMCIA antigo funcione :
# driver ISA PnP isa-pnp # Novo Driver PCMCIA baixo-nvel # yenta_socket # no parece ser necessrio em meu caso
O restante gerenciado pelos scripts PCMCIA ( do pacote pcmcia-cs), depmod e kmod. Eu acho que precisei do isa-pnp devido ao meu laptop ser um antigo ISA-PCMCIA. Laptops atuais com CardBus/PCMCIA podem no requerer isso. Voz do gnio Miquel van Smoorenburg miquels@cistron.nl: "Eu simplesmente removi todas as coisas pcmcia do laptop aqui no trabalho , incluindo o cardmgr, etc, e s instalei um kernel 2.4 com suporte cardbus e o novo pacote hotplug do woody. Contanto que voc possua somente cartes 32-bit voc no precisa do pacote pcmcia; o kernel 2.4 possui o cardservices embutido. E o driver tulip padro deve funcionar bem com seu carto dlink. Mike." Veja o HOWTO de PCMCIA no Linux e Configurao de rede e PCMCIA, Seo 10.9.5.
7.2.2 SCSI
[NO TESTADO] O arquivo /etc/modules precisa conter o que se segue para que SCSI funcione :
# SCSI core scsi_mod # SCSI generic driver sg # SCSI disk
O precedente pode no estar otimizado. O depmod pode cuidar de alguns dos mdulos acima.
Habilitar um sistema de arquivo com journaling com o FS EXT3 envolve os seguintes passos usando um pacote kernel-image ( > 2.4.17) Debian pr-compilado :
# cd /etc; mv fstab fstab.old # sed 's/ext2/ext3,ext2/g' <fstab.old >fstab # vi /etc/fstab ... defina o tipo de sistema de arquivos do sistema de arquivos raiz para ... "auto" ao invs de "ext3,ext2" # cd /etc/mkinitrd # echo jbd >>modules # echo ext3 >>modules # echo ext2 >>modules # cd / # apt-get update; apt-get install kernel-image-2.4.17-686-smp ... instale o ltimo kernel e configure a inicializao (lilo executado aqui) # tune2fs -j -i 0 /dev/hda1 # tune2fs -j -i 0 /dev/hda2 ... Para todos os sistemas de arquivos EXT2 convertidos para EXT3 # shutdown -r now
Agora o journaling EXT3 est habilitado. Usar ext3,ext2 como a entrada "type" do fstab garante um fallback seguro para EXT2 caso o kernel no suporte EXT3 para parties no-raz. Caso voc tenha instalado um kernel 2.4 anteriormente e no deseja reinstalar, execute os passos acima at os comandos apt-get e ento :
# mkinitrd -o /boot/initrd.img-2.4.17-686-smp /lib/modules/2.4.17-686-smp # lilo # tune2fs -j -i 0 /dev/hda1 # tune2fs -j -i 0 /dev/hda2 ... para todos os sistemas de arquivos EXT2 convertidos para EXT3 # shutdown -r now
Agora journaling EXT3 est habilitado. Caso /etc/mkinitrd/modules no estivesse configurado quando o mkinitrd foi executado e voc quisesse adicionar alguns mdulos em tempo de inicializao :
... no prompt initrd para ganhar o shell (5 segundos), digite RETURN # insmod jbd # insmod ext3 # modprobe ext3 pode cuidar de tudo # insmod ext2 # ^D ... continue iniciando
Na tela de inicializao do sistema (dmesg), "cramfs: wrong magic" pode aparecer mas conhecido que isso inofensivo. Este problema foi resolvido no Sarge (2002/10). Consulte http://bugs.debian.org/135537 e o mini-HOWTO do Sistema de Arquivos EXT3 ou file:///usr/share/doc/HOWTO/en-txt/mini/extra/ext3mini-HOWTO.gz para maiores informaes.
Foi reportado que alguns sistemas experienciam severos travamentos de kernel caso EXT3 esteja habilitado mas eu no tive problemas (at o kernel 2.4.17).
# echo "65536" > /proc/sys/fs/file-max # para kernel 2.2 e 2.4 # echo "131072" > /proc/sys/fs/inode-max # somente para kernel 2.2
Isso pode ter um pequeno impacto negativo no desempenho de I/O de arquivo. Mas isso assegura os contedos dos arquivos exceto para o ltimo segundo, o que mais curto que o padro de cinco segundos. Isso verdadeiro mesmo para o sistema de arquivos journaling.
possvel iniciar um sistema e logar com a conta do root sem conhecer a senha do root se voc tiver acessso ao teclado do console. (Isto assume que no h requerimentos de senhas da BIOS e de um carregador de inicializao como o lilo que o impediriam de iniciar o sistema.) Este um procedimento que no requer discos de inicializao externos e nenhuma mudana nas configuraes de inicializao. Aqui, "Linux" o rtulo para inicializar o kernel Linux na instalao Debian padro. Na tela de inicializao do lilo, assim que boot: aparecer (voc deve pressionar a tecla shift neste momento em alguns sistemas para prevenir a inicializao automtica), digite :
boot: Linux init=/bin/sh
Isso faz com que o sistema inicie o kernel e execute /bin/sh ao invs de seu padro init. Agora voc ganhou privilgios de root e um shell de root. Uma vez que o / estar atualmente montado como somente-leitura e muitas parties de disco ainda no foram montadas, voc deve fazer o seguinte para conseguir um sistema razoavelmente funcional.
init-2.03# init-2.03# init-2.03# init-2.03# init-2.03# mount -n -o remount,rw / mount -avt nonfs,noproc,nosmbfs cd /etc vi passwd vi shadow
(Caso o segundo campo de dados em /etc/passwd seja "x" para cada nome de usurio, seu sistema usa senhas shadow e voc deve editar o arquivo /etc/shadow.) Para desabilitar a senha do root, edite o segundo campo de dados no arquivo de senhas de maneira a deix-lo vazio. Agora o sistema pode ser reiniciado e voc pode logar como root sem uma senha. Quando inicia no nvel de execuo 1, o Debian (pelo menos depois do Potato) requer uma senha, o que algumas distribuies mais antigas no requerem. uma boa idia ter um editor mnimo em /bin/ caso o /usr/ no esteja acessvel (consulte Editores de recuperao, Seo 11.2). Considere tambm instalar o pacote sash. Quando o sistema ficar em um estado noinicializvel, execute :
boot: Linux init=/bin/sash
O sash funciona como um substituo interativo para o sh mesmo quando o /bin/sh est inutilizvel. Ele estaticamente ligado e inclui muitos utilitrios padres embutidos (tecle "help" no prompt para uma lista de referncia).
Inicie a partir de qualquer conjunto de disco de boot/root. Caso /dev/hda3 seja a partio raiz original, os comandos a seguir iro lhe permitir editar o arquivo de senhas to facilmente quanto da maneira citada acima.
# # # # # mkdir fixit mount /dev/hda3 fixit cd fixit/etc vi shadow vi passwd
A vantagem deste mtodo em relao ao mtodo anterior que voc no precisa conhecer a senha do lilo (caso exista). Mas para usar este mtodo voc deve ser capaz de acessar o setup da BIOS e permitir o sistema iniciar a partir de um disquete ou de um CD, caso isto j no esteja configurado.
Voc ir iniciar ento em um sistema quase que complementamente funcional usando o kernel no disquete. (Podem existir problemas menores devido a falta de recursos ou mdulos do kernel.) Veja tambm Instalar um pacote em um sistema no inicivel, Seo 6.3.6 se tiver um sistema quebrado. Caso voc precise de um disquete de inicializao personalizado, siga as instrues de readme.txt no disco de recuperao.
Aqui, Linux o rtulo para a imagem de kernel atravs da qual voc est inicializando; "vga=normal" ir certificar-se de que o lilo execute em vdeo VGA comum e "s" (ou
"S") o parmetro passado ao init para invocar o modo monousurio. Informe a senha de root no prompt. Existem algumas maneiras de desabilitar todos os daemons X que iniciam :
execute update-rc.d ?dm stop 99 1 2 3 4 5 6 . insira "exit 0" no incio de todos os arquivos /etc/init.d/?dm. renomeie todos os arquivos /etc/rc2.d/S99?dm para /etc/rc2.d/K99?dm. remova todos os arquivos /etc/rc2.d/S99?dm. execute :>/etc/X11/default-display-manager
Aqui, o nmero em rc2.d deve corresponder ao nvel de execuo especificado em /etc/inittab. Tambm, ?dm significa que voc precisa executar o comando vrias vezes substituindo-o com todos entre xdm, gdm, kdm e wdm. Somente o primeiro "a verdadeira maneira" no Debian. O ltimo fcil mas funciona somente no Debian e requer que voc configure o display manager novamente depois usando dpkg-reconfigure. Os outros so mtodos genricos para desabilitar daemons. Voc ainda pode iniciar o X atravs do comando startx a partir de qualquer console shell.
Caso voc queira iniciar o sistema em modo monousurio funcionando normalmente e voc conhece a senha de root, um dos exemplos a seguir no prompt de inicializao do lilo funcionar.
boot: Linux S boot: Linux 1 boot: Linux -s
Caso voc queira iniciar o sistema com uma quantidade de memria inferior a quantidade de memria que o sistema possui fisicamente (digamos, 48MB para um sistema com 64MB), use o seguinte no prompt de inicializao do lilo :
Certifique-se de no especificar mais do que a quantidade de memria que voc possui fisicamente ou o kernel ir travar. Se voc possui mais de 64MB de memria, por exemplo, 128MB, a menos que voc execute mem=128M ou inclua uma linha adicional similar em /etc/lilo.conf, kernels antigos e/ou placas-me com uma BIOS antiga no utilizaro a memria acima de 64MB.
Shell: Use o comando screen com "^A H" como descrito em Mudana de console com screen, Seo 8.6.27; ou use o comando script.
$ script Script started, file is typescript ... faa qualquer coisa ... Ctrl-D $ col -bx <typescript >savefile $ vi savefile
A comparao informativa a seguir sobre copiar um subdiretrio inteiro foi apresentada por Manoj Srivastava srivasta@debian.org na lista de discusso debianuser@lists.debian.org.
8.3.2 cp
Tradicionalmente, o cp no era um candidato para esta tarefa uma vez que ele no desreferenciava ligaes simblicas ou preservava ligaes diretas (hard links). Outra coisa a considerar eram arquivos esparsos (arquivos com buracos). O cp GNU superou estas limitaes; porm, em um sistema no-GNU, o cp poderia continuar a ter problemas. Adicionalmente, voc no pode gerar arquivos pequenos e portveis usando o cp.
% cp -a . novodiretrio
8.3.3 tar
O Tar superou alguns dos problemas que o cp tinha com ligaes simblicas. Porm, apesar do cpio lidar com arquivos especiais, o tar tradicional no o faz. A maneira do tar lidar com mtiplas ligaes diretas para um arquivo colocar somente uma cpia da ligao na fita, mas o nome anexado a esta cpia o nico que voc pode usar para recuperar o arquivo; a maneira do cpio colocar uma cpia para cada ligao, mas voc pode recuper-lo usando quaisquer dos nomes. O comando tar mudou sua opo para arquivos .bz2 entre o Potato e o Woody, portanto, use --bzip2 em scripts ao invs de sua forma abreviada -I (Potato) ou -j (Woody).
8.3.4 pax
O novo, cantante e danante Utilitrio de Troca de Arquivos Portvel, compatvel com os padres POSIX (IEEE Std 1003.2-1992, pginas 380388 (seo 4.48) e pginas 936940 (seo E.4.48)). O pax ir ler, gravar e listar os membros de um arquivo e ir copiar hierarquias de diretrios. A operao do pax independente do formato especfico do arquivo e suporta uma grande variedade de formatos de arquivo. As implementaes do pax ainda so novas.
# apt-get install pax $ pax -rw -p e . novodiretrio ou $ find . -depth | pax -rw -p e
novodiretrio
8.3.5 cpio
O cpio copia arquivos em ou de um arquivo cpio ou tar. O arquivo pode ser outro arquivo no disco, uma fita magntica ou um pipe.
$ find . -depth -print0 | cpio --null --sparse -pvd novodiretrio
8.3.6 afio
O afio uma maneira melhor de lidar com arquivo no formato cpio. Ele geralmente mais rpido do que o cpio, oferece opes de fita magntica mais diversas e lida de maneira graciosa com corrupo de dados de entrada. Ele suporta arquivo em mltiplos volumes durante a operao interativa. O afio pode criar arquivos comprimidos que so muito mais seguros do que arquivo comprimidos tar ou cpio. O afio melhor usado como um "mecanismo de arquivo" em um script de backup.
$ find . -depth -print0 | afio -px -0a novo-diretrio
rdiff-backup: pdumpfs:
unison: cvs:
sincronizao multi-way com servidor backup e histrico, somente texto, maduro. Consulte Concurrent Versions System (CVS) (Sistema de Verses Concorrentes), Seo 12.1.
arch:
sincronizao multi-way com servidor backup e histrico, no existe algo como um "diretrio de trabalho".
subversion:
A combinao de um desses com o mtodo descrito em Copiar e arquivar um subdiretrio inteiro, Seo 8.3 e a atividade regular automatizada descrita em Agendar atividade (cron, at), Seo 8.6.26 faro um bom sistema de backup. Explicarei trs utilitrios de fcil uso.
Consulte rdiff-backup(1).
Consulte pdumpfs(8).
8.5.2 Alt-SysRq
Garantia contra mal funcionamento do sistema fornecida pela opo de compilao de kernel "Magic SysRq key". Pressionar Alt-SysRq em um i386, seguido por uma das teclas r 0 k e i s u b, faz a mgica. Un`r'aw restaura o teclado aps coisas como X travarem. Mudar o nvel de log do console para `0' reduz mensagens de erros. sa`k' (tecla de administrao de sistema) mata todos os processos no console virtual atual. t`e'rminate mata todos os processos no terminal atual exceto o init. k`i'll mata todos os processos exceto o init. `S'ync, `u'mount e re`b'oot so para se livrar de situaes realmente ruins. Informaes detalhadas podem ser encontradas em /usr/share/doc/kernel-docverso/Documentation/sysrq.txt.gz ou /usr/src/kernelverso/Documentation/sysrq.txt.gz.
8.6.1 Paginador
O less o paginador padro (navegador de contedo de arquivo). Pressione `h' para ajuda. Ele pode fazer muito mais do que o more. O less pode ser supercarregado executando eval $(lesspipe) ou eval $(lessfile) no script de inicializao do shell. Veja mais em file:///usr/share/doc/less/LESSOPEN. A opo -R permite sada de caracteres raw e habilita seqncias de escape de cores ANSI. Consulte less(1). O w3m pode ser um paginador alternativo til para alguns sistemas de cdigos (EUC).
A quantidade exata de memria fsica pode ser confirmada com o comando grep '^Memory' /var/log/dmesg, que nesse caso exibe "Memory: 256984k/262144k available (1652k kernel code, 412k reserved, 2944k data, 152k init)".
Total = 262144k = 256M (1k=1024, 1M=1024k) Livre para o dmesg = 256984k = Total - kernel - reserved - data init Livre para o shell = 257136k = Total - kernel - reserved - data
Aproximadamente 5MB de memria no pode ser usada pelo sistema devido ao kernel utiliz-la.
Isto ir definir a hora do sistema e de hardware para MM/DD hh:mm, CCYY. Horas so exibidas em tempo local mas a hora de hardware usa UTC.
8.6.4.1 Definir a hora com conexo Internet permanente Ajustar o relgio do sistema para a hora correta automaticamente atravs de um servidor remoto :
# ntpdate servidor
bom ter esse comando em /etc/cron.daily/ caso seu sistema possua uma conexo Internet permanente.
8.6.4.2 Definir a hora com uma conexo Internet espordica Use o pacote chrony.
Executando o X :
# xset s off ou # xset -dpms ou # xscreensaver-command -prefs
Leia as pginas de manual correspondentes para controlar outros recursos de console. Veja tambm a pgina de manual stty(1) para mudar e mostrar configuraes de linha de terminal.
A Glibc oferece o getent(1) para procurar entradas nas bases de dados administrativas, isto , passwd, group, hosts, services, protocols ou networks.
getent base_de_dados [chave ...]
0: KERN_EMERG, o sistema est inutilizvel 1: KERN_ALERT, uma ao deve ser tomada imediatamente 2: KERN_CRIT, condies crticas 3: KERN_ERR, condies de erro 4: KERN_WARNING, condies de aviso 5: KERN_NOTICE, normal mas em condies significantes 6: KERN_INFO, informativo 7: KERN_DEBUG, mensagens em nvel de depurao
Caso uma mensagem de erro sem utilidade lhe incomode muito, considere fazer um patch para o kernel trivial como o shutup-abit-bp6 (disponvel no subdiretrio de exemplos). Outro lugar a olhar pode ser o /etc/syslog.conf; cheque-o para ver se alguma mensagem logada para um dispositivo console.
Exporte sua seleo como a varivel de ambiente TERM. Caso a entrada terminfo para o xterm no funcione com um xterm no-Debian, mude seu tipo de terminal de "xterm" para uma das verses limitadas em recursos como "xterm-r6" quando voc logar em um sistema Debian remotamente. Consulte file:///usr/share/doc/libncurses5/FAQ para maiores informaes. "dumb" o menor denominador comum para terminfo.
-i para edio "in-place", -p para "loop implcito sobre ARQUIVOS ...". Caso a substituio seja complexa, voc pode tornar a recuperao de erros mais fcil usando o parmetro -i.bak ao invs de -i; isso ir manter cada arquivo original, adicionando .bak como uma extenso de arquivo.
Aqui, os comandos do ed so os mesmos comandos do command-mode do vi. Editar por trs do arquivo facilita a criao do script.
O arquivo diff (alternativamente chamado de arquivo patch) usado para enviar atualizaes de programas. O receptor aplicar esta atualizao em outro arquivo usando :
$ patch -p0 arquivo < arquivo.patch0 $ patch -p1 arquivo < arquivo.patch1
Caso voc possua trs verses do cdigo-fonte, voc pode junt-las mais efetivamente usando o diff3:
$ diff3 -m meu.arquivo arquivo.antigo seu.arquivo > arquivo
Shells como o Bash tambm podem ser usados para interpretar esse tipo de arquivo:
$ while read primeiro ultimo mes ano; do echo $mes done <DPL ... mesma sada do primeiro exemplo Awk
Aqui, o comando interno (built-in) read usa os caracteres em $IFS (internal field separators) (separadores de campos internos) para dividir as linhas em palavras. Se mudar IFS para ":", voc pode interpretar o /etc/passwd com shell facilmente:
$ oldIFS="$IFS" # salva o valor antigo $ IFS=":" $ while read usuario senha uid gid resto_da_linha; do if [ "$usuario" = "osamu" ]; then echo "O ID de $usuario $uid" fi done < /etc/passwd O ID de osamu 1001 $ IFS="$oldIFS" # restaura o valor antigo
(Se o Awk for usado para fazer o mesmo, use FS=":" para definir o separador de campos.) IFS tambm usado pelo shell para dividir resultados de expanso de parmetros, substituio de comandos, e expanso aritmtica. Esses no ocorrem em palavras com aspas duplas ou simples (double or single quoted words). O valor padro de IFS <espao>, <tab> e <nova_linha> combinados. Tenha cuidado ao usar esses truques do IFS do shell. Coisas estranhas podem acontecer, quando o shell interpreta algumas partes do script como sua entrada.
$ IFS=":," $ echo IFS=$IFS, IFS="$IFS" (built-in) do Bash IFS= , IFS=:, $ date -R Sat, 23 Aug 2003 08:30:15 +0200 # usa ":" e "," como IFS # echo um comando interno # apenas uma sada de comando
$ echo $(date -R) shell principal Sat 23 Aug 2003 08 30 36 +0200 $ unset IFS $ echo $(date -R) Sat, 23 Aug 2003 08:30:50 +0200
Loop Shell:
for x in *.ext; do if test -f "$x"; then comando "$x" fi done
find
Como todos os espaos nos argumentos para o perl na linha acima podem ser removidos, e tomando vantagem das converses automticas entre nmeros e strings no Perl:
perl -lane 'print$F[2]if$F[1]eq+1957' |
Veja perlrun(1) para detalhes sobre opes de linha de comando. Se quiser mais scripts Perl loucos, http://perlgolf.sourceforge.net pode ser interessante.
O links e o w3m podem ser usados aqui tambm, com pequenas diferenas na renderizao.
Caso esteja lidando com um arquivo de lista de discusso, use o munpack para obter contedos mime do texto.
Consulte lpr/lpd, Seo 3.6.1. Confira tambm os pacotes a2ps e mpage para criar arquivos Postscript.
processo. Um valor nice de 19 representa o processo mais lento (a menor prioridade); valores negativos so "no-nice", com -20 sendo um processo bem rpido (alta prioridade). Somente o superusurio pode definir valores de nice negativos.
# nice -19 top # muito "nice" # nice --20 cdrecord -v -eject speed=2 dev=0,0 disk.img # muito rpido
Algumas vezes um valor de nice extremo traz mais problemas do que melhorias para o sistema. Use esse comando com cuidado.
Execute o comando at para agendar uma atividade a ser executada apenas uma vez :
$ echo 'comando -argumentos'| at 3:40 monday
Mesmo caso voc use consoles virtuais Linux ou mltiplas janelas xterm, vale a pena explorar o screen devido a seu abundante conjunto de recursos, os quais incluem
histrico scrollback, copiar-e-colar, logging de sada, entrada dgrafo e a habilidade de separar uma sesso screen inteira de seu terminal e anex-la posteriormente.
8.6.27.1 Cenrios de acesso remoto Caso voc freqentemente logue em uma mquina Linux de um terminal remoto ou usando um programa de terminal VT100, o screen ir tornar sua vida mais fcil com o recurso de detach. Voc est logado atravs de uma conexo discada e est executando uma sesso screen complexa com editores e outros programas abertos em diversas janelas. Em certo momento voc precisa deixar seu terminal, mas voc no quer perder seu trabalho desconectando. Simplesmente digite ^A d para separar a sesso e ento faa o logout. (Ou, ainda mais rpido, digite ^A DD para fazer com que o screen separe e faa o logout dele mesmo.) Quando voc logar novamente posteriormente, digite o comando screen -r e o screen ir magicamente anexar todas as janelas que voc deixou abertas.
8.6.27.2 Comandos screen tpicos Uma vez que voc inicia o screen, toda a entrada de teclado enviada para sua janela atual exceto as teclas de comando, por padro ^A. Todos os comandos screen so informados digitando ^A mais uma nica tecla [mais quaisquer parmetros]. Comandos teis :
^A ^A ^A ^A ^A ^A ^A teclado ^A ^A ^A ? c n p 0 w a h H ^X exibe uma tela de ajuda (exibe os mapeamentos de teclas) cria uma nova janela e muda para ela vai para a prxima janela vai para a janela anterior vai para a janela nmero 0 exibe uma lista de janelas envia um Ctrl-A para a janale atual como entrada de grava uma cpia "hard" da janela atual para arquivo inicia/finaliza log da janela atual para arquivo trava o terminal (protegido por senha)
^A d ^A DD
Isto somente um pequeno subconjunto dos comandos e recursos do screen. Caso exista alguma coisa que voc queira que o screen seja capaz de fazer, as chances so que que possa faz-lo ! Consulte screen(1) para maiores detalhes.
8.6.27.3 Backspace e/ou Ctrl-H em sesso screen Se voc achar que o backspace e/ou o Ctrl-H no funcionam corretamente quando voc est executando o screen, edite /etc/screenrc, encontre a linha contendo
bindkey -k kb stuff "\177"
Por exemplo, os seguintes comandos executados a partir do shell do disco de inicializao do Debian apagaro todo o contedo do disco rgido /dev/hda completamente para muitos usos prticos.
# dd if=/dev/urandom of=/dev/hda ; dd if=/dev/zero of=/dev/hda
8.6.34 chroot
O programa chroot, chroot(8), nos possibilita executar diferentes instncias do ambiente GNU/Linux em um nico sistema simultaneamente sem reiniciar. Pode-se tambm executar um programa que exija muitos recursos como o apt-get ou o dselect sob o chroot de uma mquina host rpida enquanto montando por NFS uma mquina satlite lenta no host como leitura/escrita e o ponto de chroot sendo o ponto de montagem da mquina satlite.
8.6.34.1 Executar um sabor diferente do Debian com chroot Um ambiente Debian chroot pode ser criado facilmente pelo comando debootstrap no Woody. Por exemplo, para criar um chroot Sid em /sid-root tendo acesso rpido Internet:
main # cd / ; mkdir /sid-root main # debootstrap sid /sid-root http://ftp.debian.org/debian/ ... assista-o baixar o sistema inteiro main # echo "proc-sid /sid-root/proc proc none 0 0" >> /etc/fstab main # mount proc-sid /sid-root/proc -t proc main # cp /etc/hosts /sid-root/etc/hosts main # chroot /sid-root /bin/bash chroot # cd /dev; /sbin/MAKEDEV generic ; cd chroot # apt-setup # configure /etc/apt/sources.list chroot # vi /etc/apt/sources.list # aponte a fonte para unstable chroot # dselect # voc pode usar aptitude, instalar o mc e o vim :-)
Nesse ponto voc deve ter um sistema Debian completamente funcional, onde pode mexer sem medo de afetar sua instalao Debian principal. Esse truque do debootstrap tambm pode ser usado para instalar o Debian em um sistema sem usar o disco de instalao do Debian, mas usando um de outra distribuio GNU/Linux. Veja http://www.debian.org/releases/stable/i386/apcs04.
8.6.34.2 Configurando o login para chroot Digitar chroot /sid-root /bin/bash fcil, mas isso mantm todos os tipos de variveis de ambiente atribudas que voc pode no desejar, e tem outros problemas. Uma maneira muito melhor executar outro processo de login em um terminal virtual separado onde voc pode logar no chroot diretamente. Como em sistemas Debian padres, do tty1 ao tty6 so executados consoles Linux e no tty7 executado o Sistema X Window, vamos definir o tty8 para um console chroot'ado como um exemplo. Depois de criar o sistema chroot como descrito em Executar um sabor diferente do Debian com chroot, Seo 8.6.34.1, digite a partir do shell root do sistema principal:
main # echo "8:23:respawn:/usr/sbin/chroot /sid-root "\
8.6.34.3 Configurando o X para o chroot Voc quer executar o X e o GNOME mais novos seguramente em seu chroot? Isso perfeitamente possvel! O exemplo seguinte far o GDM executar em um terminal virtual vt9. Primeiro instale um sistema chroot usando o mtodo descrito em Executar um sabor diferente do Debian com chroot, Seo 8.6.34.1. A partir do root do sistema principal, copie os arquivos de configurao chaves para o sistema chroot.
main # main # chroot chroot chroot [servers] chroot cp /etc/X11/XF86Config-4 /sid-root/etc/X11/XF86Config-4 chroot /sid-root # ou use console chroot # cd /dev; /sbin/MAKEDEV generic ; cd # apt-get install gdm gnome x-window-system # vi /etc/gdm/gdm.conf # faa s/vt7/vt9/ na seo # /etc/init.d/gdm start
Aqui, o arquivo /etc/gdm/gdm.conf foi editado para alterar o primeiro console virtual do vt7 para o vt9. Agora voc pode alternar facilmente entre os ambientes X completos no sistema chroot e em seu sistema principal apenas alternando entre terminais virtuais Linux; por exemplo usando Ctrl-Alt-F7 e Ctrl-Alt-F9. Divirta-se! [FIXME] Adicionar um comentrio e ligar ao script init do ambiente gdm chroot'ado.
8.6.34.4 Executar outras distribuies com chroot Um ambiente chroot de outra distribuio pode ser criado facilmente. Voc instala um sistema em parties separadas usando o instalador da outra distribuio. Se a partio raiz dela estiver em /dev/hda9.
main # cd / ; mkdir /outra-dist main # mount -t ext3 /dev/hda9 /outra-dist main # chroot /outra-dist /bin/bash
Ento proceda como em Executar um sabor diferente do Debian com chroot, Seo 8.6.34.1, Configurando o login para chroot, Seo 8.6.34.2, e Configurando o X para o chroot, Seo 8.6.34.3.
Existe um pacote chroot mais especializado, o pbuilder, que constri um sistema chroot e compila um pacote dentro do chroot. Esse um sistema ideal para ser usado para checar se as dependncias de compilao de um pacote esto corretas, e para se certificar que dependncias de compilao desnecessrias ou incorretas no existiro no pacote gerado.
8.6.37 Samba
O bsico para obter arquivos do Windows:
# mount -t smbfs -o username=meunome,uid=my_uid,gid=my_gid \ //servidor/compartilhamento /mnt/smb # monta arquivos Windows para o Linux # smbmount //servidor/compartilhamento /mnt/smb \ -o "username=meunome,uid=my_uid,gid=my_gid" # smbclient -L 192.168.1.2 # lista os compartilhamentos em um computador
acessar os sistemas de arquivos sem montar os dispositivos. Isso feito com programas de espao de usurio, de forma que no necessrio suporte para o sistema de arquivos no kernel.
mtools: para sistema de arquivo MSDOS (MS-DOS, Windows) cpmtools: para sistema de arquivo CP/M hfsutils: para sistema de arquivo HFS (Macintosh nativo) hfsplus: para sistema de arquivo HFS+ (Macintosh moderno)
Para criar e verificar sistema de arquivos MS-DOS FAT, o pacote dosfstools til.
8.7.1 rm -rf .*
Em "rm -rf .*", ".*" expande para incluir "." e "..", e se voc tiver privilgios de escrita no diretrio pai ento voc acabar removendo tambm todos os diretrios prximos ao seu diretrio atual.
"rm -rf ." : remove tudo sob o diretrio atual e o prprio diretrio atual. "rm -rf *" : remove todos os arquivos sem ponto e todos os diretrios sem ponto sob o diretrio atual "rm -rf .[^.]*" : remove todos os arquivos com ponto e todos os diretrios com ponto sob o diretrio atual. "rm -rf .*" : remove tudo sob o diretrio pai e o prprio diretrio pai.
8.7.2 rm /etc/passwd
A perda de alguns arquivos importantes como /etc/passwd por estupidez ruim. O sistema Debian faz cpias de segurana deles regularmente em /var/backups. Quando voc tiver que restaurar esses arquivos, voc pode ter que ajustar as permisses apropriadas manualmente.
# cp /var/backups/passwd /etc/passwd
hdparm o Otimizao de acesso ao disco rgido. Muito eficiente. o Perigoso. Voc precisa ler hdparm(8) primeiro. o hdparm -tT /dev/hda para testar a velocidade de acesso ao disco. o hdparm -q -c3 -d1 -u1 -m16 /dev/hda para aumentar a
Otimizao de acesso a unidade de compact disc. setcd -x 2 para diminuir para velocidade 2 x. Consulte setcd(1).
de ferramentas para gerenciamento de hardware SCSI. de ferramentas para gerenciamento de hardware de memria. de ferramentas para gerenciamento de hardware em baixo
nvel.
irqtune:
muda a prioridade IRQ de dispositivos para permitir que dispositivos que precisem de alta prioridade e servio rpido (por exemplo, portas seriais, modems) tenham a prioridade necessria. possvel aumentar a velocidade atravs de serial/modem em 3x. scanport: varre o espao de I/O a partir de 0x100 at 0x3ff procurando por dispositivos ISA instalados. inb: um pequeno e rpido hack que l uma porta de I/O e devolve o valor em hexadecimal e binrio.
schedutils o Utilidades de escalonamento do Linux. o Esto includos taskset, irqset, lsrt, e rt. o Junto com nice e renice (no includos), eles
Montar um sistema de arquivos com opo noatime tambm muito eficaz para aumentar a velocidade de acesso ao arquivo. Consulte fstab(5) e mount(8). Alguns hardwares podem ser ajustados diretamente pelo kernel Linux atravs do sistema de arquivos proc. Veja Ajustando o kernel pelo sistema de arquivos proc, Seo 7.3. H muitos utilitrios de configurao de hardware especficos. Muitos deles se destinam a necessidades especficas do PC laptop. Eis alguns pacotes interessantes disponveis no Debian:
tpconfig - Um programa para configurar dispositivos touchpad apmd - Utilitrios para Gerenciamento Avanado de Energia (APM) acpi - Exibe informaes sobre dispositivos ACPI acpid - Utilitrios para usar ACPI lphdisk - prepara partio de hibernao para Phoenix NoteBIOS sleepd - pe um laptop para dormir durante inatividade noflushd - permite que discos rgidos ociosos diminuam o giro big-cursor - cursores de mouse maiores para o X acme - Habilita os "botes multimdia" encontrados em laptops tpctl - ferramentas de configurao de hardware do IBM ThinkPad mwavem - suporte a modem Mwave/ACP toshset - acessa muito da interface de hardware do laptop Toshiba toshutils - utilitrios de laptop Toshiba sjog - um programa para usar o "Jog Dial" (roda de avano) em laptops
Sony
Vaio
spicctrl
- programa controlador do Sony Vaio para ajustar o brilho da luz de fundo do LCD
Aqui, o ACPI uma estrutura para o sistema de gerenciamento de energia mais nova que o APM. Alguns desses pacotes necessitam de mdulos especiais do kernel. Eles j so inclusos na ltima fonte do kernel em muitos casos. Se tiver problemas, voc pode precisar aplicar o ltimo patch para o kernel voc mesmo.
Modifique o contedo de /etc/pam.d/login como a seguir, se voc quiser terminais de console inseguros mas sem senha sob seu prprio risco.
#auth auth required required pam_unix.so nullok pam_permit.so
Pode-se aplicar truques similares para o xdm, gdm, ... , para console X sem senha.
Por outro lado, instale cracklib2 e modifique /etc/pam.d/passwd como a seguir, se voc desejar garantir uma boa segurana de senhas.
password required pam_cracklib.so retry=3 minlen=6 difok=3
Uma senha de login para uma nica vez, para ativao de conta, tambm pode ajudar. Para isso, use o comando passwd com a opo -e passwd(1). O nmero mximo de processos pode ser configurado com ulimit -u 1000 em um shell Bash ou com definies em /etc/security/limits.conf de PAM. Outros parmetros como core podem ser configurados de maneira similar. O valor inicial de PATH pode ser ajustado em /etc/login.defs antes do script de incio do shell. A documentao para PAM est no pacote libpam-doc. O Guia dos Administradores de Sistema para Linux-PAM cobre a configurao de PAM, quais mdulos esto disponveis, etc. A documentao tambm inclui O Guia dos Desenvolvedores de Aplicao para Linux-PAM e O Guia dos Escritores de Mdulos Linux-PAM.
O grupo root o grupo wheel padro para o su se pam_wheel.so for usado sem o argumento group=. O grupo adm pode ler arquivos de log. O grupo cdrom pode ser usado localmente para dar acesso a uma unidade de CD-ROM a um conjunto de usurios. O grupo floppy pode ser usado localmente para dar acesso a uma unidade de disquetes a um conjunto de usurios. O grupo audio pode ser usado localmente para dar acesso a um dispositivo de audio a um conjunto de usurios.
O grupo src dono do cdigo fonte, incluindo arquivos em /usr/src. Ele pode ser usado localmente para dar a um usurio a capacidade de gerenciar o cdigo fonte do sistema. A participao no grupo staff til para administradores de sistema do tipo helpdesk ou junior, dando-lhes a capacidade de fazer coisas em /usr/local e criar diretrios em /home.
Para uma lista completa, veja a seo "FAQ" no Securing Debian Manual, que tambm pode ser encontrado como o pacote harden-doc no Woody. Alm disso, o novo base-passwd (>3.4.6) contm uma lista oficial: file:///usr/share/doc/basepasswd/users-and-groups.html.
claro que se voc sabe a senha de root (como muitos usurios domsticos sabem), qualquer comando pode ser executado como root a partir de uma conta de usurio:
$ su -c "shutdown -h now" Password:
(Eu sei que deveria diminuir os privilgios sudo das contas admin. Mas como esse meu servidor caseiro, ainda no me preocupei como isso.) Se quiser um programa diferente que permita que usurios ordinrios executem comandos com privilgios de root, veja o pacote super.
O super-servidor de Internet, inetd, iniciado na inicializao por /etc/rc2.d/S20inetd (para RUNLEVEL=2), que um link simblico para /etc/init.d/inetd. Essencialmente, o inetd permite a execuo de um daemon para a chamada de vrios outros, reduzindo a carga no sistema. Sempre que um pedido de um servio chega, seu protocolo e servio so identificados procurando-os nas bases de dados em /etc/protocols e /etc/services. O inetd ento procura um servio de Internet normal na base de dados de /etc/inetd.conf , ou um servio baseado em Sun-RPC em /etc/rpc.conf. Para segurana do sistema, no esquea de desabilitar servios sem uso em /etc/inetd.conf. Os servios Sun-RPC precisam ser ativados para NFS e outros programas baseados em RPC. Algumas vezes, o inetd no inicia um servidor desejado diretamente, mas inicia o programa daemon wrapper de TCP/IP tcpd com o nome do servidor desejado como seu argumento em /etc/inetd.conf. Nesse caso, o tcpd executa o programa servidor apropriado depois de registrar o pedido e fazer algumas verificaes adicionais usando /etc/hosts.deny e /etc/hosts.allow. Se voc tiver problemas com acesso remoto em um sistema Debian recente, comente "ALL: PARANOID" em /etc/hosts.deny se ele existir. Para mais detalhes, veja inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8), hosts_access(5), e hosts_options(5). Para mais informao sobre Sun-RPC, veja rpcinfo(8) , portmap(8), e file:///usr/share/doc/portmap/portmapper.txt.gz.
Guia do Administrador OpenLDAP no pacote openldap-guide LDP: LDAP Linux HOWTO LDP: LDAP Implementation HOWTO
OpenLDAP, relatos de uso extensivo Open LDAP com Courier IMAP e Postfix
9.3 Gravadores de CD
Os gravadores de CD com interfaces ATAPI/IDE recentemente se tornaram uma opo muito popular. uma boa mdia para backup do sistema e arquivamentos para o usurio
domstico que precise de capacidade < 640 MB. Para informao de maior autoridade, veja o CD-Writing-HOWTO do LDP.
9.3.1 Introduo
Primeiro, qualquer interrupo dos dados enviados para o gravador de CDs causar danos irrecuperveis ao CD. Obtenha um gravador de CD com o maior buffer possvel. Se dinheiro no for problema, no se aborrea com um ATAPI/IDE, simplesmente pegue uma verso SCSI. Se voc tiver escolha sobre em qual interface IDE conectar, use a que estiver no barramento PCI (isto , na placa me) ao invs de uma no barramento ISA (uma placa SB16, etc.). Quando um gravador de CDs est conectado IDE, precisa usar o driver IDE-SCSI ao invs de um driver de CD IDE ordinrio para kernels Linux 2.2 e 2.4. Alm disso, o driver SCSI genrico precisa ser ativado. H duas possveis maneiras de se fazer isso, considerando um kernel distribudo com distribuies atuais (como de maro de 2001).
Aqui a localizao do gravador de CDs, que acessado atravs do driver ide-scsi, indicada por hdx, onde x representa um dos seguintes:
hda hdb hdc hdd hde ... hdh IDE ATA66/100 para para para para para o mestre na primeira porta IDE o escravo na primeira porta IDE o mestre na segunda porta IDE o escravo na segunda porta IDE uma unidade em uma porta IDE externa ou porta
Digite os seguintes comandos como root para ativar depois de acabar toda a configurao:
# lilo # shutdown -h now
bzImage Exclua o driver para CD IDE (no necessrio, mas isso simplifica) Compile ide-scsi e sg diretamente no kernel, ou como mdulos
[Por Warren Dodge] Algumas vezes podem ocorrer conflitos entre ide-scsi e idecd se houver CD-ROM e CD-R/RW no sistema. Tente adicionar a seguinte linha ao seu /etc/modutils/aliases, executando update-modules, e reinicialize.
pre-install ide-scsi modprobe ide-cd
Isso faz com que o driver IDE seja carregado antes do ide-scsi. O driver IDE idecd toma o controle do ATAPI CD-ROM qualquer coisa que no lhe tenha sido dito para ignorar. Isso deixa apenas os dispositivos ignorados para o ide-scsi controlar.
Um hack divertido fazer um CD-ROM de DOS inicializvel. Se um disquete de inicializao ordinrio de DOS estiver no boot.img acima, o CD-ROM inicializar como se um disquete de DOS estivesse na primeira unidade de disquetes (A:). Fazer isso com freeDOS pode ser mais interessante. Esse arquivo de imagem de CD pode ser inspecionado montando-o no dispositivo loop.
# # # # mount -t iso9660 -o ro,loop cd-image.raw /cdrom cd /cdrom mc umount /cdrom
seguido de
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
So necessrios esses dois passos para prevenir que timeouts de SCSI durante o apagamento interfiram no passo da gravao. O valor do argumento para o nice pode necessitar de alguns ajustes.
Aqui, ajuste os 3 parmetros para 0 para muitos casos. Geralmente o nmero de setores dados pelo readcd excessivo! Use o nmero acima a partir de um mount real para melhores resultados. Deve-se notar que o uso do dd tem alguns problemas se usado no CD-ROM. A primeira execuo do comando dd pode causar uma mensagem de erro e pode resultar em uma imagem de disco mais curta com a perda do final. A segunda execuo do comando dd pode resultar em uma imagem de disco maior com lixo anexo ao final em alguns sistemas se o tamanho do dado no for especificado. Somente a segunda execuo do comando dd com o tamanho de dado correto especificado sem ejetar o CD depois de mensagem de erro parece evitar esses problemas. Se o tamanho da imagem mostrado pelo df for 46301184 blocos, use o seguinte comando duas vezes para obter a imagem correta (esta minha informao emprica):
# dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))
Se voc no tiver uma conexo rpida com a Internet, pense em comprar os CDs de vendedores de CD. Por favor, no jogue fora largura de banda baixando imagens de CD padro a menos que seja um testador de imagem de CD (mesmo com o novo mtodo jigdo). Uma imagem de CD notvel o KNOPPIX - Live Linux Filesystem On CD. Esse CD inicializa em um sistema Debian funcional sem instalar-se no disco rgido.
ou,
# apt-get install cdrdao #disk at once # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # l o cd # cdrdao write --device /dev/cdrom --speed 8 my_cd CD novo # grava um
9.4 X
O Sistema X Window provido pelo XFree86. H duas verses principais do servidor X disponveis no sistema Debian: XFree86 Verso 3.3 (XF3) e XFree86 Verso sries 4.x (XF4), ambas baseadas em especificaes X11R6 pelo X.Org. Para informaes bsicas do X, refira-se a X(7), ao XWindow-User-HOWTO do LDP, e ao Mini-HOWTO de Aplicaes remotas no X. Para um guia de usurio especfico do Debian, leia o arquivo file:///usr/share/doc/xfree86-common/FAQ.gz fornecido no pacote xfree86-common. Esse contm uma reviso interessante e de autoridade sobre os problemas de mapeamento de teclado, feita por Branden Robinson. O servidor X, Seo 9.4.3 um programa em um sistema local que mostra uma janela X e/ou desktop em um monitor do usurio (CRT, LCD) e aceita entradas de teclado e mouse. Clientes X, Seo 9.4.4 um programa em um sistema (local ou remoto) que executa uma aplicao compatvel com X. Isso reverte o uso ordinrio de "servidor" e "cliente" em outros contextos. H vrias maneiras de se fazer o "servidor X" (lado do display) aceitar conexes remotas de um "cliente X" (lado da aplicao):
Mtodo xhost o o mecanismo de listagem de host (muito inseguro). o protocolo no encriptado (sujeito ao "eavesdropping attack"). o No use isso, se possvel.
Mtodo xauth o o mecanismo de cookie mgico do MIT (inseguro, mas melhor que o xhost). o protocolo no encriptado (sujeito ao "eavesdropping attack"). o use isso apenas para conexo local j que ele usa a CPU de forma menos intensa que ssh -X. o Veja Obtendo root no X, Seo 9.4.12 e xauth(1x). Mtodos xdm, wdm, gdm, kdm, ... o o mecanismo de cookie mgico do MIT (inseguro como o xauth). o Veja xdm(1x) e Xsecurity(7) para informaes bsicas sobre o controle de acesso ao display do X. o Veja wdm(1x), gdm(8), e kdm.options(5) para mais informaes, se esses estiverem instalados. o Veja init System-V e nveis de execuo (runlevels), Seo 6.5.4 para saber como desabilitar o xdm para ter um console Linux depois da inicializao sem ter que excluir o pacote xdm. Mtodo ssh -X o mecanismo de redirecionamento atravs de shell seguro (seguro). o protocolo encriptado (um desperdcio de recursos se usado localmente). o use isso para conexes remotas. o Veja Conectando a um servidor X remoto ssh, Seo 9.4.8.
Todos os mtodos de conexo remota, exceto o ssh, requerem conexo TCP/IP habilitada no servidor X. Veja Usando o X sobre TCP/IP, Seo 9.4.6.
9.4.1 Pacotes do X
Existem alguns (meta)pacotes disponibilizados para facilitar a instalao do sistema X no Woody.
x-window-system-core
Este metapacote prov os componentes essenciais para uma estao de trabalho executando o Sistema X Window. Ele prov as bibliotecas X, um servidor X (xserver-xfree86), um conjunto de fontes, e um grupo de clientes X bsicos e utilidades.
x-window-system
Este metapacote prov praticamente todos os componentes do Sistema X Window desenvolvidos pelo Projeto XFree86, assim como um conjunto de programas acessrios historicamente populares. (Notavelmete, ele depende dos
pacotes x-window-system-core, twm, e xdm, isto , no preciso instalar o xwindow-system-core se voc instalar esse.)
xserver-common-v3
Pacotes de servidores XF3 adicionais para suportar hardware no suportado pelo novo servidor XF4 (xserver-xfree86) por qualquer razo que seja. Algumas antigas placas ATI mach64 no so suportadas no XF4, outras placas travam na verso XF4 do Woody, etc. (Para saber os pacotes disponveis, use apt-cache search xserver-|less. Todos os servidores XF3 dependem do pacote xserver-common-v3.) Em muitos casos, o pacote a instalar o x-window-system. (Se voc quiser login pelo console, desabilite o xdm como descrito em "Deixe-me desabilitar o X na inicializao !", Seo 8.1.4.)
ferramenta de autodeteco do mouse. ferramenta para obteno de informao para monitores VESA
read-edid
PnP.
9.4.3 O servidor X
Veja XFree86(1x) para obter informaes sobre o servidor X. Para chamar o servidor X a partir de um console local:
$ startx -- :<display> vtXX por exemplo: $ startx -- :1 vt8 -bpp 16 ... inicia no vt8 conectado a localhost:1 com modo 16 bpp
Note que, ao usar um script ~/.xserverrc para personalizar a inicializao do servidor X, certifique-se de fazer exec para o servidor X real. Se no fizer isso, o servidor X pode demorar a iniciar e sair. Por exemplo:
#!/bin/sh exec /usr/bin/X11/X -dpi 100 -nolisten tcp
9.4.3.2 Configurando o servidor X (verso 3) Para (re-)configurar um servidor XF3, por exemplo, para ATI mach64,
# dpkg-reconfigure --priority=low xserver-common-v3 # dpkg-reconfigure --priority=low xserver-mach64
9.4.3.3 Configurando o servidor X manualmente No Woody, para adicionar personalizaes do usurio ao arquivo /etc/X11/XF86Config-4, no edite o arquivo de configurao entre o texto:
### BEGIN DEBCONF SECTION [snip] ### END DEBCONF SECTION
Ao invs disso, adicione as personalizaes antes do texto. Por exemplo, para usar um dispositivo de vdeo personalizado, adicione alguma coisa modificando o seguinte texto no incio do arquivo:
Section "Device" Identifier Driver Option EndSection "Custom Device" "ati" "NoAccel"
Monitor "Generic Monitor" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 16 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 24 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection EndSection Section "ServerLayout" Identifier "Custom" Screen "Custom Screen" InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Configured Mouse" "CorePointer" EndSection
No Sarge (testing no momento em que escrevo), se voc quiser manter as personalizaes do usurio no arquivo /etc/X11/XF86Config ao atualizar, execute os seguintes comandos como root:
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom # md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config4.md5sum # dpkg-reconfigure xserver-xfree86
Para obter fontes menos feias, voc precisa editar o /etc/X11/XF86Config-4 como descrito em Fontes TrueType no X, Seo 9.4.13. Por favor, verifique tambm as outras partes de sua configurao do X. Ajustes ruins de monitor podem ser uma dor de cabea at pior que fontes ruins, ento certifique-se de que sua taxa de atualizao to alta quanto seu monitor pode suportar (85 Hz timo, 75 Hz est bom, 60 Hz horrvel.).
9.4.4 Clientes X
Muitos programas clientes X podem ser iniciados com um comando como esse:
cliente $ xterm -geometry 80x24+30+200 -fn 6x10 -display nomemquina:0 &
-geometry LARGURAxALTURA+DESL_X+DESL_Y: o tamanho inicial e a posio da janela. -fn NOMEFONTE: a fonte a usar para exibir texto. NOMEFONTE pode ser: o a14: Fonte de tamanho normal o a24: Fonte de tamanho grande o ... (verifique as fontes disponveis com xlsfont.) -display nomedisplay: o nome do servidor X a usar. nomedisplay pode ser: o nomemquina:D.T significa tela T no display D da mquina nomemquina; o servidor X para esse display est escutando na porta TCP 6000+D. o mquina/unix:D.T significa tela T no display D da mquina mquina; o servidor X para esse display est escutando o UNIX domain socket /tmp/.X11-unix/XD (ento ele s acessvel pela mquina). o :D.T equivalente ao mquina/unix:D.T, onde mquina o nome da mquina local.
O nomedisplay padro para o programa cliente X (lado da aplicao) pode ser definido pela varivel de ambiente DISPLAY. Por exemplo, antes de executar um programa cliente X, a execuo de um dos seguintes comandos faz isso:
$ export DISPLAY=:0 # O padro, mquina local usando a primeira tela do X $ export DISPLAY=nomemaquina.dominio.nome:0.2 $ export DISPLAY=localhost:0
Como descrito em Sesses X personalizadas, Seo 9.4.5.1, isso substitui tudo que a execuo normal de Xsession faz ao iniciar a partir de startx. Use o ~/.xsession ao invs disso e use essa alternativa apenas como ltimo recurso. Veja xsetroot(1x), xset(1x) e Recursos do X, Seo 9.4.10.
9.4.5 Sesses X
Uma sesso X (servidor X + cliente X) pode ser iniciada por:
startx:
comando de script para xinit para iniciar o servidor e o cliente X a partir do console de caracteres do Linux. Se o arquivo ~/.xinitrc no existir, /etc/X11/Xsession executado atravs de /etc/X11/xinit/xinitrc.
ou wdm: Daemons gerenciadores de display X para iniciar o servidor e o cliente X, e para controlar o login a partir de uma tela GUI. /etc/X11/Xsession executado diretamente.
O console pode ser disponibilizado como em "Deixe-me desabilitar o X na inicializao !", Seo 8.1.4.
9.4.5.1 Sesses X personalizadas O script de inicializao padro /etc/X11/Xsession efetivamente uma combinao de /etc/X11/Xsession.d/50xfree86-common_determine-startup e /etc/X11/Xsession.d/99xfree86-common_start. A execuo de /etc/X11/Xsession um pouco afetada por /etc/X11/Xsession.options e essencialmente uma execuo de um programa que foi encontrado primeiro na seguinte ordem com o comando exec : ~/.xsession ou ~/.Xsession, se for definido. /usr/bin/x-session-manager, se for definido. /usr/bin/x-window-manager, se for definido. /usr/bin/x-terminal-emulator, se for definido. O significado exato desses comandos determinado pelo sistema de alternativas do Debian descrito em Comandos alternativos, Seo 6.5.3. Por exemplo:
# update-alternatives --config x-session-manager ... ou # update-alternatives --config x-window-manager
Para tornar qualquer gerenciador de janelas do X como padro enquanto se mantm os gerenciadores de sesso do GNOME e KDE instalados, substitua o /etc/X11/Xsession.d/50xfree86-common_determine-startup com o anexo no segundo relatrio de bug em http://bugs.debian.org/168347 (Eu espero que ele seja includo logo.) e edite o /etc/X11/Xsession.options como a seguir para desabilitar o gerenciador de sesso X:
# /etc/X11/Xsession.options # # opes de configurao para /etc/X11/Xsession # Veja Xsession.options(5) para uma explicao das opes disponveis. # Padro habilitado allow-failsafe allow-user-resources allow-user-xsession use-ssh-agent # Padro desabilitado (habilite-os descomentando)
do-not-use-x-session-manager #do-not-use-x-window-manager
Sem a modificao no sistema mencionada acima, gnome-session e kdebase so os pacotes contendo esses gerenciadores de sesso X. Sua remoo permite que o gerenciador de janelas X seja um padro. (Yack, alguma idia melhor?) Em um sistema onde /etc/X11/Xsession.options contm uma linha allow-userxsession sem caracteres precedendo, qualquer usurio que defina um ~/.xsession ou ~/.Xsession poder personalizar a ao de /etc/X11/Xsession. O ltimo comando no arquivo ~/.xsession deve usar a forma exec algumgerenciador-de-janelas/sesso para iniciar seu gerenciador de janelas/sesso X. Um bom exemplo de um script ~/.xsession dado em
file:///usr/share/doc/xfree86-common/examples/xsession.gz.
Eu uso isso para definir o gerenciador de janelas acesso tela e idioma de suporte para cada conta de usurio. Veja Iniciando uma sesso X para um usurio, Seo 9.4.5.2, Obtendo root no X, Seo 9.4.12, e Exemplo para um sistema X window multi-idiomas, Seo 9.7.9. Se voc desejar ter vrios programas clientes X iniciados automaticamente, veja os exemplos Clientes X, Seo 9.4.4 e invoque-os a partir do arquivo ~/.xsession ao invs do arquivo ~/.xinitrc. Recursos X especficos do usurio podem ser definidos em ~/.Xresources. Veja Recursos do X, Seo 9.4.10. Mapas de teclado e funes dos botes do apontador personalizados para o usurio no X tambm podem ser especificados no script de inicializao do usurio. Veja Mapas de teclado e funes de botes do apontador no X, Seo 9.4.11.
9.4.5.2 Iniciando uma sesso X para um usurio Seguindo o princpio descrito em Sesses X personalizadas, Seo 9.4.5.1, um gerenciador de sesso/janelas X especfico do usurio pode ser ativado instalando o pacote indicado e definindo o contedo no final do arquivo ~/.xsession como a seguir. (Eu gosto do blackbox/fluxbox por seu estilo simples e pela alta velocidade.):
gerenciador de sesso X padro o Veja Comandos alternativos, Seo 6.5.3 o exec /usr/bin/x-session-manager gerenciador de janelas X padro o Veja Comandos alternativos, Seo 6.5.3 o exec /usr/bin/x-window-manager
Gerenciador de sesso do GNOME (pesado) o Instalar pacote: gnome-session o exec /usr/bin/gnome-session Gerenciador de sesso do KDE (pesado) o Instalar pacote: kdebase (ou kdebase3 para KDE3) o exec /usr/bin/kde2 Gerenciador de janelas Blackbox (leve, simples) o Instalar pacote: blackbox o exec /usr/bin/blackbox Gerenciador de janelas Fluxbox (leve, novo blackbox) o Instalar pacote: fluxbox o exec /usr/bin/fluxbox Gerenciador de janelas Xfce (parecido com Mac OS-X, SUN CDE) o Instalar pacote: xfce o exec /usr/bin/xfwm Gerenciador de janelas IceWM (leve, alternativa ao GNOME) o Instalar pacote: icewm o exec /usr/bin/X11/icewm Gerenciador de janelas virtual FVWM2 (leve, parecido com Win95) o Instalar pacote: fvwm o exec /usr/bin/fvwm2 Gerenciador de janelas Windowmaker (algo parecido com NeXT) o Instalar pacote: wmaker o exec /usr/bin/wmaker Gerenciador de janelas Enlightenment (pesado). o Instalar pacote: enlightenment o exec /usr/bin/enlightenment
9.4.5.3 Configurando KDE e GNOME Para configurar um ambiente KDE ou GNOME completo, os seguintes metapacotes so teis:
A instalao desses pacotes com ferramentas que manipulam recommends, como o dselect e o aptitude, lhe d melhores opes de software que simplesmente installos com o apt-get. Se voc quiser login de console, certifique-se de desabilitar gerenciadores de sesso como kdm, gdm, e wdm, que podem ser inseridos pelas dependncias, como descrito em "Deixe-me desabilitar o X na inicializao !", Seo 8.1.4. Se voc quiser ter o GNOME como padro do sistema sobre o KDE, no esquea de configurar x-session-manager como em Comandos alternativos, Seo 6.5.3.
O xhost no distingue entre diferentes usurios na mquina remota. Alm disso, nomes de mquinas (endereos) podem ser falsificados.
Esses mtodo precisa ser evitado mesmo com o critrio de mquina mais restritivo se voc estiver em uma rede no confivel (por exemplo com uma conexo de acesso discado PPP Internet). Veja xhost(1x).
Defina as entradas X11Forwarding e AllowTcpForwarding para yes no /etc/ssh/sshd_config da mquina remota, se voc quiser evitar as opes de linha de comando correspondentes. Inicie o servidor X na mquina local. Abra um xterm na mquina local. Execute o ssh para estabelecer uma conexo com o sistema remoto.
nomelocal @ maquinalocal $ ssh -q -X -l nomelogin maquinaremota.dominio Password: .....
Esse mtodo permite a exibio da sada de um cliente X remoto como se ele estivesse conectado localmente atravs de um soquete de domnio UNIX local.
9.4.10 Recursos do X
Muitos programas X antigos, como o xterm, usam a base de dados de recursos do X para configurar sua aparncia. O arquivo ~/.Xresources usado para armazenar as especificaes dos recursos do usurio. Esse arquivo carregado automaticamente nos recursos padres do X ao fazer o login. Os padres gerais do sistema para os recursos do X so armazenados em /etc/X11/Xresources/* e os padres de aplicaes deles so armazenados em /etc/X11/app-defaults/*. Use esses ajustes como pontos de partida. Aqui esto algumas configuraes teis para adicionar ao seu arquivo ~/.Xresources :
! Define a fonte para uma mais legvel 9x15 XTerm*font: 9x15 ! Exibe uma barra de rolagem XTerm*scrollBar: true ! Define o tamanho do buffer para 1000 linhas XTerm*saveLines: 1000 ! Tela grande do kterm KTerm*VT100*fontList: -*-fixed-medium-r-normal--24-*,\ -*-gothic-medium-r-normal--24-*,\ -*-mincho-medium-r-normal--24-*
Para fazer com que essas configuraes tenham efeito imediato, carregue-as na base de dados com o comando:
xrdb -merge ~/.Xresources
Veja xrdb(1x).
Ele geralmente executado a partir do script de inicializao de sesso do usurio, ~/.xsession. Para obter o cdigo de tecla (keycode), execute xev no X e pressione teclas. Para obter o significado do smbolo de tecla (keysym), procure na definio MACRO no arquivo /usr/include/X11/keysymdef.h. Todas as expresses #define nesse arquivo so nomeadas como XK_ antecedendo os nomes de smbolo de tecla. Veja xmodmap(1x).
inicie um servidor X diretamente da conta root para evitar possveis riscos de segurana. Inicie o servidor X como um usurio normal e abra um console xterm. Ento:
$ XAUTHORITY=$HOME/.Xauthority $ export XAUTHORITY $ su root Password:***** # printtool &
Ao usar esse truque para su para um usurio no root, assegure-se de que ~/.Xauthority pode ser lido por grupo para esse usurio no root. Para automatizar essa seqncia de comandos, crie um arquivo ~/.xsession a partir da conta do usurio, contendo as seguintes linhas:
# Isso faz o X funcionar quando uso su para conta root. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi unset XSTARTUP # Se for desejado um gerenciador de janelas/sesso especfico, descomente # a linha seguinte e edite-a para preencher suas necessidades. #XSTARTUP=/usr/bin/blackbox # Isso inicia programa gerenciador de sesso/janela x if [ -z "$XSTARTUP" ]; then if [ -x /usr/bin/x-session-manager ]; then XSTARTUP=x-session-manager elif [ -x /usr/bin/x-window-manager ]; then XSTARTUP=x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then XSTARTUP=x-terminal-emulator fi fi # executa gerenciador de janela/sesso X auto selecionado exec $XSTARTUP
Ento execute su (no su -) em uma janela xterm do usurio. Agora programas GUI iniciados a partir desse xterm podem exibir sada na janela desse usurio enquanto executado com privilgio de root. Esse truque funciona sempre que o /etc/X11/Xsession padro executado. Se um usurio definir sua personalizao usando ~/.xinit ou ~/.xsession, a varivel de ambiente XAUTHORITY acima mencionada tambm precisa ser definida similarmente naqueles scripts. Alternativamente, o sudo pode ser usado para automatizar a seqncia de comando:
$ sudo xterm ... ou $ sudo -H -s
Isso funciona bem mesmo com o diretrio home do usurio em uma montagem NFS, porque root no l o arquivo .Xauthority. H tambm vrios pacotes especializados para esse propsito: kdesu, gksu, gksudo, gnome-sudo, e xsu. Alguns outros mtodos podem ser usados para se obter resultados similares: criar um link simblico a partir de /root/.Xauthority para o do usurio correspondente; uso do script sux; ou colocar "xauth merge ~USER_RUNNING_X/.Xauthority" no script de inicializao root. Veja mais na lista de mensagens debian-devel.
Instale os pacotes x-ttcidfont-conf e defoma. Isso automatiza a gerao de arquivos fonts.scale e fonts.dir.
# apt-get install x-ttcidfont-conf Edite o arquivo /etc/X11/XF86Config-4 em Section "Files" Section "Files" FontPath "/var/lib/defoma/x-ttcidfontconf.d/dirs/TrueType" FontPath "/usr/share/fonts/truetype" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/lib/X11/fonts/Type1" EndSection
assim:
A primeira linha ajustar o XFree86 para usar quaisquer fontes TrueType que voc instalar a partir de pacotes Debian. A entrada de fonte Type1 movida para baixo j que o XFree86 faz um trabalho um tanto podbre de renderizao de
fontes Type1. O truque de :unscaled para fontes bitmap no deve mais ser necessrio para o novo XF4 mas eu inclu aqui s por segurana. Para preservar as alteraes manuais feitas no arquivo /etc/X11/XF86Config4, siga as instrues em Configurando o servidor X manualmente, Seo 9.4.3.3. Ento instale pacotes de fontes DFSG:
Fontes TrueType ocidentais: Um conjunto de fontes TrueType de alta qualidade criadas pela Bitstream, Inc. [33] o ttf-freefont: Um conjunto de fontes TrueType livres de alta qualidade cobrindo o conjunto de caracteres UCS. o ttf-thryomanes: Uma fonte TrueType Unicode cobrindo Latin, Grego, Cirlico e IPA. Fontes asiticas: o tfm-arphic-bsmi00lp: Fonte TrueType Arphic Chins "AR PL Mingti2L Big5" dado mtrico fonte TeX o tfm-arphic-bkai00mp: Fonte TrueType Arphic Chins "AR PL KaitiM Big5" dado mtrico fonte TeX o tfm-arphic-gbsn00lp: Fonte TrueType Arphic Chins "AR PL SungtiL GB" dado mtrico fonte TeX o tfm-arphic-gkai00mp: Fonte TrueType Arphic Chins "AR PL KaitiM GB" dado mtrico fonte TeX o ttf-baekmuk: Sries de fontes TrueType Baekmuk Coreano o hbf-jfs56: Fonte bitmap Jianti Fangsong 56x56 Chins (GB2312) para CJK o hbf-cns40-b5: Fonte bitmap Fanti Song 40x40 Chins (Big5) para CJK o hbf-kanji48: Fonte bitmap Kanji 48x48 Japons (JIS X-0208) para CJK
o ttf-bitstream-vera:
J que fontes Livres so algumas vezes limitadas, a instalao ou compartilhamento de algumas fontes comerciais TrueType uma opo para usurios Debian. Para facilitar esse processo para o usurio, alguns pacotes de convenincia foram criados:
ttf-commercial msttcorefonts (>1.1.0)
[34]
Voc ter uma seleo realmente boa de fontes TrueType sob o custo de contaminar seu sistema Livre com fontes no-Livres. Todas esses pacotes de fontes no Debian devem funcionar sem nenhum esforo e aparecer disponveis para todos os programas X que usam o sistema de fontes "principal" regular. Isso inclui coisas como Xterm, Emacs e muitas outras aplicaes no-KDE e no-Gnome. Agora, execute o xfontsel e selecione quaisquer fontes TrueType no menu fndry, voc deve ser capaz de ver muitas entradas no acinzentadas no menu "fmly".
Para o KDE2.2 e GNOME1.4 (com libgdkxft0, que um hack para fazer o GTK 1.2 renderizar fontes com anti-alias), voc precisa configurar Xft1, tambm. Xft1 est altamente desatualizado, e basicamente s usado pelo GNOME1.4 e KDE2.2. Edite o arquivo /etc/X11/XftConfig e adicione uma linha como
dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
antes das outras linhas dir. [35] Para o GNOME2 e KDE3 (ps edio do Sarge), voc precisa configurar o fontconfig que o Xft2 usa para encontrar fontes. [36] Voc no deve precisar instalar nada extra para isso, j que todos os pacotes que usam fontconfig j iro Depender dele (indiretamente). Primeiro, veja em /etc/fonts/fonts.conf. Deve haver uma linha como a abaixo. Se no houver, abra o /etc/fonts/local.conf e adicione essa
<dir>/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType</dir>
logo abaixo da linha <fontconfig>. O Fontconfig deve peg-las imediatamente, e "fc-list" deve listar suas novas fontes. Outro recurso elegante do fontconfig que voc pode simplesmente colocar fontes em ~./fonts/ e todos os seus programas que usam fontconfig tero acesso a elas imediatamente. Se voc instalar manualmente um novo conjunto de fontes TrueType enquanto estiver no X sem usar pacote Debian, execute
# xset fp rehash
para fazer com que o XFree86 olhe os contedos daquele diretrio novamente e pegue as novas.
Gnome (novo) konqueror Navegador KDE dillo Navegador GTK amaya-gtk Navegador de referncia W3C amaya-lesstif Navegador de referncia W3C netscape-... (muito, antigo) communicator-... (muito, antigo) ...
A verso do mozilla precisa combinar com a verso que o galeon requer. Apesar deles diferirem na interface para o usurio, esses dois programas compartilham o mecanismo de processamento HTML Gecko. Os plug-ins para navegadores como mozilla e galeon podem ser habilitados instalando os "*.so" manualmente no diretrio de plug-in e reiniciando os navegadores. Recursos plug-in:
Plug-in Java: instale o binrio "J2SE" de http://java.sun.com. Flash plug-in: instale o binrio "Macromedia Flash Player 5" de http://www.macromedia.com/software/flashplayer/. freewrl: navegador VRML e plug-in Netscape ...
9.5 SSH
O SSH (Secure SHell) a maneira segura de conectar atravs da Internet. Uma verso livre de SSH chamada OpenSSH est disponvel como o pacote ssh no Debian.
O arquivo /etc/ssh/sshd_not_to_be_run no pode estar presente se desejar-se executar o servidor OpenSSH. O SSH tem dois protocolos de autenticao:
protocolo SSH verso 1: o a verso Potato suporta apenas esse protocolo. o mtodos de autenticao disponveis: RSAAuthentication: autenticao de usurio baseado em chave de identidade RSA RhostsAuthentication: autenticao de mquina baseado em .rhosts (inseguro, desabilitado) RhostsRSAAuthentication: autenticao .rhosts combinada com chave de mquina RSA (desabilitado) ChallengeResponseAuthentication: autenticao perguntaresposta RSA PasswordAuthentication: autenticao baseada em senha protocolo SSH verso 2:
o o
verses ps-Woody usam esse como o protocolo primrio. mtodos de autenticao disponveis: PubkeyAuthentication: autenticao de usurio baseado em chave pblica HostbasedAuthentication: autenticao .rhosts ou /etc/hosts.equiv combinado com autenticao de chave pblica de mquina cliente (desabilitado) ChallengeResponseAuthentication: autenticao perguntaresposta PasswordAuthentication: autenticao baseada em senha
Tenha cuidado com essas diferenas se voc estiver migrando para o Woody ou estiver usando um sistema no-Debian. Veja /usr/share/doc/ssh/README.Debian.gz, ssh(1), sshd(8), ssh-agent(1), e ssh-keygen(1) para detalhes. Os arquivos de configurao chaves so os seguintes:
/etc/ssh/ssh_config:
notveis so: o Host: Limita as declaraes seguintes (at a prxima palavra-chave Host) para serem apenas para aquelas mquinas que combinam com um dos padres dados depois da palavra-chave. o Protocol: Especifica as verses de protocolo SSH. O padro "2,1". o PreferredAuthentications: Especifica o mtodo de autenticao do cliente SSH2. O padro "hostbased,publickey,keyboard-interactive,password". o PasswordAuthentication: Se voc quiser efetuar login com uma senha, precisa certificar-se de que isso no est ajustado para no. o ForwardX11: O padro desabilitado. Isso pode ser substitudo pela opo de linha de comando "-X".
/etc/ssh/sshd_config:
notveis so: o ListenAddress: Especifica os endereos locais em que o sshd deve escutar. So permitidas mltiplas opes. o AllowTcpForwarding: O padro desabilitado. o X11Forwarding: O padro desabilitado.
$HOME/.ssh/authorized_keys:
as listas das chaves pblicas padres que os clientes usam para conectar a essa conta nessa mquina. Veja ssh-keygen(1).
$HOME/.ssh/identity:
# fora senha em SSH1 $ ssh -o PreferredAuthentications=password -l nomeusuario foo.host # fora senha em SSH2
Para o usurio, o ssh funciona como um telnet mais esperto e mais seguro (no vai explodir com ^]).
Essa uma forma segura de fazer conexes com servidores SMTP/POP3 atravs da Internet. Ajuste a entrada AllowTcpForwarding para yes no arquivo /etc/ssh/sshd_config da mquina remota.
Pode-se mudar a frase-senha mais tarde com "ssh-keygen -p". No esquea de verificar as configuraes testando a conexo. Em caso de qualquer problema, use "ssh -v".
Voc pode adicionar opes para as entradas em authorized_keys para limitar as mquinas e executar comandos especficos. Veja sshd(8) para obter mais detalhes. Note que SSH2 tem HostbasedAuthentication. Para isso funcionar, voc precisa ajustar as configuraes de HostbasedAuthentication para yes em ambos os /etc/ssh/sshd_config na mquina servidor e /etc/ssh/ssh_config ou $HOME/.ssh/config na mquina cliente.
(GPL)
Windows (cygwin) SSH em cygwin (GPL) Macintosh Classic (GPL) [Note que o Mac OS X inclui OpenSSH; use ssh na aplicao Terminal]
macSSH
Para o servidor X, scripts de inicializao normais do Debian executam ssh-agent como processo pai. Ento voc s precisa executar ssh-add um vez. Para mais detalhes, leia ssh-agent(1) e ssh-add(1).
9.6 Correio
A configurao de correio se divide em trs categorias:
mail transfer agent (MTA) (agente de transferncia de mensagens): exim, postfix, sendmail, qmail, ssmtp, nullmailer, ... utilitrios de correio: procmail, fetchmail, mailx, ... mail user agent (MUA) (agente de correio de usurio): mutt, emacs+gnus, ...
O nico MTA alternativo razovel o postfix, se voc se preocupa com a segurana. O sendmail e o qmail esto disponveis como pacotes Debian mas no so recomendados.
Se voc no precisar da capacidade de relay de um MTA como no caso de um sistema satlite como um PC laptop, voc pode considerar usar um desses pacotes leves:
ssmtp: precisa de conexo SMTP e tem capacidade de alias, nullmailer: pode enviar mas no tem capacidade de alias
ou
Nesse momento, acho que o exim o mais adequado mesmo para minha estao de trabalho pessoal, que um PC laptop. Voc pode precisar remover o exim para a instalao de um desses pacotes conflitantes:
# dpkg -P --force-depends exim # apt-get install nullmailer # ou ssmtp
9.6.1.1 Smarthost Se voc est executando o exim em um sistema que est conectado atravs dos servios voltados ao consumidor, por favor, certifique-se de enviar suas mensagens de sada atravs de um smarthost oferecido por seu ISP ou alguns outros. [37] H algumas boas razes:
para garantir novas tentativas do SMTP j que o smarthost de seu provedor geralmente tem uma conexo mais confivel. para evitar envio de mensagens diretamente a partir de um endereo IP dinmico que sero muitas vezes bloqueados por listas de spam dial-up. para salvar sua largura de banda local para enviar mensagens com mltiplos destinatrios.
a soluo de emergncia para um problema no servio de SMTP do seu provedor. um experimento para propsitos educacionais. seu sistema se tornando um servidor profissional.
9.6.1.2 Configurao bsica do Exim Para usar o exim como seu MTA, configure o seguinte:
/etc/exim/exim.conf "eximconfig" para criar e editar /etc/inetd.conf comente smtp para executar o exim como daemon /etc/email-addresses Adicione listas de endereos fontes falsos verifique filtros usando exim -brw, -bf, -bF, -bV, ... etc.
9.6.1.3 Definindo um pega-tudo (catchall) para endereos de email inexistentes sob o Exim No /etc/exim/exim.conf (Woody ou posterior), na parte DIRECTORS, adicione no fim (depois do direcionador localuser:) um direcionador pega-tudo que seleciona todos os endereos que o direcionador anterior no puder resolver (por Miquel van Smoorenburg):
catchall: driver = smartuser new_address = webmaster@meudominio.com
Se desejar ter uma receita mais detalhada para cada domnio virtual, etc, adicione o seguinte no fim de /etc/exim/exim.conf (por mim, no foi bem testado):
*@seudominio.com ${lookup{$1}lsearch*{/etc/email-addresses} \ {$value}fail} T
9.6.1.4 Configurando reescrita seletiva de endereo para mensagens de sada sob o Exim Pode-se fazer a reescrita seletiva de endereos para mensagens de sada para produzir cabealhos "From:" apropriados para o exim configurando prximo do fim de /etc/exim/exim.conf:
*@maquina1.algumacoisa.dnsdinam.org \ "${if eq {${lookup{$1}lsearch{/etc/passwd}{1}{0}}} {1} {$0}{$1@algumacoisa.dnsdinam.org}}" frFs \
Isso reescreve todos os endereos combinando com *@maquina1.algumacoisa.dnsdinam.org. 1. Procura-se atravs de /etc/password para ver se a parte local ($1) um usurio local ou no. 2. Se for um usurio local, o endereo reescrito como a mesma coisa que era na primeira posio ($0). 3. Se no for um usurio local, reescrito a parte do domnio.
9.6.1.5 Configurando autenticao SMTP sob o Exim Alguns servios SMTP como yahoo.com requerem autenticao SMTP. Configure o arquivo /etc/exim/exim.conf como a seguir:
remote_smtp: driver = smtp authenticate_hosts = smtp.mail.yahoo.com ... smarthost: driver = domainlist transport = remote_smtp route_list = "* smtp.mail.yahoo.com bydns_a" ... plain: driver = plaintext public_name = PLAIN client_send = "^cmatheson3^this_is_my_password"
As informaes sobre como iniciar o fetchmail como um daemon a partir do script init.d para o Potato so confusas (no Woody isso foi resolvido). Veja os arquivos de exemplo /etc/init.d/fetchmail e /etc/fetchmailrc nos scripts de exemplo. Se seus cabealhos das mensagens estiverem contaminados com ^M devido ao servidor de correio de seu ISP, adicione "stripcr" s suas opes em $HOME/.fetchmailrc:
options fetchall no keep stripcr
# usar modo visual e "gq" para reformatar citaes set editor="vim -c 'set tw=72 et ft=mail'" # # supresso de cabealho tomada do manual (Sven's Draconian header weeding) # ignore * unignore from: date subject to cc unignore user-agent x-mailer hdr_order from subject to cc date user-agent x-mailer auto_view application/msword ....
Adicione o seguinte ao /etc/mailcap ou $HOME/.mailcap para exibir mensagens em HTML e anexos MS Word em seguida:
text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
9.7 Localizao
O Debian internationalizado, oferecendo suporte a um nmero crescente de idiomas e convenes de uso locais. A prxima subseo lista algumas das formas de diversidade que o Debian suporta atualmente, e as subsees seguintes discutem a localizao, o processo de personalizao de seu ambiente de trabalho para permitir entrada e sada atuais de seu(s) idioma(s) escolhido(s) e convenes para datas, formatos numricos e monetrios, e outros aspectos de um sistema que variam de acordo com sua regio.
9.7.1.1 Localizando o teclado O Debian distribudo com mapas de teclado para aproximadamente duas dzias de teclados. No Woody, reconfigure o teclado com:
dpkg-reconfigure --priority=low console-data # console dpkg-reconfigure --priority=low xserver-xfree86 # XF4 dpkg-reconfigure --priority=low xserver-common-v3 # XF3
A grande maioria dos pacotes de software do Debian suporta manipulao de caracteres no-US-ASCII atravs da varivel de ambiente LC_CTYPE oferecida pela tecnologia locale na glibc.
8-bit limpo: praticamente todos os programas outros conjuntos de caracteres Latinos (por exemplo ISO-8859-1 ou ISO-88592): a maioria dos programas idiomas multi-byte como Chins, Japons, ou Coreano: muitas aplicaes novas
9.7.1.3 Localizando a exibio O X pode exibir qualquer codificao, incluindo UTF-8, e suporta todas as fontes. A lista inclui no apenas todas as fontes de 8 bits mas tambm fontes de 16 bits tais como Chins, Japons, ou Coreano. O mtodo de entrada de caracter multi-byte suportado pelo mecanismo Mtodos de entrada X alternativos, Seo 9.7.10. Veja Exemplo para um sistema X window multi-idiomas, Seo 9.7.9 e Exemplo para UTF-8 no X, Seo 9.7.12. A exibio cdigo Japons EUC tambm disponvel em console grfico (S)VGA atravs do pacote kon2. H um novo display Japons alternativo, jfbterm que usa um console frame-buffer, tambm. Nesses ambientes de console, o mtodo de entrada Japons precisa ser fornecido pela aplicao. Use o pacote egg para o Emacs e use o pacote jvim "japonesado" para o ambiente Vim. A instalao de fontes no Unicode no X ajudar na exibio de documentos com qualquer codificao no X. Ento no se preocupe muito com a codificao das fontes.
9.7.1.4 Localizando mensagens e documentao Existem tradues para muitas mensagens e documentos que so exibidos no sistema Debian, tais como mensagens de erro, sada de programa padro, menus, e pginas de manual. Atualmente, existe suporte para pginas de manual em Alemo, Espanhol, Finlands, Francs, Hngaro, Italiano, Japons, Coreano, Polons, Portugus, Chins e Russo atravs dos pacotes manpages-LANG (onde LANG uma lista separada por vrgulas de cdigos de pas ISO de duas letras. Use apt-cache search manpages-|less para obter uma lista das pginas de manual Unix disponveis.) Para acessar uma pgina de manual NLS, o usurio precisa definir a varivel de ambiente LC_MESSAGES para o valor apropriado. Por exemplo, no caso das pginas de manual da lngua italiana, LC_MESSAGES precisa ser configurada para it. O programa man ento procurar por pginas de manual italianas sob /usr/share/man/it/.
9.7.2 Locales
O Debian suporta a tecnologia locale. Locale um mecanismo que permite que um programa fornea sada apropriada e funcionalidade de acordo com as convenes locais como conjunto de caracteres, formato de data e hora, smbolo da moeda, e outros. Ele usa variveis de ambiente para determinar o comportamento apropriado. Por exemplo, considerando que voc tenha ambos os locales Ingls Americano e Alemo instalados em seu sistema, as mensagens de erro de muitos programas podem ser multiidiomas:
$ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="de_DE" cat foo cat: foo: Datei oder Verzeichnis nicht gefunden
A Glibc oferece suporte a essa funcionalidade como uma biblioteca. Veja locale(7).
xx: cdigos de idioma ISO 639 (minsculas) YY: cdigos de pas ISO 3166 (maisculas) ZZZZ: codeset, i.e., conjunto de caracteres ou identificador de codificao.
Para cdigos de idiomas e cdigos de pases, veja a descrio pertinente no info gettext. Por favor, note que essa parte de codeset pode ser normalizada internamente para obter compatibilidade sobre plataformas removendo todos os - e convertendo todos os caracteres para minsculas. Codesets tpicos so:
UTF-8: Unicode para todas as regies, normalmente em 1-3 Octetos (novo padro de facto) ISO-8859-1: Europa ocidental (padro de facto antigo) ISO-8859-2: Europe oriental (Bsnio, Croata, Tcheco, Hngaro, Polons, Romeno, Srvio, Eslovaco, Eslovnio) ISO-8859-3: Malts ISO-8859-5: Macednio, Srvio ISO-8859-6: rabe ISO-8859-7: Grego ISO-8859-8: Hebreu ISO-8859-9: Turco ISO-8859-11: Thai (=TIS-620) ISO-8859-13: Leto, Lituano, Maori ISO-8859-14: Gals (Welsh) ISO-8859-15: Europe ocidental com euro KOI8-R: Russo KOI8-U: Ucraniano CP1250: Tcheco, Hngaro, Polons (original do MS Windows)
CP1251: Blgaro, Bielorrusso (original do MS Windows) eucJP: Japons estilo Unix (=ujis) eucKR: Coreano estilo Unix GB2312: Chins Simplificado estilo Unix (=GB, =eucCN) para zh_CN Big5: Chins Tradicional para zh_TW sjis: Japons estilo Microsoft (Shift-JIS)
ASCII: 7 bits (0-0x7f) ISO-8859-?: 8 bits (0-0xff) ISO-10646-1: Conjunto de Caracteres Universal (UCS) (31 bits, 0-0x7fffffff) UCS-2: Primeiros 16 bit do UCS como 2 Octetos seguidos (Unicode: 0-0xffff) UCS-4: UCS como 4 Octetos seguidos (UCS: 0-0x7fffffff) UTF-8: UCS codificado em 1-6 Octetos (normalmente em 3 Octetos) ISO-2022: 7 bits (0-0xff) com a seqncia de escape. ISO-2022-JP a codificao mais popular para o e-mail japons. EUC: combinao 8 bits + 16 bits (0-0xff), estilo Unix Shift-JIS: combinao 8 bits + 16 bits (0-0xff), estilo Microsoft.
ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4, e UTF-8 compartilham o mesmo cdigo com ASCII para os caracteres de 7 bit. EUC ou Shift-JIS usam caracteres de bit alto (0x80-0xff) para indicar que parte da codificao 16 bit. UTF-8 tambm usa caracteres de bit alto (0x80-0xff) para indicar bytes de seqncia de caracter de no 7 bit e essa a forma mais inteligente de um sistema de codificao lidar com caracteres no-ASCII. Por favor, note a diferena de ordem de byte da implementao Unicode:
UCS-2, UCS-4 padres: big endian UCS-2, UCS-4 Microsoft: little endian para ix86 (dependente de mquina)
Editar o /etc/locale.gen para adicionar o locale desejado, e ento executar locale-gen como root para compil-lo. Veja locale-gen(8) e pginas de manual listadas em sua seo "SEE ALSO". Executar dpkg-reconfigure locales para reconfigurar o pacote locales . Ou se ele ainda no estiver instalado, instalar locales chamar a interface debconf para permitir-lhe a escolha dos locales necessrios e compilar a base de dados.
LC_CTYPE: Classificao de caracteres e converso maisculas/minsculas. LC_COLLATE: Ordem de comparao. LC_TIME: Formatos de data e hora. LC_NUMERIC: Formatos numricos no monetrios. LC_MONETARY: Formatos monetrios. LC_MESSAGES: Formatos de mensagens informativas e de diagnstico e respostas interativas. LC_PAPER: Tamanho de papel. LC_NAME: Formatos de nome. LC_ADDRESS: Formatos de endereo e informao de localizao. LC_TELEPHONE: Formatos de nmero de telefone. LC_MEASUREMENT: Unidades de medidas (Mtricas ou Outras). LC_IDENTIFICATION: Metadado sobre informao de locale.
4. LANG: Se for no nula e LC_ALL for indefinida, o valor usado para todas as categorias LC_* de locale com valores indefinidos. (POSIX.1) Geralmente "C". Note que algumas aplicaes (por exemplo, Netscape 4) ignoram configuraes LC_*. O programa locale pode exibir as configuraes ativas de locale e os locales disponveis; veja locale(1). (NOTA: locale -a lista todos os locales que seu sistema conhece; isso no significa que todos eles esto compilados! Veja Ativando suporte a locale, Seo 9.7.4.)
O suporte de locale para o padro internacional de data de yyyy-mm-dd (formato de data ISO 8601) fornecido pelo locale chamado en_DK, "Ingls na Dinamarca", o que um pouco de brincadeira :-) Isso parece funcionar apenas em tela de console para o ls.
Configure o teclado para o "AZERTY" Francs como descrito em Localizando o teclado, Seo 9.7.1.1; adicione as pginas de manual em francs instalando manpagesfr. A tecla Alt-direito nos Estados Unidos chamada Alt-Gr na Europa. Pression-lo junto com algumas teclas cria vrios caracteres acentuados e caracteres especiais. Por exemplo, Alt-Gr+E cria um sinal de Euro. Muitas lnguas da Europa ocidental podem ser configuradas similarmente. Veja o Debian Euro HOWTO para adicionar suporte para a nova moeda Euro e Utiliser et configurer Debian pour le franais para mais detalhes em francs.
adicione um suporte para o locale ja_JP.eucJP Japons e os outros locales requeridos usando o mtodo descrito em Localizao, Seo 9.7. (para todos) instale o sistema de converso Kana-para-Kanji e dicionrio (para japons): o canna Servidor local (licena "cerveja grtis" (free-beer)), ou o freewnn-jserver Servidor extensvel por rede (Domnio Pblico) instale o sistema de mtodo de entrada Japons (para japons): o kinput2-canna para o X, ou o kinput2-canna-wnn para o X, e o egg funciona diretamente com Emacsen mesmo em console (opcional) Instale terminais compatveis (para todos): o xterm X (para ISO-8859-1 and UTF-8), o kterm X (para Japons EUC), e o mlterm X (multi-idioma). adicione todos os pacotes de fontes requeridos. (para todos) crie um ~/.xsession que defina um ambiente X especfico do usurio como descrito em Sesses X personalizadas, Seo 9.4.5.1 (para todos):
#!/bin/sh # Isso faz o X funcionar quando uso su para root. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi # Definir ambiente especfico atravs do sistema de menus debian. # Redefinir locale unset LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES unset LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT unset LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER # ajustar padro de locale no X LANG=C # exportar locale export LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES export LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT export LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER ### # activar mtodo de entrada para japons com kinput2 kinput2 & XMODIFIERS="@im=kinput2" export XMODIFIERS # Sobre o gerenciador de janelas blackbox (leve) exec blackbox #exec xfwm
#exec wmaker
ajuste o locale em ~/.bash_profile para consoles Linux (para todos). remova todos os ajustes de locale em ~/.bashrc, se existiram (para todos). crie alguns arquivos em /etc/menu/ (para todos). o /etc/menu/xterm-local: (adicione novas entradas ao menu) [39]
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: emulador de terminal (en_US.ISO8859-1)"\ title="XTerm (en_US.ISO-8859-1)"\ command="sh -c 'LC_ALL=en_US.ISO-8859-1 xterm'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: emulador de terminal (de_DE.ISO8859-1)"\ title="XTerm (de_DE.ISO-8859-1)"\ command="sh -c 'LC_ALL=de_DE.ISO-8859-1 xterm -T xterm-de'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: emulador de terminal para o X com suporte Unicode (Japons)"\ title="UXTerm (ja_JP.UTF-8)"\ command="sh -c 'LC_ALL=ja_JP.UTF-8 uxterm'" /etc/menu/kterm: (sobrepe o padro do sistema) [40] ?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LC_ALL=ja_JP.eucJP PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Kanji Terminal" ?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LANG=ja_JP.eucJP \ LC_MESSAGES=en_US.ISO-8859-1 PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Terminal Kanji (bilnge)" /etc/menu/mozilla-local: (adicionar um novo atalho) [41] ?package(mozilla-browser):needs="x11" section="/" \ title=" Navegador Mozilla" command="mozilla1.5" hints="Navegadores Web" \ icon=/usr/share/pixmaps/mozilla.xpm execute update-menus a partir da conta root.
set allow_8bit=no
ative XIM kinput2 para aplicaes X (para japons) o adicione *inputMethod: kinput2 e KTerm*VT100*OpenIm: true em seu arquivo de recursos X, ~/.Xresources (parece que o Debian cuida disso automaticamente de alguma forma). o Algumas aplicaes (como mlterm) tambm permitem que voc configure *inputMethod: e outras informaes dinamicamente durante a execuo (pressione Ctrl-BotoMouse-3 no mlterm). inicie o X digitando startx ou a partir de um dos gerenciadores de display (xdm, gdm, kdm, wdm, ...) (para todos). inicie uma aplicao compatvel com japons como Vim 6, (x)emacs21, mc-4.5, mutt-1.4, ... no kterm (para japons). (Emacs parece ser a plataforma mais popular, apesar de eu no us-lo.) pressione Shift+Espao para alternar entre modo de entrada de caracter japons ligado e desligado (para japons). leia a pgina de manual localizada iniciando o comando em um console localizado (para todos).
Para outros suportes a idioma CJK, veja as sees seguintes e as pginas da SuSE para CJK.
zh_CN.GB2312 xcin
"@im=xcin-zh_CN.GB2312" Ctrl-
O mtodo de entrada japons kinput2 oferecido pelos pacotes como kinput2canna-wnn, kinput2-canna, e kinput2-wnn. O japons precisa de um servidor de dicionrio tal como canna e freewn-jserver para ser prtico.
H muitos consoles que suportam codificaes de 8 bits simples quando os pacotes de fonte pertinentes so instalados:
xterm O emulador de terminal X gnome-terminal xterm para o Gnome konsole xterm para o KDE rxvt terminal VT102 (mais leve) aterm terminal VT102 para o WM Afterstep eterm terminal VT102 para o WM Enlightenment wterm terminal VT102 para o WM WindowMaker
Os suportes de codificao multi-byte dos consoles X so fornecidos pelo xterm atravs da codificao UTF-8 (Exemplo para UTF-8 no X, Seo 9.7.12). Outros suportes de codificao tradicionais esto em progresso (em 2003). Os seguintes pacotes oferecem suportes a codificaes tradicionais:
aterm-ml Multi-idioma kterm Multi-idioma (Japons, ...) rxvt-ml Multi-idioma wterm-ml Multi-idioma cxterm-big5 Chins (Trad., Big5) cxterm-gb Chins (Simp., GB) cxterm-ks Chins (KS) cxterm-jis Japons hanterm-classic Coreano (Hangul) hanterm-xf Coreano (Hangul) hztty Chins (GB, Big5, zW/HZ)
Para o kterm (e possivelmente outros), voc pode desejar ativar XIM atravs do menu depois da ao do mouse Ctrl-click-boto_do_meio.
Ento execute xrdb -merge ~/.Xresources para atualizar os recursos X como descrito em Recursos do X, Seo 9.4.10. Entretanto, muitos dos pacotes de programas de console populares como o vim, mutt, e emacs tornaram-se compatveis com UTF-8 recentemente (Woody-Sarge). Programa como o mc ainda no compatvel com UTF-8 mas simplesmente 8 bits limpos. Se voc est editando com a parte de 7 bit ASCII de um arquivo de codificao desconhecida ou mista, mais seguro usar o editor de 8 bits limpos sem locale. Veja The Unicode HOWTO.
Loopback: lo Ethernet: eth0, eth1, ... Wi-Fi: wlan0, wlan1, ... [42] Token Ring: tr0, tr1, ... PPP: ppp0, ppp1, ...
H uma grande faixa de outros dispositivos de rede disponveis, incluindo SLIP, PLIP (IP em linha serial e paralela), dispositivos "shaper" para controlar o trfego em certas interfaces, frame relay, AX.25, X.25, ARCnet, e LocalTalk. Toda interface de rede conectada diretamente Internet (ou a qualquer rede baseada em IP) identificada por um endereo IP de 32 bit nico. [43] O endereo IP pode ser dividido na parte que enderea a rede e na parte que enderea o sistema (host). Se voc tiver um endereo IP, defina para 1 os bits que so parte do endereo de rede e defina para 0 os bits que so parte do endereo do sistema e ento voc obtm a mscara da rede. Tradicionalmente, redes IP foram agrupadas em classes cujas partes do endereo de rede foram de comprimento 8, 16 ou 24 bits. [44]
endereos IP comprimento Classe A Classe B 1.0.0.0 128.0.0.0 - 126.255.255.255 - 191.255.255.255 mscara rede 255.0.0.0 255.255.0.0 = /8 = /16
Classe C
192.0.0.0
- 223.255.255.255
255.255.255.0 = /24
Endereos IP fora dessas faixas so usados para propsitos especiais. H faixas de endereos em cada classe reservados para uso em redes locais (LANs). Esses endereos tm a garantia de no conflitar com nenhum endereo no domnio da Internet. (Pelo mesmo motivo, se um desses endereos designado para um sistema ento esse sistema no pode acessar a Internet diretamente, precisa acess-la atravs de um gateway que atua como um proxy para servios individuais ou que faa Translao de Endereo de Rede (Network Address Translation).) Essas faixas de endereos so dadas na tabela a seguir junto com o nmero de faixas em cada classe.
Classe A Classe B Classe C endereos de rede 10.x.x.x 172.16.x.x - 172.31.x.x 192.168.0.x - 192.168.255.x compr. /8 /16 /24 quantidade 1 16 256
O primeiro endereo em uma rede IP o endereo da prpria rede. O ltimo endereo o endereo de broadcast da rede. [45] Todos os outros endereos podem ser alocados a sistemas na rede. Desses, o primeiro ou o ltimo endereo normalmente alocado para o gateway de Internet para a rede. A tabela de roteamento contm a informao do kernel sobre como enviar pacotes IP aos seus destinos. Aqui est uma amostra de tabela de roteamento para um sistema Debian em uma rede local (LAN) com endereo IP 192.168.50.x/24. O sistema 192.168.50.1 (tambm na LAN) um roteador para a rede corporativa 172.20.x.x/16 e o sistema 192.168.50.254 (tambm na LAN) um roteador para a Internet para todos.
# route Kernel IP routing table Destination Gateway Iface 127.0.0.0 lo 192.168.50.0 eth0 172.20.0.0 eth0 default eth0 192.168.50.254 0.0.0.0 UG 1 0 36 192.168.50.1 255.255.0.0 UG 1 0 7 * 255.255.255.0 U 0 0 137 * 255.0.0.0 U 0 0 2
Genmask
A primeira linha depois do cabealho diz que o trfego destinado rede 127.x.x.x ser roteado para lo a interface de loopback. A segunda linha diz que o trfego destinado aos sistemas na LAN sero roteados atravs de eth0. A terceira linha diz que o trfego destinado rede corporativa ser roteado para o gateway 192.168.50.1 e tambm atravs de eth0. A quarta linha diz que o trfego destinado Internet ser roteado para o gateway 192.168.50.254 e tambm atravs de eth0.
Os endereos IP na tabela tambm podem aparecer como nomes que so obtidos procurando endereos em /etc/networks ou usando o resolvedor da Biblioteca C.
Alm de rotear, o kernel pode fazer translao de endereo de rede, shaping, e filtro. Veja o Net-HOWTO e outros HOWTOs de rede para informaes mais aprofundadas.
# ifconfig eth0 inet down # ifconfig lo Link encap:Local Loopback ... (agora sem a entrada eth0) # route ... (agora sem entradas de roteamento na tabela)
O resultado:
# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0 inet addr:192.168.0.111 Bcast:192.168.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ... lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 ... # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
ip link show ip route list ip link set eth0 down ip addr del dev eth0 local 192.168.0.3 ip addr add dev eth0 local 192.168.0.111/16 broadcast 192.168.255.255 ip link set eth0 up ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1
O programa ip mostra sua sintaxe de comando quando executado com o argumento help. Por exemplo, ip link help mostra:
Usage: ip link set DEVICE { up | down | arp { on | off } | dynamic { on | off } |
multicast { on | off } | txqueuelen PACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtu MTU } ip link show [ DEVICE ]
10.2.4.1 Configurando o pppd manualmente Para um link de rede ser estabelecido, precisa-se abrir uma porta de comunicao (normalmente uma porta serial), enviar comandos a um dispositivo de comunicao (normalmente um modem), discar um nmero de telefone, autenticar a identidade em um daemon PPP remoto, criar uma interface PPP e ento modificar tabelas de roteamento de forma que o trfego possa ser enviado atravs do link. O pppd pode fazer tudo isso e conseqentemente tem uma longa lista de opes de operao. Essas opes so descritas na pgina de manual pppd(8). Em um sistema Debian, as opes globais so definidas no arquivo /etc/ppp/options. As opes especficas de usurio so definidas em ~/.ppprc. Opes que precisam depender da porta de comunicao usada so gravadas em /etc/ppp/options.nome_da_porta. Por exemplo, suponha que voc tem dois modemsum modem Lucent LT interno ("on board") acessado atravs de /dev/LTmodem e um modem externo acessado atravs de /dev/ttyS0. Crie os dois seguintes arquivos de opes.
# cat > /etc/ppp/options.LT-modem <<EOF 115200
init "/usr/sbin/chat -f /etc/chatscripts/setup-LT-modem" EOF # cat > /etc/ppp/options.ttyS0 <<EOF 115200 init "/usr/sbin/chat -f /etc/chatscripts/setup-ttyS0" EOF
Segundo, /etc/chatscripts/setup-ttyS0.
ABORT ERROR '' ATZ OK 'ATL1M1Q0V1W2X4&C1&D2 S6=4 S7=70 S11=55 S95=63 S109=1 +FCLASS=0' OK AT
Os contedos desses arquivos devem depender de seu hardware, claro. As opes tambm podem ser dadas ao pppd como argumentos. No Debian, o pppd normalmente iniciado usando o comando pon. Quando o pon usado, seu primeiro argumento d nome a um arquivo de opes em /etc/ppp/peers/ que tambm lido pelo pppd. [46] Esse o local onde se define as opes que so especficas a um parceiro (peer) particularpor exemplo, um Provedor de Servio de Internet (ISP) particular. Suponha por exemplo que voc alterne entre Amsterdam e Den Haag. Em cada cidade voc tem acesso a dois servios de ISPPlanet e KPN. Primeiro crie um arquivo de opes bsicas para cada ISP.
# cat > /etc/ppp/peers/KPN <<EOF remotename KPN noauth user kpn noipdefault ipparam KPN EOF # cat > /etc/ppp/peers/Planet <<EOF remotename Planet auth user user3579@planet.nl noipdefault mru 1000 mtu 1000 ipparam Planet EOF
Esses arquivos definem opes que diferem entre os dois ISPs. Opes comuns a ambos os ISPs podem ser colocadas em /etc/ppp/options ou em um dos arquivos de opes especficos de interface, conforme apropriado. Agora crie arquivos de opes para cada ISP em cada cidade. Em nosso exemplo a nica diferena entre conectar a um ISP em um local ou em outro o chatscript que necessrio. (O chatscript diferente porque o nmero de telefone de acesso local diferente.)
# cat > /etc/ppp/peers/KPN-Amsterdam <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/KPN-Amsterdam" file /etc/ppp/peers/KPN EOF # cat > /etc/ppp/peers/KPN-DenHaag <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/KPN-DenHaag" file /etc/ppp/peers/KPN EOF # cat > /etc/ppp/peers/Planet-Amsterdam <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/Planet-Amsterdam" file /etc/ppp/peers/Planet EOF # cat > /etc/ppp/peers/Planet-DenHaag <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/Planet-DenHaag" file /etc/ppp/peers/Planet EOF
Cada diretiva file inclui um dos arquivos de opes mostrados anteriormente. A diretiva connect especifica o comando que o pppd usa para fazer a conexo. Normalmente usa-se o programa chat para isso, adaptando o chatscript para o ISP. Aqui esto os chatscripts para Den Haag; os chatscripts para Amsterdam devem ser similares exceto pelo nmero de telefone, ou podem ser diferentes se o ISP oferecer servio atravs de outra companhia l.
# cat > /etc/chatscripts/KPN-DenHaag <<EOF ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT ERROR OK-AT-OK ATDT 0676012321 CONNECT \d\c EOF # cat > /etc/chatscripts/Planet-DenHaag <<EOF ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT ERROR OK-AT-OK ATDT 0676002505 CONNECT \d\c EOF
Para poder conectar a esses ISPs voc precisa de nomes de clientes e senhas que o pppd possa fornecer ao parceiro (peer) sob demanda. Essa informao guardada em /etc/ppp/pap-secrets (se o protocolo PAP for usado) ou em /etc/ppp/chapsecrets (se o protocolo CHAP for usado). Apesar de CHAP ser mais seguro, PAP ainda o mais largamente usado. Devido a esses arquivos conterem segredos, o grupo e o mundo no podem ter permisso de leitura ou escrita neles. Os formatos desses arquivos so explicados na pgina de manual pppd(8). Um "segredo" (terceiro campo) procurado no arquivo encontrando o nome do cliente (primeiro campo) e/ou o nome do servidor (segundo campo). Ao conectar a um ISP geralmente no se sabe o nome do servidor, ento ao invs fornece-se o nome do cliente; isso foi feito nas linhas user nos peers/KPN e peers/Planet acima.
# nome cliente kpn user3579@planet.nl nome serv. * * segredo kpn myfavoritepet
10.2.4.2 Configurando o pppd usando o pppconfig Uma maneira rpida de configurar o pppd usar o programa pppconfig que vem no pacote de mesmo nome. O pppconfig define arquivos como aqueles acima depois de perguntar ao usurio questes atravs de uma interface de menu. Se voc optar usar o resolvconf ento certifique-se de selecionar "None" na tela "Configure Nameservers".
10.2.4.3 Configurando uma interface PPP usando wvdial Uma abordagem diferente de usar o pppd execut-lo a partir do wvdial que vem no pacote wvdial. Ao invs de o pppd executar o chat para discar e negociar a conexo, o wvdial faz a discagem e negociao inicial e ento inicia o pppd para que faa o resto. Dados somente um nmero de telefone, nome de usurio e senha, o wvdial em muitos casos tem sucesso em fazer a conexo.
/etc/hostname.
Esse arquivo contm somente o nome do sistema, no um nome de domnio completo. Para mostrar o nome do sistema atual execute hostname sem argumentos.
"From: foo@meusistema.dom" se o MUA no tiver um cabealho From: definido; "From: bar@meusistema.dom" se o MUA tiver "From: bar" definido; "From: bar@bogus.dom" se o MUA tiver "From: bar@bogus.dom" definido.
Mesmo quando o MUA tiver um cabealho From: definido o MTA pode adicionar um cabealho "Sender:foo@herman.dom" para indicar sua verdadeira origem. claro que quando algum MTA envolvido realiza reescrita de endereo como discutido em Definindo um pega-tudo (catchall) para endereos de email inexistentes sob o Exim, Seo 9.6.1.3 e Configurando reescrita seletiva de endereo para mensagens de sada sob o Exim, Seo 9.6.1.4, o endereo de e-mail visto pelo destinatrio pode ser mudado para qualquer coisa.
Para ver qual nome de domnio associado com o sistema local, use o comando hostname --fqdn. Isso mostra o primeiro nome de domnio completamente qualificado que o resolvedor encontra para o nome do sistema local. [47]
personalizou pacotes para que atualizem o /etc/resolv.conf: voc precisar desabilitar suas personalizaes. Veja file:///usr/share/doc/resolvconf/README.gz para detalhes.
O pump simples e largamente utilizado. O dhcp3-client complexo mas mais configurvel. [49]
e ifup(8).
Se voc tiver o resolvconf instalado ento pode adicionar linhas que especifiquem informao de DNS. Por exemplo:
iface eth0 inet static address 192.168.0.123 netmask 255.255.255.0 gateway 192.168.0.1 dns-search nicedomain.org dns-nameservers 195.238.2.21 195.238.2.22
Depois que a interface foi levantada, os argumentos das opes dns-search e dnsnameservers se tornam disponveis para o resolvconf para incluso no arquivo resolv.conf. O argumento nicedomain.org da opo dns-search corresponde ao argumento de uma opo search em resolv.conf(5). Os argumentos 195.238.2.21 e 195.238.2.22 da opo dns-nameservers corresponde aos argumentos das opes nameserver no resolv.conf(5). Outras palavras de opo reconhecidas so dns-domain e dns-sortlist. Veja Gerenciando informao do resolvedor de nomes resolvconf, Seo 10.4.2.
Para que isso funcione voc precisa ter instalado um dos clientes DHCP mencionados em Configurando interfaces de rede usando DHCP, Seo 10.5.
Os programas ifup e ifdown usam pon e poff para adicionar e remover interfaces PPP, ento primeiro leia Configurando uma interface PPP, Seo 10.2.4. Suponha que voc precisa configurar PPP para funcionar com o parceiro (peer) meuisp. Edite o /etc/network/interfaces de forma a incluir uma estrofe como essa:
iface ppp0 inet ppp provider myisp
Infelizmente atualmente no possvel fornecer opes do pppd adicionais em uma estrofe ppp no /etc/network/interfaces. [52] Atualmente no possvel usar ifupdown para realizar configurao auxiliar de interfaces PPP. Devido ao pon finalizar antes que o pppd tenha acabado de fazer a conexo, o ifup executa os scripts up antes que a interface PPP esteja pronta para usar. At que esse bug [53] seja corrigido necessrio fazer configurao auxiliar em /etc/ppp/ip-up ou /etc/ppp/ip-up.d.
Algumas vezes ocorrem problemas de Maximum Transmit Unit (MTU) (Unidade de Transmisso Mxima) com PPPoE sobre Digital Subscriber Line (DSL). Veja DSLHOWTO para detalhes. Note que se seu modem de banda larga contm um roteador ento o prprio modem/roteador negocia a conexo PPPoE e aparece no lado da LAN como um simples gateway Ethernet para a Internet.
Suponha que a eth0 esteja conectada Internet com um endereo IP configurado por DHCP e que a eth1 esteja conectada LAN com um endereo IP esttico 192.168.1.1. Edite o arquivo /etc/network/interfaces de forma a incluir estrofes como essas:
iface eth0 inet dhcp iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0
Se voc ativar NAT nesse sistema como descrito em Construindo um roteador gateway, Seo 10.12, ento voc poder compartilhar a conexo Internet com todos os sistemas na LAN.
A interface eth0:0 uma interface virtual. Quando levantada, tambm levantada a sua superior eth0.
reconfigurar suas interfaces ento pode ignorar esse fato j que a interface fsica X por padro ser configurada como interface lgica X. Entretanto, suponha que seu computador seja um laptop que voc transporta entre a casa e o trabalho. Quando voc conecta o computador rede corporativa ou sua LAN domstica voc precisa configurar a eth0 apropriadamente. Primeiro defina duas interfaces lgicas casa e trabalho (ao invs de eth0 como fizemos anteriormente) que descrevem como a interface deve ser configurada para a rede domstica e a rede do trabalho, respectivamente.
iface home inet address netmask gateway iface work inet address netmask gateway static 192.168.0.123 255.255.255.0 192.168.0.1 static 81.201.3.123 255.255.0.0 81.201.1.1
Ento a interface fsica eth0 pode ser levantada para a rede domstica com a configurao apropriada especificando na linha de comando:
# ifup eth0=casa
Note que com o arquivo interfaces escrito como acima no ser mais possvel levantar a eth0 usando apenas ifup eth0. A razo para isso que o ifup usa o nome da interface fsica como o nome padro da interface lgica e agora em nosso exemplo no h uma interface lgica eth0 definida.
Se nenhum nome de interface lgica for dado na linha de comando do ifup ento o nome da interface fsica usado como o nome de interface lgica inicial.
Se o nome de interface lgica combinar com o padro-glob de uma estrofe mapping ento o mapeamento aplicado para gerar um novo nome de interface lgica. Isso feito recursivamente at no haver padres-glob que combinem. Se o ltimo nome de interface lgica for o rtulo de uma definio de interface lgica em /etc/network/interfaces ento a interface fsica levantada como essa interface lgica. Caso contrrio o ifup mostra uma mensagem que est ignorando a interface desconhecida ("Ignoring unknown interface" e sai.
O script nomeado na estrofe mapping executado com o nome de interface fsica como seu argumento e com os contedos de todas as linhas "map" seguintes na estrofe para ele como sua entrada padro. O script mostra o resultado do mapeamento em sua sada padro antes de acabar. Por exemplo, a seguinte estrofe mapping far com que o ifup levante a interface eth0 como a interface lgica casa.
mapping eth0 script /usr/local/sbin/echo-casa
onde /usr/local/sbin/echo-casa :
#!/bin/sh echo casa
Devido ao mapeamento ser feito com um script possvel selecionar a interface lgica baseado em algum tipo de teste. Vamos comear com um exemplo. Suponha que voc tem placas de rede diferentes para casa e trabalho. O diretrio /usr/share/doc/ifupdown/examples/ contm um script de mapeamento que pode ser usado para selecionar uma interface lgica baseado no endereo de Media Access Controller (endereo MAC) (Controlador de Acesso de Mdia). Primeiro instale o script no diretrio apropriado.
# install -m770 /usr/share/doc/ifupdown/examples/get-macaddress.sh \ /usr/local/sbin/
Programas de mapeamento mais sofisticados so descritos abaixo em guessnet, Seo 10.8.1, e laptop-net, Seo 10.8.2.
10.8.1 guessnet
Instale o pacote guessnet e ento adicione uma estrofe como a seguinte ao arquivo /etc/network/interfaces:
mapping eth0 script guessnet-ifupdown map casa map trabalho
Agora quando voc fizer ifup eth0, o guessnet verificar se a eth0 deve ser levantada como casa ou trabalho. Para fazer isso ele usa informao gravada nas definies de interface lgica.
10.8.2 laptop-net
O pacote laptop-net toma uma abordagem diferente para reconfigurao de rede automgica. O laptop-net no faz uso das interfaces lgicas do ifupdown mas ao invs disso tem seu prprio sistema de "esquemas" de configurao e "perfis" de sistema. O laptop-net entretanto ainda usa o ifupdown para configurar interfaces fsicas. Para mais informaes consulte a documentao bem escrita no pacote laptop-net-doc.
Por exemplo, suponha que o servio foo controlado pelo script de inicializao /etc/init.d/foo depende da interface de rede eth0 configurada dinamicamente.
ao
Voc pode listar nomes de interfaces fsicas adicionais em estrofes auto se desejar que tambm sejam levantadas durante a inicializao. Nunca liste interfaces PCMCIA em estrofes auto. O programa cardmgr de PCMCIA iniciado mais tarde na seqncia de inicializao que quando o /etc/rcS.d/S40networking executado.
Quando o kernel detecta um novo hardware ele inicializa o controlador (driver) para o hardware e ento executa o programa hotplug para configur-lo. Mais tarde, se o hardware for removido, ento o kernel executa o hotplug novamente com ajustes de variveis de ambiente diferentes. No Debian, quando o hotplug chamado ele executa scripts em /etc/hotplug/ e /etc/hotplug.d/. Veja hotplug(8) para obter detalhes. O hardware de rede recentemente inserido configurado pelo script /etc/hotplug/net.agent. [56] Suponha que seu carto de rede PCMCIA tenha sido inserido resultando na interface eth0 se tornando disponvel para uso. O /etc/hotplug/net.agent faz o seguinte:
ifup eth0=hotplug
A menos que voc tenha adicionado uma definio de interface lgica ou um mapeamento chamado hotplug em /etc/network/interfaces, esse comando no far nada. Para fazer com que o comando configure a eth0, adicione a seguinte estrofe em /etc/network/interfaces:
mapping hotplug script echo
(No inclua uma estrofe mapping como essa se voc estiver usando pedidos do ifplugd iniciados pelo hotplug para controlar a interface, como descrito em Gatilhando a configurao de rede ifplugd, Seo 10.9.3.) Se voc quiser que apenas a eth0 e mais nenhuma outra interface seja levantada com hot plug ento use grep ao invs de echo como a seguir:
mapping hotplug script grep map eth0
Para cartes de rede PCMCIA de 32 bit PCI (CardBus): o hotplug / ifupdown Para cartes de rede PCMCIA de 16 bit ISA: o hotplug / ifupdown com /etc/pcmcia/network desabilitado localmente (recomendado), ou o pcmcia-cs / ifupdown com o /etc/pcmcia/network padro (obsoleto), ou
recursos de
A abordagem recomendada para cartes de 16 bit toma vantagem do fato que o subsistema hot plug do Linux 2.4 agora suporta PCMCIA. Simplesmente siga as direes em Gatilhando configurao de rede hotplug, Seo 10.9.2. [57] Note, entretanto, que para prevenir que o script hook /etc/pcmcia/network do cardmgr interfira com o hotplug voc precisa adicionar localmente a linha:
exit 0
no incio de /etc/pcmcia/network para desabilitar esse comportamento padro. Note que no h nada errado em executar o cardmgr. Ns apenas no queremos que ele chame programas de configurao de rede. Para o cardmgr funcionar adequadamente voc precisa editar o arquivo /etc/pcmcia/config.opts para configurar recursos atribudos a cartes PCMCIA de 16 bit. Veja PCMCIA, Seo 7.2.1 e o HOWTO de PCMCIA no Linux para mais informaes.
O super-servidor de Internet e daemon wrapper TCP/IP, veja Restringindo acesso a servios, Seo 9.2.5.
o /etc/inetd.conf ssh: Shell segura OpenSSH, veja SSH, Seo 9.5. o /etc/ssh/ssh_config o /etc/ssh/sshd_config exim: agente de transporte de correio, veja Nome de correio o /etc/exim/exim.conf o /etc/mailname o /etc/aliases o /etc/email-addresses fetchmail: daemon para baixar mensagens
local de mensagens e filtro, veja Processando mensagens Procmail, Seo 9.6.3. Hostname e DNS (proxy, cache, ...), veja Nome do sistema (Hostname), Seo 10.3.1 e Domain Name Service (DNS) (Servio de Nome de Domnio), Seo 10.4.
o o o /etc/host.conf /etc/hostname /etc/hosts
o o o o o o
/etc/hosts.allow /etc/hosts.deny /etc/resolv.conf /etc/bind/named.conf (edite) /etc/bind/db.lan (adicione para sistemas de LAN) /etc/bind/db.192.168.0 (adicione para LAN reverso)
DHCP, veja Configurando interfaces de rede usando DHCP, Seo 10.5. o /etc/dhcp3/dhclient.conf (DHCP lado do cliente) o /etc/default/dhcp3-server (DHCP lado do servidor) o /etc/dhcp3/dhcpd.conf (DHCP lado do servidor) cvs: concurrent versions system (sistema de verses concorrentes), veja Concurrent Versions System (CVS) (Sistema de Verses Concorrentes), Seo 12.1.
o /etc/cvs-cron.conf o /etc/cvs-pserver.conf nfs-kernel-server: network file system o /etc/exports samba: compartilhamento o
(sistema de arquivos de rede), veja Configurao de NFS, Seo 3.4. (para sistemas semelhantes ao unix) de arquivos e impressora com o Windows, veja Configurao do Samba, Seo 3.5 e Samba, Seo 8.6.37.
/etc/samba/smb.conf
Sistema daemon de impresso, veja Configurao da Impressora, Seo 3.6. o /etc/printcap (para o lpr) apache e apache2: servidor web.
o /etc/apache/* o /etc/apache2/* squid: servidor cache proxy web. o /etc/squid/*
Veja tambm as sees seguindo Testes de rede bsicos, Seo 8.6.28. Se voc tiver problemas com alguns stios web, veja Estranhos problemas de acesso a alguns websites, Seo 3.7.5.
Um sistema Debian pode ser uma mquina gateway de propsitos gerais que faz Network Address Translation (Translao de Endereo de Rede) (NAT, tambm conhecido como masquerading (mascaramento)), transferncia de correio, DHCP, cache DNS, cache proxy HTTP, servio CVS, servio NFS, e servio Samba. Veja Hosts e IP a usar para LAN, Seo 3.1.9 para o exemplo de tal configurao.
10.12.1.1 Bsico do netfilter O Netfilter processa pacotes usando 5 chains embutidas : PREROUTING, INPUT, FORWARD, OUTPUT e POSTROUTING.
deciso de roteamento IN ------> PRE ---> ------> FORWARD -----> ----> POST -----> OUT interface ROUTING \ filter / ROUTING interface DNAT | tracking ^ SNAT REDIRECT | | MASQUERADE v | INPUT OUTPUT | filter ^ filter,DNAT v | \--> Processo Local --/ programas user-space
10.12.1.2 Tabela Netfilter Os pacotes so processados em cada chain embutida usando as seguintes tabelas.
filter (filtro de pacotes, padro) o INPUT (para pacotes entrando na prpria mquina) o FORWARD (para pacotes sendo roteados atravs da mquina) o OUTPUT (para pacotes gerados localmente). nat (traduo de endereos de rede) o PREROUTING (para alterar pacotes no momento que eles chegam) o OUTPUT (para alterar pacotes gerados localmente antes do roteamento) o POSTROUTING (para alterar pacotes quando eles esto prestes a sarem) mangle ("mangling" de endereos de rede, bom somente aps o kernel 2.4.18) o todas as cinco chains embutidas.
quatro alvos bsicos : o ACCEPT significa deixar o pacote passar. o DROP significa descartar o pacote. o QUEUE significa passar o pacote para o userspace (caso suportado pelo kernel). o RETURN significa parar de atravessar esta chain e continuar na prxima regra na chain anterior (a chain que chamou esta). alvos extendidos : o LOG liga o logging do kernel. o REJECT envia como resposta um pacote de erro e descarta o pacote. o SNAT altera o endereo de origem de pacote e usado somente na chain POSTROUTING. (somente tabela nat)
o o o o --to-source endereoip[-endereoip][:porta-porta]
MASQUERADE o mesmo que SNAT mas para conexes com endereos IP atribudos dinamicamente (discadas). (somente tabela nat)
--to-ports porta[-porta]
DNAT altera o endereo de destino do pacote e usado nas chains PREROUTING e OUTPUT e em chains definidas pelo usurio que so chamadas somente a partir destas chains. (somente tabela nat)
--to-destination endereoip[-endereoip][:portaporta]
o o o
REDIRECT altera o endereo IP de destino para enviar o pacote para a prpria mquina.
--to-ports porta[-porta]
iptables -A chain \ # -t tabela \ # mangle) -p protocolo \ # -s endereo-origem[/mscara] --sport porta[:porta] \ # seja tcp ou udp -d endereo-origem[/mscara] --dport porta[:porta] \ # seja tcp ou udp -j alvo \ # casar -i nome-interface-entrada \# PREROUTING -o nome-interface-sada # POSTROUTING
10.12.1.5 Network Address Translation (Translao de Endereo de Rede) Mquinas em uma LAN podem acessar os recursos da Internet atravs de um gateway que translada o endereo IP na LAN para endereos IP usveis na Internet.
# apt-get install ipmasq
Aplique as regras de exemplo para aumentar a proteo do ipmasq. Consulte file:///usr/share/doc/ipmasq/examples/stronger/README. Para imagens de kernel 2.4 do Debian sob o woody, certifique-se de carregar os mdulos apropriados. A verso do Sarge do ipmasq resolveu esse problema. Consulte Funo de rede, Seo 7.2.3 para obter instrues de configurao. Para imagens de kernel 2.2 do Debian, edite o Z92timeouts.rul em /etc/masq/rules como a seguir para assegurar uma conexo mais longa para sites remotos (bom para emails grandes, etc.) :
# tcp, tcp-fin, udp # 2hr, 10 sec, 160 sec - padro # 1 day, 10 min, 10 min - exemplo mais longo $IPCHAINS -M -S 86400 600 600
Adicionalmente, caso a rede seja acessada atravs de um carto de rede PCMCIA, o ipmasq precisa ser iniciado a partir de /etc/pcmcia/network.opts (leia: file:///usr/share/doc/ipmasq/ipmasq.txt.gz) ou a partir de /etc/network/interfaces (leia: Configurao de rede e PCMCIA, Seo 10.9.5 e Gatilhando a reconfigurao de rede, Seo 10.9).
10.12.1.6 Redirecionar conexes SMTP (kernel 2.4) Suponha que voc possua um notebook PC que esteja configurado para usar outros ambientes LAN e voc queira usar seu agente de mensagens de usurio (software de email) no notebook PC sem reconfigur-lo. Adicionar as seguintes regras atravs do comando iptables na mquina gateway ir redirecionar a conexo SMTP para a mquina gateway.
# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j REDIRECT \ -p tcp --dport smtp --to-port 25 # smtp=25, INPUT est aberto
Para um conjunto de regras de redirecionamento mais completo considere instalar o pacote ipmasq e adicionar M30redirect.def ao diretrio /etc/ipmasq/rules/.
[FIXME] Poltica de roteamento (por Phil Brutsche pbrutsch@tux.creighton.edu): Confira o manual iproute para maiores detalhes. Controle de trfego (tc) pode tambm ser interessante. Ambiente :
eth0: 192.168.1.2/24; gateway 192.168.1.1 eth1: 10.0.0.2/24; gateway 10.0.0.1 Sem mascaramento nesta mquina.
Mgica especial : ip rule add from 192.168.1.2 lookup 1 ip rule add from 10.0.0.2 lookup 2 ip route add to default via 10.0.0.1 metric 0 ip route add to default via 192.168.1.1 metric 1 ip route add table 1 to 192.168.1.0/24 via eth0 ip route add table 1 to 10.0.0.2/24 via eth1 ip route add table 1 to default via 192.168.1.1 ip route add table 2 to 192.168.1.0/24 via eth0 ip route add table 2 to 10.0.0.2/24 via eth1 ip route add table 2 to default via 10.0.0.2
Captulo 11 - Editores
11.1 Editores populares
O Linux oferece muitas alternativas para editores de texto de console. Entre eles:
vim: Editor poderoso e leve, herdado do BSD. VI iMproved. emacs: Editor definitivo e pesado, herdado do GNU. Original
de RMS (Richard
M. Stallman). xemacs: Emacs: A Prxima Gerao, originalmente de Lucid. mcedit: Editor GNU para novatos. Idntico ao editor interno do mc. Veja Editor no MC, Seo 4.2.5. ae: Pequeno editor padro (Potato). Evite-o. nano: Pequeno editor GNU padro (Woody). Emula o pico.
joe: jed:
Para saudosistas do WordStar ou TurboPascal. Editor rpido, com muitos recursos e direcionado a menus com atalhos de tecla do Emacs. jove: Editor muito pequeno com teclas de atalho do emacs. nvi: Novo vi. Compatvel Bug-a-bug com o vi original.
Use update-alternatives --config editor para mudar o editor padro. Alm disso, muitos programas usam as variveis de ambiente EDITOR ou VISUAL para decidir qual editor usar. Veja Editor no MC, Seo 4.2.5. H tambm alguns editores de texto baseados no X notveis:
gvim: Vim com GUI (pacote vim e pacote vim-gtk) emacs: O Verdadeiro e nico Emacs (auto-detecta X). xemacs: Prxima gerao do Emacs (auto-detecta o X).
Esses comandos xclient usam opes padres como -fn a24, que tornam mais fcil a vida de pessoas mais velhas como eu :) Veja Clientes X, Seo 9.4.4.
Executa teclas de atalho do registrador a Edita outro arquivo carregando foo.txt Grava o arquivo atual e edita o prximo arquivo
q e @ podem ser usados para registro simples de macro e execuo. Por exemplo, para criar macro que insira tags de itlico HTML ao redor de uma palavra no cursor, voc poderia entrar qii<i>^[ea</i>^[q (onde ^[ a tecla ESC). Ento digitar @i no comeo de uma palavra adicionaria as tags <i> e </i>. Consulte tambm Usando GnuPG com o Vim, Seo 14.4.2.
procura para tRs: isearch regexp: isearch regexp para trs: procura regexp: procura regexp para trs: ajuda: ajuda Apropos: ajuda comandos teclado: ajuda Info: ajuda Major mode: ajuda Tutorial: desfazer: Refazer: Marcar posio do cursor: trocar marca e posio: ir para marca arquivo atual: ir para marca qualquer arquivo: copiar regio: recortar regio: colar e manter buffer: colar do buffer recortado: converte regio em maisculas: converte regio em minsculas: Inserir caracter especial: decimal/keystroke substituir: :%s/aaa/bbb/g substituir regexp: :%s/aaa/bbb/g consultar e substituir: :%s/aaa/bbb/gc consultar e substituir: consultar e substituir regexp: Abrir arquivo: Salvar arquivo: Salvar todos os buffers: Salvar como: Mudar de buffer: Listar buffers: Trocar somente leitura: Fechar buffer indicado: Dividir na vertical: Dividir na horizontal: Ir para outra janela: Excluir esta janela: Excluir outra(s) janela(s): Executar shell em bg: Destruir shell em bg: Executar make: verificar mensagem de erro: executar shell e gravar: ...limpar BS, ... >record ...salvar/reler registro shell: executar shell: executar comando executar comando e inserir: executar filtro: executar filtro e inserir: exibir opo
C-r enter M-C-s M-C-r M-C-s enter M-C-r enter C-h C-h C-h a C-h b C-h i C-h m C-h t C-_ C-f C-@ C-x C-x
? / ? :help :help [key] :help howto u ^R m{a-zA-Z} '{a-z} '{A-Z} {visual}y {visual}d
M-w C-w C-y M-y p C-x C-u {visual}U C-x C-l {visual}u C-q octalnum/keystroke ^V M-x replace-string M-x replace-regexp M-% M-x M-x C-x C-x C-x C-x C-x C-x C-x C-x C-x C-x C-x C-x C-x M-x M-x query-replace query-replace-regexp C-f :r file C-s :w s :wa C-w file :w file b C-b :buffers C-q :set ro k 2 :split 3 :vsplit (ver. 6) o ^Wp 0 :q 1 ^Wo compile kill-compilation :make Makefile C-x` :echo errmsg M-x shell :!script -a tmp :!col -b <tmp C-x M-! M-! C-u M-| C-u C-w record sh cmd M-! cmd file M-| filter :r record :sh :!cmd :r!cmd {visual}:w file {visual}:!filter :se[t] {option}?
redefinir opo para padro redefinir opo booleana trocar estado opo booleana inv{option} quebrar texto na coluna 72 no quebrar autoindent expandir tab especificar comentrio (mail) comments=n:>,n:\| executar GDB descrever modo GDB passo uma linha prxima linha passo uma instruo (stepi) finaliza stack frame atual continuar subir arg frames descer arg frames copiar nmero do ponto, inserir definir break point M-x gdb C-h m M-s M-n M-i C-c C-f M-c M-u M-d no final C-x & C-x SPC
:se[t] {option}& :se[t] no{option} :se[t] :se :se :se :se :se tw=72 tw=0 ai et
Modo Paste permite evitar que o autoindent interfira com operaes de cortar e colar em um terminal console. Isso faz mais que um simples ":set noai". Veja Usando GnuPG com o Vim, Seo 14.4.2 para integrao com GnuPG.
11.3.6 Ctags
apt-get install exuberant-ctags e execute ctags nos arquivos fontes. Digite :tag nome_da_funo no Vim e ir para a linha onde nome_da_funo comea. As tags funcionam para C, C++, Java, Python, e muitas outras linguagens. O Emacs tem as mesmas capacidades ctags.
so \$VIMRUNTIME/syntax/2html.vim a partir do modo comando do Vim converter texto destacado em texto HTML. Salve com :w arquivo.html e :q. til para cdigo C, etc.
Ou na linha de comando:
$ vi -o arquivo1.txt arquivo2.txt $ vi -O arquivo1.txt arquivo2.txt # Divide horizontalmente # Divide verticalmente
produzir um vi multi-janela.
$ vimdiff file.txt~ file.txt de file.txt $ vimdiff file.en.sgml file.fr.sgml traduo $ gvimdiff file.txt~ file.txt # verifica mudanas recentes # verifica mudanas de # no X
produzir uma agradvel viso das diferenas entre um arquivo original e uma cpia de segurana. Em SGML ele combina tags, ento a comparao de tradues neste modo funciona muito bem. Movimentos especiais do cursor com comandos Ctrl-W:
Ctrl-W Ctrl-W Ctrl-W Ctrl-W Ctrl-W Ctrl-W ... + h j k l aumentar o tamanho de uma janela diminuir o tamanho de uma janela ir para a janela da esquerda ir para a janela abaixo ir para a janela acima ir para a janela da direita
12.1.2.3 Uso de servidor CVS remoto pserver Acesso remoto sem SSH (uso da implementao do protocolo RSH no cvs):
$ export CVSROOT=:pserver:account@cvs.foobar.com:/var/lib/cvs $ cvs login
12.1.2.4 Uso do CVS remoto via ssh Acesso remoto com SSH:
$ export CVSROOT=:ext:account@cvs.foobar.com:/var/lib/cvs
ou para o SourceForge:
$ export CVSROOT=:ext:account@cvs.sf.net:/cvsroot/qref
Voc pode usar autenticao RSA (Conectando com menos senhas RSA, Seo 9.5.3) tambm. Isto elimina a espera pela senha (prompt password).
Ento,
$ cd ~/projeto-x # acesse o diretrio fonte ... crie a rvore dos fontes ... $ cvs import -m "Incio projeto-x" projeto-x Main-branch Releaseinitial $ cd ..; rm -R ~/projeto-x
12.1.2.6 Trabalhar com CVS Trabalhar com projeto-x usando o repositrio CVS local:
$ cd $ cvs co projeto-x local $ cd projeto-x ... faa mudanas no contedo ... $ cvs diff -u # similar ao diff -u repository/ local/ $ cvs up -C arquivo_modificado # desfaz mudanas em um arquivo $ cvs ci -m "Descreva modificao" # salve os fontes locais para o CVS $ vi arquivonovo_adicionado $ cvs add arquivonovo_adicionado $ cvs ci -m "Adicionado arquivonovo_adicionado" $ cvs up # mescle a ltima verso a partir do CVS ... para criar todos os subdiretrios recm criados do CVS, use ... ao invs "cvs up -d -P" ... atente para linhas que iniciam com "C nomearquivo" ... cdigo no alterado movido para `.#nomearquivo.verso' ... procure "<<<<<<<" e ">>>>>>>" em nomearquivo $ cvs tag Release-1 # adicione marcador de lanamento ... edite mais ... $ cvs tag -d Release-1 # remova marcador de lanamento $ cvs ci -m "mais comentrios" $ cvs tag Release-1 # readicione marcador de lanamento $ cd # volte rea de trabalho $ cvs co -r Release-inicial -d antigo projeto-x ... mova a verso original para diretrio antigo $ cd antigo $ cvs tag -b Release-initial-bugfixes # crie marcador de ramificao (-b) ... agora voc pode trabalhar na verso antiga (Tag=sticky) $ cvs update -d -P # no cria diretrios vazios ... a rvore dos fontes agora tem o marcador de fixao (sticky tag) "Release-initial-bugfixes" ... trabalhe nesta ramificao $ cvs up -d -P # sincronize com arquivos modificados por outros nesta ramificao $ cvs ci -m "check nesta ramificao" $ cvs update -kk -A -d -P ... remova o marcador de fixao e esquea do contedo ... atualize a partir do tronco principal sem expanso de palavra-chave $ cvs update -kk -d -P -j Release-initial-bugfixes ... Mescle a ramificao Release-initial-bugfixes com o tronco ... principal sem expanso de palavra-chave. Corrija conflitos com o editor $ cvs ci -m "mesclando Release-initial-bugfixes" $ cd $ tar -cvzf antigo-projeto-x.tar.gz antigo # arquive, -j para bz2 $ cvs release -d antigo # remova fonte local (opcional) # acesse a rea de trabalho # pegue os fontes do CVS para
Opes legais que convm lembrar (use-a(s) como primeiro(s) argumento(s) para cvs):
-n -t simula as aes, sem execut-las realmente exibe mensagens que mostram os passos da atividade do CVS
12.1.2.7 Exportar arquivos a partir do CVS Para obter a ltima verso do CVS, use "tomorrow":
$ cvs ex -D tomorrow nome_mdulo
12.1.3.1 Permisses de arquivo no repositrio CVS no sobrescrever o atual arquivo do repositrio, antes o substituir por outro. Assim, permisso de escrita no diretrio do repositrio algo crtico. Para cada novo repositrio criado, se necessrio rode os seguintes comandos para ter certeza desta condio.
# cd /var/lib/cvs # chown -R root:src repository # chmod -R ug+rwX repository # chmod 2775 repository subdiretrio
# se necessrio, tambm o
O bit de execuo de um arquivo mantido quando baixado. Sempre que encontrar problemas com permisso de execuo em arquivos baixados, mude as permisses do arquivo no repositrio CVS com o seguinte comando.
# chmod ugo-x nomedoarquivo
12.2 Subversion
Subversion a prxima gerao em sistemas de controle de verso. E pretende-se que substitua o CVS. Os desenvolvedores o consideram atualmente em estgio "alpha", embora provavelmente seja estvel para muitos usos. Quando este texto foi escrito, Subversion estava disponvel na Debian unstable apenas.
12.2.1.1 Configurando um repositrio Atualmente, o pacote subversion no configura automaticamente um repositrio. Isto deve ser feito manualmente. Uma localizao possvel para o repositrio em /var/local/repos. Crie o diretrio:
# mkdir -p /var/local/repos
12.2.1.2 Configurando Apache2 Para permitir acesso ao repositrio via autenticao de usurio, adicione (ou descomente) o seguinte a /etc/apache2/mods-available/dav_svn.conf:
<Location /repos> DAV svn SVNPath /var/local/repos AuthType Basic AuthName "Subversion repository" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Reinicie Apache2, e seu novo repositrio Subversion ser acessvel atravs da URL http://hostname/repos.
12.2.3.1 Criar um novo repositrio Subversion Para criar um novo repositrio Subversion, digite o seguinte:
$ cd ~/seu-projeto # v para seu diretrio fonte $ svn import http://localhost/repos seu-projeto \ nome-do-projeto -m "importao inicial do projeto"
Isso cria um diretrio chamado nome-do-projeto em seu repositrio Subversion que contm os arquivos de seu projeto. Olhe em http://localhost/repos e veja se esto l.
Captulo 13 - Programao
No use "test" como o nome de um arquivo de teste executvel. O test um comando interno de shell.
Documentos e exemplos sob o file:///usr/share/doc/pacote Unix / Informao sobre Programao Linux Programming Bible (John Goerzen/IDG books)
Muitos documentos informativos longos podem ser obtidos como brochuras do GNU. As prximas quatro sees contm scripts de exemplo em diferentes linguagens para criar um arquivo texto de informao de uma conta para ser adicionado no /etc/passwd usando um processador de arquivo de lote como o programa newusers. Cada script requer como entrada um arquivo com linhas na forma prenome sobrenome senha. (Os diretrios home do usurio real no sero criados atravs desses scripts.)
13.2 Shell
Ler scripts shell a melhor maneira de entender como um sistema similar ao Unix funciona. Aqui, dou alguns apontamentos e lembretes de programao shell. Veja Erros de Shell para aprender a partir de erros.
info bash o BASH Programming - Introduction HOWTO do LDP como informo inicial.
Programa de exemplo curto (cria entradas de conta para o newusers a partir da entrada padro):
#!/bin/bash # (C) Osamu Aoki Sun Aug 26 16:53:55 UTC 2001 Public Domain pid=1000; while read n1 n2 n3 ; do if [ ${n1:0:1} != "#" ]; then let pid=$pid+1 echo ${n1}_${n2}:password:${pid}:${pid}:,,,/home/${n1}_${n2}:/bin/bash fi done
(Sarge) Prioridade: opcional Tamanho instalado: 176 O menor de todos e de longe o mais rpido o melhor para primeira inicializao ash (Woody) o Prioridade: opcional o Tamanho instalado: 180 o Menor e muito mais rpido bom para primeira inicializao
bash o o o o pdksh o o o
Essencial: sim Prioridade: requerido Tamanho instalado: 580 Maior e com mais recursos muitas extenses implementadas Prioridade: opcional Tamanho instalado: 408 Similar do ksh AT&T completo
Se voc estiver escrevendo um script shell para portabilidade, melhor escrev-lo como um script shell POSIX. Use o /bin/sh ligado ao ash (ou dash) para testar sua compatibilidade POSIX. Evite escrever scripts com bashismo ou o zshismo que parece assemelhar-se sintaxe de csh. Por exemplo, evite:
mkdir /foo{bar,baz}
A descrio para o shell nesse documento aplica-se somente aos shells tipo POSIX e assim no se aplica aos shells tipo csh incluindo tcsh.
Com `:' = operador de teste para "existe" e "no nulo". Sem `:' = operador de teste somente para "existe".
[n1]>&n2 Redireciona stdout (ou n1) para n2. 2> arquivo >&2 Redireciona stdout e stderr para o arquivo. | comando Faz um pipe da stdout para o comando. 2>&1 | comando Faz um pipe da stderr e stdout para o comando.
Aqui,
stdin: entrada padro (descritor de arquivo = 0) stdout: sada padro (descritor de arquivo = 1) stderr: erro padro (descritor de arquivo = 2)
O shell possibilita que voc abra arquivos usando o comando interno exec com um descritor de arquivo arbitrrio.
$ echo Ol >foo $ exec 3<foo 4>bar $ cat <&3 >&4 $ exec 3<&- 4>&$ cat bar Ol # abre arquivosopen files # redireciona stdin p/ 3, stdout p/ 4 # fecha arquivos
Note que o uso do valor 0 aqui para significar "verdadeiro" difere da conveno normal de outras reas da computao. Alm disso, `[' o equivalente do comando test, que avalia seus argumentos at o `]' como uma expresso condicional. As sentenas condicionais bsicas a lembrar so:
comando && se_sucesso_executa_esse_comando_tambm || true command || se_insucesso_ao_invs_executa_esse_comando if [ expresso_condicional ]; then se_sucesso_executa_esse_comando else se_insucesso_executa_esse_comando fi
Aqui o || true foi necessrio para garantir que esse script shell no finalize nessa linha acidentalmente quando o shell for invocado usando com a opo -e. Os operadores de comparao de arquivos nas expresses condicionais so:
-e arquivo -d arquivo diretrio. -f arquivo arquivo regular. -w arquivo gravvel. -x arquivo executvel. arquivo1 -nt arquivo2 arquivo2. (modificao) arquivo1 -ot arquivo2 o arquivo2. (modificao) arquivo1 -ef arquivo2 e nmero de inode.
Verdadeiro se o arquivo existe. Verdadeiro se o arquivo existe e um Verdadeiro se o arquivo existe e um Verdadeiro se o arquivo existe e Verdadeiro se o arquivo existe e Verdadeiro se o arquivo1 mais novo que o Verdadeiro se o arquivo1 mais antigo que Verdadeiro se eles so o mesmo dispositivo
Os operadores de comparao aritmtica inteira nas expresses condicionais so -eq, -ne, -lt, -le, -gt, e -ge.
divide em tokens atravs dos metacaracteres: ESPAO, TAB, NOVALINHA, ;, (, ), <, >, |, & verifica a palavra-chave se no estiver entre "..." ou '...' (loop) expande alias se no estiver entre "..." ou '...' (loop) expande chaves, a{1,2} -> a1 a2, se no estiver entre "..." ou '...' expande til, ~usuario -> diretrio home do usuario, se no estiver entre "..." or '...' expande parmetro, $PARAMETER, se no estiver entre '...' expande substituio de comando, $(comando), se no estiver entre '...' divide em palavras com $IFS se no estiver entre "..." ou '...' expande *?[] em pathname se no estiver entre "..." ou '...' procura o comando o funo o comando interno
arquivo em $PATH
loop
As aspas simples dentro de aspas duplas no tm efeito. Executar set -x no shell ou invoc-lo com a opo -x faz com que o shell imprima todos os comandos executados. Isso um tanto til para depurao.
13.3 Awk
Referncias sobre o Awk:
Effective awk Programming, terceira edio (O'Reilly) Sed & awk, segunda edio (O'Reilly) mawk(1) e gawk(1) info gawk
first = $1 last = $2 passwd = $3 user= substr( tolower( first ), 1, 1 ) tolower( last ) uid = startuid + record - 1 gid = uid printf( "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n", \ user, passwd, uid, gid, first, last, user \ ) }
Prioridade: requerido Tamanho instalado: 228 Menor e muito mais rpido bom para instalao padro Existem limites na compilao NF = 32767 sprintf buffer = 1020 Prioridade: opcional Tamanho instalado: 1708 Maior e com muitos recursos muitas extenses implementadas verso de UNIX System V Release 4 awk da Bell Labs especfico GNU
gawk o o o
13.4 Perl
Este o interpretador em um sistema similar ao Unix. Referncias sobre o Perl:
perl(1)
13.5 Python
Esse um interpretador orientado a objeto muito bom. Referncias sobre o Python:
python(1)
uid = int(sys.argv[1]) #print "# UID start from: %d\n" % uid if len(sys.argv) > 1: infilename = string.join(sys.argv[2:]) infile = open(infilename, 'r') #print "# Read file from: %s\n\n" % infilename else: infile = sys.stdin parsefile(uid)
13.6 Make
Referncias sobre o Make:
info make
make(1)
Aqui, [TAB] um cdigo TAB. Cada linha interpretada pelo shell depois de fazer a substituio de varivel. Use \ no fim de uma linha para continuar o script. Use $$ para entrar $ para valores de ambiente para um script shell. Regras implcitas para o alvo e pr-requisitos podem ser escritas, por exemplo, como:
%: %.c header.h
ou
%.o: %.c header.h
Aqui, o alvo contm o caracter % (exatamente um deles). O % pode corresponder a qualquer sub-cadeia de caracteres no vazia nos nomes de arquivo do alvo atual. Os pr-requisitos da mesma forma usam % para mostrar como seus nomes se relacionam com o nome do alvo atual. Regras de sufixo so a forma obsoleta de definir regras implcitas para o make. Elas ainda so suportadas no GNU make por compatibilidade, mas use regras de padro equivalente, sempre que possvel:
regra de sufixo antiga --> nova regra de padro .c: --> % : %.c .c.o: --> %.o: %.c
Referncias variveis:
foo1 := bar # Expanso nica foo2 = bar # Expanso recursiva foo3 += bar # Adiciona SRCS := $(wildcard *.c) OBJS := $(foo:c=o) OBJS := $(foo:%.c=%.o) OBJS := $(patsubst %.c,%.o,$(foo)) DIRS = $(dir diretorio/nomearquivo.ext) # Extrai "diretorio" $(notdir NAMES...), $(basename NAMES...), $(suffix NAMES...) ...
13.7 C
Preparao:
# apt-get install glibc-doc manpages-dev libc6-dev gcc
Referncias para o C:
Kernighan & Ritchie, The C Programming Language, segunda edio (Prentice Hall).
x=sqrt(argc+7.5); strncpy(y, argv[0], 10); /* evita buffer overflow */ y[10] = '\0'; /* preenche para ter certeza que string termina com '\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, a opo -lm necessria para ligar a biblioteca libm para o sqrt(). A biblioteca real est no /lib/ com o nome de arquivo libm.so.6, que um link simblico para o libm-2.1.3.so. Veja o ltimo parmetro no texto de sada. H mais de 10 caracteres apesar de %10s ser especificado. O uso de funes que realizam operaes de apontadores sem verificaes de limite, como o sprintf e o strcpy, est ultrapassado pois no elas evitam as vulnerabilidades causadas por buffer overflow que leva aos efeitos acima. Ao invs disso, use snprintf e strncpy.
13.7.2 Depurando
http://www.unknownroad.com/rtfm/gdbtut/gdbtoc.html
Use o gdb para depurar um programa compilado com a opo -g. Muitos comandos podem ser abreviados. A expanso de tab funciona como no shell.
$ gdb (gdb) (gdb) (gdb) ... (gdb) programa b 1 # define ponto de parada na linha 1 run arg1 arg2 arg3 # executa o programa next # prxima linha step # avana um passo
Para depurar a partir do Emacs, consulte o Resumo de comandos do Editor (Emacs, Vim), Seo 11.3.4.
13.7.2.2 Verificar dependncias de bibliotecas Use o ldd para determinar as dependncias de bibliotecas de um programa:
$ 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 o ls funcionar em um ambiente usando chroot, as bibliotecas acima precisam estar disponveis no ambiente chroot. Os seguintes comandos tambm sero teis:
strace: ltrace:
13.7.2.3 Depurando com ferramentas de deteco de fuga de memria H vrias ferramentas de deteco de fuga de memria disponveis no Debian.
njamd valgrind dmalloc electric-fence memprof memwatch (no empacotado, mpatrol leaktracer libgc6
obtenha-o em memwatch.)
Verifique tambm as Ferramentas de Depurao para Alocao Dinmica de Armazenamento e Gerenciamento de Memria.
Voc precisa fornecer suas prprias funes main() e yywrap(), ou seu programa.l deve parecer assim para compilar sem uma biblioteca (yywrap um macro; %option main ativa %option noyywrap implicitamente):
%option main %% .|\n ECHO ; %%
Alternativamente, voc pode compilar com a opo -lfl do ligador no fim da sua linha de comando cc (como o AT&T-Lex com -ll). No necessrio %option nesse caso.
Voc precisa fornecer suas prprias funes main() e yyerror(). A funo main() chama a yyparse() que chama a yylex(), geralmente criada com o FleX.
%% %%
13.7.5 Autoconf
O autoconf uma ferramenta para produzir scripts shell que configuram automaticamente pacotes de cdigo fonte de software para adapt-lo s muitas formas de sistemas similares ao UNIX usando o sistema de criao GNU inteiro.
O autoconf produz o script de configurao configure. O configure cria automaticamente um Makefile personalizado usando o modelo Makefile.in.
13.7.5.1 Compilar e instalar um programa O Debian no mexe em arquivos no /usr/local (veja Suportando diversidades, Seo 2.5). Ento se voc compilar um programa a partir da fonte, instale-o no /usr/local, assim ele no interferir com o Debian.
$ $ $ $ cd src ./configure --prefix=/usr/local make make install # isso coloca os arquivos no sistema
13.7.5.2 Desinstalar um programa Se voc ainda tiver a fonte e o programa usar o autoconf/automake e se voc puder lembrar-se de como o configurou:
$ ./configure todas-as-opes-que-voc-deu # make uninstall
Por outro lado, se voc tem certeza absoluta de que o processo de instalao pe arquivos somente sob o /usr/local e no h nada importante l, voc pode apagar todo seu contedo com:
# find /usr/local -type f -print0 | xargs -0 rm -f
Se voc no tiver certeza de onde os arquivos foram instalados, deve pensar em usar o checkinstall, que fornece uma maneira limpa para a desinstalao.
13.8.2 SGML
Preparao:
# apt-get install debiandoc-sgml debiandoc-sgml-doc
O SGML possibilita o gerenciamento de vrios formatos de um documento. Um sistema SGML fcil o Debiandoc, que usado aqui. Ele requer pequenas adaptaes dos arquivos texto originais para os seguintes caracteres:
"<" --> < ">" --> > " " --> (espao inquebrvel) "&" --> & "%" --> % "" --> © "" --> – "" --> —
Isso finaliza como "Dado 1". Se a primeira linha tiver "IGNORE" ao invs de "INCLUDE", isso finaliza como "Dado 2" (a segunda linha uma sentena condicional). Alm disso, a repetio de frases pode ser definida antes separadamente do contexto.
<!entity quem-e-esse "meu"> Ol &quem-e-esse; amigo. Esse &quem-e-esse; livro.
Veja o exemplo curto de SGML sample.sgml nos exemplos. Quando os documentos SGML ficam maiores, algumas vezes o TeX que usado como o processador de texto em plano de fundo (backend) pode causar erros. Veja TeX/LaTeX, Seo 13.8.3.
13.8.3 TeX/LaTeX
Preparao:
# tasksel # selecione Miscellaneous --> TeX/LaTeX environment
The TeXbook, de Donald E. Knuth, (Addison-Wesley) [58] LaTeX - A Document Preparation System, por Leslie Lamport, (AddisonWesley) The LaTeX Companion, de Goossens, Mittelbach, Samarin, (Addison-Wesley)
Esse o ambiente de editorao mais poderoso. Muitos processadores SGML o usam como seu processador de texto. O Lyx fornecido nos pacotes lyx, lyx-xforms, ou lyxqt oferece um agradvel ambiente de edio WYSIWYG para LaTeX enquanto muitos usam o Emacs e o Vim como alternativa para o editor de fonte. H muitos recursos online disponveis.
teTeX - A Documentation Guide (pacote tetex-doc) The Not So Short Introduction to LaTeX2e A Quick Introduction to LaTeX
A Simple Guide to Latex/Lyx Word Processing Using LaTeX Local User Guide to teTeX/LaTeX
Quando os documentos ficam maiores, algumas vezes o TeX pode causar erros. Voc precisa aumentar o tamanho do pool no /etc/texmf/texmf.cnf (ou mais apropriadamente, edite o /etc/texmf/texmf.d/95NonPath e execute update-texmf) para resolver isso.
Essa uma ferramenta de programao letrada semelhante a WEB que mais simples mas fornece extensibilidade e independncia de linguagem. [59] Quando o noweb invocado, ele escreve o cdigo fonte do programa nos arquivos de sada mencionados no arquivo noweb, e escreve um arquivo TeX para documentao editorada. O pacote Debian ifupdown um bom exemplo.
$ apt-get source ifupdown $ cd ifupdown* $ make ifupdown.pdf ifupdown.ps
Homepage /usr/share/doc/doxygen-doc/html/index.html
Ele pode gerar documentao HTML, RTF, pginas de manual Unix, PostScript, e PDF (usando LaTeX) para programas em C++, C, Java, IDL e at certo ponto PHP e C#. O Doxygen compatvel com JavaDoc (1.1), Qt-Doc, KDOC e foi projetado especificamente para ser usado para projetos que fazem uso do toolkit Qt da Troll Tech. Ele cria grficos de dependncia de include, diagramas de colaborao, e grficos de hierarquia de classe grfica mesmo para programas no documentados. A sada similar documentao da Qt.
13.9 Empacotamento
Preparao:
# apt-get install debian-policy developers-reference \ maint-guide dh-make debhelper # apt-get install packaging-manual # se for Potato
O sistema de gerenciamento de pacotes Debian, Seo 2.2 (bsico) Guia dos Novos Desenvolvedores Debian (tutorial)
dh-make(1)
Referncia dos Desenvolvedores Debian (prtica melhor) Manual de Polticas Debian (oficial) Manual de Empacotamento (Potato)
Use o dh_make do pacote dh-make para criar um pacote inicial. Ento, continue de acordo com as instrues de dh-make(1). Ele usa o debhelper no debian/rules. Uma alternativa mais antiga usar o deb-make do pacote debmake. Ele no usa os scripts debhelper e depende apenas do shell. Se quiser exemplos de pacotes de vrias fontes, veja o "mc" (dpkg-source -x mc_4.5.54.dsc), que usa o "sys-build.mk" de Adam Heath (doogie@debian.org), e a "glibc" (dpkg-source -x glibc_2.2.4-1.dsc), que usa outro sistema do falecido Joel Klecker (espy@debian.org).
Captulo 14 - GnuPG
Referncias:
gpg(1). file:///usr/share/doc/gnupg/README.gz GNU privacy handbook em file:///usr/share/doc/gnupgdoc/GNU_Privacy_Handbook/ (instale gnupg-doc)
Deve-se ter cuidado aqui: no crie mais do que duas subchaves. Se voc fizer isto, os servidores de chaves em pgp.net corrompero a sua chave. Use o novo gnupg (>1.2.12) para lidar com essas subchaves corrompidas. Consulte http://fortytwo.ch/gpg/subkeys. E tambm apenas um servidor de chaves pode ser especificado em $HOME/.gnupg/options. Infelizmente, os servidores abaixo no funcionam mais:
keyserver search.keyserver.net keyserver pgp.ai.mit.edu
Cdigos de confiabilidade:
calculado. e q n Nenhum proprietrio confivel associado / ainda no Clculo de confiabilidade falhou. Informao insuficiente para clculo. Nunca confie nesta chave.
m f u
O que se segue enviar minha chave "A8061F32" para mltiplos servidores de chaves:
$ for xx in us es cz de dk uk ch net.uk earth.net.uk; \ $ do gpg --keyserver wwwkeys.$xx.pgp.net --send-keys A8061F32; done
15.1 Referncias
As referncias seguintes esto disponveis para o Debian e o Linux em geral. Se seus contedos conflitarem uns com os outros, confie sempre mais nas fontes de informao primrias que nas secundrias como esse documento.
o o o o o
Leia antes da instalao e atualizao. Rede: http://www.debian.org/releases/stable/installmanual Rede: http://www.debian.org/releases/testing/installmanual (em construo, algumas vezes pode no existir) Pacote: Not available in install-doc: Bug#155374 Arquivo: Debian CD under /doc/
Notas de Lanamento (primria) o Uma leitura obrigatria antes da instalao e atualizao mesmo para os experientes. o Rede: http://www.debian.org/releases/stable/releasenotes o Rede: http://www.debian.org/releases/testing/releasenotes (em construo, algumas vezes pode no existir) o Pacote: Not available in install-doc: Bug#155374 o Arquivo: Debian CD under /doc/ FAQ (secundria) o Questes feitas freqentemente o Rede: http://www.debian.org/doc/manuals/debian-faq/ o Pacote: doc-debian o Arquivo: file:///usr/share/doc/debian/FAQ/index.html Referncia Debian (secundria) o Manual do usurio ps-instalao muito compreensvel o Rede: http://www.debian.org/doc/manuals/debian-reference/ o Pacote: debian-reference-en o Arquivo: file:///usr/share/doc/debian-reference-common/html/ APT HOWTO (secundria) o Guia do usurio detalhado para o gerenciamento de pacotes do Debian. (Woody) o Rede: http://www.debian.org/doc/manuals/apt-howto/ o Pacote: apt-howto o Arquivo: file:///usr/share/doc/Debian/apt-howto/ Manual de Segurana Debian (secundria) o Guia do usurio detalhado sobre segurana da instalao padro do Debian. (Woody) o Rede: http://www.debian.org/doc/manuals/securing-debianhowto/ o o
Documentao do dselect para Iniciantes (secundria) o Tutorial sobre o dselect o Rede: http://www.debian.org/releases/woody/i386/dselecto o beginner Pacote: Not available in install-doc: Bug#155374 Arquivo: Debian CD under /doc/
Manual de Polticas Debian (primria) o Espinha dorsal tcnica do Debian. o Rede: http://www.debian.org/doc/debian-policy/ o Pacote: debian-policy o Arquivo: file:///usr/share/doc/debian-policy/ Referncia dos Desenvolvedores Debian (primria) o Conhecimento bsico para desenvolvedores. o O resto de ns tambm deve l-lo uma vez. o Rede: http://www.debian.org/doc/manuals/developerso o reference/ Pacote: developers-reference Arquivo: file:///usr/share/doc/developers-reference/
Guia dos Novos Desenvolvedores Debian (primria) o Guia prtico para desenvolvedores. o Tutoriais de empacotamento para o resto de ns. o Rede: http://www.debian.org/doc/manuals/maint-guide/ o Pacote: maint-guide o Arquivo: file:///usr/share/doc/maint-guide/ Manual de Empacotamento (Potato) o Pacote packaging-manual do Potato. (Movido para o apndice da Referncia dos Desenvolvedores.) Pginas de manual estilo Unix (primria) o man nome-do-pacote Pginas info estilo GNU (primria) o info nome-do-pacote Documentos especficos do pacote (primria) o Encontre-os sob o /usr/share/doc/nome-do-pacote LDP: Linux Documentation Project (Projeto de Documentao Linux) (secundria) o HOWTOs gerais do Linux e mini-HOWTOs o Rede: http://www.tldp.org/ o Pacote: doc-linux-text o Arquivo: file:///usr/share/doc/HOWTO/ DDP: Debian Documentation Project (Projeto de Documentao Debian) (secundria) o Manuais especficos do Debian o Rede: http://www.debian.org/doc/ Canto dos Desenvolvedores Debian (secundria) o Informaes chave para os desenvolvedores Debian o Esclarecedor para os usurios finais o Rede: http://www.debian.org/devel/
Cdigo fonte (absolutamente primria) o Ningum pode contestar isso :-) o Baixe o cdigo fonte seguindo O cdigo-fonte, Seo 2.1.15
As referncias seguintes esto disponveis para o Unix em geral. Por favor, note que h algumas pequenas diferenas entre os sistemas Unix. Os nomes de dispositivos e os mtodos de init merecem ateno extra.
The UNIX Programming Environment (O Ambiente de Programao Unix) o O livro a ser lido para aprender como o UNIX funciona. o De B. W. Kernighan e R. Pike o Publicado pela Princeton Hall Software Series The C Programming Language (A Linguagem de Programao C) (segunda edio) o O livro a ser lido para aprender ANSI C. o De B. W. Kernighan e D. M. Ritchie o Publicado pela Princeton Hall Software Series UNIX Power Tools (Ferramentas Poderosas UNIX) o O livro a ser lido para aprender dicas do Unix. o De Jerry Peek, Tim O'Reilly, e Mike Loukides o Publicado pela O'Reilly and Associates Essential System Administration (Essencial da Administrao de Sistema) (segunda edio) o O livro a ser lido para aprender administrao de sistemas Unix para vrios sabores de Unix. o De Aeleen Frisch o Publicado pela O'Reilly and Associates Bell Labs: Computing Sciences Research (Bell Labs: Pesquisa de Cincias da Computao) o Um rico arquivo da histria do Unix o Principal: http://cm.bell-labs.com/cm/cs/ o Relatrios tcnicos selecionados: http://cm.bello labs.com/cm/cs/cstr.html Alguns artigos: http://cm.bell-labs.com/cm/cs/papers.html
o o o o o o o
Unix / Informao de Programao FAQ comp.unix.questions FAQ comp.unix.user-friendly Documentao FreeBSD O Manual FreeBSD GUIA UNIX O Patrimnio da Sociedade Unix
Para enviar uma mensagem particular "Ol Sr. Foo" para foo digite
/msg foo Ol Sr. Foo
Note que qualquer coisa que voc digitar sem uma / precedendo enviado para o canal como uma mensagem. Nota: clientes como o XChat geralmente tm uma interface grfica diferente para entrar em servidores/canais.
Google Groups:
um mecanismo de busca para grupos de notcias. Inclua "group:linux.debian.*" como termo de busca.
AltaVista
Por exemplo, procurando pelo termo "cgi-perl", obtm-se uma explicao mais detalhada desse pacote que o campo de descrio breve em seu arquivo control. Veja Verificar bugs no Debian e procurar ajuda, Seo 6.3.1 para obter informaes relacionadas.
LNX-BBC (Projeto de CD inicializvel do tamanho de um carto de visitas) Linux info de Karsten Self (particionamento, cpia de segurana, navegadores...) Backup info HOWTO de Alvin Oga Security info HOWTO de Alvin Oga Vrias fontes NO OFICIAIS para o APT Configurao de Ethernet para Laptop