Scarica ALL rpms per un prodotto


8

Ho due macchine CentOS, una scatola 6.3 ( A ) e un'altra CentOS 6.1. ( B )

6.3 box è con connessione internet, 6.1 box è senza connessione internet.

Voglio scaricare TUTTE le dipendenze di un prodotto dalla casella A, quindi copiare quelle n nella casella B e installare il prodotto.

Ci ho provato

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

Quindi ho disabilitato tutti i repository (con --disablerepo), tranne il mio repository, e ho installato il prodotto sullo stesso computer (casella A). Nessun errore

  • yum install *product*

Ora, quando ho copiato questo repository nella casella B e ho provato a installare con lo stesso comando, inizia l'installazione, ma poi dà molti errori come di seguito:

Errore: dipendenza mancante: libldap-2.3.so.0 () (64 bit) è necessario dal pacchetto php-ldap-5.1.6-27.el5_5.3.x86_64 (installato)

Come mai posso ottenere ciò di cui ho bisogno?

AGGIORNARE

Quando ho iniziato a lavorare con l'opzione suggerita da @rkosegi ( --releasever = versione ), mi è stata data una nuova scatola con la stessa versione CentOS 6.1 ( C )

Ho provato i comandi sopra menzionati nella casella C e l'ho copiato repo nella casella B. Tuttavia non è riuscito. Il motivo: sebbene entrambe le caselle siano 6.1, quelle non sono identiche ( uname -r restituisce stringhe diverse).

Yum non scarica le dipendenze, se sono già installate. Quindi il mio repository non conteneva alcune delle dipendenze (incluso OpenJDK). Quindi, quando provo a installare su Box B, fallisce.

Abbastanza frustrante !!!

Ma poi ho trovato il comando ' repotrack ' qui .

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

Ho molti più file che con yum, speriamo che faccia il trucco.

Aggiornerò, una volta provata l'installazione.

AGGIORNARE

Il repotrack di comando non ha funzionato per me. Quando ho provato a installare dal repository creato con 'repotrack', ho riscontrato i seguenti errori:

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

Ho provato a rimuovere questi due file dalla cartella e a ricostruire il repository con 'createrepo'. Ha dato un'altra serie di errori.

Non sono sicuro di quali opzioni ho al momento ...


Non esiste CentOS "6.1". è solo CentOS 6 aggiornato al momento in cui RHEL 6.1 è stato tagliato, probabilmente con molti aggiornamenti da allora.
vonbrand

Risposte:


1

Se devi farlo molto, potresti voler dedicare del tempo alla configurazione di Spacewalk . Automatizzerà la creazione del repository e lo popolerà con i pacchetti appropriati (o, se lo si desidera, tutti). Per non parlare di tutto ciò che fa ...


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

Devi indicare a yum di scaricare dal repository della stessa versione della macchina target (6.1)

Inoltre, è necessario assicurarsi che quella macchina (6.3) che eseguirà il download non abbia già installato alcune dipendenze mancanti sulla macchina di destinazione (6.1)


Ciò non funzionerà necessariamente, in quanto otterrà i pacchetti necessari per l'installazione su quel sistema . Potrebbe benissimo essere un set molto diverso da quello richiesto su una macchina (probabilmente obsoleta) non collegata in rete.
vonbrand

0

Se non riesci a ottenere una macchina "pulita", devi cercare manualmente le parti mancanti con yum provideso

si deve passare attraverso i vostri RPM che sono già in voi pronti contro termine e le loro dipendenze di query: rpm -qp --requires RPM. Se tale elenco presenta qualcosa di nuovo che non fa già parte del repository, è necessario aggiungerlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.