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


Kao što sam siguran da već znate, postoji puno načina za instaliranje softvera u Linux: korištenje sustava za upravljanje paketima koji pruža vaša distribucija (sklonost, yum ili zypper, da navedemo nekoliko primjera), kompiliranje iz izvora (iako donekle rijetko u današnje vrijeme, to je bila jedina metoda dostupna tijekom ranih dana Linuxa) ili upotreba alata niske razine kao što je dpkg ili rpm sa samostalnim, unaprijed kompiliranim paketima .deb i .rpm.

U ovom ćemo vam članku predstaviti vanzemaljac, alat koji pretvara različite formate Linux paketa, a .rpm u .deb (i obrnuto) je najčešća upotreba.

Ovaj alat, čak i kada ga autor više ne održava i na svojoj web stranici navodi da će stranac uvijek vjerojatno ostati u eksperimentalnom statusu, može vam dobro doći ako trebate određenu vrstu paketa, ali taj program može pronaći samo u drugom formatu paketa.

Na primjer, stranac mi je jednom spasio dan kada sam tražio .deb upravljački program za inkjet pisač i nisam ga mogao pronaći - proizvođač je pružio samo .rpm paket. Instalirao sam vanzemaljac, pretvorio paket i ubrzo sam mogao bez problema koristiti svoj pisač.

Sve u svemu, moramo pojasniti da se ovaj uslužni program ne smije koristiti za zamjenu važnih sistemskih datoteka i knjižnica jer su različito postavljene u distribucijama. Stranca upotrebljavajte samo u krajnjem slučaju ako predloženi načini instalacije na početku ovog članka ne dolaze u obzir za traženi program.

I na kraju, ali ne najmanje važno, moramo napomenuti da, iako ćemo u ovom članku koristiti CentOS i Debian, za strance je također poznato da rade u Slackwareu, pa čak i u Solarisu, uz prve dvije distribucije i njihove obitelji.

Korak 1: Instaliranje vanzemaljca i ovisnosti

Da biste instalirali izvanzemaljac u CentOS/RHEL 7, morat ćete omogućiti EPEL i Nux Dextop (da, to je Dextop - ne Desktop) spremišta, tim redoslijedom:

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

Najnovija verzija paketa koji omogućuje ovo spremište trenutno je 0,5 (objavljeno 10. kolovoza 2015). Trebali biste provjeriti http://li.nux.ro/download/nux/dextop/el7/x86_64/ da biste vidjeli 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 učini,

# yum update && yum install alien

U Fedori ćete trebati pokrenuti samo posljednju naredbu.

U Debianu i izvedenicama jednostavno učinite:

# aptitude install alien

Korak 2: Pretvorba iz .deb u .rpm paket

Za ovaj smo test odabrali dateutils, koji pruža skup uslužnih programa za datum i vrijeme za rad s velikim količinama financijskih podataka. Preuzet ćemo .deb paket u naš CentOS 7 okvir, 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 stranac prema zadanim postavkama povećava manji broj verzije ciljnog paketa. Ako želite poništiti ovo ponašanje, dodajte zastavicu –keep-version).

Ako pokušamo odmah instalirati paket, naletjet ćemo na mali problem:

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

Da bismo riješili ovaj problem, omogućit ćemo spremište epel-testing i instalirati uslužni program rpmrebuild za uređivanje postavki paketa koji će se obnoviti:

# yum --enablerepo=epel-testing install rpmrebuild

Onda trči,

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

Što će otvoriti zadani uređivač teksta. Idite na odjeljak % files i izbrišite retke koji se odnose na direktorije spomenute u poruci pogreške, a zatim spremite datoteku i izađite:

Kada izađete iz datoteke, od vas će se zatražiti da nastavite s obnovom. Ako odaberete Y, datoteka će se obnoviti 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

Na kraju, možete navesti pojedinačne alate koji su bili uključeni u dateutile i alternativno provjeriti njihove odgovarajuće stranice s uputama:

# ls -l /usr/bin | grep dateutils

Korak 3: Pretvorba iz .rpm u .deb paket

U ovom ćemo odjeljku ilustrirati kako pretvoriti iz .rpm u .deb. U 32-bitni okvir Debian Wheezy, preuzmimo .rpm paket za zsh ljusku iz spremišta CentOS 6 OS. Imajte na umu da ova ljuska po defaultu nije dostupna u Debianu i izvedenicama.

# 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 trebala je biti generirana i spremna za instalaciju:

# dpkg -i zsh_4.3.11-5_i386.deb

Nakon instalacije možete provjeriti je li zsh dodan na popis važećih školjki:

# cat /etc/shells

Sažetak

U ovom smo članku objasnili kako pretvoriti iz .rpm u .deb i obratno za instaliranje paketa kao krajnje sredstvo kada takvi programi nisu dostupni u spremištima ili kao izvorni kod koji se može distribuirati. Ovaj ćete članak htjeti označiti knjigom jer će nam svima istovremeno trebati izvanzemaljac.

Slobodno podijelite svoje mišljenje o ovom članku pomoću obrasca u nastavku.