Repositórios YUM para Red Hat, Fedora e CentOS - Instalação via Script
Dica publicada em Shell Script / Miscelânea
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:
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.
Vou dar um exemplo de arquivo:
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:
- Depois:
Nossa raiz para o repositório será até i386 neste caso, pois repodata está dentro de i386. No nosso script, faremos da seguinte forma:
Após informar o nome do repositório e link, pressione: Enter
...e aguarde o script realizar os procedimentos de update.
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.
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
#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.