Vyhledávání na webu

Jak převést z RPM na DEB a DEB na RPM balíček pomocí Alien


Jak už jistě víte, existuje mnoho způsobů, jak nainstalovat software v Linuxu: pomocí systému správy balíčků, který poskytuje vaše distribuce (aptitude, yum nebo zypper, abychom jmenovali několik příkladů), kompilace ze zdroje (i když poněkud v dnešní době vzácná, byla to jediná dostupná metoda v počátcích Linuxu) nebo využívající nízkoúrovňový nástroj, jako je dpkg nebo rpm s .deb< a .rpm samostatné, předkompilované balíčky.

V tomto článku vám představíme alien, nástroj, který převádí mezi různými formáty linuxových balíčků, s .rpm na .deb (a naopak versa) je nejběžnější použití.

Tento nástroj, i když jej jeho autor již neudržuje a na svém webu uvádí, že mimozemšťan vždy pravděpodobně zůstane v experimentálním stavu, se může hodit, pokud potřebujete určitý typ balíčku, ale můžete tento program najít pouze v jiném formátu balíčku.

Například alien mi jednou zachránil den, když jsem hledal ovladač .deb pro inkjet tiskárnu a nemohl jsem žádný najít – výrobce poskytl pouze balíček .rpm. Nainstaloval jsem alien, převedl balíček a zanedlouho jsem mohl bez problémů používat tiskárnu.

To znamená, že musíme objasnit, že tento nástroj by neměl být používán k nahrazení důležitých systémových souborů a knihoven, protože jsou v různých distribucích nastaveny odlišně. Alien používejte pouze jako poslední možnost, pokud navrhované způsoby instalace na začátku tohoto článku pro požadovaný program nepřicházejí v úvahu.

V neposlední řadě musíme poznamenat, že i když budeme v tomto článku používat CentOS a Debian, je známo, že alien funguje také v Slackware a dokonce i v Solaris, kromě prvních dvou distribucí a jejich příslušných rodin.

Krok 1: Instalace Alien a závislostí

Chcete-li nainstalovat alien do CentOS/RHEL 7, budete muset povolit EPEL a Nux Dextop(ano, je to Dextop – ne Desktop) úložiště, v tomto pořadí:

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

Nejnovější verze balíčku, který umožňuje toto úložiště, je aktuálně 0.5 (zveřejněno 10. srpna 2015). Než budete pokračovat dále, měli byste se podívat na http://li.nux.ro/download/nux/dextop/el7/x86_64/ a zjistit, zda není k dispozici novější verze:

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

pak udělej,

yum update && yum install alien

Ve Fedoře budete muset spustit pouze poslední příkaz.

V Debianu a jeho derivátech jednoduše udělejte:

aptitude install alien

Krok 2: Převod z .deb na .rpm balíček

Pro tento test jsme zvolili dateutils, který poskytuje sadu nástrojů pro datum a čas pro práci s velkým množstvím finančních dat. Stáhneme si balíček .deb do našeho boxu CentOS 7, převedeme ho na .rpm a nainstalujeme:

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

Důležité: (Všimněte si prosím, jak ve výchozím nastavení alien zvyšuje vedlejší číslo verze cílového balíčku. Pokud chcete toto chování přepsat, přidejte – příznak keep-version).

Pokud se pokusíme balíček nainstalovat hned, narazíme na malý problém:

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

Abychom tento problém vyřešili, povolíme epel-testing repository a nainstalujeme nástroj rpmrebuild pro úpravu nastavení balíčku, který má být přestavěn:

yum --enablerepo=epel-testing install rpmrebuild

pak běž,

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

Což otevře váš výchozí textový editor. Přejděte do části %files a odstraňte řádky, které odkazují na adresáře uvedené v chybové zprávě, poté soubor uložte a ukončete:

Když opustíte soubor, budete vyzváni k pokračování v přestavbě. Pokud zvolíte Y, soubor bude znovu vytvořen do zadaného adresáře (jiného než aktuální pracovní adresář):

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

Nyní můžete pokračovat v instalaci balíčku a ověření jako obvykle:

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

Nakonec můžete uvést jednotlivé nástroje, které byly součástí dateutils, a případně zkontrolovat jejich příslušné manuálové stránky:

ls -l /usr/bin | grep dateutils

Krok 3: Převod z .rpm na .deb balíček

V této části si ukážeme, jak převést z .rpm na .deb. V 32bitové krabici Debian Wheezy si stáhněte balíček .rpm pro shell zsh z CentOS 6 OS úložiště. Všimněte si, že tento shell není standardně dostupný v Debianu a jeho derivátech.

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

Zprávy o chybějícím podpisu můžete klidně ignorovat:

Po chvíli by měl být soubor .deb vygenerován a připraven k instalaci:

dpkg -i zsh_4.3.11-5_i386.deb

Po instalaci můžete ověřit, že zsh je přidán do seznamu platných shellů:

cat /etc/shells

souhrn

V tomto článku jsme vysvětlili, jak převést z .rpm na .deb a naopak a nainstalovat balíčky jako poslední možnost, když takové programy nejsou dostupné v repozitářích nebo jako distribuovatelný zdrojový kód. Tento článek si budete chtít uložit do záložek, protože každý z nás bude jednou potřebovat mimozemšťana.

Neváhejte se podělit o své názory na tento článek pomocí formuláře níže.