Come installo e gestisco gli RPM?


85

Ho un ardente desiderio di installare RPM sulla mia installazione di Ubuntu - è possibile? Posso usare Yum - o un altro strumento di gestione dei pacchetti RPM?


Perché? Che tipo di software ti manca che non riesci a trovare in Ubuntu o nei PPA? Conversione di rpms con opere aliene, ma in realtà non è l'opzione migliore.
inkaphink,

Nel mio lavoro di giorno sono un amministratore di sistema Linux e gestisco principalmente macchine Redhat. Adoro Ubuntu in quanto non devo portare il mio lavoro a casa con me, ma alcune cose che Debian usa per la configurazione (principalmente Apache) mi fanno impazzire. Preferisco di gran lunga il modo in cui RH mantiene il software apache. Quindi mantenere due soluzioni di gestione dei pacchetti (yum e aptitude) sembra una soluzione più ideale (se possibile)
Marco Ceppi

Informazioni correlate: wiki rpm e yum tag.
Eliah Kagan,

Risposte:


117

Posso usare Yum

Non lo consiglierei. Probabilmente potresti compilarlo ma non avresti nessun repository di pacchetti compatibili con Ubuntu da gestire.

È possibile convertire i file singoli RPM in DEBs con Alien:

sudo apt-get install alien
sudo alien my_package.rpm
sudo dpkg -i my_package.deb

Nota: potrebbe cambiare il nome del file un po 'più dell'estensione.

Questo non funzionerà per tutto poiché i pacchetti si collegano ad altri pacchetti per soddisfare le dipendenze. Ovviamente Red Hat / Fedora / CentOS usano nomi di pacchetti diversi rispetto a Ubuntu, quindi è probabile che si verifichi un sacco di dolore.

È probabile che se non esista un DEB, starai meglio semplicemente ottenendo il sorgente e compilarlo.


3
se straniero non funziona e si finisce utilizzando direttamente il codice sorgente, è possibile trasformare che in un .deb usando checkinstall (che si trova nel repository Universe, non installato per impostazione predefinita).
ImaginaryRobots,

Checkinstall viene utilizzato al posto di make installed è molto utile avere in giro. Essere in grado di rimuovere i pacchetti è sicuramente un vantaggio!
aperson,

checkinstallè ottimo per mantenere un autocostruito in un ambiente compresso ma ha alcune stranezze che a volte significano che qualcosa che verrà installato attraverso make installnon verrà installato. Lo uso quando posso.
Oli

3
puoi fare alien --install my_package.rpm.
Tshepang,

Ho provato a installare la versione più recente di lftp in questo modo, ma non ha aggiornato le dipendenze, quindi lftp non riesce a iniziare a provare a caricare con:error while loading shared libraries: libreadline.so.7
Gattino accovacciato

15

Dovrai alienfarlo.

sudo apt-get install alien

Questo installerà tutti i pacchetti richiesti. Adesso puoi iniziare a convertire i tuoi file .rpm in pacchetti .deb.

Opzioni disponibili per alien:

Converti package.rpm in package.deb

sudo alien -d package-name.rpm

Converti package.rpmin a package.debe installa il pacchetto generato.

alien -i package-name.rpm

Se si desidera impedire a alien di modificare il numero di versione, utilizzare il comando seguente

alien -k rpm-package-file.rpm

6

La risposta breve è: No!

Se hai un RPM così importante che devi averlo, probabilmente c'è anche un pacchetto Ubuntu; e, in caso contrario, probabilmente vale la pena affrontare il problema di compilarlo dal sorgente nel formato del pacchetto Debian (che usa anche Ubuntu). Ora, ci sono alcuni momenti in cui non puoi semplicemente ricompilare il software (se non è open source è impossibile) e in quel caso puoi usare il alienprogramma. Ma installare da RPM è un po 'come mettere benzina in un'auto diesel: potrebbe funzionare, ma non ne trarrai beneficio a lungo termine!

Per compilare un pacchetto dal sorgente, c'è una guida sul wiki di Ubuntu; esiste anche un programma chiamato checkinstall che può eseguire alcuni trucchi con un albero dei sorgenti predefinito senza impostare istruzioni di compilazione per il pacchetto. Se pensi che qualcun altro possa beneficiare dei programmi che compili, puoi impostare un repository su launchpad e condividere la bontà del pacchetto!


non rispondo davvero alla domanda, quindi -1
Dee,

3

Se hai davvero bisogno di installare RPM sul tuo sistema, dovresti davvero provare a convertirli usando 'alien'.

Tieni presente che per impostazione predefinita 'alien' si intromette con il numero di versione del pacchetto. Se vuoi che il numero di versione rimanga lo stesso, passa l'opzione '-k' durante la conversione.

Non dovresti provare a usare Yum o qualsiasi altro modo di installare gli RPM, come apt-rpm, accanto ai pacchetti DEB esistenti. I sistemi DEB e RPM gestiscono separatamente l'elenco dei software installati e quindi non sanno quali pacchetti sono stati installati in precedenza dall'altro sistema. Se, ad esempio, provi a installare un'applicazione con interfaccia grafica con un sistema di gestione dei pacchetti basato su RPM, proverà a installare i componenti di sistema vitali stessi, perché pensa che non siano ancora installati. Ciò causerà un errore orribile dell'installazione o sovrascriverà i file di sistema vitali.


3

C'è un gestore di pacchetti GUI chiamato SmartPM su Repos, in grado di gestire .deb AND .RPM. Canonical ha contribuito a questo progetto fino a novembre 2009.

La home page dei progetti è qui https://github.com/smartpm/smart


Benvenuto in Ask Ubuntu! Raccomando di modificare questa risposta per espanderla con dettagli specifici su come utilizzare questa operazione. (Vedi anche Come posso scrivere una buona risposta? Per consigli generali su quali tipi di risposte sono considerate più preziose su Ask Ubuntu.)
David Foerster,

2

Alien è uno strumento che converte da un formato (.deb o .rpm) a un altro (.deb, .rpm o tarball)

Si sconsiglia l'uso di Alien nella conversione da .deb a .rpm, perfetto per la conversione da .deb a tarball

Sebbene Alien tenti di conservare i metadati durante la conversione, ma avrà comunque problemi con metadati e dipendenze, renderà il pacchetto meno affidabile e quindi si verificheranno conflitti durante l'aggiunta o la rimozione di pacchetti di distribuzione in futuro.


2

L'opzione più corta è

sudo alien -i -k packagename.rpm

Non hai un alieno? Prendine uno!

sudo apt-get install alien

Alien convertirà il pacchetto rpm in pacchetto deb, l'opzione -i indica l'installazione del pacchetto convertito dopo la conversione e l'opzione -k garantisce che la versione non sia +1 dopo la conversione.


2

Segui queste istruzioni:

alien -k avg71lms-r30-a0782.i386.rpm

Ora dovresti avere un avg71lms-r30-a0782.i386.debfile.

Per installare il file .deb:

dpkg -i avg71lms-r30-a0782.i386.deb

Se non usi l' -kopzione dovresti vedere il avg71lms_r30-1_i386.debfile la differenza è che aggiungerà 1.

Installa alien in Ubuntu:

sudo apt-get install alien

È possibile controllare la sezione precedente per le opzioni disponibili


1

Con alien posso semplicemente convertire il file .rpm in un file .deb e installarlo semplicemente.

Alien è disponibile nei normali repository Debian, quindi possiamo installarlo in questo modo:

sudo apt-get install alien

Per convertirlo in un pacchetto .deb, eseguiamo semplicemente

alien *.rpm

Molto probabilmente vorresti usare alcune bandiere con alieni. Almeno ti avvertirà di non convertire gli script senza specificare esplicitamente --scripts(o -c)
Randall,


0

Ecco una GUI per Alien (alien è un'applicazione per convertire rpm in deb)

http://code.google.com/p/foxoman/wiki/PackageConverter


-1 Che cos'è "Alien" e in che modo è correlato all'installazione degli RPM in Ubuntu?
David Foerster,

1
@DavidFoerster alien è un'applicazione per convertire rpm in deb
Anwar

2
Non dirmelo, modifica la tua risposta per dire alle persone che potrebbero volerne beneficiare. Inoltre consiglio di modificare questa risposta per espanderla con dettagli specifici su come eseguire questa operazione. (Vedi anche Come posso scrivere una buona risposta? Per consigli generali su quali tipi di risposte sono considerate più preziose su Ask Ubuntu.)
David Foerster,
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.