[ anterior ] [ Índice ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ próximo ]


Guia de Utilizador do APT
Capítulo 4 - A Interface

Ambos método dselect do APT e apt-get partilham a mesma interface. É um sistema simples que geralmente lhe diz o que vai fazer e depois fá-lo. [2] Após escrever um sumário do que vai acontecer, o APT depois irá escrever algumas mensagens de estado informativo para que você possa estimar o progresso e quanto falta fazer.


4.1 Arranque

Antes de todas as operações, excepto a update, o APT executa um número de acções para preparar o seu estado interno. Também faz algumas verificações do estado do sistema. A qualquer altura estas operações pode ser executadas correndo apt-get check.

     # apt-get check
     Reading Package Lists... Done
     Building Dependency Tree... Done

A primeira coisa que faz é ler todos os ficheiros de pacotes para a memória. O APT usa um esquema de cache para que esta operação seja mais rápida na segunda vez que é executada. Se alguns dos ficheiros de pacotes não forem encontrados serão ignorados e será mostrado um aviso quando o apt-get terminar.

A operação final executa uma análise detalhada das dependências do sistema. Verifica cada dependência de cada pacote instalado ou desempacotado e considera se está OK. Caso isto encontre um problema, então é escrito um relatório e o apt-get recusa-se a funcionar.

     # apt-get check
     Reading Package Lists... Done
     Building Dependency Tree... Done
     You might want to run apt-get -f install' to correct these.
     Sorry, but the following packages have unmet dependencies:
       9fonts: Depends: xlib6g but it is not installed
       uucp: Depends: mailx but it is not installed
       blast: Depends: xlib6g (>= 3.3-5) but it is not installed
       adduser: Depends: perl-base but it is not installed
       aumix: Depends: libgpmg1 but it is not installed
       debiandoc-sgml: Depends: sgml-base but it is not installed
       bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed
       cthugha: Depends: svgalibg1 but it is not installed
                Depends: xlib6g (>= 3.3-5) but it is not installed
       libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)

Neste exemplo o sistema tem muitos problemas, incluindo um sério problema com libreadlineg2. Para cada pacote que tem dependências não satisfeitas, é escrita uma linha indicando o pacote com o problema e as dependências que não estão satisfeitas. É também incluída uma explicação curta de porquê o pacote tem um problema de dependência.

Existem duas maneiras de um sistema entrar num estado de quebra como este. A primeira é causada pelo dpkg que não vê algumas relações subtis entre pacotes quando executa actualizações. [3]. A segunda é se uma instalação de pacote falha durante uma operação. Nesta situação um pacote pode ter sido desempacotado sem que as suas dependências tenham sido instaladas.

A segunda situação é muito menos séria que a primeira porque o APT coloca certos constrangimentos na ordem que os pacotes são instalados. Em ambos os casos, fornecer a opção -f ao apt-get irá fazer com que o APT deduza uma solução possível para o problema e depois continue. O método dselect do APT fornece sempre a opção -f para permitir uma continuação fácil de scripts do responsável com falhas.

No entanto, se for usada a opção -f para corrigir um sistema seriamente quebrado causado pelo primeiro caso, então é possível que ou falhe imediatamente ou falhe na sequência de instalação. Em qualquer dos casos é necessário usar o dpkg manualmente (possivelmente com opções de forçar) para corrigir a situação o suficiente para permitir ao APT continuar.


4.2 O Relatório de Estado

Antes de prosseguir, o apt-get irá apresentar um relatório do que irá acontecer. Geralmente o relatório reflecte o tipo de operações a ser executadas mas há vários elementos comuns. Em todos os casos a lista reflecte o estado final das coisas, tendo em conta a opção -f e quaisquer outras actividades relevantes ao comando que vai ser executado.


4.2.1 A lista de Pacotes Extra

     Os seguinte pacotes extra serão instalados:
       libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
       mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
       bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
       squake pgp-i python-base debmake ldso perl libreadlineg2
       ssh

A lista de Pacotes Extra mostra todos os pacotes que irão ser instalados ou actualizados em excesso daqueles mencionados na linha de comandos. É apenas gerada para um comando install. Os pacotes listados são geralmente o resultado de uma Auto instalação.


4.2.2 Os Pacotes para Remover

     Os seguintes pacotes irão ser REMOVIDOS:
       xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
       xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
       xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
       nas xpilot xfig

A lista Pacotes para Remover mostra todos os pacotes que irão ser removidos do sistema. Pode ser mostrada para qualquer das operações e deve ser-lhe dada uma inspecção cuidadosa para assegurar que nada de importante vai ser removido. A opção -f é especialmente boa a gerar pacotes para remover, portanto neste caso deve-se usar cuidados extremos. A lista pode conter pacotes que vão ser removidos porque estão apenas parcialmente instalados, possivelmente devido a uma instalação abortada.


4.2.3 A lista de Novos Pacotes

     Os seguintes pacotes NOVOS irão ser instalados:
       zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base

A lista de Novos Pacotes é simplesmente um lembrete do que vai acontecer. Os pacotes listados não estão instalados presentemente no sistema mas irão estar quando o APT terminar.


4.2.4 A lista Kept Back

     Os seguintes pacotes formam mantidos na versão antiga
       compface man-db tetex-base msql libpaper svgalib1
       gs snmp arena lynx xpat2 groff xscreensaver

Sempre que todo o sistema é actualizado existe a possibilidade que novas versões de pacotes não possam ser instaladas porque requerem coisas novas ou entram em conflito com coisas já instaladas. Nestes casos o pacote irá aparecer na lista Kept Back. A melhor maneira de convencer os pacotes listados aqui a instalarem é com o apt-get install ou usando o dselect para resolver os seus problemas.


4.2.5 Aviso de Pacotes Mantidos

     Os seguintes pacotes mantidos irão ser alterados:
       cvs

Por vezes você pode pedir ao APT para instalar um pacote que está retido, nestes casos ele mostra um aviso que o pacote retido vai ser alterado. Isto apenas deve acontecer durante um dist-upgrade ou install.


4.2.6 Sumário final

Finalmente, o APT irá escrever um sumário de todas as alterações que irão acontecer.

     206 pacotes actualizados, 8 instalados de novo, 23 para remover e 51 não actualizados.
     12 pacotes não totalmente instalados ou removidos.
     É necessário obter 65.7M/66.7M de arquivos. Após desempacotamento será usado 26.5M.

A primeira linha do sumário é simplesmente uma versão reduzida de todas as listas e inclui o número de actualizações - que é os pacotes já instalados que têm novas versões disponíveis. A segunda linha indica o número de pacotes mal configurados, possivelmente o resultado de uma instalação abortada. A linha final mostra os requisitos de espaço que a instalação precisa. O primeiro par de número refere-se ao tamanho dos ficheiros de arquivos. O primeiro número indica o número de bytes que precisam ser obtidos a partir das localizações remotas e o segundo indica o tamanho total do todos os arquivos necessários. O número seguinte indica a diferença de tamanho entre os pacotes presentemente instalados e os pacotes instalados de fresco. É aproximadamente equivalente ao espaço requerido em /usr após tudo estar feito. Se forem removidos um grande número de pacotes então o valor pode indicar a quantidade de espaço que irá ser libertado.

Outros relatórios podem ser gerados ao usar a opção -u para mostrar os pacotes a actualizar, e são semelhantes aos exemplos prévios.


4.3 O Mostrador de Estado

Durante a descarga dos arquivos e ficheiros de pacotes, o APT escreve uma série de mensagens de estado.

     # apt-get update
     Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages
     Get:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages
     Hit http://llug.sep.bnl.gov/debian/ testing/main Packages
     Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages
     Get:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages
     11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s

A linhas iniciadas com Get são escritas quando o APT começa a obter um ficheiro enquanto a última linha indica o progresso da descarga. O primeiro valor percentual na linha de progresso indica a percentagem total completa de todos os ficheiros. Infelizmente como o tamanho dos ficheiros de Pacotes é desconhecido o apt-get update estima a percentagem de pronto o que causa algumas imprecisões.

A secção seguinte da linha de estado é repetida para cada processo de descarga e indica a operação a ser executada e alguma informação útil acerca do que está a acontecer. Por vezes esta secção irá simplesmente ler Forking o que representa que o SO está a carregar o módulo de download. A primeira palavra após o [ é o número de obtenção como mostrado nas linhas de histórico. A palavra seguinte é o nome em formato curto do objecto a ser descarregado. Para os arquivos irá conter o nome do pacote que está a ser descarregado.

Dentro da única citação está uma string de informação que indica o progresso da fase de negociação do download. Progride tipicamente de A Ligar para À espera do ficheiro para A descarregar ou A resumir. O valor final é o número de bytes descarregados a partir do site remoto. Uma vez começado a descarga isto é representado como 102/10.2k indicando que 102 bytes foram obtidos e são esperados 10.2kilobytes. O tamanho total é sempre representado numa anotação de 4 figuras para preservar espaço. Após a amostragem do tamanho está um medidor de percentagem para o próprio ficheiro. O segundo último elemento é a velocidade média instantânea. Estes valores são actualizados a cada 5 segundos e reflectem a taxa de dados transferidos para esse período. Finalmente é mostrado o tempo estimado de transferência. Isto é actualizado regularmente e reflecte o tempo para completar tudo ao ritmo de transferência mostrado.

O mostrador de estado actualiza-se a cada meio segundo para disponibilizar uma informação de retorno constante do progresso de descarga enquanto as linhas Get deslocam-se para trás sempre que uma nova linha é iniciada. Como o mostrador de estado é constantemente actualizado não é apropriado para registar num ficheiro, use a opção -q para remover o mostrador de estado.


4.4 Dpkg

O APT usa o dpkg para instalar os arquivos e irá mudar para a interface do dpkg assim que a descarga estiver completa. O dpkg irá também fazer um número de perguntas conforme vai processando os pacotes e os próprios pacotes podem também fazer várias questões. Antes de cada pergunta há geralmente uma descrição do que se está a perguntar e as perguntas são demasiado variadas para serem discutidas aqui.


[ anterior ] [ Índice ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ próximo ]


Guia de Utilizador do APT

$Id: guide.sgml,v 1.7 2003/04/26 23:26:13 doogie Exp $

Jason Gunthorpe jgg@debian.org