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 ...
fonte
Respostas:
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 ...
fonte
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)
fonte
Se você não conseguir uma máquina "limpa", precisará procurar manualmente as peças ausentes com
yum provides
ouvocê 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.fonte