GNU/Linux >> Linux Esercitazione >  >> Linux

Come convertire i pacchetti Linux con Alien

Gli sviluppatori e i manutentori dei pacchetti potrebbero non creare sempre pacchetti per tutte le distribuzioni Linux. Alcuni pacchetti potrebbero essere disponibili solo per una piattaforma Linux specifica. In questi casi, puoi utilizzare strumenti di conversione dei pacchetti come Alien per convertire facilmente i pacchetti Linux in diversi formati. In questa guida vedremo cos'è Alien, come installare Alien in vari sistemi operativi Linux e poi come convertire un pacchetto Linux da un formato all'altro utilizzando il convertitore di pacchetti Alien.

Cos'è Alien?

Alien è un convertitore di pacchetti da riga di comando che converte tra diversi formati di pacchetto Linux come Red Hat rpm, Debian deb, Stampede slp, Slackware tgz e Solaris pkg ecc.

Alien attualmente supporta i seguenti formati di pacchetto:

  • Base standard Linux (LSB),
  • Conforme a LSB .rpm pacchetti,
  • .deb ,
  • Stampede (.slp ),
  • Solaris (.pkg )
  • Slackware (.tgz , .txz , .tbz , .tlz ).

I programmi alien vengono in soccorso quando un pacchetto specifico o una versione specifica di un pacchetto non è disponibile per la tua distribuzione Linux. Puoi convertire facilmente tale pacchetto nel tuo formato di pacchetto preferito utilizzando Alien e installarlo sul tuo sistema.

Alien non è solo un convertitore di pacchetti, può anche installare automaticamente i pacchetti generati dopo la conversione del pacchetto. Può anche avere la possibilità di convertire gli script che devono essere eseguiti quando il pacchetto viene installato. Devi stare attento quando usi questa opzione. Dovresti esaminare attentamente gli script e controllare cosa fanno questi script prima di utilizzare questa opzione.

Avviso: Alien non deve essere utilizzato per convertire importanti pacchetti di sistema, come init , libc , che sono necessari per il funzionamento del tuo sistema Linux. I pacchetti di sistema progettati specificamente per una particolare distribuzione Linux non possono essere utilizzati in modo intercambiabile e potrebbero danneggiare il tuo sistema se tenti di installarli con la forza.

Installa Alien in Linux

Il convertitore di pacchetti Alien è disponibile nei repository predefiniti delle diffuse distribuzioni Linux.

Per installare Alien in Alpine Linux, esegui:

$ sudo apk add alien

Installa Alien in Debian, Ubuntu LTS, Linux Mint, Pop!_OS:

$ sudo apt install alien

Installa Alien in Fedora:

$ sudo dnf install alien

Installa Alien in CentOS 8, RHEL 8, AlmaLinux 8, Rocky Linux 8:

$ sudo dnf install epel-release
$ sudo dnf install alien

Convertire i pacchetti Linux utilizzando Alien

La sintassi generale per convertire i pacchetti Linux utilizzando Alien da un formato all'altro è:

alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [options] file [...]

La conversione dei pacchetti con Alien è molto semplice!

Per convertire un .rpm pacchetto in un .deb pacchetto, esegui semplicemente alien come root o sudo utente:

$ sudo alien --to-deb /path/to/file.rpm

Allo stesso modo, per convertire .deb file in .rpm , esegui:

$ sudo alien --to-rpm /path/to/file.deb

Ecco l'elenco dei flag supportati per convertire i pacchetti Linux in diversi formati.

  • -d , --to-deb - Crea pacchetti Debian. Questa è l'impostazione predefinita.
  • -r , --to-rpm - Crea pacchetti rpm.
  • -l , --to-lsb - Crea un pacchetto LSB.
  • -t , --to-tgz - Crea pacchetti tgz.
  • --to-slp - Crea pacchetti slp.
  • -p , --to-pkg - Crea pacchetti Solaris pkg.

Vediamo alcuni esempi. Ai fini di questa guida, utilizzerò hello world .rpm pacchetto. Tieni presente che hello il pacchetto è incluso in quasi tutte le distribuzioni Linux. Quindi non è necessario convertirlo. Lo sto usando solo a scopo dimostrativo.

Convertire i pacchetti RPM in pacchetti DEB utilizzando Alien

Ora convertiamo il pacchetto Hello rpm in .deb formattare utilizzando Alien come di seguito:

$ sudo alien --to-deb hello-2.10-5.fc34.x86_64.rpm

O a breve,

$ sudo alien -d hello-2.10-5.fc34.x86_64.rpm

Questo convertirà il dato .rpm pacchetto in .deb pacchetto e salva il pacchetto generato nella directory corrente.

Avviso: Se non viene specificato alcun flag, Alien convertirà i pacchetti in .deb formato per impostazione predefinita.

Puoi installare il pacchetto generato utilizzando il gestore pacchetti predefinito.

Possiamo anche convertire più pacchetti alla volta. Il comando seguente convertirà i pacchetti forniti (hello &vim) in .deb formato.

$ sudo alien hello-2.10-7.x86_64.rpm vim-enhanced-8.2.2637-1.fc34.x86_64.rpm 

Convertire i pacchetti DEB in pacchetti RPM utilizzando Alien

Allo stesso modo, possiamo convertire il .deb pacchetto in .rpm file del pacchetto come di seguito:

$ sudo alien --to-rpm hello-2.10-5.fc34.x86_64.rpm

O a breve,

$ sudo alien -r hello-2.10-5.fc34.x86_64.rpm

Installa i pacchetti automaticamente

A volte, potresti voler installare automaticamente i pacchetti generati.

Per convertire un pacchetto e installarlo automaticamente con Alien, usa -i bandiera.

$ sudo alien -d -i hello-2.10-7.x86_64.rpm 

Questo comando convertirà il pacchetto .rpm fornito nel formato .deb, quindi lo installerà e infine rimuoverà il pacchetto generato.

Risultato di esempio:

	dpkg --no-force-overwrite -i hello_2.10-8_amd64.deb
Selecting previously unselected package hello.
(Reading database ... 52712 files and directories currently installed.)
Preparing to unpack hello_2.10-8_amd64.deb ...
Unpacking hello (2.10-8) ...
Setting up hello (2.10-8) ...
Processing triggers for man-db (2.9.4-2) ...

Converti in più formati di pacchetto

Alien è in grado di creare più formati di file di pacchetto da un unico file di pacchetto. L'esempio seguente mostra come creare .deb e .tgz pacchetti da un .rpm file.

$ sudo alien --to-deb --to-tgz hello-2.10-7.x86_64.rpm

Mantieni i numeri di versione

Per impostazione predefinita, Alien ne aggiunge uno al numero di versione secondaria di ogni pacchetto che converte. Ad esempio, se il numero di versione è 1.2-3, Alien ne aggiungerà uno alla versione minore e lo cambierà in 1.2-4.

Dai un'occhiata al seguente output del comando.

$ sudo alien --to-deb hello-2.10-7.x86_64.rpm 
hello_2.10-8_amd64.deb generated

La versione del pacchetto sorgente nel comando precedente è 2.10.7. Dopo la conversione del pacchetto, Alien ha modificato la versione minore dalla 7 alla 8 nel file di destinazione.

Se non vuoi che Alien modifichi il numero di versione, usa -k , --keep-version flag per mantenere il numero di versione originale nel pacchetto generato.

$ sudo alien -k --to-deb hello-2.10-7.x86_64.rpm 
hello_2.10-7_amd64.deb generated

Come vedi sopra, il file di origine e di destinazione hanno lo stesso numero di versione.

Ricevere aiuto

Per visualizzare la breve descrizione di Alien e tutte le opzioni generali supportate, fare riferimento alla sezione della guida di Alien eseguendo il comando seguente:

$ alien --help

Inoltre, fare riferimento alla pagina del manuale.

$ man alien

Conclusione

Non darò alcuna garanzia sull'accuratezza del convertitore Alien. Ho testato solo alcuni pacchetti come Vim, Hello world e Nano. Per quanto ho testato, Alien funziona perfettamente per me in Debian 11 bullseye.

Probabilmente non funzionerà per alcuni pacchetti che dipendono da un gran numero di dipendenze. Il risultato può variare da confezione a confezione.

In questi casi, potrebbe essere necessario crearli manualmente dal sorgente o utilizzando altre applicazioni affidabili come CheckInstall o Fpm . Ti suggerisco di esaminare le seguenti risorse per imparare a creare pacchetti dal sorgente.

  • Come creare pacchetti Debian dal sorgente
  • Come creare pacchetti dal sorgente utilizzando CheckInstall
  • Come creare facilmente pacchetti Linux per più piattaforme
  • Ricrea pacchetti binari Debian già installati su un sistema
  • Come convertire i pacchetti DEB in pacchetti Arch Linux

Spero che questo aiuti.


Linux
  1. Gestione pacchetti Linux con apt

  2. Come creare pacchetti rpm

  3. Come rimuovere i pacchetti orfani su CentOS Linux

  4. Come utilizzare XBPS Package Manager su Void Linux

  5. Come creare un pacchetto RPM Linux

Come elencare i pacchetti installati in Linux

Come proteggere i server Linux con SE Linux

Come convertire una pagina Web in PDF in Linux

Come eseguire il downgrade dei pacchetti su un sistema Linux:la guida definitiva

Come elencare i pacchetti installati in Linux utilizzando la gestione dei pacchetti

Come eseguire i pacchetti .run e .bin nel sistema Linux