Pular para o conteúdo

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

Dica publicada em Shell Script / Miscelânea
Roberto Fettuccia rpaulafettuccia
Hits: 10.641 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Impressoras Brother no Ubuntu

cointop - monitore a cotação de criptomoedas via terminal

Contador de Palavras no Terminal

Curso Grátis de Dialog [vídeo]

Telinha simples de loading.... em Shell Script

Comando seq com saída em hexadecimal

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.