Como Configurar um Repositório de Rede para Instalar ou Atualizar Pacotes – Parte 11

Instalar, atualizar e remover (quando necessário) programas instalados são responsabilidades-chave na vida diária de um administrador de sistemas. Quando uma máquina está conectada à Internet, essas tarefas podem ser facilmente realizadas usando um sistema de gerenciamento de pacotes como o aptitude (ou apt-get), yum ou zypper, dependendo da distribuição escolhida, conforme explicado na Parte 9 – Gerenciamento de Pacotes do Linux da série LFCE (Engenheiro Certificado pela Fundação Linux). Você também pode baixar arquivos .deb ou .rpm independentes e instalá-los com dpkg ou rpm, respectivamente.

Linux Foundation Certified Engineer – Part 11
Apresentando o Programa de Certificação da Fundação Linux

No entanto, quando uma máquina não tem acesso à world wide web, outros métodos são necessários. Por que alguém gostaria de fazer isso? As razões vão desde economizar largura de banda da Internet (evitando assim várias conexões simultâneas com o exterior) até garantir pacotes compilados localmente a partir da fonte e incluir a possibilidade de fornecer pacotes que, por razões legais (por exemplo, software restrito em alguns países), não podem ser incluídos nos repositórios oficiais.

É exatamente aí que entram em jogo os repositórios de rede, que são o tema central deste artigo.

Nosso Ambiente de Testes
Network Repository Server:	CentOS 7 [enp0s3: 192.168.0.17] - dev1
Client Machine:			CentOS 6.6 [eth0: 192.168.0.18] - dev2

Configurando um Servidor de Repositório de Rede no CentOS 7

Como primeiro passo, iremos lidar com a instalação e configuração de um servidor de repositório CentOS 7 [endereço IP 192.168.0.17] e uma máquina CentOS 6.6 como cliente. A configuração para o openSUSE é quase idêntica.

Para o CentOS 7, siga os artigos abaixo que explicam passo a passo a instalação do CentOS 7 e como configurar um endereço IP estático.

  1. Instalação do CentOS 7.0 com Capturas de Tela
  2. Como Configurar um Endereço IP Estático de Rede no CentOS 7

Quanto ao Ubuntu, há um ótimo artigo neste site que explica, passo a passo, como configurar seu próprio repositório privado.

  1. Configurar Repositórios Locais com ‘apt-mirror’ no Ubuntu

Nossa primeira escolha será a forma como os clientes acessarão o servidor de repositório – FTP e HTTP são os mais utilizados. Escolheremos o último, pois a instalação do Apache foi abordada na Parte 1 – Instalando o Apache desta série LFCE. Isso também nos permitirá exibir a listagem de pacotes usando um navegador da web.

Em seguida, precisamos criar diretórios para armazenar os pacotes .rpm. Criaremos subdiretórios dentro de /var/www/html/repos conforme necessário. Para nossa conveniência, também podemos querer criar outros subdiretórios para hospedar pacotes de diferentes versões de cada distribuição (é claro que ainda podemos adicionar quantos diretórios forem necessários posteriormente) e até mesmo arquiteturas diferentes.

Configurando o Repositório

Uma coisa importante a se considerar ao configurar seu próprio repositório é que você precisará de uma quantidade considerável de espaço em disco disponível (~20 GB). Se não tiver, redimensione o sistema de arquivos onde pretende armazenar o conteúdo do repositório, ou ainda melhor, adicione um dispositivo de armazenamento dedicado extra para hospedar o repositório.

Dito isso, começaremos criando os diretórios necessários para hospedar o repositório:

# mkdir -p /var/www/html/repos/centos/6/6

Depois de termos criado a estrutura de diretórios para nosso servidor de repositório, inicializaremos em /var/www/html/repos/centos/6/6 o banco de dados que mantém o controle dos pacotes e suas dependências correspondentes usando createrepo.

Instale createrepo se ainda não o fez:

# yum update && yum install createrepo

Em seguida, inicialize o banco de dados,

# createrepo /var/www/html/repos/centos/6/6
Createrepo Repository Initialization

Atualizando o Repositório

Supondo que o servidor de repositório tenha acesso à Internet, vamos buscar um repositório online para obter as últimas atualizações de pacotes. Se não for o caso, ainda é possível copiar todo o conteúdo do diretório Packages de uma instalação CentOS 6.6 DVD.

Neste tutorial, vamos assumir o primeiro caso. Para otimizar nossa velocidade de download, escolheremos um espelho do CentOS 6.6 em uma localização próxima a nós. Acesse o espelho de download do CentOS e escolha aquele que está mais próximo de sua localização (Argentina no meu caso):

Select CentOS Download Mirror

Em seguida, navegue até o diretório os dentro do link destacado e escolha a arquitetura apropriada. Uma vez lá, copie o link na barra de endereço e baixe o conteúdo para o diretório dedicado no servidor do repositório:

Download CentOS Mirror
# rsync -avz rsync://centos.ar.host-engine.com/6.6/os/x86_64/ /var/www/html/repos/centos/6/6/ 

Caso o repositório escolhido esteja offline por algum motivo, volte e escolha outro. Não é grande coisa.

Agora é a hora em que você pode querer relaxar e talvez assistir a um episódio de seu programa de TV favorito, pois espelhar o repositório online pode levar um bom tempo.

Assim que o download for concluído, você pode verificar o uso do espaço em disco com:

# du -sch /var/www/html/repos/centos/6/6/*
Check CentOS Mirror Size

Por fim, atualize o banco de dados do repositório.

# createrepo --update /var/www/html/repos/centos/6/6

Você também pode querer abrir seu navegador da web e navegar até o diretório repos/centos/6/6 para verificar se consegue ver o conteúdo:

Verify CentOS Packages

E você está pronto para começar – agora é hora de configurar o cliente.

Source:
https://www.tecmint.com/setup-yum-repository-in-centos-7/