Home > Comandi Console, Debian, Guide, Installazione, Linux, Pacchetti, Ubuntu > Convertire pacchetti rpm e deb

Convertire pacchetti rpm e deb

15 marzo 2008

Package

Com’è risaputo Ubuntu è una distribuzione basata su Debian e come tale impiega pacchetti con estensione deb, quelli che apt e synaptic scaricano dai repository ufficiali. Altre distribuzioni invece utilizzano pacchetti in formato rpm e può capitare talvolta che alcuni software vengano pubblicati solo in formato rpm anziché deb. Vediamo come convertire i pacchetti da deb a rpm.

Installazione di alienLavorando esclusivamente da un terminale installiamo il pacchetto alien e tutti i pacchetti da cui dipende, digitando:

sudo apt-get install alien

Al termine dell’installazione per convertire da formato rpm a formato deb è sufficiente il comando:

sudo alien -d nome_del_file.rpm

Ad esempio:

sudo alien -d iSeriesAccess-5.4.0-1.4.i386.rpm

Conversione di un rpm in deb

Convertirà il pacchetto iSeriesAccess-5.4.0-1.4.i386.rpm posto nella cartella corrente, nel formato deb. Il file originale non verrà modificato ma verrà generato un nuovo archivio.

Possiamo notare che il numero minore di versione sarà incrementato di 1, quindi il file generato sarà iseriesaccess-5.4.0-2.4_i386 anziché 1.4. Per evitare questo comportamento predefinito basterà aggiungere il parametro -k nella conversione:

sudo alien -d -k iSeriesAccess-5.4.0-1.4.i386.rpm

Gli avvisi generati indicano che non saranno convertiti gli script di pre-installazione, post-installazione e pre-rimozione. Si tratta del comportamento predefinito poiché il pacchetto, studiato per una distribuzione diversa, potrebbe eliminare o modificare files utilizzati differentemente su Ubuntu. Potrebbe quindi capitare che un pacchetto dopo essere installato manchi di qualche configurazione e ciò andrebbe effettuata a mano.

In maniera analoga sarà possibile convertire un pacchetto da deb a rpm con:

sudo alien -r nome_del_file.deb

Generando quindi un nuovo file rpm.

Sebbene sia possibile installare files rpm anche senza convertirli si raccomanda comunque di convertirli, ciò consentirà l’installazione e la disinstallazione come tutti gli altri pacchetti e apt si occuperà di non sovrascrivere o eliminare files usati da altri pacchetti.

  1. Pierino
    17 luglio 2008 alle 16:17

    PS dimenticavo:
    BELLA GUIDA GRAZIE

  2. 17 luglio 2008 alle 20:16

    dovrebbe crearlo nella directory in cui ti trovi quando esegui il comando
    altrimenti fai una ricerca del file con Risorse -> Cerca file

    ciao

  3. Danilo Cattaneo
    16 dicembre 2008 alle 22:39

    Ciao a tutti.
    Sono alle prese con la mia odissea personale: la Canon Pixma iP1600 …
    Con Ubuntu 8.04 funziona seguendo le guide del forum e del wiki, poi non funziona più; stesso con Ubuntu 8.10.
    Vi posto le risposte del terminale, secondo me non genero adeguatamente i file .deb.

    danilo@danilo-desktop:~$ tar -zvxf iP2200_Linux_260.tar.gz
    cnijfilter-common-2.60-1.i386.rpm
    cnijfilter-common-2.60-1.src.rpm
    cnijfilter-ip2200-2.60-1.i386.rpm
    cnijfilter-ip2200-lprng-2.60-1.i386.rpm
    danilo@danilo-desktop:~$ sudo alien –to-deb cnijfilter-common-*.i386.rpm
    cnijfilter-common_2.60-2_i386.deb generated
    danilo@danilo-desktop:~$ sudo alien –to-deb cnijfilter-ip2200-*.i386.rpm
    Warning: Skipping conversion of scripts in package cnijfilter-ip2200: postinst postrm
    Warning: Use the –scripts parameter to include the scripts.
    cnijfilter-ip2200_2.60-2_i386.deb generated
    Warning: Skipping conversion of scripts in package cnijfilter-ip2200-lprng: postrm
    Warning: Use the –scripts parameter to include the scripts.
    cnijfilter-ip2200-lprng_2.60-2_i386.deb generated
    danilo@danilo-desktop:~$

    Che ne dite?

  4. 18 dicembre 2008 alle 20:45

    ti sta dicendo non sta generando gli scripts post-installazione e in genere e` un bene perche` non sai che danni potrebbero fare

    tuttavia se non funziona puoi provare a far generare gli scripts aggiungendo –scripts ad alien oppure leggerti gli script di installazione dentro l’rpm e eseguire i comandi che farebbe dopo l’installazione

  5. ThErOcKsHoW
    07 dicembre 2010 alle 17:48

    Ciao ho un problema ho installato ubuntu 10.10 (x64) e ho usato alien per “alienare” i seguenti rpm:
    cnijfilter-common-2.60-1.i386.rpm
    cnijfilter-common-2.60-1.src.rpm
    cnijfilter-ip2200-2.60-1.i386.rpm
    cnijfilter-ip2200-lprng-2.60-1.i386.rpm

    veniamo al problema quando lancio il comando alien mi restituisce:
    root@ALTAIR-TOSH:/home/altair/Scaricati# alien –to-deb –scripts *i386.rpm
    cnijfilter-common_2.60-2_i386.deb generated
    cnijfilter-ip2200_2.60-2_i386.deb generated
    Use of uninitialized value $postinst in length at /usr/share/perl5/Alien/Package/Deb.pm line 741.
    cnijfilter-ip2200-lprng_2.60-2_i386.deb generated

    questo è solo il primo problema, al momento di lanciare l’installazione mi restituisce:
    root@ALTAIR-TOSH:/home/altair/Scaricati# dpkg -i *.deb
    dpkg: errore nell’elaborare *.deb (–install):
    impossibile accedere all’archivio: Nessun file o directory
    Si sono verificati degli errori nell’elaborazione:
    *.deb
    Ora le domande sono tre: 1-Come mai non genera i file *.deb? 2-Cos’è quell’errore notificato da alien? 3-Tutto questo è colpa dell’architettura?

    • 07 dicembre 2010 alle 19:55

      ciao

      alien dice di aver generato i deb, anche se effettivamente dpkg dice che non ci sono.
      ci sono cartelle con i nomi di quei pacchetti dentro Scaricati?

  6. Speppa
    10 settembre 2011 alle 13:21

    “per convertire da formato rpm a formato deb è sufficiente il comando: sudo alien -d nome_del_file.rpm”

    “sarà possibile convertire un pacchetto da rpm a deb con: sudo alien -r nome_del_file.deb”

    sono io o c’è qualcosa che non va? l’ultimo dovrebbe essere da deb a rpm, non viceversa.

    • 24 settembre 2011 alle 10:03

      hai ragione Speppa, c’era un errore di battitura.
      ho corretto, grazie

Comment pages
  1. No trackbacks yet.
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: