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.