Red Hat vs Debian: Come trasferire la lista dei pacchetti e installarli

Qualche tempo fa mi sono imbattuto in un problema che con Debian ho sempre risolto in una manciata di secondi con Red Hat ci ho dovuto pensare su un po’…

In Debian mi capita spesso di fare due macchine identiche per un cluster in HA, e dopo che ne ho configurata una preparo l’altra e gli passo la lista dei pacchetti e li installo, come?

Ecco qua, dalla prima Debian estrapolo la lista dei pacchetti con “dpkg” e la metto su un file:

root@debian1:~# dpkg –get-selections > debian1-pkgs

poi bisogna copiare la lista sulla macchina secondaria, solitamente uso scp:

root@debian1:~# scp debian1-pkgs root@debian2:/root/.

ora che abbiamo la lista sulla secondaria, la carichiamo sempre usando “dpkg”:

root@debian2:~# dpkg –set-selections < debian1-pkgs

adesso non ci resta che fargli installare i pacchetti usando “apt”:

root@debian2:~# apt-get dselect-upgrade

Et voilà! Le jeux son fait!

E con Reh Hat?!?

per prima cosa recuperiamo tutti i pacchetti installati su un file, usando “yum” (il gestore dei pacchetto di RedHat et simili), e copiamolo sull’altro nodo:

[root@redhat1 ~]# yum list installed > redhat1-pkg
[root@redhat1 ~]# scp redhat1-pkg root@redhat2:/root/.

ora dovremmo dire a “yum” di installare la lista, ma sfortunatamente ha delle diciture in più che non ci servono, questo che segue è l’esempio di come si presenta il file:

Loaded plugins: rhnplugin, security
Installed Packages
Deployment_Guide-en-US.noarch             5.2-11                       installed
GConf2.i386                               2.14.0-9.el5                 installed
GConf2.x86_64                             2.14.0-9.el5                 installed
GConf2-devel.x86_64                       2.14.0-9.el5                 installed
MAKEDEV.x86_64                            3.23-1.2                     installed
NetworkManager.i386                       1:0.7.0-10.el5_5.2           installed
NetworkManager.x86_64                     1:0.7.0-10.el5_5.2           installed
NetworkManager-glib.i386                  1:0.7.0-10.el5_5.2           installed
NetworkManager-glib.x86_64                1:0.7.0-10.el5_5.2           installed
NetworkManager-gnome.x86_64               1:0.7.0-10.el5_5.2           installed

puliamo tutto con il comando “cut” e  prendiamo la prima parte di ogni riga, per cui il solo nome del pacchetto, e lo diamo in pasto a “yum” direttamente

[root@phbe2pr ~]# yum -y install $(cut -f 1 -d” ” < redhat1-pkg)

Ora inizierà il download e l’installazione di tutto.

Spero che vi sia stato utile :-)

Debian: apt-get update error NO_PUBKEY

Se quando lanciate un apt-get update vi trovate con questo errore:

W: GPG error: http://debian.fastweb.it etch Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXXXXXX
W: GPG error: http://security.debian.org etch/updates Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXXXXXX
W: You may want to run apt-get update to correct these problems

Ecco cosa dovete fare:

gpg –keyserver wwwkeys.eu.pgp.net –recv-keys XXXXXXXXXXXXXXX && apt-key add /root/.gnupg/pubring.gpg && apt-get update

Saluti!