Hvordan konvertere fra RPM til DEB og DEB til RPM-pakke ved hjelp av Alien


Som jeg er sikker på at du allerede vet, er det mange måter å installere programvare på i Linux: ved å bruke pakkehåndteringssystemet levert av distribusjonen din (aptitude, yum eller zypper, for å nevne noen eksempler), kompilering fra kilden (men noe sjelden i disse dager, det var den eneste metoden som var tilgjengelig under de første dagene av Linux), eller ved å bruke et lavnivåverktøy som dpkg eller rpm med .deb< og .rpm frittstående, forhåndskompilerte pakker.

I denne artikkelen vil vi introdusere deg til alien, et verktøy som konverterer mellom ulike Linux-pakkeformater, med .rpm til .deb (og vice). versa) er den vanligste bruken.

Dette verktøyet, selv når forfatteren ikke lenger vedlikeholder det og oppgir på sin nettside at alien sannsynligvis alltid vil forbli i eksperimentell status, kan komme godt med hvis du trenger en bestemt type pakke, men kan bare finne det programmet i et annet pakkeformat.

For eksempel reddet alien dagen min en gang da jeg lette etter en .deb-driver for en blekkskriver og ikke fant noen – produsenten ga bare en .rpm-pakke. Jeg installerte alien, konverterte pakken, og snart kunne jeg bruke skriveren min uten problemer.

Når det er sagt, må vi presisere at dette verktøyet ikke skal brukes til å erstatte viktige systemfiler og biblioteker siden de er satt opp forskjellig på tvers av distribusjoner. Bruk bare romvesen som en siste utvei hvis de foreslåtte installasjonsmetodene i begynnelsen av denne artikkelen er utelukket for det nødvendige programmet.

Sist, men ikke minst, må vi merke oss at selv om vi vil bruke CentOS og Debian i denne artikkelen, er alien også kjent for å fungere i Slackware og til og med i Solaris, foruten de to første distribusjonene og deres respektive familier.

Trinn 1: Installere Alien og avhengigheter

For å installere alien i CentOS/RHEL 7, må du aktivere EPEL og Nux Dextop (ja, det er Dextop – ikke Desktop) repositories, i den rekkefølgen:

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

Den siste versjonen av pakken som aktiverer dette depotet er for øyeblikket 0.5 (publisert 10. august 2015). Du bør sjekke http://li.nux.ro/download/nux/dextop/el7/x86_64/ for å se om det er en nyere versjon før du fortsetter:

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

så gjør,

yum update && yum install alien

I Fedora trenger du bare å kjøre den siste kommandoen.

I Debian og derivater gjør du ganske enkelt:

aptitude install alien

Trinn 2: Konvertering fra .deb til .rpm-pakke

For denne testen har vi valgt dateutils, som gir et sett med dato- og tid-verktøy for å håndtere store mengder økonomiske data. Vi laster ned .deb-pakken til CentOS 7-boksen vår, konverterer den til .rpm og installerer den:

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

Viktig: (Vær oppmerksom på hvordan alien som standard øker versjonsnummeret til målpakken. Hvis du vil overstyre denne virkemåten, legg til – keep-versionflagg).

Hvis vi prøver å installere pakken med en gang, får vi et lite problem:

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

For å løse dette problemet vil vi aktivere epel-testing repository og installere verktøyet rpmrebuild for å redigere innstillingene for pakken som skal gjenoppbygges:

yum --enablerepo=epel-testing install rpmrebuild

Så løp,

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

Som vil åpne opp standard tekstredigerer. Gå til %files-delen og slett linjene som refererer til katalogene nevnt i feilmeldingen, lagre deretter filen og avslutt:

Når du avslutter filen, blir du bedt om å fortsette med gjenoppbyggingen. Hvis du velger Y, vil filen bygges om til den angitte katalogen (forskjellig fra gjeldende arbeidskatalog):

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

Nå kan du fortsette å installere pakken og bekrefte som vanlig:

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

Til slutt kan du liste opp de individuelle verktøyene som ble inkludert i dateutils og alternativt sjekke deres respektive man-sider:

ls -l /usr/bin | grep dateutils

Trinn 3: Konvertering fra .rpm til .deb-pakke

I denne delen vil vi illustrere hvordan du konverterer fra .rpm til .deb. I en 32-bits Debian Wheezy-boks, la oss laste ned .rpm-pakken for zsh-skallet fra CentOS 6 OS sterk> depot. Merk at dette skallet ikke er tilgjengelig som standard i Debian og derivater.

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

Du kan trygt se bort fra meldingene om en manglende signatur:

Etter en liten stund skal .deb-filen ha blitt generert og være klar til å installeres:

dpkg -i zsh_4.3.11-5_i386.deb

Etter installasjonen kan du bekrefte at zsh er lagt til listen over gyldige skall:

cat /etc/shells

Sammendrag

I denne artikkelen har vi forklart hvordan du konverterer fra .rpm til .deb og omvendt for å installere pakker som en siste utvei når slike programmer ikke er tilgjengelige i repositoriene eller som distribuerbar kildekode. Du vil ønske å bokmerke denne artikkelen fordi alle av oss vil trenge romvesen på et eller annet tidspunkt.

Del gjerne tankene dine om denne artikkelen ved å bruke skjemaet nedenfor.