Kuidas teisendada RPM-ist DEB-ks ja DEB-st RPM-paketiks, kasutades välismaalast


Nagu ma olen kindel, et juba teate, on Linuxi jaoks tarkvara installimiseks palju võimalusi: levitamise pakettide haldussüsteemi (aptitude, yum või zypper, näiteks mõned näited) kasutamine, koostamine allikast (kuigi mõnevõrra tänapäeval on see haruldane, see oli ainus meetod, mis oli Linuxi algusaegadel saadaval) või madala taseme tööriista kasutamine, näiteks dpkg või rpm koos eraldiseisvate .deb ja .rpm eelkompileeritud pakettidega.

Selles artiklis tutvustame teile välismaalast, tööriista, mis teisendab erinevaid Linuxi paketivorminguid, kusjuures levinumaks kasutuseks on .rpm - .deb (ja vastupidi).

See tööriist, isegi kui selle autor seda enam ei hoia ja kinnitab oma veebisaidil, et tulnukas jääb tõenäoliselt alati eksperimentaalsesse olekusse, võib olla kasulik, kui vajate teatud tüüpi paketti, kuid leiate selle programmi ainult muus paketivormingus.

Näiteks päästis tulnukas mu päeva üks kord, kui otsisin tindiprinteri jaoks .deb-draiverit ja ei leidnud ühtegi - tootja pakkus ainult .rpm-paketti. Paigaldasin tulnuka, muutsin paketi ümber ja enne pikka aega sain printerit probleemideta kasutada.

Sellest hoolimata peame selgitama, et seda utiliiti ei tohiks kasutada oluliste süsteemifailide ja teekide asendamiseks, kuna need on jaotustes erinevalt seadistatud. Kasutage välismaalast viimase abinõuna ainult siis, kui selle artikli alguses soovitatud installimeetodid ei kuulu vajaliku programmi juurde.

Viimasena, kuid mitte vähem tähtsana, peame märkima, et kuigi me kasutame selles artiklis CentOSi ja Debiani, töötab välismaalane lisaks kahele esimesele distributsioonile ja nende vastavatele perekondadele ka Slackware'is ja isegi Solarises.

1. samm: välismaalase ja sõltuvuste installimine

Alien'i installimiseks CentOS/RHEL 7-sse peate lubama EPEL-i ja Nux Dextopi (jah, see on Dextop - mitte Desktop) hoidlad järgmises järjekorras:

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

Selle hoidla lubava paketi uusim versioon on praegu 0,5 (avaldatud 10. augustil 2015). Enne jätkamist kontrollige lehte http://li.nux.ro/download/nux/dextop/el7/x86_64/, et näha, kas on uuem versioon:

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

siis tee,

# yum update && yum install alien

Fedoras peate käivitama ainult viimase käsu.

Debianis ja derivaatides tehke lihtsalt järgmist:

# aptitude install alien

2. samm: teisendamine paketist .deb failiks .rpm

Selle testi jaoks valisime dateutils, mis pakub hulga finantsandmete käsitlemiseks kuupäeva ja kellaaega. Laadime paketi .deb alla oma CentOS 7 kasti, teisendame selle .rpm-i ja installime selle:

# 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

Tähtis: (Pange tähele, kuidas välismaalane suurendab vaikimisi sihtpaketi versiooni väiksemat arvu. Kui soovite selle käitumise alistada, lisage lipu –keep-version).

Kui proovime paketti kohe installida, tekib väike probleem:

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

Selle probleemi lahendamiseks lubame epeli testimise hoidla ja installime utiliidi rpmrebuild, et redigeerida ümberehitatava paketi sätteid:

# yum --enablerepo=epel-testing install rpmrebuild

Siis jookse,

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

Mis avab teie vaiketekstiredaktori. Minge jaotisse % files ja kustutage read, mis viitavad tõrketeates nimetatud kataloogidele, seejärel salvestage fail ja väljuge:

Failist väljumisel palutakse teil uuesti üles ehitada. Kui valite Y, ehitatakse fail uuesti määratud kataloogi (mis pole praegune töökataloog):

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

Nüüd saate jätkata paketi installimist ja kontrollida nagu tavaliselt:

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

Lõpuks saate loetleda üksikud tööriistad, mis olid dateutils'iga kaasas, ja vaadata ka nende vastavaid käsulehti:

# ls -l /usr/bin | grep dateutils

3. samm: teisendamine paketist .rpm failiks .deb

Selles osas selgitame, kuidas teisendada .rpm-st .deb-i. Laadige 32-bitises Debiani Wheezy kastis alla CentOS 6 OS-i hoidlast zsh-kesta pakett .rpm. Pange tähele, et see kest pole Debianis ja derivaatides vaikimisi saadaval.

# 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

Võite turvaliselt eirata puuduva allkirja kohta käivaid teateid:

Mõne hetke pärast oleks pidanud .deb-fail olema loodud ja installimiseks valmis:

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

Pärast installimist saate kontrollida, kas zsh on lisatud kehtivate kestade loendisse:

# cat /etc/shells

Kokkuvõte

Selles artiklis oleme selgitanud, kuidas konverteerida failist .rpm failiks .deb ja vastupidi pakettide installimiseks viimase abinõuna, kui sellised programmid pole hoidlates või levitatava lähtekoodina saadaval. Soovite selle artikli järjehoidjatesse lisada, sest me kõik vajame korraga tulnukaid.

Jagage julgelt oma mõtteid selle artikli kohta, kasutades allolevat vormi.