Kaip konvertuoti iš RPM į DEB ir DEB į RPM paketą naudojant Alien


Esu tikras, kad jau žinote, kad yra daugybė būdų įdiegti programinę įrangą Linux sistemoje: naudojant paketų valdymo sistemą, kurią teikia jūsų platinimas (aptitude, yum arba zypper, kad būtų keli pavyzdžiai), kompiliavimas iš šaltinio (nors šiek tiek retais šiais laikais, tai buvo vienintelis metodas, galimas ankstyvosiomis Linux dienomis) arba naudojant žemo lygio įrankį, pvz., dpkg arba rpm su .deb<. ir .rpm atskiri, iš anksto sukompiliuoti paketai.

Šiame straipsnyje supažindinsime su alien – įrankiu, kuris konvertuoja tarp skirtingų Linux paketų formatų su .rpm į .deb (ir vice). atvirkščiai) yra dažniausiai naudojamas.

Šis įrankis, net kai jo autorius jo nebeprižiūri ir savo svetainėje teigia, kad ateivis tikriausiai visada liks eksperimento būsenoje, gali praversti, jei jums reikia tam tikro tipo paketo, bet tą programą galite rasti tik kito paketo formatu.

Pavyzdžiui, ateivietis kartą išgelbėjo mano dieną, kai ieškojau .deb tvarkyklės rašaliniam spausdintuvui ir neradau – gamintojas pateikė tik .rpm paketą. Įdiegiau alien, konvertavau paketą ir netrukus galėjau be problemų naudoti savo spausdintuvą.

Be to, turime paaiškinti, kad ši priemonė neturėtų būti naudojama svarbiems sistemos failams ir bibliotekoms pakeisti, nes paskirstymuose jie nustatomi skirtingai. Naudokite „Alien“ tik kaip paskutinę priemonę, jei šio straipsnio pradžioje siūlomi diegimo metodai nėra tinkami reikiamai programai.

Paskutinis, bet ne mažiau svarbus dalykas, turime pažymėti, kad nors šiame straipsnyje naudosime CentOS ir Debian, žinoma, kad ateivis taip pat veikia Slackware. ir net Solaris, be pirmųjų dviejų platinimų ir atitinkamų jų šeimų.

1 veiksmas: Alien ir priklausomybių diegimas

Norėdami įdiegti alien sistemoje CentOS/RHEL 7, turėsite įgalinti EPEL ir Nux Dextop (taip, tai Dextop, o ne Desktop) saugyklos tokia tvarka:

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

Naujausia paketo, kuris įgalina šią saugyklą, versija šiuo metu yra 0,5 (paskelbta 2015 m. rugpjūčio 10 d.). Prieš tęsdami, turėtumėte patikrinti http://li.nux.ro/download/nux/dextop/el7/x86_64/, kad sužinotumėte, ar nėra naujesnės versijos:

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

tada daryk,

yum update && yum install alien

Programoje Fedora jums reikės paleisti tik paskutinę komandą.

„Debian“ ir išvestinėse programose tiesiog atlikite:

aptitude install alien

2 veiksmas: konvertavimas iš .deb į .rpm paketą

Šiam testui pasirinkome dateutils, kuris pateikia datos ir laiko paslaugų rinkinį, skirtą dideliam finansinių duomenų kiekiui tvarkyti. Atsisiųsime .deb paketą į CentOS 7 laukelį, konvertuosime jį į .rpm ir įdiegsime:

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

Svarbu: (Atkreipkite dėmesį, kaip pagal numatytuosius nustatymus alien padidina tikslinio paketo versijos mažąjį numerį. Jei norite nepaisyti šio elgesio, pridėkite – Keep-version vėliava).

Jei bandysime iš karto įdiegti paketą, susidursime su nedidele problema:

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

Norėdami išspręsti šią problemą, įgalinsime epel testavimo saugyklą ir įdiegsime rpmrebuild paslaugų programą, kad galėtumėte redaguoti perkuriamo paketo nustatymus:

yum --enablerepo=epel-testing install rpmrebuild

Tada bėk,

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

Kuris atidarys numatytąjį teksto rengyklę. Eikite į %files skyrių ir ištrinkite eilutes, kurios nurodo klaidos pranešime nurodytus katalogus, tada išsaugokite failą ir išeikite:

Kai išeisite iš failo, būsite paraginti tęsti atkūrimą. Jei pasirinksite Y, failas bus perstatytas į nurodytą katalogą (skirtingą nei dabartinis darbo katalogas):

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

Dabar galite tęsti paketo diegimą ir tikrinti kaip įprasta:

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

Galiausiai galite išvardyti atskirus įrankius, kurie buvo įtraukti į dateutils, arba patikrinti atitinkamus jų vadovo puslapius:

ls -l /usr/bin | grep dateutils

3 veiksmas: konvertuokite iš .rpm į .deb paketą

Šiame skyriuje parodysime, kaip konvertuoti iš .rpm į .deb. 32 bitų Debian Wheezy dėžutėje atsisiųskite .rpm paketą zsh apvalkalui iš CentOS 6 OS saugykla. Atminkite, kad šis apvalkalas pagal numatytuosius nustatymus nepasiekiamas Debian ir išvestinėse versijose.

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

Galite saugiai nepaisyti pranešimų apie trūkstamą parašą:

Po kelių akimirkų .deb failas turėjo būti sugeneruotas ir paruoštas diegti:

dpkg -i zsh_4.3.11-5_i386.deb

Įdiegę galite patikrinti, ar zsh įtrauktas į galiojančių apvalkalų sąrašą:

cat /etc/shells

Santrauka

Šiame straipsnyje paaiškinome, kaip konvertuoti iš .rpm į .deb ir atvirkščiai, kad būtų galima įdiegti paketus kaip paskutinę priemonę, kai tokių programų nėra saugyklose arba kaip platinamo šaltinio kodo. Norėsite pažymėti šį straipsnį, nes mums visiems vienu ar kitu metu prireiks užsieniečių.

Nesivaržykite pasidalinti savo mintimis apie šį straipsnį naudodami toliau pateiktą formą.