GNU/Linux >> Linux Esercitazione >  >> Linux

Come convertire da RPM a DEB e DEB a RPM utilizzando Alien

Come sicuramente saprai, ci sono molti modi per installare software in Linux:usare il sistema di gestione dei pacchetti fornito dalla tua distribuzione (aptitude, yum o zypper, per citare alcuni esempi), compilare dal sorgente (anche se in qualche modo raro di questi tempi, era l'unico metodo disponibile durante i primi giorni di Linux) o utilizzava uno strumento di basso livello come dpkg o rpm con .deb e .rpm rispettivamente pacchetti precompilati e autonomi.

In questo articolo ti presenteremo alieno , uno strumento che converte tra diversi formati di pacchetto Linux, con .rpm su .deb (e viceversa) essendo l'uso più comune.

Questo strumento, anche quando il suo autore non lo gestisce più e afferma nel suo sito Web che alien probabilmente rimarrà sempre in stato sperimentale, può tornare utile se hai bisogno di un certo tipo di pacchetto ma puoi trovare quel programma solo in un altro formato di pacchetto.

Ad esempio, alieno mi ha salvato la giornata una volta mentre stavo cercando un .deb driver per una getto d'inchiostro stampante e non è riuscito a trovarne:il produttore ha fornito solo un .rpm pacchetto. Ho installato alien, convertito il pacchetto e in poco tempo sono stato in grado di utilizzare la mia stampante senza problemi.

Detto questo, dobbiamo chiarire che questa utilità non dovrebbe essere utilizzata per sostituire importanti file e librerie di sistema poiché sono impostati in modo diverso tra le distribuzioni. Utilizzare alien solo come ultima risorsa se i metodi di installazione suggeriti all'inizio di questo articolo sono fuori questione per il programma richiesto.

Ultimo ma non meno importante, dobbiamo notare che anche se utilizzeremo CentOS e Debian in questo articolo, è noto che alien funziona anche in Slackware e anche in Solaris , oltre alle prime due distribuzioni e alle rispettive famiglie.

Passaggio 1:installazione di Alien e dipendenze

Per installare alieno in CentOS /RHEL 7 , dovrai abilitare EPEL e il Nux Dextop (sì, sono i repository Dextop, non Desktop), in quest'ordine:

# yum install epel-release
# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

L'ultima versione del pacchetto che abilita questo repository è attualmente 0.5 (pubblicato il 10 agosto 2015 ). Dovresti controllare http://li.nux.ro/download/nux/dextop/el7/x86_64/ per vedere se esiste una versione più recente prima di procedere oltre:

# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

quindi fallo,

# yum update && yum install alien

In Fedora , dovrai solo eseguire l'ultimo comando.

In Debian e derivati, fai semplicemente:

# aptitude install alien

Fase 2:conversione da .deb a .rpm Package

Per questo test abbiamo scelto dateutils , che fornisce una serie di data e tempo utilities per gestire grandi quantità di dati finanziari. Scaricheremo il .deb pacchetto sul nostro CentOS 7 box, convertilo in .rpm e installalo:

# cat /etc/centos-release
# wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
# alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

Importante :(Nota come, per impostazione predefinita, alien aumenta il numero minore di versione del pacchetto di destinazione. Se vuoi ignorare questo comportamento, aggiungi il –keep-version bandiera).

Se proviamo a installare il pacchetto subito, riscontreremo un piccolo problema:

# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

Per risolvere questo problema, abiliteremo il repository di test epel e installa rpmrebuild utility per modificare le impostazioni del pacchetto da ricostruire:

# yum --enablerepo=epel-testing install rpmrebuild

Quindi corri,

# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

Che aprirà il tuo editor di testo predefinito. Vai a %files sezione ed elimina le righe che fanno riferimento alle directory menzionate nel messaggio di errore, quindi salva il file ed esci:

Quando esci il file ti verrà chiesto di continuare con la ricostruzione. Se scegli S , il file verrà ricostruito nella directory specificata (diversa dalla directory di lavoro corrente):

# rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

Ora puoi procedere con l'installazione del pacchetto e verificare come al solito:

# rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
# rpm -qa | grep dateutils

Infine, puoi elencare i singoli strumenti inclusi in dateutils e in alternativa controlla le rispettive pagine man:

# ls -l /usr/bin | grep dateutils

Fase 3:conversione da .rpm a .deb Package

In questa sezione illustreremo come convertire da .rpm su .deb . In una Debian Wheezy a 32 bit box, scarichiamo il .rpm pacchetto per zsh shell dal sistema operativo CentOS 6 deposito. Nota che questa shell non è disponibile per impostazione predefinita in Debian e nei derivati.

# cat /etc/shells
# lsb_release -a | tail -n 4
# wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
# alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

Puoi tranquillamente ignorare i messaggi su una firma mancante:

Dopo alcuni istanti, il .deb il file dovrebbe essere stato generato ed essere pronto per l'installazione:

# dpkg -i zsh_4.3.11-5_i386.deb

Dopo l'installazione, puoi verificare che zsh viene aggiunto all'elenco delle shell valide:

# cat /etc/shells

Riepilogo

In questo articolo abbiamo spiegato come convertire da .rpm a .deb e viceversa per installare i pacchetti come ultima risorsa quando tali programmi non sono disponibili nei repository o come codice sorgente distribuibile. Ti consigliamo di aggiungere questo articolo ai segnalibri perché tutti noi avremo bisogno di alieni prima o poi.

Sentiti libero di condividere le tue opinioni su questo articolo utilizzando il modulo sottostante.


Linux
  1. Come visualizzare informazioni aggiuntive sul pacchetto utilizzando yum e yumdb – RedHat Linux

  2. Come creare un pacchetto RPM Linux

  3. Come elencare, caricare e scaricare file da un server SFTP utilizzando golang

  4. Come creare un pacchetto .deb da Github?

  5. Debian:come installare o rimuovere i pacchetti DEB usando dpkg

Come convertire i pacchetti tra .deb e .rpm

Come installare e gestire i pacchetti su CentOS utilizzando RPM

Come convertire i pacchetti Linux con Alien

Come creare un pacchetto RPM da un Tarball

Come installare Java 8 JRE e JDK dal file RPM su Linux

Come visualizzare ed estrarre file da pacchetti rpm, deb, depot e msi