Come molti di voi sanno i tipi di pacchetti più utilizzati sono deb e rpm.
deb è l’estensione del formato dei pacchetti software Debian ed il nome usato per i pacchetti binari di questo tipo.
I pacchetti Debian sono archivi standard Unix ar che includono due archivi tar compressi con gzip, bzip o lzmaed; uno che contiene le informazioni di controllo e un altro che contiene i dati.
Il programma più utilizzato per la gestione di questi pacchetti è dpkg, comunemente utilizzato attraverso altri programmi come apt/aptitude o Gdebi.
RPM Package Manager (RPM) è un sistema di gestione dei pacchetti. Il nome RPM si riferisce in vario modo al formato dei file .rpm, i file confezionati in questo formato, il software in questi file, e il gestore dei pacchetti stesso. RPM è destinato principalmente per GNU/Linux, il formato dei file è il formato base dei pacchetti per la Linux Standard Base.
Originariamente sviluppato da Ethan “E$” Cohen a Red Hat per Red Hat Linux, RPM è ora utilizzato da molte distribuzioni GNU/Linux. E’ stato portato su altri sistemi operativi, come Novell NetWare e IBM AIX.
I pacchetti Debian possono essere convertiti in altri pacchetti e viceversa utilizzandoalien
Alien è un programma che converte tra i rpm, dpkg, Stampede slp, Slackware e formati di file tgz. Se si vuole usare un pacchetto proveniente da un’altra distribuzione da quella che avete installato sul vostro sistema, potete utilizzare alien per convertirlo nel formato preferito e installarlo.
Nonostante il gran numero di versioni, alien è ancora (e probabilmente sempre lo sarà) un software piuttosto sperimentale. E’ stato usato da molte persone per molti anni, ma ci sono ancora molti bug e limitazioni.
Alien non deve essere usato per sostituire pacchetti di sistema importanti, come sysvinit, le librerie condivise, o altre cose che sono essenziali per il funzionamento del sistema. Molti di questi pacchetti sono impostati in modo diverso tra Debian e Red Hat, e pacchetti di diverse distribuzioni non possono essere usati in modo intercambiabile. In generale, se non è possibile disinstallare il pacchetto senza rompere il vostro sistema, non cercate di sostituirlo con una versione aliena.
Vediamo qualche esempio.
Da RPM a DEB
Come prima cosa installate alien
sulla vostra Debian o Ubuntu con il comando:
# sudo aptitude install alien |
Ora diciamo che avete nella directory /tmp il pacchetto mioprogramma.rpm, che non è presente su Debian o Ubuntu e lo volete convertire, semplicemente date il comando
sudo alien /tmp/myprogram-1.10-2.i386.rpm myprogram-1.10-3.i386.deb generated |
Ora troverete in /tmp il file miprogramma.deb che potete installare con dpkg:
dpkg -i /tmp/miprogramma.deb |
È possibile saltare la fase di installazione, dicendo con alien
di installare direttamente con l’opzione -i
sudo alien -i /tmp/myprogram.rpm |
Da DEB a RPM
Basta usare alient -r
per convertire un file deb in un file rpm, ad esempio:
sudo alien -r pytube_0.0.8.1-1_all.deb pytube-0.0.8.1-2.noarch.rpm generated |
Una volta che il file rpm è generato, è possibile installarlo su Red Hat, Fedora o qualunque distribuzione basata su rpm.
Frontend per Alien
Package Converter, È il front-end grafico per Alien è intuitivo e facile da usare
Package Converter è scritto con Realbasic ed ha pacchetti scaricabili in BIN, RPM e DEB. E naturalmente richiede Alien per funzionare.
Popular Posts:
- None Found
Hi,
while converting from deb to rpm, sometimes it becomes useful (or unavoidable) to convert pre and post install scripts, as well, with -c (–scripts) option. As stated in man pages it’s quite a dangerous option, therefore I think IMVHO a good practice should be to inspect the install scripts content, before converting/installing the deb package(s). (e.g: It happened that some binaries into a file.deb had wrong file permissions, along with directory trees: the install scripts were fixing the issue, but if one missed them during the conversion…).
It should be interesting to know what your opinion about the aforementioned option.
Thanks and of course a big thanks for the very nice article, as usual!
Richiede i pacchetti gcc e make e tutto il Perl.