Capítulo 6. Atualização do Sistema

Índice
O que é o Apt?
Synaptic - Interface Gráfica para o APT
Como usar o apt-get no modo texto ?
Usando o apt-cdrom
Arquivos do apt
Usando as assinaturas GPG

Neste capítulo conheceremos meios de atualizar o sistema, instalar novos pacotes e gerenciar os pacotes que já estão instalados dentro do sistema.

Veremos como fazer isso através do Apt.

O que é o Apt?

O apt é um conjunto de ferramentas utilizadas para gerenciar os pacotes de sua distribuição de uma forma automatizada, de maneira que, quando o usuário solicita a instalação de um pacote[1] (aplicativo), o sistema também instala (ou atualiza) todos os pacotes necessários para o funcionamento deste aplicativo.

Inicialmente iremos conhecer a interface gráfica do Apt que é chamada Synaptic.

Synaptic - Interface Gráfica para o APT

Figura 6-1. Janela Principal do Synaptic

O Synaptic é uma interface gráfica para o conjunto de ferramentas de atualização APT. Ele permite que você atualize seu Conectiva Linux de maneira rápida, prática e segura. Todos os pacotes são baixados diretamente do ftp da conectiva (podendo ser configurado o local) com possibilidade de certificação de autenticidade do fornecedor. Há ainda a possibilidade de instalar os pacotes presentes no CD do Conectiva Linux.

Interface do Synaptic

Conheceremos a aparência visual do Synaptic, o que cada botão faz e como podemos utilizá-los. Para executar o Synaptic, estando como superusuário, digite no terminal X (konsole, wterm, xterm, etc.):

# synaptic
      


Aguarde enquanto o Synaptic inicia. Surgirá então uma janela como a apresentada na Figura 6-1.

Iremos fazer uma breve descrição da interface do Synaptic começando pelos botões localizados no topo da janela.

Botões Principais do Synaptic

Na Figura 6-2 temos os botões principais do Synaptic. Eles serão explicados a seguir.

Figura 6-2. Botões Principais do Synaptic



O Botão Atualizar Lista

Esse botão faz a atualização dos arquivos de índice de pacotes do Apt contendo a lista de pacotes disponíveis no servidor. É necessário estar conectado à Internet para poder fazer o download dos arquivos de índice. Recomendamos utilizar esse botão sempre que você for fazer uma atualização/modificação de qualquer pacote no seu sistema. Dessa forma sua máquina estará sempre com a versão mais nova dos arquivos de índice, refletindo assim a situação no servidor que abriga o repositório do Apt.

Ao pressionar o botão Atualizar Lista, surgirá uma janela mostrando a evolução do download dos arquivos de índice[2]. Ao final do download a janela fechará e o Synaptic irá recalcular as dependências e mostrar a nova lista de pacotes atualizada.

O Botão Atualizar Tudo

Este botão seleciona automaticamente todos os pacotes existentes no servidor que tenham versões mais novas que os pacotes que estão instalados no seu sistema. É a maneira mais simples de estar com o seu sistema sempre atualizado com a última versão dos aplicativos instalados. Para executar a instalação dos pacotes, veja o botão Proceder.

O Botão Atualizar Distribuição

Este botão seleciona automaticamente todos os pacotes que devem ser instalados ou atualizados para atualizar a distribuição inteira. O botão anterior (Atualizar tudo) não atualiza pacotes que, na sua nova versão, dependam de outros pacotes que não instalados no seu sistema.

Um breve exemplo: se o pacote X atual depende só de Y, mas na versão mais nova (que está no servidor) ele depende também de Z que não está instalado na sua máquina, então o pacote X não será instalado. Utilizando o botão Atualizar Distribuição, o pacoteX seria atualizado e o pacote Z instalado. A mesma situação ocorre para pacotes que seriam removidos por causa de conflitos novos que não existiam na versão anterior do pacote. O botão Atualizar distribuição também instalará os pacotes considerados essenciais, que estão marcados como Important no arquivo /etc/apt/rpmpriorities.

O Botão Proceder

Como o próprio nome já indica, o botão Proceder tem a finalidade de executar as ações programadas com os outros botões (Atualizar tudo, Atualizar Distribuição) e também as ações efetuadas diretamente com os pacotes (Instalar/Atualizar e Remover). Você pode ainda, durante a execução das ações, especificar se deseja apenas fazer o download dos pacotes ou se quer fazer o download e executar as operações especificadas.

Nota: A instalação/atualização de um número grande de aplicativos pode demorar algum tempo. Aguarde enquanto o Synaptic realiza as operações necessárias aos procedimentos solicitados.

Vejamos agora os outros botões que compõem a interface do Synaptic.

Procurando pacotes

É possível realizar uma busca pelo nome do pacote utilizando a opção Procurar Pacote e clicando no botão com a figura de uma lupa. Na janela principal surgirão as seções onde você pode encontrar o pacote com o nome especificado. Na caixa de opções Filtro de Busca você pode definir a situação do pacote que deseja encontrar. Veja com mais detalhes cada um desses botões na Figura 6-3.

Figura 6-3. Botões de Procura dos Pacotes

O botão Filtros permite que você crie filtros de busca personalizados. Você pode buscar pacotes por seção, por status, conforme as dependências e muito mais. Experimente esse recurso para otimizar suas buscas.

Dica: Você pode visualizar a lista de pacotes de diferentes formas utilizando as opções do menu Visualizar.

Agora que já sabemos como procurar um pacote, vejamos como instalar, atualizar, manter e/ou remover um pacote e suas dependências.

Quando o filtro de pacotes estiver com o filtro Todos os Pacotes selecionado, serão mostrados todos os pacotes disponíveis no(s) servidor(es) listados no arquivo /etc/apt/sources.list, local onde constam os servidores que contêm repositório de arquivos do Apt.

Nota: Esta lista de pacotes pode conter os pacotes encontrados nos repositórios de mais de um servidor. Por esse motivo o tempo para download varia de acordo com o tempo de resposta do servidor.

Lista de Pacotes

Observando a primeira coluna da tabela, vemos setas apontando para a direita indicando o nome de cada seção. Clicando em uma seta, aparece uma lista com os nomes dos pacotes pertencentes à seção aberta. Na coluna Versão Instalada podemos observar a versão do pacote, caso ele esteja instalado. A coluna Versão Disponível mostra qual versão do pacote está disponível para a instalação. Se a versão disponível for mais nova que a versão instalada, significa que esse pacote pode ser atualizado.Na coluna Descrição vemos a descrição do pacote.

Para uma descrição mais detalhada do pacote veja a aba Descrição, que se encontra abaixo da lista e pacotes.

Figura 6-4. Synaptic - Lista de Pacotes

Informações sobre os Pacotes

Na parte inferior da janela, temos algumas abas que mostram informações mais detalhadas sobre o pacote selecionado na lista de pacotes.Estas abas são as seguintes: Informação, Descrição e Dependências.. Cada aba tem uma funcionalidade própria. Veja na Figura 6-5 essas abas em destaque.

Figura 6-5. Abas de Informação

A aba Informação fornece informações gerais sobre o pacote como, por exemplo, se está instalado ou não, a que seção o pacote pertence, qual a prioridade de instalação do pacote, tamanho e versão, além de informações sobre os pacotes disponíveis para a atualização e a importância da atualização.

A aba Descrição nos fornece uma descrição detalhada do que é o pacote, o que ele faz e o que disponibiliza. O nível de detalhe de cada descrição varia de pacote para pacote.

A aba Dependências nos mostra as dependências do pacote selecionado. Você também pode selecionar no menu dessa aba a opção de ver somente as dependências do pacote, os pacotes que dependem do pacote selecionado. Assim, você pode ter uma idéia de quais pacotes dependem de quais e o quão complexo seria instalar isso tudo manualmente, além de poder avaliar as conseqüências da desinstalação de um pacote.

Trabalhando com os Pacotes

Quando modificarmos o estado atual do pacote, surgirá uma indicação do que será feito. Essa indicação será visualizada de duas formas, com pequenas setas coloridas apontando em determinadas direções ou com um destaque colorido sobre a linha do pacote marcado. Vejamos o que cada uma dessas indicações querem nos dizer:

  • seta para cima ou destaque verde: indica que o pacote será instalado.

  • seta para baixo ou destaque vermelho: indica que o pacote será desinstalado.

  • seta na diagonal ou destaque amarelo: indica que o pacote será atualizado.

Dica: Você pode alterar as cores utilizadas para indicar as operações com os pacotes. Para isso clique em Configurações->Preferências->Cores e clique sobre o botão cor ao lado da opção que você deseja alterar.

Vejamos agora o que fazem os botões Manter, Instalar/Atualizar e Remover. Observe estes botões na Figura 6-6.

Figura 6-6. Botões de Estado dos Pacotes

O botão Manter é utilizado para voltar o pacote aos seu estado atual. Por exemplo, você selecionou o pacote YZW e clicou no botão Instalar, sendo assim, o estado do pacote YZW foi modificado indicando que ele seria instalado quando o botão Proceder fosse pressionado. Porém você se arrependeu e não quer mais instalar o pacote YZW e sim deixá-lo como está. Basta clicar no botão Manter para fazer voltar o pacote YZW ao estado anterior sem efetuar nenhuma alteração. Note que este botão só tem efeito antes de você pressionar o botão Proceder.

O botão Instalar. Este botão marca o pacote para ser instalado, calculando suas dependências e selecionando-as para instalação automática, de forma que todas as dependências sejam instaladas junto com o pacote. Caso você selecione um pacote que já esteja instalado, o nome deste botão mudará para Atualizar e a sua função será de atualizar o pacote existente com as versões mais novas existentes no repositório do servidor. Caso você selecione um pacote cuja versão instalada no seu sistema seja a última versão disponível, o botão Atualizar ficará sombreado de cinza, tornando-se inativo. Veja a versão instalada do pacote no seu sistema na coluna Versão Instalada e a versão disponível no servidor na coluna Versão Disponível.

Vejamos agora o botão Remover, que remove um pacote selecionado, observando as dependências de pacotes existentes no sistema. Você pode ver quais são as dependências de cada pacote clicando na aba Dependências.

Nota: Quando você seleciona algum pacote para atualizar ou instalar, o Synaptic automaticamente seleciona as dependências desse pacote como necessárias à instalação. Se você retirar alguma dependência manualmente (selecionando o pacote e clicando no botão Manter), as dependências do pacote serão quebradas. Para consertar automaticamente os problemas de dependência, você pode utilizar o recurso de Corrigir Pacotes Quebrados do menu Ações. Uma outra situação em que essa função será útil é quando o usuário instala um pacote utilizando o comando rpm com a opção --nodeps.

Utilizando o Synaptic

Vejamos agora uma maneira simples de manter seu sistema atualizado utilizando o Synaptic. Uma vez que o seu APT já vai pré-configurado com os servidores oficiais da Conectiva, a única coisa que você tem que fazer é utilizar o Synaptic estando conectado à internet.
  1. Em primeiro lugar, devemos sempre atualizar os arquivos de índice que possuímos em nossas máquinas. Isso é feito utilizando o botão Atualizar Lista. Clicando nesse botão, surgirá uma janela com a lista de servidores cadastrados no APT mostrando o progresso do download do arquivo de índice.

  2. Devemos agora marcar todos os pacotes que queremos atualizar. Isso pode ser feito de duas maneiras: manualmente ou automaticamente. Para fazer da maneira mais simples e rápida clique no botão Atualizar tudo, que se encontra ao lado do botão Atualizar Distribuição. Caso queira fazer manualmente, selecione pacote por pacote e clique no botão Atualizar que se encontra na parte inferior da janela, ao lado das abas de informação.

  3. Com os pacotes selecionados, podemos ver quais serão as alterações a ser executadas.Selecione o filtro Mudanças Programadas e observe que a lista de pacotes será modificada e todos os pacotes terão a marcação indicando uma mudança de estado. Veja a lista de pacotes com o filtro aplicado na Figura 6-7.

    Figura 6-7. Filtro Mudanças Programadas

  4. Para finalizar, clique no botão Proceder que irá executar as ações especificadas e confirme a execução do processo na janela que se abre. Você pode ver na Figura 6-8 e na Figura 6-9 um exemplo das barras de progresso que surgem enquanto as alterações estão sendo preparadas e executadas.

    Figura 6-8. Preparando Alterações

    Figura 6-9. Executando Alterações

Como usar o apt-get no modo texto ?

Os comandos do apt-get são muito fáceis e intuitivos. Eles seguem uma estrutura muito simples:

# apt-get [opções] comando

# apt-get [opções] install pacote [pacote ...]
      

A linha de comando pode ser uma variação dos tipos básicos, descritos a seguir:

apt-get update

Atualiza o banco de dados local do apt-get com os arquivos pkglist[3] do servidor.

apt-get check

Verifica a integridade do seu sistema. Execute este comando quando tiver dúvidas quanto à integridade dos pacotes do seu sistema. É recomendável executá-lo antes de executar uma atualização de distribuição.

apt-get install algum-pacote

Instala algum pacote novo, solucionando e carregando automaticamente os pacotes dos quais o aplicativo a ser instalado depende. Caso o pacote algum-pacote já esteja instalado, o apt-get tentará atualizá-lo.

apt-get source algum-pacote

Faz o download dos fontes de um pacote (SRPM). Note que é necessário que haja uma linha com o TIPO rpm-src no arquivo sources.list para que este comando execute.

apt-get upgrade

Procura por pacotes desatualizados no sistema e os atualiza automaticamente. Atualizará todos os pacotes antigos no sistema. Para atualizar um pacote e suas dependências utilize o comando:

apt-get install pacote_a_ser_atualizado .


apt-get dist-upgrade

Semelhante ao apt-get upgrade, mas instala todos os pacotes básicos e tenta atualizar tudo, instalando novos pacotes caso seja necessário. É uma maneira mais fácil de fazer uma atualização de sua distribuição.[4]

apt-get remove algum-pacote

Remove o pacote algum-pacote e todos os demais pacotes que dele dependam.

apt-get clean

Remove todos os arquivos do diretório cache[5] , liberando um pouco de espaço no seu disco de sistema. É uma maneira automática de apagar os arquivos que já foram instalados e que não são mais necessários ao sistema.

Usando o apt-cdrom

O apt-cdrom é um comando simples para adicionar o CD-ROM ao arquivo /etc/apt/sources.list do apt, fazendo assim com que o apt-get procure no seu CD-ROM por pacotes. Sua sintaxe é uma variação desta linha de comando:

# apt-cdrom add
      

O apt-cdrom usa informação do arquivo /etc/fstab caso você não especifique onde está o drive de CD-ROM. Após a execução do comando apt-cdrom add uma linha semelhante à linha mostrada no exemplo a seguir será incluída no seu arquivo /etc/apt/sources.list.

rpm cdrom:[Conectiva Linux 9 Pre-1 - CD1]/ conectiva 001

Uma possível saída do comando apt-cdrom add é a seguinte:

[root@onix /root]# apt-cdrom add
Usando ponto de montagem do CD-ROM/mnt/cdrom/
Desmontando o CD-ROM
Insira um disquete no drive e pressione Enter
Montando o CD-ROM
Identificando..[c19afb6208760e4f2542607f75a70893-2]
Procurando por arquivos de índice no disco. Encontrei 1
índices de pacotes e 0 índices de fonte.
Rótulo encontrado 'Conectiva Linux 9 Pre-1 - CD1'
Este disco é chamado:
'Conectiva Linux 9 Pre-1 - CD1'
Reading Indexes... Done
Gravando nova lista-fonte
As entradas de lista-fonte para este disco são:
rpm cdrom:[Conectiva Linux 9 Pre-1 - CD1]/ conectiva 001
Repetir este processo para o restante dos CDs em seu conjunto.
[root@onix /root]#


Arquivos do apt

sources.list

O arquivo sources.list, encontrado no diretório /etc/apt/, descreve os fontes que o apt usará para saber onde buscar por informações do pacote.

Esta sintaxe de arquivo é a seguinte:

TIPO URI PARÂMETROS

Atualmente TIPO pode ser deb, rpm ou ainda rpm-src. Descreveremos apenas o tipo rpm. Vejamos um exemplo do arquivo sources.list:

# Package repository URLs 
#
#
# Official repositories.
rpm ftp://ftp.conectiva.com/pub/conectiva 9/conectiva 001
#
# Mirror repositories.
#rpm ftp://rufus.w3.org/linux/conectiva 9/conectiva 001 002
#rpm-src ftp://rufus.w3.org/linux/conectiva 9/conectiva 001 002

O tipo rpm

A variável TIPO indica qual tipo de pacote será utilizado. Pode ser rpm ou deb. Como há a possibilidade de ter mais de uma linha apontando para os repositórios do apt, você pode querer colocar o repositório mais rápido na primeira linha.

Nota: O tipo rpm-src é utilizado para indicar repositórios com fontes de pacotes (arquivos SRPM). Dessa maneira, utilizando o comando apt-get source algum_pacote, você poderá fazer o download dos arquivos fonte do pacote algum_pacote e compilá-lo.

rpm uri distribuição componente [componente ...]

As variáveis uri indicam a localização do servidor de repositório do apt.

A distribuição pode especificar um caminho exato. Se esta opção for usada, você precisará omitir a variável componente e terminá-la com uma barra.

O apt classificará o uri para o uso interno, mas é muito importante que estas linhas estejam na ordem do servidor mais rápido para o mais lento.

Especificação uri

Você pode usar diversos fontes para um uri.

Atenção

Apenas lembre-se de que HTTP e FTP são os únicos métodos testados e seguros. Quando mais métodos forem suportados, eles serão documentados e devidamente explicados.

ftp

Este método especifica uma conexão FTP para o servidor de repositório.

ftp://ftp.conectiva.com.br/repositorio
http

Este método especifica que você fará uma conexão HTTP ao servidor de repositório.

http://www.conectiva.com.br/repositorio

Como o diretório archives funciona?

Uma vez que você solicita ao apt para instalar algum pacote ou efetuar uma atualização (upgrade ou dist-upgrade), ele fará download dos pacotes necessários para /var/cache/apt/archives/partial/ e, após verificar seus hashes e tamanhos de MD5, moverá estes pacotes para /var/cache/apt/archives/.

Você pode assumir que todo arquivo no diretório archives/ foi verificado. Utilize o comando apt-get clean para excluir os arquivos no diretório archives/ e archives/partial/.

Usando as assinaturas GPG

O apt tem suporte ao gpg[6], dessa forma você pode utilizar isto para certificar-se de que está obtendo os pacotes genuínos do seu fornecedor.

O apt não tem suporte ao PGP[7] , por isso não gaste seu tempo tentando usá-lo.

A sintaxe do arquivo sources.list tem de ser alterada, conforme descrito a seguir, para que possamos utilizar o gpg.

rpm [gpg-id] uri distribution component [component ...]

Após efetuar esta mudança, isto é, introduzir o campo [gpg-id], você terá de certificar-se de que tem a chave pública do seu fornecedor em seu chaveiro gpg.

A gpg-id[8] é a usada pelo fornecedor para assinar seus pacotes garantido assim a genuinidade do fornecedor. Na realidade, é um indicador para a última parte da assinatura digital do fornecedor disponível no arquivo vendors.list.

Exemplo 6-1. vendors.list

# Lista dos fornecedores de pacotes confiáveis
#
# Este arquivo contém a lista de fornecedores (empresas ou pessoas)em
# cujo produto você pode confiar.
#

simple-key "cncbr"
{
Fingerprint "30EAE85C3D91C29880B4F0B3E368DDD099807190";
Name "Conectiva S.A. <security@conectiva.com.br>";
}

Exemplo 6-2. Importando uma chave gpg

# gpg --import arquivo_com_a_chave
      

No Exemplo 6-2 em arquivo_com_a_chave[9], temos um arquivo com a chave pública gpg do seu fornecedor.

Este comando importará a chave de seu fornecedor no chaveiro do usuário root (já que apenas o root pode instalar, remover ou manipular pacotes, não teria sentido importar esta chave no chaveiro de outro usuário).

Caso você queira utilizar o apt sem a assinatura gpg, basta que você retire o [gpg-id] da linha do endereço do repositório que consta no seu arquivo sources.list. O padrão para o site da conectiva é utilizar a assinatura gpg.

Apenas lembramos que esta versão do apt-get está em constante desenvolvimento. Caso você encontre algum erro ao utilizá-lo, entre em contato com a Conectiva através do email .

Notas

[1]

A partir de agora utilizaremos aplicativo para designar o pacote a ser instalado.

[2]

especificados no arquivo /etc /apt /sources.list, que é um dos arquivos de configuração do Apt.

[3]

Arquivos que contêm a lista de pacotes, dependências e informações encontradas no servidor. Este comando deve ser executado sempre antes de utilizar o comando apt-get.

[4]

Note que podem ocorrer problemas durante a atualização de uma distribuição mais antiga.

[5]

/var/cache/apt/archives/

[6]

GNU Privacy Guard.

[7]

Pretty Good Privacy.

[8]

Os colchetes no arquivo source.list devem estar aqui.

[9]

Por exemplo, o arquivo vendors.list.