Repositórios YUM para Red Hat, Fedora e CentOS - Instalação via Script

Publicado por Roberto Fettuccia em 17/10/2014

[ Hits: 8.154 ]

 


Repositórios YUM para Red Hat, Fedora e CentOS - Instalação via Script



Caros colegas da comunidade,

Publico aqui uma solução que me ajuda constantemente, vamos adentrar um pouco sobre os repositórios de derivados Red Hat.

Quando usuários assíduos do sistema, como eu, necessitam instalar aplicações que estão disponíveis em repositórios não oficiais ou oficiais, mas que não estejam instaladas na lista de repositórios do yum, aí que vem o problema e a solução...!

Escrevi este script que faz a automatização da criação do arquivo de repositório. Aqui vai o script:

#!/bin/bash
#by roberto fettuccia
#### funções
getMkrepo()
{
        nome="$1"
        link="$2"
        printf "[$nome]\n" >> /etc/yum.repos.d/$nome.repo
        printf "name=$nome \n" >> /etc/yum.repos.d/$nome.repo
        printf "baseurl=$link \n" >> /etc/yum.repos.d/$nome.repo
        printf "enabled=1 \n" >> /etc/yum.repos.d/$nome.repo
        printf "gpgcheck=0 \n" >> /etc/yum.repos.d/$nome.repo
        printf "gpgkey=file:/// \n" >> /etc/yum.repos.d/$nome.repo
        echo "FEITO..."
        yum check-update
}
####
getHelp()
{
        echo "forma de uso..."
        echo "$0 [nome] [link]"
        echo "nome = nome do repositorio(sem espacos)"
        echo "link = link do diretório do repositorio, deve conter o subdiretorio (REPODATA)"
}
#### funções fim
if [ -z "$1" ]; then
        v0=0
else
        v0=1
fi

if [ -z "$2" ]; then
        v1=0
else
        v1=1
fi

if [ $v0 = 1  ]  &&  [ $v1 = 1 ]; then
        getMkrepo "$1" "$2"
else
        getHelp "$0"
fi

Como instalar o script

Como este script não é nativo do GNU/Linux, façamos o uso das boas práticas, então o criaremos no diretório /usr/local/bin que serve para scripts não "oficiais".

1. Crie o arquivo da maneira que achar melhor, Vim, nano, etc, nomeie o arquivo com o nome mkrepo e coloque o conteúdo postado acima.

2. Efetive as permissões de execução do arquivo criado, utilizando-se do chmod, aplique 755 para que o root possa alterar e os demais usuários somente executar:

# chmod 775 /usr/local/bin/mkrepo

3. Como funciona?

Utilizo o site pkgs.org para procurar pacotes que não encontro nos repositórios que tenho instalado, pode ser qualquer site que tenha a relação de repositórios.
  • Procure o pacote que você não consegue instalar com seus atuais repositórios.
  • No resultado da busca, vá DIRETO PROCURANDO O LINK DE DOWNLOAD DO ARQUIVO DO PACOTE (RPM), claro que dentro do repositório.

Vou dar um exemplo de arquivo:

http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/alien-8.90-2.el6.art.noarch.rpm

Este aquivo é um pacote do alien, muitas vezes temos que instalar o repositório pois ele terá certamente, as dependências necessárias para a instalação.

1. Novamente vamos ao link, devemos procurar na raiz do link o diretório repodata, ali o yum consultará a base de arquivos recorrentes ao repositório.
2. Copie o link do pacote RPM e cole no navegador, apague o nome do arquivo .rpm, claramente aparecerá vários outros pacotes RPM, procure com Ctrl+f e digite: repodata
3. Se não aparecer o diretório, vá descendo a árvore de diretórios, normalmente no penúltimo nível antes dos aquivos encontramos a repodata.

Comparação do link:

- Antes:

http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/alien-8.90-2.el6.art.noarch.rpm

- Depois:

http://www6.atomicorp.com/channels/atomic/centos/6/i386/repodata

Nossa raiz para o repositório será até i386 neste caso, pois repodata está dentro de i386. No nosso script, faremos da seguinte forma:

mkrepo atomic_centos_v6_i386  http://www6.atomicorp.com/channels/atomic/centos/6/i386

Após informar o nome do repositório e link, pressione: Enter
...e aguarde o script realizar os procedimentos de update.

Entendendo o nome

Para ficar mais amigável para entender, informe no nome algumas informações que ajudem a identificar o repositório, isso pode ser feito através da análise do próprio link do repositório, podendo ser informado o nome tipo www6.atomicorp.com_centos_v6_i386.

Assim fica fácil identificar caso ocorram problemas.

Lembrando que os arquivos criados pelo script, serão depositados no diretório do yum: /etc/yum.repos.d/.

Façam bom proveito. Dúvidas, estarei à disposição.

Outras dicas deste autor

Impressoras Brother no Ubuntu

Leitura recomendada

Lendo registros formatados de arquivo de texto em bash

Livros de shell script (um é grátis)

hwclock - Ajustando data e hora do hardware

Criando um simples script para desmontar e ejetar o CD-ROM

Script que automatiza o envio de backup para o email

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts