Vývojáři a správci balíčků nemusí vždy vytvářet balíčky pro všechny distribuce Linuxu. Některé balíčky mohou být dostupné pouze pro konkrétní platformu Linux. V takových případech můžete použít nástroje pro převod balíčků, jako je Alien snadno převádět balíčky Linuxu do různých formátů. V této příručce uvidíme, co je Alien, jak nainstalovat Alien v různých operačních systémech Linux a jak převést linuxový balíček z jednoho formátu do druhého pomocí Alien package converter.
Co je mimozemšťan?
Alien je konvertor balíčků příkazového řádku, který převádí mezi různými formáty balíčků pro Linux, jako je Red Hat rpm, Debian deb, Stampede slp, Slackware tgz a Solaris pkg atd.
Alien aktuálně podporuje následující formáty balíčků:
- Linux Standard Base (LSB),
- V souladu s LSB
.rpm
balíčky, .deb
,- Stampede (
.slp
), - Solaris (
.pkg
) - Slackware (
.tgz
,.txz
,.tbz
, .tlz
).
Mimozemské programy přicházejí na pomoc, když konkrétní balíček nebo konkrétní verze balíčku není k dispozici pro vaši distribuci Linuxu. Takový balíček můžete snadno převést na preferovaný formát balíčku pomocí Alien a nainstalovat jej do vašeho systému.
Alien není jen převaděč balíčků, umí také automaticky instalovat vygenerované balíčky po konverzi balíčků. Může mít dokonce možnost převést skripty, které se mají spouštět při instalaci balíčku. Při použití této možnosti musíte být opatrní. Před použitím této možnosti byste měli skripty pečlivě prozkoumat a zkontrolovat, co tyto skripty dělají.
Pozor: Alien by se neměl používat ke konverzi důležitých systémových balíčků, jako je init , libc , které jsou nezbytné pro fungování vašeho systému Linux. Systémové balíčky, které jsou speciálně navrženy pro konkrétní distribuci Linuxu, nelze používat zaměnitelně a mohou poškodit váš systém, pokud se je pokusíte násilně nainstalovat.
Nainstalujte Alien v Linuxu
Převaděč balíčků Alien je dostupný ve výchozích úložištích populárních distribucí Linuxu.
Chcete-li nainstalovat Alien v Alpine Linux, spusťte:
$ sudo apk add alien
Nainstalujte Alien v Debianu, Ubuntu LTS, Linux Mint, Pop!_OS:
$ sudo apt install alien
Nainstalujte Alien ve Fedoře:
$ sudo dnf install alien
Nainstalujte Alien v CentOS 8, RHEL 8, AlmaLinux 8, Rocky Linux 8:
$ sudo dnf install epel-release
$ sudo dnf install alien
Převeďte balíčky Linuxu pomocí Alien
Obecná syntaxe pro převod linuxových balíčků pomocí Alien z jednoho formátu do druhého je:
alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [options] file [...]
Převádění balíčků pomocí Alien je velmi snadné!
Chcete-li převést .rpm
zabalit do .deb
balík, jednoduše spusťte alien jako root
nebo sudo
uživatel:
$ sudo alien --to-deb /path/to/file.rpm
Podobně pro převod .deb
soubor do .rpm
, spustit:
$ sudo alien --to-rpm /path/to/file.deb
Zde je seznam podporovaných příznaků pro převod linuxových balíčků do různých formátů.
-d
,--to-deb
- Vytvářejte balíčky debianu. Toto je výchozí.-r
,--to-rpm
- Vytvářejte balíčky rpm.-l
,--to-lsb
- Vytvořte balíček LSB.-t
,--to-tgz
- Vytvořte balíčky tgz.--to-slp
- Vytvořte slp balíčky.-p
,--to-pkg
- Vytvářejte balíčky pkg Solaris.
Podívejme se na několik příkladů. Pro účely této příručky budu používat hello world .rpm
balík. Vezměte prosím na vědomí, že hello
balíček je zabalen pro téměř všechny distribuce Linuxu. Nemusíte to tedy převádět. Používám to jen pro demonstraci.
Převeďte balíčky RPM na balíčky DEB pomocí Alien
Nyní převedeme balíček hello rpm na .deb
formát pomocí Alien jako níže:
$ sudo alien --to-deb hello-2.10-5.fc34.x86_64.rpm
Nebo zakrátko
$ sudo alien -d hello-2.10-5.fc34.x86_64.rpm
Tím se převede daný .rpm
zabalit do .deb
balíček a uložte vygenerovaný balíček do aktuálního adresáře.
Pozor: Pokud není zadán žádný příznak, Alien převede balíčky na .deb
formát ve výchozím nastavení.
Vygenerovaný balíček můžete nainstalovat pomocí výchozího správce balíčků.
Můžeme také převést více balíčků najednou. Následující příkaz převede dané balíčky (hello &vim) na .deb
formát.
$ sudo alien hello-2.10-7.x86_64.rpm vim-enhanced-8.2.2637-1.fc34.x86_64.rpm
Převeďte DEB balíčky na RPM balíčky pomocí Alien
Podobně můžeme převést .deb
zabalte do .rpm
soubor balíčku jako níže:
$ sudo alien --to-rpm hello-2.10-5.fc34.x86_64.rpm
Nebo zakrátko
$ sudo alien -r hello-2.10-5.fc34.x86_64.rpm
Automatická instalace balíčků
Někdy možná budete chtít nainstalovat vygenerované balíčky automaticky.
Chcete-li převést balíček a nainstalovat jej automaticky pomocí Alien, použijte -i
vlajka.
$ sudo alien -d -i hello-2.10-7.x86_64.rpm
Tento příkaz převede daný balíček .rpm na formát balíčku .deb a poté jej nainstaluje a nakonec vygenerovaný balíček odstraní.
Ukázkový výstup:
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) ...
Převést na více formátů balíčků
Alien dokáže vytvořit více formátů souborů balíčku z jednoho souboru balíčku. Následující příklad ukazuje, jak vytvořit .deb
a .tgz
balíčky z .rpm
soubor.
$ sudo alien --to-deb --to-tgz hello-2.10-7.x86_64.rpm
Zachovat čísla verzí
Ve výchozím nastavení Alien přidá jedničku k číslu vedlejší verze každého balíčku, který převádí. Pokud je například číslo verze 1.2-3, Alien přidá jedničku k vedlejší verzi a změní ji na 1.2-4.
Podívejte se na následující výstup příkazu.
$ sudo alien --to-deb hello-2.10-7.x86_64.rpm hello_2.10-8_amd64.deb generated
Verze zdrojového balíčku ve výše uvedeném příkazu je 2.10.7. Po konverzi balíčku Alien změnil vedlejší verzi ze 7 na 8 v cílovém souboru.
Pokud nechcete, aby Alien změnil číslo verze, použijte -k
, --keep-version
příznak zachovat původní číslo verze ve vygenerovaném balíčku.
$ sudo alien -k --to-deb hello-2.10-7.x86_64.rpm hello_2.10-7_amd64.deb generated
Jak vidíte výše, zdrojový soubor a cíl mají stejné číslo verze.
Získání nápovědy
Chcete-li zobrazit stručný popis Vetřelce a všech podporovaných obecných možností, přejděte k části Nápověda Vetřelce spuštěním následujícího příkazu:
$ alien --help
Podívejte se také na manuálovou stránku.
$ man alien
Závěr
Neposkytnu žádné ujištění o přesnosti konvertoru Alien. Testoval jsem pouze několik balíčků, jako je Vim, Hello world a Nano. Pokud jsem testoval, Alien mi v Debianu 11 funguje dobře.
Pravděpodobně to nebude fungovat pro některé balíčky, které závisí na velkém počtu závislostí. Výsledek se může lišit balíček od balíčku.
V takových případech je možná budete muset sestavit ze zdroje ručně nebo pomocí jiných spolehlivých aplikací, jako je CheckInstall nebo Fpm . Doporučuji vám podívat se do následujících zdrojů, kde se dozvíte, jak sestavit balíčky ze zdroje.
- Jak sestavit balíčky Debianu ze zdroje
- Jak sestavit balíčky ze zdroje pomocí CheckInstall
- Jak snadno vytvářet balíčky Linuxu pro více platforem
- Znovu vytvořte binární balíčky Debianu, které jsou již nainstalovány v systému
- Jak převést balíčky DEB na balíčky Arch Linux
Doufám, že to pomůže.