Faça o download de todos os rpms de um produto

8

Eu tenho duas máquinas CentOS, uma caixa 6.3 ( A ) e outro CentOS 6.1. ( B )

6.3 caixa é com conexão à internet, caixa 6.1 é sem conexão com a internet.

Quero fazer o download de TODAS as dependências de um produto no Box A, depois copiá-las na caixa B e instalar o produto.

Eu tentei com

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*'
cd *~/downloadrepo*
createrepo .

Então desabilitei todos os repos (com --disablerepo), exceto meu repo, e instalei o produto na mesma máquina (Caixa A). Nenhum erro.

  • yum install *product*

Agora, quando copiei esse repositório para o Box B e tentei instalar com o mesmo comando, ele começa a instalar, mas depois dá muitos erros, como abaixo:

Error: Missing Dependency: libldap-2.3.so.0()(64bit) is needed by package php-ldap-5.1.6-27.el5_5.3.x86_64 (installed)

Como existe alguma maneira de conseguir o que preciso?

UPDATE

Quando comecei a trabalhar com a opção sugerida por @rkosegi ( - releasever = version ), recebi uma nova caixa com a mesma versão CentOS 6.1 ( C )

Eu tentei os comandos acima mencionados na Caixa C e copiei o repo para o Box B. Ainda assim, ele falhou. O motivo: embora as duas caixas sejam 6.1, elas não são idênticas ( uname -r retorna strings diferentes).

O Yum não baixa as dependências, se elas já estiverem instaladas. Então, meu repositório não contém algumas das dependências (incluindo o OpenJDK). Então, quando tento instalar no Box B, ele falha.

Bastante frustrante !!!

Mas, em seguida, encontrei o comando ' repotrack ' aqui .

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .

Eu tenho muito mais arquivos do que com o yum, espero que ele faça o truque.

Vou atualizar, assim que eu tentar instalar.

UPDATE

O repotrack de comandos não funcionou para mim. Quando tentei instalar a partir do repositório criado com o 'repotrack', recebi os seguintes erros:

Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
       Requires: perl = 4:5.10.1-127.el6
       Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
       Requires: audit-libs = 2.2-2.el6
       Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           audit-libs = 2.1.3-3.el6

Eu tentei remover esses dois arquivos da pasta e reconstruir o repositório com 'createrepo'. Deu outro conjunto de erros.

Não tenho certeza das opções que tenho no momento ...

    
por Atul Acharya 16.10.2012 / 11:06

3 respostas

1

Se você tiver que fazer isso muito, convém reservar um tempo para Spacewalk . Ele irá automatizar a criação do repositório e preenchê-lo com os pacotes apropriados (ou, se você quiser, todos eles). Sem mencionar tudo o mais que faz ...

    
por 16.02.2013 / 03:29
0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Você precisa instruir o yum para fazer o download do repositório da mesma versão como máquina de destino (6.1)

Além disso, certifique-se de que a máquina (6.3) que fará o download não tenha instalado algumas das dependências que estão faltando na máquina de destino (6.1)

    
por 16.10.2012 / 11:16
0

Se você não conseguir uma máquina "limpa", terá que procurar manualmente as partes que faltam com yum provides ou

você tem que passar pelos seus rpms que já estão em seu repositório e consultar suas dependências: %código%. Se essa lista mostrar algo novo que ainda não faz parte do seu repo, você precisa adicioná-lo.

    
por 17.12.2012 / 23:15