Advertisement
Home arrow Como fazer arrow LINUX arrow Como Criar Um Repositório Local para o YUM
www.e-alinux.com | 07 de setembro de 2010
Site Internet
Ultimas Notícias
EVENTOS AGOSTO/2009 EventosII GNUGRAF - de 22 e 23 de agosto na UNIRIO, no Rio de Janeiro – RJ.Cursos de Linux avançado -  de 24 a 27 de agosto em Curitiba – PR.Consegi 2009 - de 26 a 28 de agosto na ESAF, em Brasília – DF.Python Brasil[5] - de 10 e 12 de setembro em Caxias do Sul – RS.CNASI SP - de 22 a 24 de setembro em São Paulo – SP.Futurecom 2009 - de 13 a 16 de outubro, em São Paulo, SP.Latinoware - de 22 a 24 de outubro em Foz do Iguaçu, PR.PGCON BRASIL 2009 - dias 24 e 25 de outubro na Unicamp, em Campinas, SP.Plone Symposium América do Sul - dias 24 e 25 de novembro em São Paulo – SP.4º SoLiSC - dias 26 e 27 de novembro, em Florianópolis – SC.PGCon Brasil 2009 - de 23 e 24 de outubro em Campinas/SP  More info...

Tchelinux disponibiliza novos vídeos de palestras O grupo Tchelinux acaba de disponibilizar novos vídeos das palestra ocorridas nos últimos meses no site http://videos.tchelinux.org.  More info...

Site de Noticias E-ALINUX

Slowloris: ferramenta para ataque DoS para Apache, e outros Numa época como essa, em que webmasters e “blogueiros” em todo mundo estão com os “nervos à flor da pele” por causa do script Gumblar, surge uma nova forma de ameaça aos servidores web, em especial o Apache, e até o Squid..O guru da segurança, Robert “RSnake” Hansen, presidente da empresa SecTheory, lançou uma nova ferramenta (na verdade um script) de ataque DoS (Denial-of-Service), que aponta uma significativa falha no servidor Apache, e alguns outros.Hansen chama sua criação de “Slowloris”, ou, em suas palavras, “cliente HTTP com banda baixa, porém ambicioso e venenoso”. Ao contrário de tudo o que se sabe sobre ataques DoS, no qual serviços web são colocados de joelhos através do bombardeio de maciços volumes de dados, o Slowloris alcança o mesmo resultado com um punhadinho de pacotes.  More info...

Menu Principal
Home
Buscar
Noticias
Como fazer
Consultoria
Livro
Downloads
FAQ's
News Feeds
Contate-nos
Eventos
Administração
Notícias por email
eWeather
Temp: °
Wind Chill: °
Humidity: %
Speed:  
Direct.: °
Barom.:  
Show more details
Provided by: 
 
 
Newsflash
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 PDF Imprimir E-mail
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.

 

yum

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

Mais informações em:
http://linux.duke.edu/projects/yum/
http://pt.wikipedia.org/wiki/Yum
http://fedora.redhat.com/docs/yum/pt_BR/

Porque usar o YUM?

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.

#yum install kdenetwork

Setting up Install Process

Setting up repositories

Reading repository metadata in from local files

Parsing package install arguments

Resolving Dependencies

......

CORTADO

......

Dependencies Resolved



=============================================================================

Package Arch Version Repository Size

=============================================================================

Installing:

kdenetwork i386 7:3.5.2-0.1.fc4 my-updates 10 M

Installing for dependencies:

arts i386 8:1.5.2-0.1.fc4 my-updates 1.1 M

cdparanoia-libs i386 alpha9.8-25 my-base 44 k

desktop-backgrounds-basic noarch 2.0-29 my-base 2.6 M

fonts-xorg-base noarch 6.8.2-1 my-base 7.3 M

kdebase i386 6:3.5.2-0.1.fc4 my-updates 28 M

kdelibs i386 6:3.5.2-0.1.fc4 my-updates 18 M

libraw1394 i386 1.2.0-1.fc4 my-updates 37 k

redhat-artwork i386 0.122-10 my-base 4.6 M

samba-common i386 3.0.14a-2 my-base 5.7 M

xinitrc noarch 4.0.18.1-1 my-updates 28 k

xorg-x11 i386 6.8.2-37.FC4.49.2.1 my-updates 14 M

xorg-x11-xauth i386 6.8.2-37.FC4.49.2.1 my-updates 102 k

xorg-x11-xdm i386 6.8.2-37.FC4.49.2.1 my-updates 171 k

xterm i386 212-1.FC4 my-updates 195 k



Transaction Summary

=============================================================================

Install 15 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 92 M

Is this ok [y/N]:
 

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 as outras versões voce pode visitar o site http://download.fedoralegacy.org/ e baixar a versão do YUM para a sua distribuição.

Para todas as distribuições suportadas há um diretorio chamado legacy-utils/i386 que contém o RPM legacy-yumconf que deve ser instalado.

Por exemplo para instalar no Fedora Core 3 basta digitar:

# rpm -ivh \ http://download.fedoralegacy.org/fedora/3/legacy-utils/i386/legacy-yumconf-3-4.fc3.noarch.rpm

No Fedora Core esse utilizario já vem por padrão.

 

Sistema utilizados nos testes

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

No site do projeto encontramos a seguinte estrutura para o Fedora Core 4
http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/Fedora/RPMS/
http://download.fedora.redhat.com/pub/fedora/linux/core/updates/4/i386/
http://download.fedora.redhat.com/pub/fedora/linux/extras/4/i386/

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.

#mkdir /var/www/html/linux #mkdir /var/www/html/linux/fedora #mkdir /var/www/html/linux/fedora/4 #mkdir /var/www/html/linux/fedora/4/i386 #mkdir /var/www/html/linux/fedora/4/i386/base #mkdir /var/www/html/linux/fedora/4/i386/updates #mkdir /var/www/html/linux/fedora/4/i386/extras

ou mais simples e com o mesmo resultado

#mkdir /var/www/html/linux/fedora/4/i386/{base,updates,extras}

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:

#mount /media/cdrom #cp -iav /media/cdrom/Fedora/RPMS/* /var/www/html/linux/fedora/4/i386/base #umount /media/cdrom

Agora é só repetir os passos para os outros CDs.

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.

#createrepo /var/www/html/linux/fedora/4/i386/base 2185/2185 - xorg-x11-server-Xnest-1.0.1-8.i386.rpm Saving Primary metadata Saving file lists metadata Saving other metadata

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.

# du -h --max-depth=1 4/i386/ 2.3G 4/i386/updates 2.4G 4/i386/base 3.1G 4/i386/extras 7.6G 4/i386/ # du -h --max-depth=1 5/i386/ 2.9G 5/i386/base 4.0G 5/i386/extras 3.1G 5/i386/updates 9.9G 5/i386/

Sincronizando as atualizações

O script abaixo sincroniza todas as atualizações do Fedora Core 4.

rsync \ --verbose \ --progress \ --exclude=debug \ --exclude=repodata \ --compress \ --delete \ --delete-excluded \ --archive \ rsync://mirrors.kernel.org/fedora/core/updates/4/i386/ \ /var/www/html/linux/fedora/4/i386/updates

Agora temos que criar o indice dos arquivos usando o createrepo

createrepo /var/www/html/linux/fedora/4/i386/updates

Para sincronizar os extras uso o seguinte comando:

rsync \ --verbose \ --progress \ --exclude=debug \ --exclude=repodata \ --exclude=headers \ --compress \ --delete \ --delete-excluded \ --archive \ rsync://mirrors.kernel.org/fedora/extras/4/i386/ \ /var/www/html/linux/fedora/4/i386/extras

Mais uma vez vamos criar o indice dos arquivos

createrepo /var/www/html/linux/fedora/4/i386/extras

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

Mais informações sobre os pacotes extras podem ser obtidas em http://fedoraproject.org/wiki/Extras

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.

Servidor

#vi /etc/httpd/conf/httpd.conf <Directory "/var/www/html/linux/"> Options +Indexes </Directory>

No servidor basta essa pequena configuração para os clientes poderem navegar através dos diretorios usando um browser.

Cliente

O nome do arquivo pode ser qualquer um, bastando que tenho .repo no final

vi /etc/yum.repos.d/meu-repositorio.repo [my-base] name=Fedora Core(local) $releasever - $basearch - Base baseurl=http://MEU-SERVIDOR/linux/fedora/$releasever/$basearch/base enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora   [my-updates] name=Fedora Core(local) $releasever - $basearch - Released Updates baseurl=http://MEU-SERVIDOR/linux/fedora/$releasever/$basearch/updates enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora   [my-extras] name=Fedora Extras(local) $releasever - $basearch baseurl=http://MEU-SERVIDOR/linux/fedora/$releasever/$basearch/extras enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras

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.

 

Segue o link abaixo com a matéria original.

http://www.bestlinux.com.br/index.php?option=com_content&task=view&id=4601&Itemid=127&limit=1&limitstart=6

 

 

 

 

 

 

 

 

Próximo >
 
   
     

 

Mambo is Free Software released under the GNU/GPL License.