Zoeken op website

Hoe u van RPM naar DEB en DEB naar RPM-pakket kunt converteren met behulp van Alien


Zoals je vast al weet, zijn er tal van manieren om software in Linux te installeren: het pakketbeheersysteem gebruiken dat door je distributie wordt geleverd (aptitude, yum of zypper, om een paar voorbeelden te noemen), compileren vanaf de broncode (hoewel enigszins zeldzaam tegenwoordig, het was de enige methode die beschikbaar was tijdens de begindagen van Linux), of het gebruik van een tool op laag niveau zoals dpkg of rpm met .deb< respectievelijk en .rpm zelfstandige, vooraf gecompileerde pakketten.

In dit artikel laten we je kennismaken met alien, een tool die converteert tussen verschillende Linux-pakketformaten, met .rpm naar .deb (en vice versa versa) is het meest voorkomende gebruik.

Deze tool kan, zelfs als de auteur deze niet langer onderhoudt en op zijn website vermeldt dat alien waarschijnlijk altijd in de experimentele status zal blijven, van pas komen als je een bepaald type pakket nodig hebt, maar dat programma alleen in een ander pakketformaat kunt vinden.

alien heeft bijvoorbeeld mijn dag gered toen ik op zoek was naar een .deb-stuurprogramma voor een inkjet-printer en er geen kon vinden – de de fabrikant heeft alleen een .rpm-pakket geleverd. Ik installeerde alien, converteerde het pakket en het duurde niet lang voordat ik mijn printer zonder problemen kon gebruiken.

Dat gezegd hebbende moeten we verduidelijken dat dit hulpprogramma niet mag worden gebruikt om belangrijke systeembestanden en bibliotheken te vervangen, omdat deze in verschillende distributies verschillend zijn opgezet. Gebruik alien alleen als laatste redmiddel als de voorgestelde installatiemethoden aan het begin van dit artikel voor het vereiste programma uitgesloten zijn.

Last but not least moeten we opmerken dat hoewel we in dit artikel CentOS en Debian gebruiken, het ook bekend is dat alien werkt in Slackware en zelfs in Solaris, naast de eerste twee distributies en hun respectievelijke families.

Stap 1: Alien en afhankelijkheden installeren

Om alien in CentOS/RHEL 7 te installeren, moet je de EPEL en de Nux inschakelen Dextop (ja, het is Dextop – niet Desktop) opslagplaatsen, in deze volgorde:

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

De nieuwste versie van het pakket dat deze opslagplaats mogelijk maakt, is momenteel 0.5 (gepubliceerd op 10 augustus 2015). U moet http://li.nux.ro/download/nux/dextop/el7/x86_64/ controleren om te zien of er een nieuwere versie is voordat u verder gaat:

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

dan doen,

yum update && yum install alien

In Fedora hoef je alleen het laatste commando uit te voeren.

In Debian en derivaten doet u eenvoudigweg:

aptitude install alien

Stap 2: Converteren van .deb naar .rpm-pakket

Voor deze test hebben we dateutils gekozen, dat een reeks datum en tijd hulpprogramma's biedt om met grote hoeveelheden financiële gegevens om te gaan. We zullen het .deb pakket downloaden naar onze CentOS 7 box, het converteren naar .rpm en het installeren:

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

Belangrijk: (Let op hoe alien standaard het secundaire versienummer van het doelpakket verhoogt. Als je dit gedrag wilt overschrijven, voeg dan de – keep-version vlag).

Als we het pakket meteen proberen te installeren, komen we een klein probleem tegen:

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

Om dit probleem op te lossen, zullen we de epel-testing repository inschakelen en het hulpprogramma rpmrebuild installeren om de instellingen te bewerken van het pakket dat opnieuw moet worden opgebouwd:

yum --enablerepo=epel-testing install rpmrebuild

Ren dan,

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

Hiermee wordt uw standaardteksteditor geopend. Ga naar de sectie %files en verwijder de regels die verwijzen naar de mappen die in het foutbericht worden genoemd, sla het bestand op en sluit af:

Wanneer u het bestand afsluit, wordt u gevraagd door te gaan met het opnieuw opbouwen. Als u Y kiest, wordt het bestand opnieuw opgebouwd in de opgegeven map (anders dan de huidige werkmap):

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

Nu kunt u doorgaan met het installeren van het pakket en het verifiëren zoals gewoonlijk:

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

Ten slotte kunt u de individuele tools vermelden die bij dateutils zijn geleverd en als alternatief hun respectievelijke manpagina's bekijken:

ls -l /usr/bin | grep dateutils

Stap 3: Converteren van .rpm naar .deb-pakket

In deze sectie laten we zien hoe u van .rpm naar .deb converteert. Laten we in een 32-bits Debian Wheezy box het .rpm pakket voor de zsh shell downloaden van het CentOS 6 OS sterke> opslagplaats. Merk op dat deze shell niet standaard beschikbaar is in Debian en derivaten.

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

U kunt de berichten over een ontbrekende handtekening veilig negeren:

Na enkele ogenblikken zou het bestand .deb gegenereerd moeten zijn en klaar zijn om te installeren:

dpkg -i zsh_4.3.11-5_i386.deb

Na de installatie kun je verifiëren dat zsh is toegevoegd aan de lijst met geldige shells:

cat /etc/shells

Samenvatting

In dit artikel hebben we uitgelegd hoe u van .rpm naar .deb kunt converteren en vice versa, om pakketten als laatste redmiddel te installeren wanneer dergelijke programma's niet beschikbaar zijn in de repositories of als distribueerbare broncode. U zult een bladwijzer voor dit artikel willen maken, omdat we allemaal op een of ander moment buitenaards wezen nodig hebben.

Deel gerust uw mening over dit artikel via het onderstaande formulier.