Kako pretvoriti iz RPM u DEB i DEB u RPM paket koristeći Alien


Kao što sam siguran da već znate, postoji mnogo načina za instaliranje softvera u Linux: korištenje sistema za upravljanje paketima koji pruža vaša distribucija (aptitude, yum ili zypper, da navedemo nekoliko primjera), kompajliranje iz izvora (iako donekle rijetkost ovih dana, to je bila jedina metoda dostupna tokom ranih dana Linuxa), ili korištenje alata niskog nivoa kao što je dpkg ili rpm sa .deb< i .rpm samostalni, unapred kompajlirani paketi, respektivno.

U ovom članku ćemo vas upoznati sa alien, alatom koji pretvara između različitih formata Linux paketa, sa .rpm u .deb (i vice versa) je najčešća upotreba.

Ovaj alat, čak i kada ga njegov autor više ne održava i na svojoj web stranici navodi da će vanzemaljac vjerovatno uvijek ostati u eksperimentalnom statusu, može vam dobro doći ako vam treba određena vrsta paketa, ali taj program možete pronaći samo u drugom formatu paketa.

Na primjer, vanzemaljac mi je jednom spasio dan kada sam tražio .deb drajver za inkjet štampač i nisam mogao da nađem nijedan – proizvođač je dao samo .rpm paket. Instalirao sam alien, konvertovao paket i ubrzo sam mogao da koristim svoj štampač bez problema.

Uz to, moramo pojasniti da se ovaj uslužni program ne bi trebao koristiti za zamjenu važnih sistemskih datoteka i biblioteka jer su različito postavljeni u različitim distribucijama. Alien koristite samo kao krajnje sredstvo ako predložene metode instalacije na početku ovog članka ne dolaze u obzir za potreban program.

Na kraju, ali ne i najmanje važno, moramo napomenuti da iako ćemo koristiti CentOS i Debian u ovom članku, poznato je da alien radi i u Slackwareu pa čak i u Solarisu, osim prve dvije distribucije i njihovih porodica.

Korak 1: Instaliranje Aliena i zavisnosti

Da instalirate alien u CentOS/RHEL 7, morat ćete omogućiti EPEL i Nux Dextop (da, to je Dextop – ne Desktop) spremišta, ovim redoslijedom:

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

Najnovija verzija paketa koja omogućava ovo spremište je trenutno 0.5 (objavljeno 10. avgusta 2015.). Trebali biste provjeriti http://li.nux.ro/download/nux/dextop/el7/x86_64/ da vidite postoji li novija verzija prije nego što nastavite dalje:

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

onda uradi,

yum update && yum install alien

U Fedori, morat ćete pokrenuti samo posljednju komandu.

U Debianu i derivatima jednostavno učinite:

aptitude install alien

Korak 2: Pretvaranje iz .deb u .rpm paket

Za ovaj test smo odabrali dateutils, koji pruža skup datum i vreme uslužnih programa za rad sa velikim količinama finansijskih podataka. Mi ćemo preuzeti .deb paket u našu CentOS 7 kutiju, pretvoriti ga u .rpm i instalirati:

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

Važno: (Imajte na umu kako, prema zadanim postavkama, alien povećava manji broj verzije ciljnog paketa. Ako želite poništiti ovo ponašanje, dodajte – zastavicu zadržati verziju).

Ako pokušamo odmah da instaliramo paket, naići ćemo na mali problem:

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

Da riješimo ovaj problem, omogućit ćemo epel-testiranje spremišta i instalirati rpmrebuild uslužni program za uređivanje postavki paketa koji će se ponovo izgraditi:

yum --enablerepo=epel-testing install rpmrebuild

onda trči,

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

Što će otvoriti vaš zadani uređivač teksta. Idite na odjeljak %files i izbrišite redove koji se odnose na direktorije spomenute u poruci o grešci, zatim sačuvajte datoteku i izađite:

Kada izađete iz datoteke, od vas će biti zatraženo da nastavite sa ponovnom izgradnjom. Ako odaberete Y, datoteka će biti ponovo ugrađena u navedeni direktorij (različit od trenutnog radnog direktorija):

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

Sada možete nastaviti s instaliranjem paketa i provjeriti kao i obično:

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

Konačno, možete navesti pojedinačne alate koji su uključeni u dateutils i alternativno provjeriti njihove odgovarajuće man stranice:

ls -l /usr/bin | grep dateutils

Korak 3: Pretvaranje iz .rpm u .deb paket

U ovom odeljku ćemo ilustrovati kako konvertovati iz .rpm u .deb. U 32-bitnoj Debian Wheezy kutiji, preuzmimo .rpm paket za zsh ljusku sa CentOS 6 OS spremište. Imajte na umu da ova ljuska nije dostupna prema zadanim postavkama u Debianu i derivatima.

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

Možete sigurno zanemariti poruke o nedostajućem potpisu:

Nakon nekoliko trenutaka, datoteka .deb je trebala biti generirana i spremna za instalaciju:

dpkg -i zsh_4.3.11-5_i386.deb

Nakon instalacije, možete provjeriti da je zsh dodan na listu važećih shell-a:

cat /etc/shells

Sažetak

U ovom članku smo objasnili kako da konvertujete iz .rpm u .deb i obrnuto da instalirate pakete kao poslednje rešenje kada takvi programi nisu dostupni u repozitorijumima ili kao izvorni kod za distribuciju. Želite da označite ovaj članak jer će nam svima u jednom ili drugom trenutku zatrebati vanzemaljac.

Slobodno podijelite svoje mišljenje o ovom članku koristeći obrazac ispod.