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)
.
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.
O pacote kbd
tem suporte a isso agora. Veja /etc/kbd/config
.
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.
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.
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:
foo
no diretório /etc/init.d/
.update-rc.d
da Debian com os
argumentos apropriados, para criar os links entre os diretórios rc?.d
e /etc/init.d/foo
(especificados na linha de comando).
Aqui, '?' é um número de 0 a 6 e corresponde a cada um dos runlevels
do System V.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.
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.
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:
/bin/login
com login-local
./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:
dpkg-divert --divert /bin/login.debian /bin/login
para que todas as futuras instalações de pacotes login
da
Debian escrevam o arquivo /bin/login
com o nome
/bin/login.debian
.cp login-local /bin/login
para mover seu programa construído localmente ao lugar correto ???.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.
Você pode fazer isso de duas maneiras:
dselect
e resselecione o método de acesso. Será
pedido um diretório no qual os pacotes locais residem.dpkg-scanpackages BIN_DIR OVERRIDE_FILE [PATHPREFIX] > Packages.new
onde
indices/override.main.gz
para os pacotes Debian na distribuição
"main".Packages.new
, informe o
sistema de gerenciamento de pacotes usando o comando
dpkg --update-avail Packages.new
.
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.