Mostrando postagens com marcador repositório. Mostrar todas as postagens
Mostrando postagens com marcador repositório. Mostrar todas as postagens

segunda-feira, 25 de junho de 2012

Prioridades entre os repositórios no Yum

Nas distribuições Linux que usam o gerenciador de pacotes Yum, isto inclui o Fedora e o CentOS, existe um plugin para o Yum que permite ordenar em prioridade os repositórios de pacotes. Esta extensão para o Yum faz com que um pacote de repositório com baixa prioridade não substitua o pacote instalado de um repositório com alta prioridade, mesmo que seja de uma versão maior.

No CentOS este plugin passa a ser bem interessante, porque nesta distribuição são necessários muitos repositórios de terceiros para complementar a oferta de softwares e é comum o conflito de pacotes entre eles. Como a distro Fedora está bem servida com o repositório RPM Fusion, não é tão necessário mais repositórios, reduzindo o risco de conflitos. O pacote yum-plugin-priorities é fornecido pelos repositórios oficiais destas duas distros.

Para instalar o pacote deste plugin, execute o comando:

# yum install yum-plugin-priorities

A configuração do plugin se dá pelo arquivo "/etc/yum/pluginconf.d/priorities.conf", basicamente com a edição da linha "enabled = 1", onde o valor 1 habilita a ação do plugin. Em seguida é preciso editar cada arquivo .repo, localizados em "/etc/yum.repos.d/", incluindo a seguinte linha em cada seção:

priority=N

No lugar de N coloca-se um valor entre 1 (maior prioridade) a 99 (menor prioridade). Usualmente classifica-se os repositórios oficiais com prioridade maior e os repositórios de terceiros com prioridade menor. O importante é não dar a mesma prioridade para repositórios que onde ocorram conflito de pacotes, principalmente entre os repositórios de terceiros. Escolha um para prevalecer, faça uma distribuição dos valores.

Um exemplo de um trecho do arquivo "/etc/yum.repos.d/CentOS-Base.repo", editado com as linhas "priority=N":

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1

Este controle de prioridades é importante pois o Yum sempre atualiza o pacote por uma versão maior, independente de qual repositório está vindo este novo pacote. E um pacote fornecido por terceiro pode não estar plenamente compatível com os demais pacotes instalados. Por isso a prioridade deve ser dos pacotes oficiais e de repositórios não conflitantes.

sexta-feira, 16 de março de 2012

Repositórios extras para o CentOS

O CentOS (Community ENTerprise Operating System) (http://www.centos.org/) é uma distribuição Linux baseada nos pacotes fontes livres do RHEL (Red Hat Enterprise Linux), portanto totalmente livre e gratuito, sendo 100% compatível com a distribuição da Red Hat. A cada nova versão do RHEL é lançada uma nova versão equivalente para o CentOS.

Além do repositório de software oficial da comunidade desenvolvedora do CentOS, existem outros repositórios compatíveis com o RHEL e derivados, como o CentOS, fornecendo centenas de pacotes de softwares que complementam o repositório oficial. Em destaque temos o EPEL, Repoforge e ATrpms. Estes são repositórios mantidos por terceiros.

A instalação dos softwares fornecidos por estes repositórios pode ser feita isoladamente, pacote a pacote, ou configurando os repositórios no YUM para que a busca e instalação se torne automatizada. É este segundo modo que será exemplificado neste artigo.


O EPEL (Extra Packages for Enterprise Linux) (http://fedoraproject.org/wiki/EPEL) é um grupo especial da comunidade Fedora que mantém e gerencia um conjunto de alta qualidade de pacotes adicionais, para o Enterprise Linux e compatíveis. Os pacotes fornecidos pelo EPEL nunca conflitam ou substituem os pacotes básicos das distros Enterprise Linux, são pacotes que complementam. O EPEL usa a mesma infraestrutura dos repositórios do Fedora. São pacotes 100% livres, de softwares de código aberto.

Para usar o EPEL no CentOS, de forma automática pelo YUM, basta instalar o pacote de configuração. Este pacote instala os detalhes do repositório nos arquivos de configuração do YUM. O pacote de configuração deve estar de acordo com a versão do CentOS.

Por exemplo, para instalar o pacote de configuração do EPEL no CentOS 6, o pacote será:

http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

Instale com a ferramenta que desejar, seja com "yum localinstall ..." ou "rpm -ivh ..." direto na URL do arquivo, e o repositório do EPEL será incluido no YUM. Lembre-se de instalar o pacote apropriado para a versão do CentOS.


Outro repositório é o Repoforge (http://repoforge.org/), anteriormente chamado de RPMforge. Também é um projeto que mantém pacotes para o RHEL e derivados.

O Repoforge contém um repositório com pacotes que não causam qualquer conflito com a base RHEL e outro repositório separado (rpmforge-extras) que fornece versões mais novas, e assim com um certo conflito, dos pacotes da base oficial do RHEL.

Por exemplo, para instalar o pacote de configuração do Repoforge no CentOS 6, numa máquina compatível com i686, o pacote será:

http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

Na instalação deste pacote, o repositório rpmforge-extras vem desabilitado por padrão.


Além do EPEL e do Repoforge, existe o repositório ATrpms (http://atrpms.net/). Este repositório fornece principalmente pacotes de softwares multimídia e drivers das placas de vídeo nVidia. Assim como o Repoforge, as configurações do ATrpms oferecem repositórios extras de versões ainda em testes e extremamente novas. Estes não vem habilitados por padrão, apenas o repositório de versões estáveis.

Por exemplo, para instalar o pacote de configuração do ATrpms no CentOS 6, numa máquina compatível com i686, o pacote será:

http://dl.atrpms.net/all/atrpms-repo-6-5.el6.i686.rpm


Estes três são os principais repositórios, mantidos por terceiros, para a distribuição RHEL e derivadas. Existem outros. Compensa bastante habilitá-los no CentOS pois assim tem-se uma quantidade maior de softwares disponíveis. Com estes repositórios habilitados no YUM, qualquer chamada por pacotes, seja em um comando de procura, de instalação ou de atualização, os respectivos repositórios serão verificados na busca. As dependências também serão resolvidas automaticamente.


E aproveitando este artigo, o repositório de ferramentas forenses do CERT (http://www.cert.org/forensics/repository/) para uso em computação forense, pode ser configurado com a instalação do seguinte arquivo (para CentOS 6):

http://www.cert.org/forensics/tools/cert-forensics-tools-release-el6.rpm


Os pacotes de configurações citados nos exemplos são versões no momento da redação deste artigo. Quando for instalá-los, procure pelas versões atuais:

http://download.fedoraproject.org/pub/epel/
http://pkgs.repoforge.org/rpmforge-release/
http://packages.atrpms.net/name/atrpms-repo/

segunda-feira, 14 de fevereiro de 2011

Adicionando o repositório Fusion no Fedora

O Fedora, em sua instalação, já traz pré-configurado os seus repositórios oficiais de pacotes originais e de atualização. Contudo, é possível adicionar repositórios extras na ferramenta YUM e assim tornar disponível outros softwares para instalação.

O principal repositório extra de software para o Fedora é o RPM Fusion (http://rpmfusion.org/), mantido por voluntários. O RPM Fusion fornece os softwares que o Projeto Fedora ou a Red Hat não tem interesse em fornecê-los. É uma extensão ao repositório oficial do Fedora.

Os softwares são fornecidos em pacotes RPM pré-compilados para todas as versões ativas do Fedora. O RPM Fusion é uma fusão dos repositórios Dribble, Freshrpms, e Livna. Seu objetivo é simplificar a localização dos softwares para um único lugar.

O RPM Fusion divide os softwares em duas categorias: gratuitos e não gratuitos. Os softwares gratuitos são os 100% livres, por exemplo os softwares com licença GPL. Os softwares não gratuitos são os softwares de licença proprietária mas que podem ser distribuídos, por exemplo alguns drivers de placas de vídeo.

Para instalar no Fedora, de uma única vez, com um único comando, as configurações do RPM Fusion no YUM, execute o comando abaixo:

# yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

segunda-feira, 26 de julho de 2010

Repositório de ferramentas forenses para Linux

O CERT (http://www.cert.org/) é uma organização fundada pelo Departamento de Defesa dos Estados Unidos, juntamente com algumas outras agências federais civis. O CERT dedica-se em garantir treinamentos adequados sobre tecnologias usadas para conter ataques em sistemas de rede, limitar os danos e assegurar a continuidade dos serviços críticos.

O CERT mantém em seu website um repositório de softwares para uso em computação forense. O repositório contém pacotes prontos para ser instalados em uma distro Linux, contudo, atualmente só a distribuição Fedora é suportada.

Excelentes ferramentas estão disponibilizadas, entre elas o Sleuthkit/Autopsy, o dcfldd, o Volatility, o Glimpse etc. Confira nestes endereços:

http://www.cert.org/forensics/
http://www.cert.org/forensics/repository/
http://www.cert.org/forensics/repository/fedora/

quinta-feira, 27 de agosto de 2009

Shell Script para procura e download de novos arquivos

Na manutenção do meu sistema Linux eu tenho o hábito de fazer o download de todos os pacotes disponíveis no repositório Updates, para então atualizar o que for necessário. Não costumo usar o utilitário yum pois gosto de fazer o download de tudo e não somente das atualizações dos pacotes que estão instalados. Aliás este meu procedimento vem muito antes de existirem estes utilitários que facilitam a atualização de pacotes.

Para facilitar a vida e não ter que fazer todo o trabalho manualmente, desenvolvi um script para o Shell que faz tudo automaticamente. O script é capaz de verificar os pacotes que eu já tenho e selecionar os novos pacotes disponíveis no repositório, aplicando antes um filtro para retirar os pacotes que eu não desejo. Por fim realiza o download dos arquivos.

Para facilitar o entendimento do código do script é necessário descrever o meu cenário. Porém isto é só um exemplo já que a idéia deste artigo é mostrar a possibilidade de um script de pesquisa e download automáticos.

Dentro do meu diretório pessoal (home) existe um diretório (~/Fedora), no qual fica o script, e dentro dele há o diretório Updates que contém os pacotes recebidos por download. Na raiz do meu diretório pessoal existem os arquivos com os hashes MD5 dos arquivos que já foram gravados em DVD e que não estão mais no HD.

O script lê o conteúdo dos arquivos com os hashes, lista o conteúdo do diretório Updates e grava no arquivo "pacotes-que-ja-tem.txt". Em seguida lista o conteúdo do repositório e grava no arquivo "pacotes-no-repo-updates.txt". Para estes dois arquivos há um tratamento para retirar as informações extras e deixar somente os nomes dos pacotes.

Com estas duas listagens é feita uma comparação para verificar as diferenças e, após, aplica o filtro para retirar os pacotes que estão na lista negra. Neste ponto está pronto o arquivo "pra-baixar.txt" que contém a listagem dos pacotes novos.

Na interface com o usuário é apresentada a estatística com a contagem dos novos pacotes e o conteúdo da listagem. Antes de realizar o download o script faz uma pergunta para confirmar. Caso a resposta seja positiva, é feito o download dos pacotes dentro do diretório Updates.

Veja o código do script:

#!/bin/bash

sed 's/^.\{34\}//' ~/hash*.md5 | grep "Updates/" | sed 's/.*\///g' - > updates-baixados.txt

ls ~/Fedora/Updates/ >> updates-baixados.txt

sort updates-baixados.txt > pacotes-que-ja-tem.txt

lynx -dump ftp://download.fedora.redhat.com/pub/fedora/linux/updates/10/i386/ | awk '{print $2}'
| grep .rpm | sed 's/.*\///g' - | sort > pacotes-no-repo-updates.txt

diff pacotes-no-repo-updates.txt pacotes-que-ja-tem.txt | grep "< " | sed 's/< //' - > novidades.txt

diff novidades.txt lista-negra.txt | grep "< " | sed 's/< //' - > pra-baixar.txt

NOVO=`wc -l novidades.txt | awk '{print $1}'`
NEGRA=`wc -l lista-negra.txt | awk '{print $1}'`
BAIXAR=`wc -l pra-baixar.txt | awk '{print $1}'`

echo "Pacotes novos: ${NOVO}"
echo "Pacotes na lista negra: ${NEGRA}"
echo "Pacotes para baixar: ${BAIXAR}"
echo
echo "Listagem:"
echo
cat pra-baixar.txt
echo

if [ ! -s pra-baixar.txt ]; then
echo "Nada para baixar."
else
read -p "Deseja baixar os pacotes? (s/n) " ans
if [ "$ans" == 's' ]; then
POS=1
cd ~/Fedora/Updates/
while read PACOTE
do
echo -e "\n------------------- Baixando pacote ${POS} de ${BAIXAR} ------------------\n"
wget -c -T60 ftp://download.fedora.redhat.com/pub/fedora/linux/updates/10/i386/"$PACOTE"
POS=$((POS+1))
done < ../pra-baixar.txt
cd ..
echo -e "\nFeito!\n"
elif [ "$ans" == 'n' ]; then
echo -e "\nDesistindo...\n"
else
echo -e "\nResposta invalida.\n"
fi
fi

rm -f updates-baixados.txt pacotes-que-ja-tem.txt pacotes-no-repo-updates.txt novidades.txt pra-baixar.txt


O código é até feio visualmente, talvez mal estruturado, porém faz muito bem o que é para ser feito. E lembrando, apesar do script ser para buscar as atualizações da distro Fedora, é possível modificá-lo para atender a qualquer outro repositório de arquivos.