Índice - Tutoriais

Tutorial do Ubuntu, parte 3

Por Carlos E. Morimoto em 26 de fevereiro de 2009 às 11h56

6

Repositórios extras

Além dos repositórios principais, temos os repositórios adicionais, que são mantidos por equipes independentes. A principal função deles é oferecer pacotes que, por um motivo ou outro, não podem ser distribuídos através dos repositórios oficiais, como no caso da biblioteca libdvdcss2 (que permite assistir DVDs protegidos) e diversos codecs. O gerenciamento deles é feito através da segunda aba:

m384e90f2

Por default, é incluído apenas o repositório partner, que na verdade é utilizado apenas para distribuir o plugin do flash para o Firefox.

Você pode ter acesso a um grande volume de pacotes adicionais voltados para multimídia adicionando o repositório do Medibuntu, especificando o "http://packages.medibuntu.org/" como URL e "free non-free" no campo dos componentes, como no screenshot. Isso equivale a adicionar a linha abaixo no sources.list:

deb http://packages.medibuntu.org/ intrepid free non-free

Ao tentar atualizar o sistema ou instalar algum novo pacote, após ativar repositórios adicionais, você receberá um erro similar a esse:

19d37e2e

Ele indica que o sistema não possui a chave GPG de autenticação para o repositório adicionado, problema que podemos resolver manualmente.

O GPG é um sistema de encriptação composto de duas chaves, uma chave pública, que é distribuída abertamente, e uma chave privada, que é secreta. A chave privada pode ser utilizada para "assinar" arquivos, cuja autenticidade pode ser comprovada usando a chave pública. Isto é feito através de um truque matemático: a chave privada é uma espécie de equação extremamente complexa, que embaralha o conteúdo dos arquivos. A chave pública é um antídoto para ela, que permite reverter os dados a seu estado original. É impossível, entretanto, descobrir o conteúdo da chave privada usando a chave pública e, devido à sua complexidade, é também impossível fazê-lo via força bruta.

Do Ubuntu 6.06 em diante, o apt-get passou a operar em modo seguro, onde o desenvolvedor usa sua chave GPG privada para assinar seus pacotes e o apt-get usa a chave pública para verificar se o pacote que está sendo instalado não sofreu modificações. Este é um processo extremamente seguro, que visa ter certeza de que o pacote que está sendo instalado na sua máquina é exatamente o mesmo que foi disponibilizado pelo desenvolvedor, eliminando qualquer possibilidade de alguém de má-fé alterar o conteúdo pelo caminho.

Este é um nível se segurança que não possui similar no mundo Windows. Mesmo que alguém consiga invadir o servidor onde os pacotes estão hospedados, ou consiga dar upload de pacotes falsos usando uma senha roubada, não terá como falsificar também a assinatura dos pacotes, fazendo com que você seja avisado ao tentar instalar e o problema seja detectado instantaneamente.

O link para a chave GPG fica normalmente em posição visível no site do projeto. No caso do Medibuntu, por exemplo, o arquivo é o "http://packages.medibuntu.org/medibuntu-key.gpg".

Existem duas maneiras de instalar a chave. A primeira é baixar o arquivo manualmente (você precisará geralmente usar o wget ou outro gerenciador de downloads, já que o Firefox o exibe como texto, em vez de oferecer a opção de baixar) e usar a opção Autenticação > Importar Arquivo Chave" dentro do Canais de Software para adicionar a chave:

47968fe2

Outra opção é adicionar a chave via linha de comando, usando "gpg" e o "apt-key". Os comandos são um pouco longos, mas a vantagem nesse caso é que você não precisa procurar o arquivo da chave, já que ela é baixado automaticamente pelo próprio GPG.

O primeiro passo é abrir um terminal e rodar o "sudo apt-get update". Ele retornará um erro similar ao do gerenciador de atualizações, especificando o número da chave:

W: Erro GPG: http://packages.medibuntu.org intrepid Release: As
assinaturas a seguir não puderam ser verificadas devido à chave
pública não estar disponível: NO_PUBKEY 2EBC26B60C5A2783

Para adicioná-la, use os dois comandos a seguir, especificando o número da chave, que você pode colar usando o botão central do mouse. Na verdade, a identificação da chave são apenas os 8 dígitos finais, mas não faz diferença se você simplesmente copiar o número inteiro:

# gpg --keyserver subkeys.pgp.net --recv-keys 2EBC26B60C5A2783
# gpg --export --armor 2EBC26B60C5A2783 | apt-key add -

É mais fácil executar os dois comandos diretamente como root, já que o GPG tem dificuldade em acertar o path quando executado através do sudo.

O primeiro comando se encarrega de baixar a chave, a partir do servidor do pgp.net, enquanto o segundo faz a importação. Note que é usado um pipe ( | ) para que a chave exportada pelo GPG seja lida pelo apt-key.

No caso específico do Medibuntu existe uma opção mais prática para adicionar a chave, que é simplesmente instalar o pacote "medibuntu-keyring ", que se encarrega de adicionar a chave do repositório:

$ sudo apt-get install medibuntu-keyring

Como pode imaginar, este pacote foi criado para simplificar a configuração do repositório por parte de novos usuários, uma vez que o repositório é usado por 7 em cada 10 usuários do Ubuntu. Entretanto, você ainda precisará seguir estes passos manuais ao adicionar outros repositórios.

Apesar dos pesares, a principal vantagem de adicionar os repositórios extras na configuração, em vez de simplesmente baixar os pacotes desejados manualmente é que os pacotes passam a ser incluídos nas atualizações do sistema, permitindo que você tenha acesso às atualizações. Eles também permitem que o sistema instale eventuais dependências automaticamente, simplificando muito a instalação. Outra vantagem é que outros pacotes disponíveis no repositório ficam disponíveis para quando precisar deles.

6 comentáriosPor Carlos E. Morimoto. Revisado 26 de fevereiro de 2009 às 11h56

Comentários

ESTUDANTE DE CURSO TÉCNICO EM INFORMÁTICA
por FABRICIO PAIVA (anônimo) em 21 de setembro de 2010 às 10h30
COMO EU FAÇO PRA INSTALAR PLUGINS E CODECS NO UBUNTU?
codecs por Louis (anônimo)
Ou por juliocbm
.... por Andre (anônimo)
entendimento
por Andr[e (anônimo) em 16 de setembro de 2010 às 17h39
Nao entendi nada.........deem uma esplicacao mais detalhada!!!
cada um... por andre (anônimo)