Kā pārveidot no RPM uz DEB un DEB uz RPM paketi, izmantojot Alien


Kā esmu pārliecināts, ka jūs jau zināt, ka programmatūras instalēšanai Linux ir daudz veidu: izmantojot izplatīšanas nodrošināto pakotņu pārvaldības sistēmu (aptitude, yum vai zypper, lai nosauktu dažus piemērus), apkopojot no avota (kaut arī nedaudz mūsdienās tā bija reta, tā bija vienīgā pieejamā metode Linux sākumā), vai arī tika izmantots zema līmeņa rīks, piemēram, dpkg vai rpm ar .deb un .rpm atsevišķām, iepriekš kompilētām pakotnēm.

Šajā rakstā mēs jūs iepazīstināsim ar svešzemju, rīku, kas pārveido dažādus Linux pakotņu formātus, un visizplatītākais lietojums ir .rpm uz .deb (un otrādi).

Šis rīks, pat ja tā autors to vairs neuztur un savā vietnē norāda, ka citplanētieši, iespējams, vienmēr paliks eksperimentālā statusā, var būt noderīgs, ja jums ir nepieciešams noteikta veida pakotne, bet jūs varat atrast šo programmu tikai citā paketes formātā.

Piemēram, citplanētieši vienu reizi saglabāja manu dienu, kad tintes printerim meklēju .deb draiveri un nevarēju to atrast - ražotājs iesniedza tikai .rpm paketi. Es instalēju citplanētieti, pārveidoju pakotni un neilgi ilgi varēju bez problēmām izmantot printeri.

Tas nozīmē, ka mums jāprecizē, ka šo utilītu nevajadzētu izmantot svarīgu sistēmas failu un bibliotēku aizstāšanai, jo tie sadalījumos ir iestatīti atšķirīgi. Izmantojiet svešzemju kā pēdējo līdzekli tikai tad, ja ieteiktās instalēšanas metodes šī raksta sākumā neattiecas uz nepieciešamo programmu.

Visbeidzot, jāatzīmē, ka, lai arī šajā rakstā mēs izmantosim CentOS un Debian, zināms, ka ārvalstnieks darbojas arī Slackware un pat Solaris, papildus pirmajiem diviem izplatījumiem un viņu attiecīgajām ģimenēm.

1. darbība: ārvalstnieku un atkarīgo personu instalēšana

Lai instalētu citplanētieti CentOS/RHEL 7, jums būs jāiespējo EPEL un Nux Dextop (jā, tas ir Dextop - nevis darbvirsmas) krātuves šādā secībā:

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

Jaunākā pakotnes versija, kas iespējo šo repozitoriju, pašlaik ir 0,5 (publicēta 2015. gada 10. augustā). Pirms turpināt, pārbaudiet vietni http://li.nux.ro/download/nux/dextop/el7/x86_64/, lai uzzinātu, vai ir jaunāka versija:

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

tad dari,

# yum update && yum install alien

Fedorā jums būs jāizpilda tikai pēdējā komanda.

Debian un atvasinātajos failos vienkārši rīkojieties šādi:

# aptitude install alien

2. darbība: konvertēšana no .deb uz .rpm paketi

Šim testam mēs izvēlējāmies dateutils, kas nodrošina datumu un laika pakalpojumu kopumu, lai tiktu galā ar lielu finanšu datu apjomu. Mēs lejupielādēsim .deb pakotni mūsu CentOS 7 lodziņā, pārveidosim to par .rpm un instalēsim to:

# 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

Svarīgi: (Lūdzu, ņemiet vērā, kā citplanētieši pēc noklusējuma palielina mērķa pakotnes mazākās versijas numuru. Ja vēlaties ignorēt šo darbību, pievienojiet karodziņu –keep-version).

Ja mēģināsim nekavējoties instalēt pakotni, mums radīsies neliela problēma:

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

Lai atrisinātu šo problēmu, mēs iespējosim epel-testing repository un instalēsim rpmrebuild utilītu, lai rediģētu atjaunojamās pakotnes iestatījumus:

# yum --enablerepo=epel-testing install rpmrebuild

Tad skrien,

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

Kas atvērs noklusējuma teksta redaktoru. Pārejiet uz sadaļu % files un izdzēsiet rindas, kas attiecas uz kļūdas ziņojumā minētajiem direktorijiem, pēc tam saglabājiet failu un izejiet:

Izejot no faila, jums tiks piedāvāts turpināt atjaunošanu. Ja izvēlaties Y, fails tiks pārbūvēts norādītajā direktorijā (kas atšķiras no pašreizējā darba direktorija):

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

Tagad jūs varat turpināt instalēt pakotni un pārbaudīt kā parasti:

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

Visbeidzot, jūs varat uzskaitīt atsevišķus rīkus, kas tika iekļauti datumos un, kā arī pārbaudīt to attiecīgās rokasgrāmatas.

# ls -l /usr/bin | grep dateutils

3. darbība: konvertēšana no .rpm uz .deb paketi

Šajā sadaļā mēs ilustrēsim, kā pārveidot no .rpm uz .deb. 32 bitu Debian Wheezy lodziņā lejupielādēsim zsh apvalka pakotni .rpm no CentOS 6 OS krātuves. Ņemiet vērā, ka šī čaula pēc noklusējuma nav pieejama Debian un atvasinātajos failos.

# 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

Jūs varat droši neņemt vērā ziņojumus par trūkstošu parakstu:

Pēc dažiem mirkļiem .deb failam jābūt ģenerētam un gatavam instalēt:

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

Pēc instalēšanas jūs varat pārbaudīt, vai zsh ir pievienots derīgo čaulu sarakstam:

# cat /etc/shells

Kopsavilkums

Šajā rakstā mēs esam paskaidrojuši, kā pārveidot no .rpm uz .deb un otrādi, lai pakotnes instalētu kā pēdējo iespēju, ja šādas programmas nav pieejamas krātuvēs vai kā izplatāms avota kods. Jūs vēlaties pievienot šo rakstu grāmatzīmei, jo mums visiem vienlaikus vai citādi būs nepieciešami svešzemnieki.

Droši dalieties savās domās par šo rakstu, izmantojot zemāk esošo veidlapu.