A empresa FENIX lançou a algum tempo a versão Fenix Revolution, porem esta distribuíção linux vem se aprimorando a cada dia.
Como Criar Um Repositório Local para o YUM
Por Administrator
17 de outubro de 2008
Como Criar Um Repositório Local para o YUM
Prezados leitores, navegando na internet encontrei uma matéria muito boa sobre criação de seu próprio repositório YUM para quem utilizada distribuíções baseadas em REDHAT, FEDORA e CENTOS.
Estamos reproduzindo abaixo a matéria em sua integra.
YUM significa Yellow dog Updater, Modified, trata-se de um software desenvolvido pela Duke University para ser um instalador, atualizador e removedor de pacotes RPM, semelhante ao apt-get do Debian.
Ele trata automaticamente as dependências de arquivos não sendo necessário ficar buscando e instalando as dependências manualmente, lógico que para ele fazer tudo sozinho todas as dependências tem que estar nos repositórios configurados na maquina
O YUM é um sistema totalmente automatizado de instalação com diversos recursos e opções, por exemplo, para instalar o kde-network em uma maquina sem ambiente gráfico.
O Yum automaticamente busca pelo pacote a kdenetwork e analisa todas as dependências dele e de todos pacotes relacionados a ele e mostra um resumo do que será feito, basta digitar y e teclar enter para iniciar o processo de download e instalação dos pacotes.
O YUM foi adicionado em substiução ao software Red Hat Network que foi usado até o Red Hat Linux 9, o RHN tinha varias restrições para criar repositórios locais, tinha que usar ferramentas como o NRH-up2date, essa ferramenta era muito boa, porém tinha varios detalhes para poder funcionar corretamente.
Então temos alguns motivos que nos levam a usar o YUM como instalador, send eles:
É padrão no Fedora Cora
É facil criar repositórios locais
Resolve todas as dependências sozinho
Pode ser usado para instalar softwares de CDs
Quando remove algum software usando o YUM ele tambem remove os pacotes que dependem do pacote a ser removido
Como instalar o YUM
Isso varia de versão para versão, nesse tutorial darei foco a distribuição Fedora Core 4.
Para os nossos testes vou usar a seguinte maquina:
#cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.00GHz stepping : 4 cpu MHz : 2000.459 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes bogomips : 4007.65 #free total used free shared buffers cached Mem: 515624 506200 9424 0 8500 59072 -/+ buffers/cache: 438628 76996 Swap: 1020116 356600 663516 #cat /etc/fedora-release Fedora Core release 4 (Stentz)
Preparando o ambiente do servidor
Softwares
Vamos precisar dos seguintes softwares instalados:
httpd yum createrepo rsync
Todos podem ser encontrados no CD de instalação, mas acredito que você só precisa instalar o createrepo.
Diretórios
O Fedora Core é divido em diversas plataformas como i386, x64, etc, aqui vamos fazer tudo para i386 que é a mais comum, porém com poucas modificações você poderá fazer para qualquer plataforma.
Dentro do diretório de cada plataforma temos os seguinte subdiretórios: base updates extras
Para o nosso repositório local irei usar uma estrutura um pouco diferente, fica a seu critério usar a estrutura proposta ou criar a sua, o importante e entender o funcionamento, dai em diante fica facil.
Agora temos os três diretórios que irão armazenar o conteúdo do nosso repositório, agora vamos alimentar o primeiro, esse nada mais é do que a copia completa de todos os RPMs dos CDs da distribuição, para fazer isso coloque o primeiro cd na unidade de siga os passos abaixo:
Quando terminar de copiar os arquivos do cd é necessarios criar a lista dos arquivos, essa lista é lida pelo yum quando ele busca pelas atualizações, para fazer isso execute o comando abaixo.
Após excutar esse comando será criado um diretório chamado repodata com os seguintes arquivos: filelists.xml.gz other.xml.gz primary.xml.gz repomd.xml
A grosso modo esse arquivos contém todas as informações retornardas pelo comando rpm -qif, só que gravadas em formato XML, o yum quando busca por algum pacote checa se esses arquivos foram alterados e baixa para um cache local para poder consultar se o pacote existe no repositório.
Os diretório updates e extras darão um pouco mais detrabalho visto que eles precisam ser baixados da web e mantidos sincronizados, no próximo topico iremos detalhar a criação dos scripts para fazer essa atualização.
Ao total iremos precisar de 8Gb para um repositório completo para Fedora Cora 4 e 10Gb para o Fedora Core 5, abaixo o resumo do meu repotório.
Todos os extras dão um total de 3Gb, os extras nem sempre são necessários, eu gosto de mante-los localmente devido a grande quantidade de pacotes, por exemplo, xmms, zope, clamav e um monte de coisas que não estão na distribuição oficial.
Detalhe da opções usadas:
--verbose = Mostra detalhes da operação na tela --progress = Mostra o progresso do download de cada arquivo --exclude = Diretorios ou arquivos que não devem ser sincronizados --compress = Usar compressão de dados --delete --delete-excluded = Remove arquivos que não existem mais no servidor --archive = Agrupamentos da opções -rlptgoD -r = Recursivo -l = Copia links simbolicos -p = Mantém as permissoes dos arquivos -t = Mantém as datas de modificações dos arquivos -g = Mantém os grupos -o = Mantém o dono -D = Mesmo que --devices --specials --devices = Preserva arquivos de dispositivos --specials = Preserva arquivos especiais
Um detalhe importate sobre o indice dos arquivos criados, você pode baixar o diretório repodata junto com todos os outros RPMs, eu não gosto de fazer isso mas se você quiser basta tirar o --exclude=repodata do comando rsync, agora porque eu não faço isso?
Por dois motivos simples, primeiro é que eu não faço o download do diretorio debug, acho desnecessário ter informações sobre debug de pacotes, sem falar que é grande pra caramba, o outro motivo está relacionado ao primeiro, é importante que o seu índice informe o que realmente tem no seu repositório e somente criando ele do zero para ter essa certeza.
Outra coisa que você não pode esquecer e que você vai ter que criar o indice toda vez que fizer o download, ou você vai receber uma mensagem igual a que está abaixo quando tentar atualizar alguma maquina.
Cannot open/read repomd.xml file for repository: my-updates failure: repodata/repomd.xml from my-updates: [Errno 256] No more mirrors to try. Error: failure: repodata/repomd.xml from my-updates: [Errno 256] No more mirrors to try.
Configurando
Agora falta pouco, basta configurar o Apache para prover os arquivos para o yum no cliente.
Aonde está escrito MEU-SERVIDOR você deve colocar o endereço IP ou o nome do seu servidor.
Agora você deve desativar os repositórios que vem junto com a distribuição editando os arquivos: /etc/yum.repos.d/fedora-extras.repo /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora-updates.repo
Basta verificar os que estiverem com enable=1 e mudar para enable=0
Atualizando
Depois que tiver tudo pronto, o servidor sincronizado, basta digitar no cliente o comando
#yum update
O YUM irá buscar por pacotes que tenham atualizações necessarios no servidor, fará o download e instalação.
Na primeira execução será exebida uma mensagem como a que está abaixo
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Public key for postgresql-libs-8.1.4-1.FC5.1.i386.rpm is not installed Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora Importing GPG key 0x4F2A6FD2 "Fedora Project <
>" Is this ok [y/N]:
Basta digitar y e presionar enter para instalar a chave GPG e continuar a atualização
Automatizando
Para que o YUM faça atualização do sistema todo dia basta executar o comando
chkconfig yum on service yum start
Pronto, o primeiro comando configura o yum para iniciar automaticamente na inicialização e o segundo comando inicia o yum nesse momento.
Agora todo dia por volta das 04:00 o yum vai baixar e instalar todas as atualizações necessárias, sempre que algum pacote for atualizado o yum grava um log que é lido pelo logwatch e adiciona no email diario o seguinte trecho.
--------------------- yum Begin -------------------------
Packages Updated:
rsync.i386 2.6.8-1.FC4
---------------------- yum End -------------------------
Você também pode usar o programa yum-repo-sync que eu criei para automatizar a tarefa de sincronização dos meus repositórios, mais informações acesse a página do programa.
Autor
Rodrigo Luis Silva é especialista em sistemas GNU/Linux com ampla experiência em diversas áreas, trabalha a mais de seis anos focado em desvendar os diversos recursos existentes nesse sistema operacional.