Página seguinte Página anterior Índice

12. Personalizando sua instalação do Debian GNU/Linux

12.1 Como posso fazer com que todos os programas usem o mesmo tamanho de papel?

O arquivo /etc/papersize contém o nome do tamanho padrão do papel (como carta ou A4). Ele pode ser sobrescrito usando a variável de ambiente PAPERSIZE. Para mais detalhes, veja a página de manual papersize(5).

12.2 Como posso fornecer acesso aos periféricos sem comprometer a segurança?

Vários arquivos de dispositivo no diretório /dev pertencem a grupos pré-definidos. Por exemplo, /dev/fd0 pertence ao grupo floppy, e o /dev/dsp pertence ao grupo audio.

Se você quiser que um certo usuário tenha acesso a um desses dispositivos, adicione o usuário ao grupo ao qual o dispositivo pertence.

12.3 Como carrego uma fonte de console na inicialização à moda Debian?

O pacote kbd tem suporte a isso agora. Veja /etc/kbd/config.

12.4 Como configuro os defaults de um programa para X11?

A instalação do X11 na Debian espera que você não altere os arquivos de /usr/X11R6/lib/X11/app-defaults/. Se quiser personalizar aplicativos do X globalmente, coloque suas personalizações em /etc/X11/Xresources. Como este é marcado como arquivo de configuração, seu conteúdo é preservado durante atualizações.

12.5 Parece que cada distribuição tem um método de inicialização diferente. Como é o da Debian?

Como todos os Unices, a Debian é inicializada executando-se o programa init. O arquivo de configuração para init (que é o /etc/inittab) especifica que o primeiro script a ser executado deve ser /etc/init.d/rcS. Este script verifica e monta sistemas de arquivos, carrega módulos, inicia os serviços de rede (chamando o script /etc/init.d/network), arruma o relógio, faz outras inicializações, e daí executa todos os scripts (exceto os que tiverem '.' no nome-de-arquivo) em /etc/rc.boot/. Este define o teclado padrão, recupera arquivos perdidos de editores e configura as portas seriais.

Após completar o processo de inicialização, o init executa todos os scripts "start" do diretório especificado pelo runlevel padrão (este runlevel é dado pela entrada id no /etc/inittab). Como a maioria dos Unices compatíveis com o System V, o Linux tem 7 runlevels:

0 (pára o sistema), 1 (modo monousuário), 2 a 5 (vários modos multiusuários), e 6 (reinicializa o sistema). Sistemas Debian vêm com id=2, que indica que o runlevel padrão será '2' quando o sistema entrar no modo multiusuário, e os scripts de /etc/rc2.d/ serão executados.

Na verdade, os scripts de todos os diretórios /etc/rcN.d/ são apenas links simbólicos para scripts de /etc/init.d/. Entretanto, os nomes dos arquivos em cada um dos diretórios /etc/rcN.d/ são escolhidos de modo a indicar a maneira em que os scripts de /etc/init.d/ serão executados. Especificamente, antes de entrar em qualquer runlevel, todos os scripts que começam com 'K' são executados; esses scripts "matam" (i.e., terminam) os serviços. Depois, todos os scripts que começam com 'S' são executados; esses scripts iniciam serviços. O número de dois dígitos após o 'K' ou 'S' indica a ordem na qual o script é executado. Os scripts com números menores são executados primeiro.

Esta abordagem funciona porque todos os scripts de /etc/init.d/ aceitam um argumento que pode ser 'start' (iniciar), 'stop' (parar), ou 'reload' (recarregar) e fazem a tarefa indicada pelo argumento. Por exemplo, com o argumento 'reload' ???, o comando /etc/init.d/sendmail reload envia ao daemon sendmail um sinal para que ele releia seu arquivo de configuração. Esses scripts podem ser usados mesmo depois que o sistema tiver sido inicializado, para controlar os vários processos.

12.6 Parece que a Debian não usa rc.local para personalizar o processo de inicialização; que recursos são fornecidos?

Suponha que um sistema precisa executar o script foo na inicialização, ou uma entrada para um runlevel (System V) específico. O administrador do sistema deve:

O comando update-rc.d cria os links entre os arquivos dos diretórios rc?.d e o script de /etc/init.d/. Cada link começará com um 'S' ou um 'K', seguido de um número, seguido do nome do script. Os scripts de /etc/rcN.d/ que começam com 'S' são executados quando se entra no runlevel N. Os scripts que começam com 'K' são executados quando se deixa o runlevel N.

Pode-se, por exemplo, fazer com que o script foo seja executado na inicialização colocando-o em /etc/init.d/ e instalando os links com update-rc.d foo defaults 19. O argumento 'defaults' refere-se aos runlevels padrões, que vão de 2 a 5. O argumento '19' assegura que foo será chamado antes de quaisquer scripts que tenham números iguais ou maiores a 20.

12.7 Como o sistema de gerenciamento de pacotes lida com pacotes que contêm arquivos de configuração para outros pacotes?

Alguns usuários gostariam de criar, por exemplo, um novo servidor instalando um grupo de pacotes Debian e um pacote gerado localmente que consiste em arquivos de configuração. Isso geralmente não é uma boa idéia, porque o dpkg não saberá que esses arquivos de configuração existem se eles estiverem num pacote diferente, e pode escrever configurações conflitantes quando um pacote do "grupo" inicial for atualizado.

Ao invés disso, crie um pacote local que modifica os arquivos de configuração do "grupo" de pacotes Debian em questão. Daí, o dpkg e o resto do sistema de gerenciamento de pacotes verá que os arquivos foram modificados pelo "administrador" local e não tentará sobrescrevê-los quando esses pacotes forem atualizados.

12.8 Como posso sobrescrever ??? um arquivo instalado por um pacote de modo que uma versão diferente possa ser usada?

Suponha que um administrador ou um usuário local queira usar um programa "login-local" ao invés do programa "login" fornecido pelo pacote Debian login. Não faça:

O sistema de gerenciamento de pacotes não saberá desta mudança, e simplesmente sobrescreverá seu /bin/login personalizado quando login (ou qualquer pacote que forneça o /bin/login) seja instalado ou atualizado.

Ao invés disso, faça assim:

Alguns detalhes são dados pela explicação de uso do dpkg-divert (que pode ser vista através do comando dpkg-divert --help). Detalhes adicionais são dados no Debian programmer's manual.

12.9 Como posso incluir meu pacote, feito localmente, na lista de pacotes disponíveis que o sistema de gerenciamento de pacotes usa?

Você pode fazer isso de duas maneiras:

12.10 Alguns usuários gostam do mawk, outros do gawk; alguns gostam do vim, outros do elvis; alguns gostam do trn, outros do tin; como a Debian lida com diversidade?

Há vários casos onde dois pacotes fornecem duas versões diferentes de um programa, ambos fornecendo a mesma funcionalidade.

A Debian usa um sistema de pacotes "virtual" que permite ao administrador do sistema escolher (ou deixar que os usuários escolham) suas ferramentas favoritas quando houver duas ou mais que forneçam a mesma funcionalidade básica, e ainda satisfazer requerimentos de dependência de pacotes sem especificar um pacote específico.

Por exemplo, podem existir duas versões diferentes de leitores de news num sistema. O pacote do servidor de news pode "recomendar" que haja algum leitor de news no sistema, mas a escolha entre tin ou trn fica para o usuário individual. Isto é satisfeito fazendo com que ambos os pacotes tin e trn forneçam o pacote virtual news-reader. O programa a ser chamado é determinado através de um link que aponta de um arquivo com o o nome do pacote virtual ??? /etc/alternatives/news-reader para o arquivo escolhido, p.ex., /usr/bin/trn.

Um único link é insuficiente para dar suporte ao uso total de um programa alternativo; normalmente, páginas de manual, e possivelmente outros arquivos de suporte devem ser selecionados também. O script em Perl update-alternatives fornece uma maneira de assegurar que todos os arquivos associados a um pacote especificado sejam escolhidos como o padrão do sistema.


Página seguinte Página anterior Índice