<< Back to man.lupaworld.com


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ próximo ]

Referência Debian
Capítulo 2 - Fundamentos Debian


Este capítulo fornece informação fundamental sobre o sistema Debian para não-desenvolvedores. Para informação oficial, consulte :

listados em Referências, Seção 15.1.

Caso você esteja procurando por explicações "como-fazer" menos detalhadas, pule diretamente para Gerenciamento de pacotes Debian, Capítulo 6 ou para outros capítulos relevantes.

Este capítulo é baseado em documentos obtidos da "FAQ Debian", altamente reorganizados para permitir que o administrador de sistemas Debian comum possa começar.


2.1 Os repositórios Debian


2.1.1 Estruturas de diretório

O software que foi empacotado para o Debian está disponível em uma das diversas árvores de diretórios em cada site espelho Debian através de FTP ou HTTP.

Os seguintes diretórios podem ser encontrados em cada site espelho Debian sob o diretório debian :

dists/:
Este diretório contém as "distribuições" e era a maneira canônica de acessar pacotes atuais disponíveis nas distribuições e pré-distribuições Debian. Alguns pacotes antigos, arquivos Contents-*.gz, e arquivos Packages.gz ainda estão aqui.
pool/:
A nova localização física para todos os pacotes das distribuições e pré-distribuições Debian.
tools/:
Utilitários DOS para criação de discos de partida, particionamento de seu disco, compactação/descompactação de arquivos e inicialização do Linux.
doc/:
A documentação básica do Debian, como o FAQ, instruções do sistema de relatos de bugs, etc.
indices/:
O arquivo Maintainers e os arquivos override.
project/:
em sua maioria materiais somente para desenvolvedores, como :
project/experimental/:
Este diretório contém pacotes e ferramentas que ainda estão sendo desenvolvidos, e ainda estão em estágio alpha. Os usuários não 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 distribuição.

2.1.2 Distribuições Debian

Nomalmente existem três distribuições Debian no diretório dists. Elas são nomeadas a distribuição stable, a distribuição testing e a distribuição unstable. Algumas vezes existe também uma distribuição frozen. Cada distribuição é definida como uma ligação simbólica para a diretório real com um codinome no diretório dists.


2.1.3 A distribuição stable

As entradas de pacotes para a distribuição stable, Debian Woody (3.0r0), são mantidas no diretório stable (ligação simbólica para woody/):

Agora, além das localizações acima, os pacotes físicos novos são localizados sob o diretório pool (O diretório pool, Seção 2.1.10).

O estado atual dos bugs da distribuição stable é relatado na página web Problemas da Stable.


2.1.4 A distribuição testing

As entradas de pacotes para a distribuição testing, Debian Sarge, são gravadas no diretório testing (ligação simbólica para sarge/) depois que os mesmos tenham passado por um certo nível de testes na unstable. Agora, além das localizações acima, novos pacotes físicos estão localizados sob o diretório pool (O diretório pool, Seção 2.1.10). Existem também os subdiretótios main, contrib, e non-free na testing, que têm as mesmas funções como na stable.

Estes pacotes devem estar sincronizados em todas as arquiteturas onde eles foram compilados e não devem ter dependências que façam com que não seja possível instalá-los; eles também têm que possuir menos bugs críticos ao lançamento do que as versões atualmente na unstable. Dessa forma, esperamos que a testing esteja sempre perto de ser uma candidata ao lançamento. Maiores detalhes sobre o mecanismo da testing estão disponíveis em http://www.debian.org/devel/testing.

O último estado da distribuição testing está relatado nestes sites :


2.1.5 A distribuição unstable

As entradas de pacotes para a distribuição unstable, sempre com o codinome "Sid", são gravadas no diretório unstable (ligação simbólica para sid/) depois que é feito o upload dos mesmos para o repositório Debian, e permanecem por lá até que são movidos para testing/. Novos pacotes físicos estão localizados sob o diretório pool (O diretório pool, Seção 2.1.10). Existem também subdiretórios main, contrib e non-free em unstable/, que têm as mesmas funções como na stable/.

A distribuição unstable contém um snapshot do sistema de desenvolvimento mais recente. Os usuários podem usar e testar estes pacotes, mas são alertados de seu estado de preparação. A vantagem de usar a distribuição unstable é que você está sempre em dia no projeto de software Debian — mas se ele quebra, você tem que arrumar as coisas você mesmo :-)

O estado atual dos bugs da distribuição unstable é relatado na página web Problemas da Unstable.


2.1.6 A distribuição frozen

Quando a distribuição testing está madura o bastante, ela é congelada, o que significa que nenhum código novo é aceito, somente correções de bugs, caso necessário. Uma nova árvore testing também é criada no diretório dists e lhe é atribuído um novo nome. A distribuição frozen passa por alguns meses de testes, com atualizações intermitentes e congelamentos profundos chamados "ciclos de testes". (O processo de lançamento recente do Woody não criou uma ligação simbólica frozen/, então frozen não foi uma distribuição, mas apenas um estágio de desenvolvimento da distribuição testing.)

Mantemos um registro dos bugs na distribuição frozen que podem atrasar o lançamento de um pacote ou bugs que possam atrasar o lançamento por completo. Uma vez que essa contagem de bugs seja minimizada até um valor aceitável, a distribuição frozen se torna estável, é lançada, e a distribuição stable anterior se torna obsoleta (e é movida para o repositório).


2.1.7 Codinomes das distribuições Debian

Nomes físicos de diretórios no diretório dists/, como woody/ e sarge/, são somente "codinomes". Quando uma distribuição Debian está no estágio de desenvolvimento, ela não possui número de versão e sim um codinome. O propósito destes codinomes é tornar o espelhamento das distribuições Debian mais fácil (caso um diretório como unstable seja de repente mudado para stable/, o download de uma porção de coisas teria que ser feito de novo desnecessariamente).

Atualmente, stable é uma ligação simbólica para woody/ e testing é uma ligação simbólica para sarge/. Isto significa que Woody é a atual distribuição estável e Sarge é a atual distribuição de testes.

unstable é uma ligação simbólica permanente para sid/, uma vez que Sid é sempre a distribuição instável.


2.1.8 Codinomes usados no passado

Outros codinomes que já foram usados são : "Buzz" para a versão 1.1, "Rex" para a versão 1.2, "Bo" para as versões 1.3.x, "Hamm" para a versão 2.0, "Slink" para a versão 2.1, "Potato" para a versão 2.2, "Woody" para a versão 3.0, e "Sarge" para a versão 3.1.


2.1.9 A origem dos codinomes

Até agora eles foram personagens tirados do filme Toy Story feito pela Pixar.


2.1.10 O diretório pool

Historicamente, os pacotes eram mantidos em um subdiretório de dists correspondendo à distribuição que os continha. Isso acabou trazendo vários problemas, como um alto consumo de banda nos espelhos quando mudanças maiores eram feitas.

Os pacotes são agoras mantidos em uma grande "piscina" (pool), estruturada de acordo com o nome do pacote fonte. Para que isso seja gerenciável, a piscina é subdividida por seções (main, contrib e non-free) e pela primeira letra do nome do pacote fonte. Estes diretórios contêm diversos arquivos: os pacotes binários para cada arquitetura, e os pacotes fontes a partir dos quais os pacotes binários foram gerados.

Você pode descobrir onde cada pacote é colocado executando um comando como apt-cache showsrc nomemeupacote e olhando na linha "Directory:". Por exemplo, os pacotes do apache estão armazenados em pool/main/a/apache/. Como há muitos pacotes lib*, esses são tratados especialmente: por exemplo, os pacotes libpaper estão armazenados em pool/main/libp/libpaper/.

Os diretórios dists ainda são usados pelos arquivos de índice usados por programas como o apt. Além disso, no momento que escrevo, distribuições antigas não foram convertidas para usar piscinas portanto você verá caminhos contendo nomes de distribuições como potato ou woody no campo "Diretório" do cabeçalho.

Normalmente, você não terá que se preocupar com isto, uma vez que o novo apt e provavelmente o antigo dpkg-ftp (consulte Métodos para atualizar um sistema Debian, Seção 2.3.1) irão gerenciar isso sem problemas. Caso você queira mais informações, veja a RFC: implementation of package pools.


2.1.11 Notas históricas sobre a Sid

Quando a atual Sid não existia, a organização do site do repositório Debian tinha uma grande falha: existia uma pressuposição de que quando uma arquitetura era criada no unstable/ atual, ela seria lançada quando esta distribuição virasse a nova stable. Para muitas arquiteturas esse não era o caso, e como resultado todos aqueles diretórios tiveram de ser movidos na época de lançamento. Isto era impraticável pois a movimentação comeria muita banda.

Os administradores do repositório resolveram este problema por diversos anos colocando binários para arquiteturas não lançadas em um diretório especial chamado sid. Para aquelas arquiteturas ainda não lançadas, a primeira vez que as mesmas foram lançadas existia uma ligação do atual stable/ para sid/, e a partir de então elas eram criadas dentro da árvore unstable/ como de costume. Este layout era de certa forma confuso para os usuários.

Com o advento das piscinas de pacotes (consulte O diretório pool, Seção 2.1.10) durante o desenvolvimento da distribuição Woody, pacotes binários começaram a ser armazenados em uma localização canônica na piscina, não importando a distribuição, assim lançar uma distribuição não mais causava grade consumo de banda nos espelhos (existe, porém, uma porção de consumo gradual de banda durante o processo de desenvolvimento).


2.1.12 Pacotes enviados para incoming/

Os pacotes enviados estão primeiro localizados em http://incoming.debian.org/ antes de serem checados para assegurar que eles realmente vieram de um desenvolvedor Debian (e são colocados no subdiretório DELAYED caso tenham sido enviados por um não-desenvolvedor (Non-Mantainer Upload - NMU)). Uma vez por dia, eles são movidos de incoming/ para unstable/.

Em uma emergência, você pode querer instalar pacotes de incoming/ antes que eles atinjam unstable/.


2.1.13 Obtendo um pacote antigo

Enquanto a maioria das distribuições Debian atuais são mantidas sob o diretório debian em cada site espelho Debian, repositórios para distribuições Debian mais antigas como a Slink são mantidos em http://archive.debian.org/ ou sob o diretório debian-archive em cada site espelho Debian.

Os pacotes antigos da testing e da unstable podem ser encontrados em http://snapshot.debian.net/.


2.1.14 Seções de Arquiteturas

Dentro de cada árvore maior de diretórios (dists/stable/main, dists/stable/contrib, dists/stable/non-free, dists/unstable/main/, etc.), as entradas do pacote binário residem em subdiretórios cujos nomes indicam a arquitetura do chip para o qual eles foram compilados.

Por favor note que os pacotes binários atuais para a testing e unstable não mais residem nestes diretórios, mas em um diretório de alto nível pool. Os arquivos de índice (Packages e Packages.gz) foram mantidos, porém, para compatibilidade anterior.

Para conhecer as arquiteturas binárias suportadas atualmente, consulte as Notas de Lançamento para cada distribuição. Elas podem ser localizadas nos sites das Notas de Lançamento para a stable e para a testing.


2.1.15 O código-fonte

O código-fonte está incluído para tudo no sistema Debian. Além disso, os termos das licenças da maioria dos programas no sistema requerem que o código-fonte seja distribuído junto com os programas, ou que uma oferta para fornecer o código-fonte acompanhe os programas.

Normalmente o código-fonte é distribuído nos diretórios source, os quais são paralelos a todos os diretórios de binários para arquiteturas específicas ou, mais recentemente, no diretório pool (consulte O diretório pool, Seção 2.1.10). Para obter o código-fonte sem ter estar familiarizado com a estrutura do repositório Debian , tente um comando como apt-get source meunomedepacote.

Alguns pacotes, notavelmente pine, estão somente disponíveis como pacotes fonte devido a suas limitações de licenciamento. (Recentemente o pacote pine-tracker foi fornecido para facilitar a instalação do Pine.) Os procedimentos descritos em Portar um pacote para o sistema stable, Seção 6.4.10 e Empacotamento, Seção 13.9 fornecem meios para construir um pacote manualmente.

O código-fonte pode ou não estar disponível para pacotes nos diretórios contrib e non-free, os quais não são formalmente parte do sistema Debian.


2.2 O sistema de gerenciamento de pacotes Debian


2.2.1 Visão Geral dos pacotes Debian

Pacotes geralmente contêm todos os arquivos necessários para implementar um conjunto de comandos relacionados ou recursos. Existem dois tipos de pacotes Debian :

A instalação de software pelo sistema de pacotes utiliza "dependências" que são cuidadosamente especificadas pelos mantenedores dos pacotes. Estas dependências estão 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 usuário 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 também do binutils e parará de instalar o gcc. (Porém, esta facilidade pode ser circulada pelo usuário insistente, consulte dpkg(8).) Para detalhes adicionais, consulte Dependências de pacotes, Seção 2.2.8 abaixo.

As ferramentas de empacotamento Debian podem ser usadas para :


2.2.2 Formato de pacotes Debian

Um "pacote" Debian, ou um arquivo Debian, contém os arquivos executáveis, bibliotecas e documentação associada a um programa em particular ou a uma suíte ou conjunto de programas relacionados. Normalmente, um arquivo Debian tem um nome de arquivo finalizando em .deb. [1]

Os detalhes do formato de pacote binário Debian estão descritos na página de manual deb(5). Devido a este formato interno estar sujeito a mudanças (entre versões maiores do Debian), sempre utilize o dpkg-deb(8) para manipular arquivos .deb.

Pelo menos para a distribuição Sarge, todos os arquivos Debian são manipuláveis pelos comandos Unix padrões ar e tar, mesmo quando comandos dpkg não estão disponíveis.


2.2.3 Convenções de nomenclatura para nomes de arquivos de pacotes Debian

Os nomes de arquivos de pacotes Debian seguem a seguinte convenção :

     foo_NúmeroDeVersão-NúmeroDeRevisãoDebian.deb

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 :

O componente VVV é o número de versão especificado pelo desenvolvedor original (upstream). Não existem padrões ditando números de versão, portanto eles podem ter formatos tão diferentes como "19990513" e "1.3.8pre1".

O componente RRR é um número de revisão Debian e é especificado pelo desenvolvedor Debian (ou um usuário individual caso o mesmo escolha construir o pacote ele mesmo). Este número corresponde ao nível de revisão do pacote Debian; portanto, um novo nível de revisão geralmente significa mudanças no Makefile Debian (debian/rules), no arquivo de controle Debian (debian/control), nos scripts de instalação ou remoção (debian/p*) ou nos arquivos de configuração usados pelo pacote.


2.2.4 Preservação da configuração local

A preservação dos arquivos configuráveis pelo usuário é habilitada através do mecanismo "conffiles" do Debian. Arquivos de configuração do usuário (normalmente colocados em /etc/) são especificados no conffiles dentro do sistema de pacotes Debian. O sistema de gerenciamento de pacotes garante a não sobreescrita destes arquivos quando o pacote é atualizado.

Para determinar exatamente quais arquivos são preservados durante uma atualização, execute :

     dpkg --status pacote

e olhe em "Conffiles:".

Detalhes sobre o conteúdo de um arquivo confffiles Debian são fornecidos no Manual de Políticas Debian, seção 11.7 (consulte Referências, Seção 15.1).


2.2.5 Scripts de manutenção Debian

Os scripts de manutenção Debian são scripts executáveis que são automaticamente executados antes ou depois que um pacote é instalado. Junto com um arquivo de nome control, todos esses arquivos são parte da seção "control" de um arquivo Debian.

Os arquivo individuais são:

preinst
Este script é executado antes que seu pacote seja desempacotado de seu arquivo Debian (.deb). Muitos scripts "preinst" param serviços para os pacotes que estão sendo atualizados até que sua instalação ou atualização esteja completa (seguindo a execução com sucesso do script "postinst").
postinst
Este script tipicamente completa qualquer configuração requerida de um pacote uma vez que o mesmo tenha sido desempacotado de seu arquivo Debian (.deb). Geralmente, scripts 'postinst' fazem perguntas aos usuários e/ou avisam o usuário que caso o mesmo aceite valores padrões ele deverá se lembrar de voltar e reconfigurar o pacote conforme a necessidade. Muitos scripts "postinst" executam então quaisquer comandos necessários para iniciar ou reiniciar um serviço uma vez que o novo pacote foi instalado ou atualizado.
prerm
Este script tipicamente pára quaisquer daemons que estão associados com um pacote. Ele é executado antes da remoção de arquivos associados com um pacote.
postrm
Este script tipicamente modifica ligações ou outros arquivos associados com um pacote e/ou remove arquivos criados pelo pacote. (Consulte também Pacotes virtuais, Seção 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 extensões de arquivos "preinst", "postinst", etc, de acordo. O arquivo foo.list neste diretório lista todos os arquivos que foram instalados com o pacote foo. (Note que a localização destes arquivos é algo interno do dpkg, e pode estar sujeita a mudanças.)


2.2.6 Prioridade de pacotes

A cada pacote Debian é atribuído uma prioridade pelos mantenedores da distribuição, como um auxílio ao sistema de gerenciamento de pacotes. As prioridades são :


2.2.7 Pacotes virtuais

Um pacote virtual é um nome genérico que se aplica a qualquer um de um grupo de pacotes, todos os quais oferecem funcionalidade básica similar. Por exemplo, os programas tin e trn são leitores de notícias e devem portanto satisfazer quaisquer dependências de um programa que requer um leitor de notícias no sistema para que funcione ou seja útil. É portanto dito que eles fornecem um "pacote virtual" chamado news-reader.

Similarmente, o exim e o sendmail oferecem ambos a funcionalidade de um agente de transporte de mensagens, É portanto dito que eles fornecem o pacote virtual mail-transport-agent. Caso um dos dois esteja instalado, então qualquer programa que depende da instalação de um agente de transporte de mensagens estará satisfeito pela existência desse pacote virtual.

O Debian possui um mecanismo que, se mais de um pacote que fornece o mesmo pacote virtual estiver instalado em um sistema, o administrador do sistema pode definir um como o pacote preferido. O comando relevante é update-alternatives e é descrito mais adiante em Comandos alternativos, Seção 6.5.3.


2.2.8 Dependências de pacotes

O sistema de pacotes Debian possui uma faixa de "dependências" de pacotes que é desenvolvida para indicar (com uma sinalização única) o nível no qual o Programa A pode operar independentemente da existência do Programa B em um dado sistema :

Informação mais detalhada sobre o uso de cada um desses termos pode ser encontrada no Manual de Empacotamento e no Manual de Políticas.

Note que o dselect possui um controle mais refinado sobre os pacotes especificados por recomendações e sugestões do que o apt-get, o qual simplesmente pega todos os pacotes especificados como dependências e deixa para trás os pacotes especificados como recomendados e sugestões. Ambos os programas em sua forma moderna usam o APT como motor.


2.2.9 O significado de Pré-dependências

"Pre-depends" (pré-dependências) é uma dependência 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 não 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 existência de outros pacotes em seu sistema, o dpkg se recusará a completar a instalação (executando sua ação "configure") até que os outros pacotes sejam instalados.

Porém, para alguns pacotes, o dpkg se recusará até mesmo a desempacotá-los até que certas dependências estejam resolvidas. É dito que tais pacotes "pré-dependem" da presença de outro(s) pacote(s). O projeto Debian forneceu este mecanismo para suportar a atualização segura do formato a.out para o formato ELF, onde a ordem na qual os pacotes eram desempacotados era crítica. Existem outras situações de grandes atualizações onde este método é útil, por exemplo, para pacotes com prioridade "required" e sua dependência libc.

Novamente, informação mais detalhada sobre isso pode ser encontrada no Manual de Empacotamento.


2.2.10 Estado do pacote

O estado do pacote pode ser "unknow", "install", "remove", "purge" ou "hold". Estas flags "want" dizem o que o usuário quis fazer com o pacote (como indicado pelas ações do usuário na seção "Selecionar" do dselect ou pelas invocações diretas do dpkg).

Seus significados são :


2.2.11 Evitando que pacotes sejam atualizados

Existem dois mecanismos para evitar que pacotes sejam atualizados : através do dpkg ou, começando no Woody, através do APT.

Com o dpkg, exporte primeiro a lista de seleções de pacotes :

       dpkg --get-selections \* > selections.txt

Edite então 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

Salve o arquivo e recarregue-o na base de dados do dpkg usando :

     dpkg --set-selections < selections.txt

Ou, caso você conheça o nome do pacote a ser mantido (hold), simplesmente execute :

     echo libc6 hold | dpkg --set-selections

Este processo mantém pacotes no processo de instalação de cada arquivo de pacote.

O mesmo efeito pode ser obtido através 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 modificações serão válidas imediatamente depois que você sair da tela [S]elecionar.

O sistema APT na distribuição Woody possui um novo mecanismo alternativo para manter pacotes durante o processo de obtenção do arquivo usando Pin-Prioriry. Consulte a página de manual apt_preferences(5), e também http://www.debian.org/doc/manuals/apt-howto/ ou o pacote apt-howto; Visão geral do arquivo /etc/apt/preferences, Seção 6.2.8 também contém uma explicação breve.


2.2.12 Pacotes fonte

Pacotes fonte são distribuídos em um diretório chamado source e você pode fazer o download dos mesmos manualmente ou use

     apt-get source foo

para obtê-los (consulte a página de manual apt-get(8) para maiores informações sobre como configurar o APT para fazer isso).


2.2.13 Construindo pacotes binários a partir de um pacote fonte

Para um pacote foo, você precisará de todos os arquivos foo_*.dsc, foo_*.tar.gz e foo_*.diff.gz para compilar o fonte (nota: não existe .diff.gz para um pacote nativo Debian).

Uma vez que você os tenha, caso você possua o pacote dpkg-dev instalado, o comando

     dpkg-source -x foo_versão-revisão.dsc

irá extrair o pacote em um diretório chamado foo-versão.

Execute os seguintes comandos para criar o pacote binário:

     $ cd foo-versão
     $ su -c "apt-get update ; apt-get install fakeroot"
     $ dpkg-buildpackage -rfakeroot -us -uc

E então,

     # su -c "dpkg -i ../foo_versão-revisão_arquit.deb"

para instalar o novo pacote construído. Veja Portar um pacote para o sistema stable, Seção 6.4.10.


2.2.14 Criando novos pacotes Debian

Para uma descrição mais detalhada, leia o Guia dos Novos Mantenedores, disponível no pacote maint-guide ou em http://www.debian.org/doc/manuals/maint-guide/.


2.3 Atualizando um sistema Debian

Um dos objetivos do Debian é oferecer um caminho de atualização consistente e um processo de atualização seguro, e nós sempre fazemos o máximo possível para que uma nova versão seja facilmente atualizável para quem atualiza da versão anterior. Pacotes irão alertar o usuário quando existirem notícias importantes durante o processo de atualização e irão frequentemente oferecer uma solução para um possível problema.

Você deve também ler as Notas de Lançamento, o documento que descreve os detalhes de atualizações específicas, fornecido em todos os CDs Debian e disponível na WWW em http://www.debian.org/releases/stable/releasenotes ou http://www.debian.org/releases/testing/releasenotes.

Um guia prático para atualizações está disponível em Gerenciamento de pacotes Debian, Capítulo 6. Esta seção descreve os detalhes fundamentais.


2.3.1 Métodos para atualizar um sistema Debian

É possível simplesmente executar uma chamada FTP anônima ou usar o wget em um repositório Debian, procurar atentamente até que seja encontrado o arquivo desejado, fazer o download do mesmo e finalmente instalá-lo usando o dpkg. Note que o dpkg irá instalar arquivos de atualização em seus lugares, mesmo em um sistema em execução. Algumas vezes, um pacote revisado irá requerer a instalação de uma nova versão revisada de outros pacotes e neste caso a instalação irá falhar até que/a menos que os outros pacotes sejam instalados.

Muitas pessoas acham que este método consome muito tempo, uma vez que o Debian se desenvolve tão rapidamente — tipicamente, uma dúzia ou mais pacotes são disponibilizados toda semana. Este número é maior logo antes de um lançamento de uma versão maior. Para lidar com esta avalanche, muitas pessoas preferem usar um programa automatizado para atualizar. Diversas ferramentas de gerenciamento de pacotes especializadas estão disponíveis para este propósito.


2.3.2 Visão geral das ferramentas de gerenciamento de pacotes

O sistema de gerenciamento de pacotes possui dois objetivos : a manipulação do arquivo de pacote propriamente dito e obtenção de arquivos de pacotes do repositório Debian. O dpkg executa a primeira tarefa e o APT e o dselect a última.


2.3.3 dpkg

Este é o principal programa para manipular arquivos de pacotes; leia dpkg(8) para um descrição completa.

O dpkg é fornecido com diversos programas suplementares primitivos.

O dpkg-ftp e dpkg-mountable ficaram obsoletos com a introdução do sistema APT.


2.3.4 APT

O APT (Advanced Packaging Tool) é uma avançada interface para o sistema de gerenciamento de pacotes Debian, consistindo de vários programas cujos nomes tipicamente começam com "apt-". O apt-get, apt-cache e o apt-cdrom são ferramentas de linha de comando para gerenciar pacotes. Eles também funcionam como programas "back-end" do usuário para outras ferramentas, como o dselect e o aptitude.

Para maiores informações, 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 informação é o APT HOWTO. Este pode ser instalado pelo pacote apt-howto em /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 usuário baseada em menus para o sistema de gerenciamento de pacotes Debian. Ele é particularmente útil para primeiras instalações e atualizações em larga escala. Veja dselect, Seção 6.2.3

Para maiores informações, instale o pacote install-doc e leia /usr/share/doc/install-doc/dselect-beginner.en.html ou Documentação para Iniciantes do dselect.


2.3.6 Atualizando um sistema em execução

O kernel (sistema de arquivos) em sistemas Debian suporta a troca de arquivos mesmo quando estes estão sendo usados.

Oferecemos também um programa chamado start-stop-daemon que é usado para iniciar daemons em tempo de inicialização da máquina ou para parar daemons quando o nível de execução do kernel é mudado (exemplo, de multiusuário para usuário único ou para halt). O mesmo programa é usado pelos scripts de instalação quando um novo pacote contendo um daemon é instalado, para parar daemons em execução, e reiniciá-los quando necessário.

Note que o sistema Debian não requer o uso do modo de usuário único para atualizar um sistema em execução.


2.3.7 Arquivos .deb baixados e em cache

Caso você tenha feito o download de arquivos para seu disco (o que não é absolutamente necessário, veja acima a descrição de dpkg-ftp ou APT), depois de instalar os pacotes você pode removê-los de seu sistema.

Caso o APT seja usado, esses arquivos são colocados em cache no diretório /var/cache/apt/archives/. Você pode apagá-los depos da instalação (apt-get clean) ou copiá-los para o diretório /var/cache/apt/archives/ de outra máquina para economizar tempo de download durante instalações subseqüentes.


2.3.8 Mantendo registros para atualizações

O dpkg mantém um registro dos pacotes que foram desempacotados, configurados, removidos e/ou expurgados, mas não mantém (atualmente) um log da atividade do terminal que ocorreu enquanto um pacote esteve sendo manipulado.

A maneira mais simples de contornar isso é executar suas sessões dpkg, dselect, apt-get, etc., dentro do programa script(1).


2.4 O processo de inicialização Debian


2.4.1 O programa init

Como todos os Unices, o Debian inicia executando o programa init. O arquivo de configuração para o init (que é /etc/inittab) especifica que o primeiro script a ser executado deve ser o /etc/init.d/rcS. Esse script executa todos os scripts em /etc/rcS.d/ através do source ou fork de subprocessos, dependendo de sua extensão de arquivo, para executar a inicialização como a checagem e a montagem de sistemas de arquivos, carregamento de módulos, início de serviços de rede, configuração do relógio, etc. Então, por compatibilidade, ele também executa os arquivos (exceto aqueles com um `.' em seu nome) em /etc/rc.boot . Quaisquer scripts no diretório posterior são normalmente reservados para o uso do administrador do sistema e usá-los em pacotes é obsoleto. Veja Inicialização do sistema, Seção 9.1 e Níveis de execução de Sistema e scripts init.d no Manual de Políticas Debian para maiores informações.


2.4.2 Níveis de execução

Depois de completar o processo de inicialização, o init executa todos os scripts de inicialização em um diretório especificado pelo nível de execução padrão (este nível de execução é dado pela entrada para o id em /etc/inittab. Como a maioria dos Unices compatíveis com System V, o Linux possui 7 níveis de execução :

Sistemas Debian vêm com o valor id=2, o que indica que o nível de execução padrão será 2 quando o estado multiusuário for iniciado e que os scripts em /etc/rc2.d/ serão executados.

De fato, os scripts em quaisquer dos diretórios em /etc/rcN.d/ são apenas ligações simbólicas que apontam para scripts em /etc/init.d/. Porém, os nomes dos arquivos em cada um dos diretórios /etc/rcN.d/ são selecionados para indicar a maneira que os scripts em /etc/init.d/ serão executados. Especificamente, antes de entrar em qualquer nível de execução, todos os scripts iniciados com `K' são executados; esses scripts matam (param) serviços. Então todos os scripts iniciados com `S' são executados; esses scripts iniciam serviços. O número de dois dígitos seguido de `K' ou `S' indica a ordem na qual o script é executado. Scripts de menor valor numérico são executados primeiro.

Esse método 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" (forçar-recarregar) e irão portanto cumprir a tarefa indicada pelo argumento. Esses scripts podem ser usados mesmo depois que um sistema tenha sido iniciado para controlar vários 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 configuração.


2.4.3 Personalizando o processo de inicialização

O Debian não utiliza o diretório rc.local no estilo BSD para personalizar o processo de inicialização; ao invés disso ele fornece o seguinte mecanismo de personalização.

Suponha que um sistema precisa executar o script foo na inicialização da máquina ou ao entrar em um nível de execução (System V) em especifíco. O administrador do sistema deverá então :

  1. Colocar o script foo dentro do diretório /etc/init.d/.
  1. Executar o comando Debian update-rc.d com os argumentos apropriados para criar as ligações entre os diretórios (especificados na linha de comando) rc?.d e /etc/init.d/foo. Aqui, ? é um número de 0 a 6 que corresponde a um dos níveis de execução System V.
  1. Reiniciar o sistema.

O comando update-rc.d criará as ligações entre os arquivos nos diretórios rc?.d e o script em /etc/init.d/. Cada ligação iniciará com um `S' ou um `K', seguido por um número, seguido pelo nome do script. Quando o sistema entra em um nível de execução N, scripts que iniciam com `K' em /etc/rcN.d/ são executados com stop como seu argumento, seguido por aqueles começando com `S' em /etc/rcN.d com start como seu argumento.

Alguém poderia, por exemplo, fazer com que o script foo seja executado na inicialização do sistema colocando-o em /etc/init.d/ e instalando as ligações com o comando update-rc.d foo defaults 19. O argumento defaults se refere aos níveis de execução padrões, que são do nível 2 até o nível 5. O argumento 19 assegura que foo seja chamado antes de quaisquer scripts contendo números 20 ou superiores.


2.5 Suportando diversidades

O Debian suporta diversas maneiras de acomodar os desejos do administrador do sistema sem prejudicar o sistema.

Quaisquer arquivos sob /usr/local/ pertencem ao administrador do sistema e o Debian não irá tocá-los. A maioria (ou todos) dos arquivos sob /etc são conffiles e o Debian não irá sobrescrevê-los em atualizações a menos que o administrador do sistema explicitamente peça isso.


2.6 Internacionalização

O sistema Debian é internacionalizado e oferece suporte para a exibição e entrada de caracteres em muitos idiomas, seja no console ou sob o X. Muitos documentos, páginas de manual e mensagens do sistema foram traduzidos para um número crescente de idiomas. Durante a instalação o Debian pede ao usuário para escolher um idioma para ser usado na instalação (e algumas vezes o variante local do idioma).

Caso seu sistema instalado não 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 Localização, Seção 9.7.


2.7 Debian e o kernel

Consulte O kernel Linux no Debian, Capítulo 7.


2.7.1 Compilando um kernel a partir de um fonte não Debian

Você precisa entender o política Debian em relação a cabeçalhos.

As bibliotecas C Debian são construídas com as versões estáveis mais atuais dos cabeçalhos do kernel.

Por exemplo, a versão Debian-1.2 usou a versão 5.4.13 dos cabeçalhos. Esta prática contrasta com os pacotes fontes do kernel Linux distribuídos em todos os repositórios de sites FTP Linux, que usam as versões mais recentes até mesmo dos cabeçalhos. Os cabeçalhos do kernel distribuídos com os fontes do kernel estão localizados em /usr/include/linux/include/.

Caso você precise compilar um programa com cabeçalhos de kernel que sejam mais novos do que aqueles fornecidos pelo pacote lib6-dev, você deve então adicionar -I/usr/src/linux/include/ a sua linha de comando quando compilar. Isto ocorreu em um momento, por exemplo, com o empacotamento do daemon automounter (amd). Quando novos kernels mudaram internamente em relação a lidar com NFS, o amd precisava saber disso. Para isso foi necessário incluir os últimos cabeçalhos do kernel.


2.7.2 Ferramentas para construir kernels personalizados

Usuários que desejam (ou precisam) construir um kernel personalizado são encorajados a fazer o download do pacote kernel-package. Este pacote contém o script para construir o pacote do kernel e oferece a capacidade de criar um pacote kernel-image Debian somente executando o comando

     # make-kpkg kernel_image

no diretório de nível principal dos fontes do kernel. Ajuda é fornecida executando o comando

     # make-kpkg --help

e através da página de manual make-kpkg(8) e O kernel Linux no Debian, Capítulo 7.

Os usuários devem fazer o download separadamente do código fonte do kernel mais atual (ou o kernel de sua escolha) a partir de seu site repositório Linux favorito, a menos que um pacote kernel-source-versão esteja disponível (onde versão significa a versão do kernel). O script de inicialização initrd Debian requer um patch de kernel especial chamado initrd; consulte http://bugs.debian.org/149236.

Informações detalhadas para o uso do pacote kernel-package são fornecidas no arquivo /usr/doc/kernel-package/README.


2.7.3 Carregadores de inicialização alternativos

Para usar carregadores de inicialização alternativos como o grub ou o loadlin, copie o kernel Linux compilado bzimage para outros locais (por exemplo, para /boot/grub ou para uma partição MS-DOS).


2.7.4 Disquetes de inicialização personalizados

A tarefa de fazer um disquete de inicialização personalizado é altamente auxiliada pelo pacote Debian boot-floppies, normalmente encontrado na seção admin do repositório FTP Debian. Scripts shell neste pacote produzem disquetes de inicialização no formato syslinux. Estes são disquetes formatados para MS-DOS cujos registros de inicialização foram alterados para que os mesmos iniciem o Linux diretamente (ou qualquer que seja o sistema operacional que tenha sido definido no arquivo syslinux.cfg no disquete). Outros scripts nesse pacote produzem disquetes root de emergência e podem até mesmo produzir os discos base.

Você encontrará maiores informações sobre isso no arquivo /usr/doc/boot-floppies/README depois de instalar o pacote boot-floppies.


2.7.5 Condições especiais para lidar com módulos

O pacote Debian modconf oferece um script shell (/usr/sbin/modconf) que pode ser usado para personalizar a configuração dos módulos. Este script apresenta uma interface baseada em menus, perguntando ao usuário por detalhes sobre os controladores de dispositivos carregáveis em seu sistema. As respostas são usadas para personalizar o arquivo /etc/modules.conf (que lista apelidos e outros argumentos que devem ser usados em conjunto com outros módulos) através de arquivos em /etc/modutils/ e /etc/modules (que listam os módulos que devem ser carregados em tempo de inicialização da máquina).

Como os (novos) arquivos Configure.help que estão agora disponíveis para suportar a construção de kernels personalizados, o pacote modconf vem com uma série de arquivos de ajuda (em /usr/share/modconf/) que oferecem informações detalhadas para cada um dos módulos. Consulte O kernel 2.4 modularizado, Seção 7.2 para ver exemplos.


2.7.6 Desinstalação de um kernel antigo

O script kernel-image-NNN.prerm checa se o kernel que está em execução atualmente é o mesmo que o kernel que você está tentando desinstalar. Portanto você pode remover pacotes de imagens kernel indesejáveis com segurança usando esse comando :

     # dpkg --purge --force-remove-essential kernel-image-NNN

(É claro, substitua NNN pela versão de seu kernel e seu número de revisão)


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ próximo ]

Referência Debian

CVS, Seg Abr 3 22:58:08 UTC 2005

Osamu Aoki osamu@debian.org
Paulo Rogério Ormenese (líder: pt-br) pormenese@uol.com.br
Autores, Seção A.1