Para reduzir o tráfego de rede nos repositórios Debian, certifique-se de
configurar um proxy HTTP local usando o squid
para os pacotes os
quais o download tenha sido feito através do APT e, caso necessário, define a
variável de ambiente http_proxy ou defina o valor
http no arquivo /etc/apt/sources.list
. Isso melhora
consideravelmente a performance de atualizações em rede, especialmente em
diversas máquinas Debian em uma LAN (rede local).
Apesar do recurso de pinagem do apt_preferences(5)
ser poderoso,
ele não resolve todos os problemas de dependências uma vez que os requerimentos
das dependências tendem a puxar versões mais novas de pacotes de programas
fundamentais.
+ O uso do método descrito em chroot
, Seção 8.6.34 é
desejável para assegurar simultaneamente tanto a estabilidade do sistema quanto
o acesso às últimas versões de softwares.
Este capítulo é baseado em um sistema Woody mas a maioria da informação também
se aplica a um sistema Potato (exceto para o apt_perferences(5)
e
tópicos relacionados ao arquivo /etc/apt/preferences
).
Se ler toda a documentação para desenvolvedor é muito para você, leia este capítulo primeiro e comece a desfrutar de toda a capacidade do Debian com testing/unstable :-)
dselect – ferramenta de gerenciamento de pacotes orientada a menu (nível topo) dpkg – instala pacote (centrado em arquivo-pacote) apt-get – instala pacote (centrado em repositório de pacotes, CLI APT) tasksel – instala tarefa (um conjunto de pacotes) aptitude – instala pacote (pacote & tarefa, APT ncurses) deity – APT ncurses alternativo synaptic, gsynaptic – alternativas GUI APT
Essas não são ferramentas de mesmo nível. O dselect
roda no topo
do APT (os comandos de linha são apt-get
) e dpkg
.
O APT usa /var/lib/apt/lists/*
para rastrear pacotes disponíveis
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 dependências 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 opções desses
pacotes e lhe pergunta pela escolha de pacotes baseado em
depends, recommends, e
suggests. O aptitude
oferece a opção de inserir
todos os pacotes automaticamente baseado em depends,
recommends e suggests. Veja Dependências de pacotes, Seção 2.2.8.
apt-cache - verifica o repositório de pacotes no cache local dpkg-reconfigure - reconfigura um pacote já instalado (se ele usar debconf) dpkg-source - gerencia arquivo de pacote fonte dpkg-buildpackage - automatiza a construção de um arquivo de pacote. ...
Você pode instalar um conjunto de pacotes chamados tarefa ou instalar pacotes individuais ou atualizar o sistema usando ferramentas de gerenciamento de pacotes como as ferramentas citadas abaxio.
Veja também Dicas para instalação do Sistema Debian, Capítulo 3, Atualizando uma distribuição para a testing, Capítulo 5 e Editores de recuperação, Seção 11.2.
tasksel
ou aptitude
O tasksel
é o Instalador de Tarefas Debian, que é
oferecido como a opção "simple" durante o sistema de
instalação.
Quando se precisa instalar uma função comum que requer vários pacotes, essa é a melhor maneira de fazê-lo. Execute os comandos como a seguir:
# dselect update # tasksel
O aptitude
também oferece acesso a tarefas seletivamente através
de menus. Ele não somente lhe permite selecionar tarefas mas também
lhe permite desmarcar para instalação pacotes que fazem parte de uma
tarefa seletivamente atráves de um menu.
Se você tentar seguir um ambiente misto como descrito aqui, pode comumente chegar a alguns conflitos de dependências de pacotes. É uma boa idéia não misturar sabores. O que vem a seguir é para pessoas que desejam experimentar reconhecendo alguns riscos.
Para atualização seletiva seguindo a distribuição testing, o
sistema APT (>Woody) precisa ser configurado como em Transição do APT para a versão
Woody, Seção 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
então 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
dselect
Quando iniciado, o dselect
automaticamente seleciona todos os
pacotes "Requeridos", "Importantes" e "Padrão".
No sistema Potato, alguns programas grandes como o teTeX e o Emacs se
encaixavam nessas categorias e era melhor não instalá-los na instalação inicial
manualmente desmarcando para instalação os mesmos (digitando `_'). No Woody,
esses pacotes foram movidos para a categoria de pacotes "Opcional".
O dselect
possui uma interface com o usuário de certa forma
estranha. Existem quatro comandos ambíguos (Maiúsculas significa
MAIÚSCULAS") :
Tecla-Chave Ação Q Finalizar. Confirma a seleção atual e finaliza de qualquer forma. (sobrescreve dependências) R Reverter ! Eu não queria dizer isso. D Droga ! Não me importa com o que o dselect acha. Faça isso ! U Marque todos com o estado sUgerido
Com D e Q, você pode selecionar seleções conflitantes
a seu próprio 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 opção "expert" no arquivo
/etc/dpkg/dselect.cfg
para reduzir o barulho. Para uma máquina
mais lenta, você pode executar o dselect
em uma outra máquina mais
rápida para encontrar os pacotes e pode usar apt-get install para
instalá-los.
O dselect
não fornece acesso a pacotes que não sejam os preferidos
pelo Pin-Priority.
aptitude
O aptitude
é um novo instalador de pacotes guiado por menus
similar ao dselect
. Ele pode também ser usado como um comando
alternativo de linha de comando no lugar do apt-get
. Consulte a
página de manual do aptitude(1)
.
O aptitude
aceita comandos de uma única tecla, geralmente em
letras minúsculas.
Tecla-Chave Ação F10 Menu ? Ajuda para as teclas de comandos u Atualiza informações dos pacotes do repositório g Faz o download e instala os pacotes selecionados q Finaliza a tela atual e salva as mudanças x Finaliza a tela atual e descarta as mudanças Enter Visualiza informações sobre um pacote
O aptitude
oferece a opção de fazer o download de todos os pacotes
automaticamente baseado nos depends,
recommends, e suggests. Você pode mudar esse
comportamente escolhendo F10 -> Opções -> Gerenciamento de
Dependências nos menus do aptitude.
O aptitude
oferece acesso a todas as versões de um pacote.
apt-cache
e apt-get
Seguindo a distribuição testing como descrito no exemplo acima, podemos gerenciar o sistema usando os seguintes comandos:
Esse comando segue a distribuição testing e atualiza todos os pacotes no sistema enquanto instala suas dependências da distribuição testing;
Esse comando segue a distribuição testing e atualiza todos os pacotes do sistema enquanto instala e resolve suas dependências da distribuição testing.
Esse comando segue a distribuição testing e atualiza todos os
pacotes no sistema pela seleção do dselect
.
Esse comando instala o pacote pacote e suas depedências da distribuição testing.
Esse comando instala o pacote pacote da distribuição unstable enquanto instala suas dependências da distribuição testing.
Esse comando instala o pacote pacote da distribuição unstable enquanto instala suas depedências também da distribuição unstable definindo o Pin-Priority de unstable para 990.
Esse comando checa o estado dos pacotes foo bar ....
Esse comando checa as informações dos pacotes foo bar ....
Esse comando instala a versão específica 2.2.4-1 do pacote foo.
Esse comando instala o pacote foo e remove o pacote bar.
Esse comando remove o pacote bar mas mantém intactos os arquivos de configuração que tenham sido modificados/personalizados.
Esse comando remove totalmente o pacote bar com todos os arquivos de configuração modificados/personalizados.
Nos exemplos acima, o uso da opção -u acima assegura que o
apt-get
exibirá uma lista de todos os pacotes que serão
atualizados antes de efetuar a ação. O trecho a a seguir define a opção
-u como padrão:
$ cat >> /etc/apt/apt.conf << . //Sempre exibe pacotes a serem atualizados (-u) APT::Get::Show-Upgraded "true"; .
Use a opção -s para simular um atualização sem na verdade fazê-la.
Dependendo de suas preferências por um sabor do Debian a seguir, você pode
mudar o exemplo de /etc/apt/preferences
em Configure o sistema APT, Seção 6.2.2 para se adequar a
suas necessidades :
seguir a estável: mude o Pin-Priority da testing para 50 seguir a testing: mantenha as confgiurações como exibidas acima seguir a testing(unstable): mude o Pin-Priority da unstable para 50 seguir a unstable(testing): mude o Pin-Priority da unstable para 800
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 após o lançamento de uma distribução para um momento do congelamento (freeze) para o próximo lançamento.
Atenção: seguir o tipo testing do Debian possui o efeito colateral de obter atualizações de segurança muito lentamente.
Caso você misture os tipos do Debian testing com stable ou unstable com stable, você provavelmente irá obter também muitos pacotes-chave não intencionalmente do testing ou unstable que poderão conter bugs. Portanto, esteja avisado sobre esse problema.
Exemplos do arquivo /etc/apt/preferences
que prendem alguns
pacotes chave para suas versões mais maduras enquanto seguem as versões menos
maduras de outros pacotes não-essenciais estão disponíveis no subdiretórios de exemplos
com o nome de
preferences.testing
e preferences.unstable
. Por
outro lado, o arquivo preferences.stable
força todos os pacotes a
serem rebaixados para suas versões existentes na distribuição
"estável" (um "downgrade" na verdade).
Para rebaixar todos os pacotes para stable, edite
/etc/apt/preferences
como a seguir:
Package: * Pin: release a=stable Pin-Priority: 1001
e execute "apt-get upgrade", o que força o rebaixamento devido ao Pin-priority > 1000. Fique atento, podem haver alguns pequenos problemas com dependências.
/etc/apt/preferences
No arquivo /etc/apt/preferences
de exemplo apresentado em Configure o sistema APT, Seção 6.2.2, "Package:
*" na primeira linha significa que esta seção se aplica a todos os
pacotes. Você pode usar um nome de pacote ao invés de "*" para
especificar o Pin-Priority desse pacote.
Na segunda linha, "Pin: release a=stable" significa que o
apt-get
obtém o arquivo Packages.gz
de um repositório
contendo o arquivo Relese
que contenha a linha "Archive:
stable".
Na última linha "Pin-Priority: 500" especifica o Pin-Priority como 500.
Caso existam diversos pacotes com o mesmo nome, normalmente aquele com o valor de Pin-Priority mais alto é o que será instalado.
Os significados de Pin-Priority são :
O "downgrade" (rebaixamento de versão) do pacote é permitido para esta faixa de Pin-Priority.
O "downgrade" do pacote não é permitido. Alguns valores chave de Pin-Priority :
apt-get(8)
.
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 opção de linha de comando --target-release e a configuração no
arquivo /etc/apt/apt.conf
têm prioridade à configuração no arquivo
/etc/apt/preferences
. Seja cuidadoso com essa interferência
quando estiver lidando com o arquivo /etc/apt/preferences
.
Com esse conhecimento, é possível viver uma vida de "atualizações" eternas :-)
Se você está tendo problemas sobre um pacote específico, tenha certeza de
verificar esses sites antes de pedir ajuda ou antes de enviar um relatório de
bug. (lynx
, links
, e w3m
funcionam
igualmente bem):
$ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/nome-do-pacote # se você sabe o nome do pacote $ lynx http://bugs.debian.org/número-do-bug # se você sabe o número do bug
Procure no Google (www.google.com) com palavras de busca incluindo "site:debian.org".
Quando tiver dúvidas, 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 estão listados em Suporte para o Debian, Capítulo 15.
Podem ocorrer problemas de dependência ao atualizar na unstable/testing, como descrito em Atualizar o sistema Debian, Seção 5.3. Na maior parte das vezes, isso ocorre porque um pacote que será atualizado tem uma nova dependência que é desconhecida. Esses problemas são resolvidos usando
# apt-get dist-upgrade
Se isso não resolver, então repita um dos seguintes até que o problema se resolva:
# apt-get upgrade -f # continua atualização depois do erro ... ou # apt-get dist-upgrade -f # continua atualização distribuição depois do erro
Alguns scripts de atualização realmente quebrados podem causar um problema
persistente. É melhor resolver esse tipo de situação inspecionando os scripts
/var/lib/dpkg/info/nome-do-pacote.{post,pre}{inst,rm}
do pacote problemático e então executar:
# dpkg --configure -a # configura todos os pacotes parcialmente instalados
Se um script reclamar de um arquivo de configuração inexistente, procure o
arquivo de configuração correspondente em /etc
. Se existir um com
uma extensão .new (ou algo similar), modifique-o (mv
)
para remover o sufixo.
Podem ocorrer problemas de dependência ao instalar em unstable/testing. Há maneiras de enganar dependências.
# apt-get install -f pacote # anula dependências quebradas
Um método alternativo para resolver essas situações é usar o pacote
equivs
. Veja /usr/share/doc/equivs/README.Debian
e
O pacote equivs
, Seção 6.5.2.
dpkg
A recuperação de uma falha no dselect
(APT) pode ser feita em um
sistema realmente quebrado usando apenas o dpkg
sem o APT:
# cd /var/cache/apt/archives # dpkg -i libc6* libdb2* perl* # dpkg -i apt* dpkg* debconf* # dpkg -i * # até que não ocorram erros
Se estiver faltando um pacote, pegue-o a partir dos sites espelhos
com:
# mc # use "link FTP" apontando para o servidor FTP Debian
Recentemente, os pacotes atuais no servidor HTTP/FTP podem não ser localizados
sob o clássico diretório /dist
, mas sob o novo diretório
/pool
. (Veja O diretório
pool
, Seção 2.1.10.)
Então instale com:
# dpkg -i /var/cache/apt/archives/arquivodepacote.deb
Para uma dependência quebrada, conserte-a ou use:
# 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 configuração faltando
Se o arquivo /var/lib/dpkg/status
se corromper por alguma razão, o
sistema Debian perde os dados de seleção de pacotes e é severamente
prejudicado. Procure pelo antigo arquivo /var/lib/dpkg/status
em
/var/lib/dpkg/status-old
ou
/var/backups/dpkg.status.*
.
Manter /var/backups/
em uma partição separada pode ser uma boa
idéia já que esse diretório contém muitos dados importantes do sistema.
Se o arquivo /var/lib/dpkg/status
antigo não estiver disponível,
você ainda pode recuperar a informação a partir dos diretórios em
/usr/share/doc/
.
# ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk '{print $1 " install"}' | \ dpkg --set-selections # dselect --expert # reinstalar o sistema, de-selecione conforme necessário
/var
Como o diretório /var
contém dados atualizados regularmente como
correio, ele é propício a ser corrompido. Separá-lo em uma partição
independente limita os riscos. Se acontecer um desastre, você pode ter que
recriar o diretório /var
para resgatar seu sistema Debian.
Obtenha um conteúdo esqueleto do diretório /var
a partir de um
sistema Debian mínimo funcional baseado na mesma versão Debian ou mais antiga,
por exemplo
, e
coloque-o no diretório raiz do sistema quebrado. Então
var.tar.gz
# cd / # mv var var-old # se algum conteúdo útil foi deixado # tar xvzf var.tar.gz # use o arquivo esqueleto do Woody # aptitude # ou dselect
Isso deve prover um sistema funcional. Você pode realizar a recuperação das seleções de pacotes usando a técnica descrita em Recuperação dos dados de seleção de pacotes, Seção 6.3.4. ([FIXME]: Esse procedimento precisa mais experimentos para verificar.)
Inicie no Linux usando um disquete/CD de resgate do Debian ou uma partição
alternativa em um sistema Linux com multi-inicialização. Consulte Iniciando o sistema, Seção 8.1. Monte
o sistema não iniciável em /target
e use o modo de instalação
chroot do dpkg
.
# dpkg --root /target -i arquivodopacote.deb
Então 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 padrão do Debian. No
prompt de boot, considerando que a partição de sua instalação Linux está em
/dev/hda12
e você quer o nível de execução (runlevel) 3, entre:
boot: rescue root=/dev/hda12 3
Então 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 módulos.)
dpkg
estiver quebrado
Um dpkg
pode tornar impossível instalar qualquer arquivo
.deb. Um procedimento como o seguinte o ajudará a recuperar-se
dessa situação. (Na primeira linha, você pode substituir "links" com
o comando de seu browser favorito.)
$ links http://http.us.debian.org/debian/pool/main/d/dpkg/ ... baixe o dpkg_versão_arquit.deb bom $ su password: ***** # ar x dpkg_versão_arquitetura.deb # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz
Para i386, http://packages.debian.org/dpkg também pode usado como a URL.
A Iluminação com esses comandos salvará uma pessoa da eterna agonia cármica do inferno da atualização e a levará a alcançar o nirvana do Debian. :-)
Para encontrar o pacote ao qual um arquivo particular pertence:
$ dpkg {-S|--search} padrão # procura pelo padrão nos pacotes instalados $ wget http://ftp.us.debian.org/debian/dists/sarge/Contents-i386.gz $ zgrep -e pattern Contents-i386.gz # procura o padrão-nome-de-arquivo no arquivo do debian
Ou use comandos especializados de pacote:
# apt-get install dlocate # conflita com slocate (versão segura de locate) $ dlocate nome-de-arquivo # alternativa rápida ao dpkg -L e dpkg -S ... # apt-get install auto-apt # ferramenta de instalação de pacotes sob demanda # auto-apt update # cria arquivo db para o auto-apt $ auto-apt search padrão # procura pelo padrão em todos os pacotes, instalados ou não
Procura e exibe informação a partir dos arquivos de pacotes. Certifique-se de
apontar o APT para o(s) repositório(s) próprio(s) editando
/etc/apt/sources.list
. Se você deseja ver como pacotes na
testing/unstable estão em comparação com os
atualmente instalados, use apt-cache policy—muito legal.
# apt-get check # atualiza o cache e verifica pacotes quebrados $ apt-cache search padrão # procura pacote pela descrição do texto $ apt-cache policy pacote # prioridade de pacote/informação de dists $ apt-cache show -a pacote # exibe descrição do pacote em todas dists $ apt-cache showsrc pacote # exibe descrição de pacote fonte determinado $ apt-cache showpkg pacote # informação do pacote para depuração # dpkg --audit|-C # procura pacotes parcialmente instalados $ dpkg {-s|--status} pacote ... # descrição de pacote instalado $ dpkg -l pacote ... # estado de pacote instalado (1 linha cada) $ dpkg -L pacote ... # lista nomes de arquivos instalados pelo pacote
O apt-cache showsrc não foi documentado na versão Woody mas funciona :)
Você também pode encontrar informação sobre pacote em (eu uso o mc para navegar entre eles):
/var/lib/apt/lists/* /var/lib/dpkg/available
A comparação dos seguintes arquivos dá informação sobre o que exatamente aconteceu nas últimas sessões de instalação.
/var/lib/dpkg/status /var/backups/dpkg.status*
Para uma instalação sem acompanhamento, adicione a seguinte linha em
/etc/apt/apt.conf
:
Dpkg::Options {"--force-confold";}
Isso é equivalente a executar apt-get -q -y
nome-do-pacote. Como isso responde "yes"
automaticamente a todas as perguntas, pode causar problemas, então use essa
dica com cuidado. Veja apt.conf(5)
e dpkg(1)
.
Você pode configurar quaisquer pacotes particulares mais tarde seguindo Reconfigurar pacotes instalados, Seção 6.4.4.
Use o seguinte para reconfigurar qualquer pacote já instalado.
# dpkg-reconfigure --priority=medium pacote [...] # dpkg-reconfigure --all # reconfigura todos os pacotes # dpkg-reconfigure locales # gera qualquer locale extra # dpkg-reconfigure --p=low xserver-xfree86 # reconfigura servidor X
Faça isso para o debconf
se você quiser mudar o modo de diálogo do
debconf
permanentemente.
Alguns programas vêm com scripts de configuração especiais.
apt-setup - cria /etc/apt/sources.list install-mbr - instala um gerenciador de Master Boot Record tzconfig - configura o fuso horário local gpmconfig - configura o daemon de mouse gpm sambaconfig - configura o Samba no Potato (Woody usa o debconf) 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 padrão, por exemplo, vim como vi update-rc.d - gerenciamento de script de init System-V update-menus - sistema de menus Debian ...
Remover um pacote mantendo sua configuração:
# apt-get remove pacote ... # dpkg --remove pacote ...
Remover um pacote e toda sua configuração:
# apt-get remove --purge pacote ... # dpkg --purge pacote ...
Por exemplo, o travamento de libc6
e libc6-dev
para o
dselect
e apt-get -u upgrade pacote pode
ser feito como a seguir:
# echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections
apt-get -u install pacote não será impedido por este
"hold". Para manter um pacote forçando um rebaixamento automático
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:" não pode usar entradas como
"libc6*". Se você precisa manter todos os pacotes
binários relacionados ao pacote fonte glibc
em uma versão
sincronizada, precisa listá-los explicitamente.
O seguinte listará pacotes em "hold":
dpkg --get-selections "*"|grep -e "hold$"
apt-show-versions
pode listar versões de pacotes disponíveis por
distribuição.
$ apt-show-versions | fgrep /testing | wc ... quantos pacotes você tem da testing $ apt-show-versions -u ... lista de pacotes atualizáveis $ apt-get install `apt-show-versions -u -b | fgrep /unstable` ... atualiza todos os pacotes unstable para suas versões mais novas
A instalação de pacotes com o APT deixa pacotes em cache em
/var/cache/apt/archives
e esses precisam ser excluídos.
# apt-get autoclean # remove apenas os arquivos de pacotes sem uso # apt-get clean # remove todos os arquivos de pacotes em cache
Para fazer uma cópia local dos estados de seleção dos pacotes:
$ dpkg --get-selections "*" >minhas_seleções # ou use \*
"*" faz minhas_seleções incluir entradas de pacotes para "purge" também.
Você pode transferir esse arquivo para outro computador, e instalá-lo lá com:
# dselect update # dpkg --set-selections <minhas_seleções # apt-get -u dselect-upgrade # ou dselect install
Para atualizações parciais do sistema stable, reconstruir um
pacote dentro de seu ambiente usando o pacote fonte é desejável. Isso evita
atualizações muito grandes de pacotes devido a suas dependências. Primeiro,
adicione as seguintes entradas ao /etc/apt/sources.list
:
deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US testing/non-US \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US unstable/non-US \ main contrib non-free
Aqui cada entrada para deb-src está quebrada em duas linhas devido
a restrições de impressão, mas a entrada real em sources.list
deve
consistir de uma única linha.
Então pegue a fonte e faça 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-versão ... inspecione pacotes necessários (Build-depends no arquivo .dsc) e instale-os também. Você também precisa do pacote "fakeroot". $ dpkg-buildpackage -rfakeroot ...ou (sem assinatura) $ dpkg-buildpackage -rfakeroot -us -uc # use "debsign" depois se necessário ...Então para instalar $ su -c "dpkg -i arquivodopacote.deb"
Geralmente, é necessário instalar uns poucos pacotes com o sufixo
"-dev" para satisfazer dependências de pacotes. O
debsign
está no pacote devscripts
. O
auto-apt
pode facilitar a satisfação dessas dependências. O uso
de fakeroot
evita o uso desnecessário da conta root.
No Woody, esses problemas de dependências podem ser simplificados. Por
exemplo, para compilar um pacote pine
de apenas fonte:
# apt-get build-dep pine # apt-get source -b pine
Para criar um repositório local de pacotes que seja compatível com o APT e o
sistema dselect
, é necessário criar o arquivo
Packages
e os arquivos de pacotes precisam ser colocados em uma
árvore de diretórios específica.
Pode-se fazer um repositório deb local similar a um repositório Debian oficial assim:
# apt-get install dpkg-dev # cd /usr/local # install -d pool # os pacotes físicos são localizados aqui # install -d dists/unstable/main/binary-i386 # ls -1 pool | sed 's/_.*$/ prioridade/ seção/' | uniq > override # editor override # ajuste prioridade e seção # dpkg-scanpackages pool override /usr/local/ \ > dists/unstable/main/binary-i386/Packages # cat > dists/unstable/main/Release << EOF Archive: unstable Version: 3.0 Component: main Origin: Local Label: Local Architecture: i386 EOF # echo "deb file:/usr/local unstable main" \ >> /etc/apt/sources.list
Alternativamente, pode-se fazer um repositório deb local curto e grosso:
# apt-get install dpkg-dev # 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 repositórios podem ser acessados remotamente disponibilizando acesso a
esses diretórios através de métodos HTTP ou FTP e mudando as entradas em
/etc/apt/sources.list
apropriadamente.
O alien
possibilita a conversão de pacotes binários providos em
formatos de arquivo rpm da Redhat, slp da Stampede,
tgz do Slackware, e pkg do Solaris em um pacote
deb do Debian. Se você quiser usar um pacote de outra
distribuição Linux ao invés do que tem instalado em seu sistema, você pode usar
o alien
para convertê-lo para seu formato de pacotes preferido e
instalá-lo. O alien
também suporta pacotes LSB.
debsums
possibilita a verificação de arquivos de pacotes
instalados com checksums MD5. Alguns pacotes não têm checksums MD5
disponíveis. Uma solução temporária para administradores de sistema:
# cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D
por Joerg Wendland joergland@debian.org
(não
testado).
sources.list
Resumidamente, esforços para criar um arquivo sources.list
otimizado não produziram melhoramentos significativos para mim a partir de um
local nos Estados Unidos (nota do tradutor: estas são as
palavras do autor desta seção). Eu manualmente escolho um site mais próximo
usando o apt-setup
.
O apt-spy
cria um arquivo sources.list
automaticamente, baseando-se na latência e largura de banda. O
netselect-apt
cria um arquivo sources.list
mais
completo, mas utiliza um método inferior para escolher o melhor espelho
(comparação do tempo de ping).
# apt-get install apt-spy # cd /etc/apt ; mv sources.list sources.list.org # apt-spy -d testing -l sources.apt
dpkg-divert
Desvios (divertions) de arquivos são uma maneira de forçar o
dpkg
a não instalar um arquivo em sua localização padrão, mas em
uma localização desviada. Os desvios podem
ser usados através dos scripts de pacotes Debian para desviar de um arquivo
quando ele causa um conflito. Os administradores de sistema também podem usar
um desvio para substituir o arquivo de configuração de um pacote, ou quando
alguns arquivos (que não estão marcados como conffiles)
precisam ser preservados pelo dpkg
, ao instalar uma versão mais
nova de um pacote que contém aqueles arquivos (veja Preservação da configuração local, Seção
2.2.4).
# dpkg-divert [--add] nomedoarquivo # adiciona "desvio" # dpkg-divert --remove nomedoarquivo # remove "desvio"
Geralmente é uma boa idéia não usar o dpkg-divert
a menos que ele
seja absolutamente necessário.
equivs
Se você compilar um programa a partir da fonte, é melhor torná-lo um pacote local debianizado real (*.deb). Use equivs como último recurso.
Package: equivs Priority: extra Section: admin Description: Engana dependências de pacote Debian Este é um pacote falso que pode ser usado para criar pacotes Debian, que contém apenas informação de dependência.
Para fazer o comando vi
executar vim
, use
update-alternatives
:
# update-alternatives --display vi ... # update-alternatives --config vi Selection Command ----------------------------------------------- 1 /usr/bin/elvis-tiny 2 /usr/bin/vim *+ 3 /usr/bin/nvi Enter to keep the default[*], or type selection number: 2
Os itens no sistema de alternativas do Debian são mantidos em
/etc/alternatives
como ligações simbólicas.
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 Sessões X personalizadas, Seção
9.4.5.1.
/bin/sh
é uma ligação simbólica direta para /bin/bash
ou /bin/dash
. É mais seguro usar /bin/bash
para ser
compatível com scripts contaminados com velho Bashismo, mas é mais disciplinado
usar /bin/dash
para reforçar a compatibilidade POSIX. A
atualização para um kernel Linux 2.4 tende a definir isso para
/bin/dash
.
init
System-V e níveis de execução (runlevels)
O nível de execução padrão em que inicializar pode ser definido em
/etc/inittab
.
Diferente de outras distribuições, o Debian deixa o gerenciamento de nível de
execução completamente como responsabilidade do administrador do sistema. O
gerenciamento de init
estilo System-V no Debian deve ser feito
através de scripts update-rc.d
.
Iniciar /etc/init.d/nome
no nível de execução 1,2,3 e
parar em 4,5 com número de prioridade de seqüência 20 (normal) pode ser feito
com:
# update-rc.d nome start 20 1 2 3 . stop 20 4 5 .
A remoção de ligações simbólicas enquanto o script em init.d
ainda
existe pode ser feita com:
# update-rc.d -f nome remove
Para editar níveis de execução, eu trapaceio. Eu edito as entradas manualmente
usando o comando mv
no prompt shell do mc
ao copiar
as entradas de ligação usando Alt-Enter. Por exemplo:
# mv S99xdm K99xdm # desabilita xdm (X display manager)
Eu também desabilito o daemon inserindo exit 0 no início de um
script init.d
como um hack rápido. Esses são os arquivos de
configuração depois de tudo.
A distribuição Debian considera a segurança do sistema seriamente e espera que o administrador do sistema seja competente. Assim, algumas vezes a facilidade de uso aparece como assunto secundário e muitos serviços daemon vêm com o maior nível de segurança, com os mínimos serviços (ou nenhum) disponíveis como seu estado de instalação padrão.
Execute ps aux ou verifique os conteúdos de
/etc/init.d/*
e /etc/inetd.conf
, se tiver qualquer
dúvida (sobre Exim, DHCP, ...). Verifique também /etc/hosts.deny
como em Restringindo logins com PAM,
Seção 9.2.1. O comando pidof
também é útil (veja
pidof(8)
).
O X11 não permite conexões TCP/IP (remotas) por padrão nas versões recentes do
Debian. Veja Usando o X sobre TCP/IP,
Seção 9.4.6. O redirecionamento do X em SSH também é desabilitado. Veja
Conectando a um servidor X remoto –
ssh
, Seção 9.4.8.
Referência Debian
CVS, Seg Abr 3 22:58:08 UTC 2005osamu@debian.org
pormenese@uol.com.br