Para ter um sistema operacional ou SO totalmente funcional, você precisa receber atualizações em tempo hábil, listas de softwares novos e antigos ou softwares que lhe permitam executar tarefas administrativas ou de cliente.
No Windows, o processo de download de atualizações do sistema operacional é feito por meio de repositórios, e o download de software geralmente é feito por meio de recursos da Web como arquivos binários. A interação com o Linux geralmente é orientada para o uso de repositórios para todos os processos descritos acima. Portanto, é importante considerar a configuração e a operação segura dessas soluções.
O que é um repositório e como posso trabalhar com ele?
Um repositório é uma coleção de objetos armazenados em um servidor, geralmente usada para armazenar software e outras dependências necessárias para sua operação. Ele pode ser implementado como um servidor SFTP, servidor da Web ou pode ser um banco de dados em uma plataforma de controle de versão. É frequentemente usado como um ponto de distribuição de software, bem como uma forma conveniente de armazenamento de dados para o trabalho das equipes.
O Linux geralmente usa repositórios como pontos de download abertos, e é importante dividi-los em dois tipos: repositórios confiáveis e não confiáveis. Os primeiros foram aprovados pelos desenvolvedores ou pela comunidade e é menos provável que tenham software que não funcione ou que tenham guias de software. O segundo deve ser verificado ou confiado pelo desenvolvedor de uma determinada coleção de objetos.
Para trabalhar com um repositório Linux, geralmente é necessário fornecer um link de URL de onde os pacotes de software serão baixados e uma chave pública correspondente para assinatura digital.
Configurar o repositório no Rocky Linux
Usaremos dois diretórios principais: /etc/yum.repos.d e /etc/pki/rpm-gpg, pois esses são os diretórios em que as referências aos repositórios e às chaves GPG são armazenadas, respectivamente. Esse método é uma configuração manual do repositório e permite que você monitore os repositórios existentes. Para adicionar uma nova coleção, vamos para a pasta /etc/yum.repos.d e criar um novo arquivo de configuração para o Docker:
cd /etc/yum.repos.d && nano docker-ce.repo
[docker-ce]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/rhel/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/rhel/gpg
Neste exemplo, a primeira linha é o nome do repositório, assim como a segunda, que pode assumir qualquer valor. A linha baseurl deve ser composta corretamente com a versão de sua distribuição RHEL, e a arquitetura de processador normalmente usada é x86_64. Se você não souber os dados exatos, deixe-os como no exemplo acima - variáveis.
Enabled é responsável por usar o repositório ao procurar pacotes, e gpgcheck é responsável por verificar as assinaturas. É aconselhável deixá-lo ativado para evitar ataques do tipo man-in-the-middle.
Outro componente importante em todo o arquivo é o caminho para a chave, que é especificado no formato de URL - um link para um arquivo local ou um link para um objeto de repositório existente. No exemplo apresentado acima, é apenas um link para um recurso online. Vamos tentar atualizar o repositório e ver se o software lê os pacotes de lá:
dnf upgrade
A atualização está ocorrendo, portanto os caminhos estão definidos corretamente e o repositório está configurado corretamente.
Todas as etapas do tutorial podem ser executadas em servidores em nuvem avançados. O Serverspace fornece servidores VPS isolados para uso comum e virtualizado.
Levará algum tempo para implementar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes!
Como faço para baixar a chave do repositório?
Mas e se você não confiar no recurso de forma permanente e quiser verificar as chaves você mesmo e atualizá-las via Ansible sempre? Para isso, você pode fazer o download da chave por meio do link de comando e gravá-la imediatamente em um diretório com permissões limitadas:
curl https://download.docker.com/linux/rhel/gpg > /etc/pki/rpm-gpg/docker
Esse comando redirecionará a saída do servidor para o arquivo de armazenamento de chaves. E para que o repositório verifique a chave fornecida, nós a especificaremos na configuração do repositório com a linha gpgkey=file:///etc/pki/rpm-gpg/docker, tendo comentado a anterior. Agora vamos testar o repositório instalando o pacote docker-ce:
dnf install docker-ce
No campo Repositório, podemos ver a lista de repositórios usados para localizar o utilitário, bem como suas dependências que serão usadas para a instalação.
Como faço para excluir ou desativar um repositório?
Se precisarmos desativar alguns repositórios, poderemos excluir o arquivo de configuração com eles ou desativá-los com a cláusula enabled. Isso também é feito no arquivo de configuração. Por exemplo, não precisamos da coleção online atual de arquivos do Docker, portanto, vamos atualizar seu valor:
sed ‘s/enabled=1/enabled=0’ ./docker-ce.repo
Esse comando substituiu todos os itens de =1 para =0 no parâmetro que era responsável pelo uso de repositórios durante a pesquisa. Agora vamos verificar como ele funciona:
dnf update
Como você pode ver, o repositório foi excluído da lista de pesquisa e não está sendo usado para instalar ou atualizar software.