:::: MENU ::::

domingo, 18 de setembro de 2011

Outro dia um amigo veio me perguntar como criar um repositório local, já que ele havia instalado o openSUSE em várias máquinas e precisaria instalar alguns pacotes específicos. Se todas as máquinas fossem buscar os pacotes da Internet, isso resultaria em um grande consumo de banda e tempo.
Mas enfim, vamos fazer esse troço funcionar.

Esquema de um repositório local - Peço desculpas pela feiura da imagem. DIA fails



Apache
Nosso repositório será local e baseado em HTTP. O primeiro passo é configurar o Apache:
zypper in apache2

Com o Apache instalado, vamos criar o alias para o repositório:
vim /etc/apache2/conf.d/repolocal.conf

E dentro do arquivo...
Alias /repo /var/cache/zypp/packages/
<Directory /var/cache/zypp/packages/ >
Options +Indexes +FollowSymLinks
IndexOptions +NameWidth=*
Order allow,deny
Allow from all
</Directory>

Observem o "lê pulê de gatê": Eu não estou utilizando um diretório qualquer para ser o meu repositório de pacotes. Estou utilizando o diretório aonde o zypper faz cache dos seus pacotes instalados. ;)

Tá, blz, mas o que eu ganho com isso?
Vejamos um exemplo na prática:
No laboratório X se faz necessário o uso de um software que o seu rpm é bem grande, por exemplo, o jogo de tiro em 1ª pessoa, o Open Arena (+250MB).
Basta apenas que no servidor, o download seja feito da seguinte maneira:

zypper in -d openarena

Dessa maneira, o zypper irá apenas efetuar o download do pacote e suas dependências e armazenar em cache. O software não será instalado. Legaaaall né? :D


Criando o repositório
Essa é a parte mais ridícula:
createrepo  /var/cache/zypp/packages/

Caso vocês adicionem um novo pacote, não esqueçam de atualizar o repositório:
createrepo --update  /var/cache/zypp/packages/

E só. Tá pronto o repositório.


Configurando clientes
E como eu adiciono?
It's very simple modafoca. Vamos fazer de conta que o nome do servidor é sarajane:
zypper ar http://sarajane/repo "Local"

Antes de qualquer coisa, é necessário que aceite as chaves do novo repositório. Você pode fazer isso na hora do refresh:
zypper refresh

Prontinho meus queridos. Agora é só setar o repositório desejado na hora da instalação do sotfware. Comofas? Assim ó:
zypper in --repo local <pacote>
oouuu
zypper in -r local <pacote>
Praticamente todos as opções do zypper possui um alias. Eu pessoalmente só uso os alias. Preguiça rlz!

Bom fim de domingo o/


0 comentários:

Postar um comentário

Só não vale xingar a mãe ou puxar cabelo nos comentários =)

Posts populares