Baixe TODOS os rpms para um produto

8

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

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

Desejo baixar TODAS as dependências de um produto na Caixa A, copiá-las na Caixa B e instalar o produto.

Eu tentei com

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

Desativei todos os repositórios (com --disablerepo), exceto meu repositório, e instalei o produto na mesma máquina (Caixa A). Sem erros.

  • yum install *product*

Agora, quando copiei este repositório para a Caixa B e tentei instalar com o mesmo comando, ele inicia a instalação, mas gera muitos erros, como abaixo:

Erro: Dependência ausente: libldap-2.3.so.0 () (64 bits) é necessária pelo pacote php-ldap-5.1.6-27.el5_5.3.x86_64 (instalado)

Como existe alguma maneira de conseguir o que preciso?

ATUALIZAR

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

Tentei os comandos mencionados acima na Caixa C e copiei-o para a Caixa B. Ainda assim, falhou. O motivo: embora ambas as caixas sejam 6.1, elas não são idênticas ( uname -r retorna cadeias diferentes).

O Yum não baixa dependências, se elas já estiverem instaladas. Portanto, meu repositório não continha algumas das dependências (incluindo o OpenJDK). Então, quando tento instalar na Caixa B, ele falha.

Muito frustrante !!!

Mas então eu 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 funcione.

Vou atualizar, uma vez que tente instalar.

ATUALIZAR

O comando repotrack não funcionou para mim. Quando tentei instalar a partir do repositório criado com 'repotrack', obtive 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

Tentei remover esses dois arquivos da pasta e reconstruir o repositório com 'createrepo'. Isso deu outro conjunto de erros.

Não tenho certeza de quais opções eu tenho no momento ...

Atul Acharya
fonte
Não "6.1" CentOS. é apenas o CentOS 6 atualizado até o momento em que o RHEL 6.1 foi cortado, provavelmente com muitas atualizações desde então.
vonbrand

Respostas:

1

Se você precisar fazer muito isso, convém reservar um tempo para configurar o 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 que faz ...

Michael Hampton
fonte
0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

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

Além disso, verifique se a máquina (6.3) que executará o download ainda não instalou algumas das dependências ausentes na máquina de destino (6.1)

rkosegi
fonte
Isso não funcionará necessariamente, pois obterá os pacotes necessários para instalar nesse sistema . Esse poderia muito bem ser um conjunto muito diferente daquele necessário em uma máquina (provavelmente desatualizada) sem rede.
vonbrand
0

Se você não conseguir uma máquina "limpa", precisará procurar manualmente as peças ausentes com yum providesou

você tem que ir através de seus rpms que já estão em você repo e consulta suas dependências: rpm -qp --requires RPM. Se essa lista exibir algo novo que ainda não faz parte do seu repositório, você deverá adicioná-lo.

Nils
fonte