Instalando pacotes de repositórios externos no Ubuntu [Explicado]

4 de agosto de 2021

Você tem alguma ideia sobre como instalar pacotes no Ubuntu com o comando apt. Esses pacotes vêm dos repositórios do Ubuntu.

O que dizer sobre repositórios terceirizados ou externos? Não, eu não estou falando de PPA aqui.

Mais cedo ou mais tarde, você encontrará instruções de instalação que vão em pelo menos quatro linhas. Você instala algo chamado apt-transport-https e, em seguida, faz algo com gpg e sources list. Depois disso, você instala o pacote.

Não se lembra completamente. Deixe-me compartilhar um exemplo para instalar a versão mais recente do Yarn no Ubuntu:

Comandos para usar no terminal

sudo apt install apt-transport-https curl

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

sudo apt update && sudo apt install yarn

Você geralmente se depara com esse método de instalação, instalando ferramentas de programação diretamente dos desenvolvedores.

Muitas pessoas apenas seguem as instruções sem pensar duas vezes sobre o que está acontecendo aqui. Nada de errado com isso, mas saber que o processo realmente melhora seus conhecimentos sobre o assunto e também pode ajudar na solução de problemas.

Deixe-me explicar a lógica por trás dessas linhas.

Compreendendo o procedimento de instalação de repositórios externos

Antes de prosseguir, recomendo ler esses dois artigos para que as coisas sejam um pouco mais claras para você:

Para se lembrar rapidamente, aqui está uma representação visual de repositórios e gerenciador de pacotes no Linux.

Linux Package Manager Explicação

Ilustração do repositório e do gerenciador de pacotes

A ideia inteira aqui é que você adiciona um novo repositório externo ao seu sistema. Desta forma, você poderá baixar e instalar pacotes disponíveis neste novo repositório. Se o repositório fornecer uma atualização na versão do pacote, você chegará a atualizar o pacote instalado junto com as atualizações do sistema (apt update && apt upgrade).

Então, como isso funciona? Vamos pelas linhas uma por uma.

Parte 1: Obtendo suporte HTTPS para apt

A primeira linha é esta:

Comandos para usar no terminal

sudo apt install apt-transport-https curl

curl é uma ferramenta para download de arquivos no terminal Linux. A parte principal aqui é a instalação de apt-transport-https e na verdade não precisamos mais dele.

Confuso? Este pacote apt-transport-https permite que seu sistema acesse repositórios sobre o protocolo HTTPS seguro. Por padrão, repositórios do Ubuntu usam http, não https.

Dê uma olhada na captura de tela abaixo. Os https são os repositórios externos que adicionei no meu sistema. Repositórios do Ubuntu e PPA usam http.

Apt update http https

Na versão mais antiga do Gerenciador de Pacotes APT, o suporte HTTPS não foi incluído. O pacote apt-transport-https adiciona suporte a HTTPS ao APT. Para adicionar um repositório que use HTTPS, este pacote é instalado primeiro.

Eu não disse que não é mais necessário? Sim, porque as versões mais recentes do APT (superior a 1,5) suportam HTTPs e, portanto, você não precisa mais instalar mais o apt-transport-https.

E ainda assim você vê este pacote mencionado nas instruções. Isso é mais por motivos legados ou para versões de distribuição realmente antigas que podem estar usando uma versão mais antiga do APT.

Agora, você pode se perguntar por que os repositórios do Ubuntu usam http, não https quando https é o protocolo seguro. Não é um risco de segurança? O próximo segmento responderá a essa pergunta.

Parte 2: Adicionando a chave GPG do repositório remoto

Repositórios do Linux têm esse mecanismo de segurança baseado em GPG integrado. Cada repositório adicionou sua chave pública GPG às chaves confiáveis do seu sistema. Os pacotes dos repositórios são "assinados" por essa chave GPG e graças à chave pública armazenada, seu sistema verifica se o pacote vem do repositório.

Se houver uma incompatibilidade entre as chaves, seu sistema mostrará um erro em vez de instalar ou atualizar pacotes do referido repositório.

Até agora tudo bem. O próximo passo é adicionar a chave GPG pública do repositório externo ao seu sistema Linux para que confie no pacote vindo a partir deste repositório.

Comandos para usar no terminal

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

No comando acima, você baixa a chave GPG da URL dada usando curl. A opção sS garante que você não vê a saída inundada (modo silencioso), mas mostra só erro (se houver). A última - diz ao apt-key para tomar stdin em vez de um arquivo (que é a saída do comando curl neste caso).

A chave de download é adicionada ao sistema com o comando apt-key add.

Você pode ver as chaves GPG adicionadas por vários repositórios em seu sistema usando o comando apt-key list.

List-chave apt GPG ubuntu

Lista de chaves GPG

Essa é uma maneira de adicionar a chave GPG ao sistema. Você verá alguns outros comandos que parecem um pouco diferente, mas fazem o mesmo trabalho de adicionar a chave pública do repositório para o seu sistema.

Comandos para usar no terminal

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

Você notará um aviso de que o apt-key está obsoleto. Você ainda pode usar o comando apt-key até Ubuntu 22.04, mas ele acabará por ser removido. Não vamos nos preocupar com isso no momento.

Parte 3: Adicionando o repositório externo à sua lista de fontes

O próximo comando adiciona uma nova entrada na lista de fontes do seu sistema. Desta forma, o sistema vai saber que tem de verificar este repositório de pacotes e atualizações.

Comandos para usar no terminal

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

Há um arquivo /etc/apt/sources.list que contém os detalhes dos repositórios do Ubuntu. Este arquivo não deve ser tocado. Todos os repositórios adicionais devem ser colocados em seu próprio respectivo arquivo (que termina com a convenção .list) no diretório /etc/apt/sources.list.d.

fontes listar ubuntu

Repositórios externos devem ter seu arquivo próprio no diretório /etc/apt/sources.list.d

Isso torna o gerenciamento de pacotes mais fácil. Se você estiver removendo um repositório do sistema, você só precisa excluir o arquivo fonte correspondente. Não há necessidade de mexer com o arquivo sources.list principal.

Vamos olhar o comando em um pouco mais detalhadamente.

Comandos para usar no terminal

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

Com sh, você está pedindo para executar o comando em um novo shell, em vez do subshell. A opção -c informa ao comando sh para ler os comandos do operando em vez de entrada padrão. Em seguida, ele executa o comando echo que basicamente acrescenta a linha deb https://dl.yarnpkg.com/debian/ stable main ao arquivo /etc/apt/sources.list.d/yarn.list (arquivo será criado )

Agora, pode haver inúmeras maneiras que você pode criar um arquivo .list no diretório especificado e adicionar a linha com detalhes de repositório na mesma. Você poderia fazer assim:

Comandos para usar no terminal

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Você entendeu a essência, certo?

Parte 4: Instalando a aplicação do repositório recentemente adicionada

Até agora, você adicionou a chave GPG do repositório e a URL do repositório para o sistema.

Mas o sistema ainda não sabe sobre pacotes disponíveis a partir deste novo repositório. É por isso que você precisa atualizar o cache local de metadados do pacote pela primeira vez com este comando:

Comandos para usar no terminal

sudo apt update

Seu sistema terá as informações sobre os pacotes disponíveis a partir do repositório recém-adicionado e você pode instalar o pacote agora:

Comandos para usar no terminal

sudo apt install yarn

Para economizar tempo, você pode executar os dois comandos um após o outro em uma única linha.

Comandos para usar no terminal

sudo apt update && sudo apt install yarn

Os && garantem que o segundo comando é executado somente quando o comando anterior foi concluído sem qualquer erro.

E assim o processo é concluído.

Será que tornou as coisas claras ou confundiu ainda mais?

Eu expliquei a lógica por trás dos passos para a utilização de repositórios externos no Ubuntu. Espero que você tenha uma melhor compreensão do tema agora, mas também é possível que muitos detalhes ficaram confusos.

Se as coisas ainda não estão claras ou se você tiver outras dúvidas, por favor me avise. Se você notar imprecisões técnicas, por favor, deixe-me saber na seção de comentários.

Confira também a versão original desse post em inglês
Esse post foi originalmente escrito por Abhishek Prakash e publicado no site itsfoss.com. Traduzido pela rtland.team

Installing Packages From External Repositories in Ubuntu [Explained]

Propaganda
Blog Comments powered by Disqus.
Propaganda