Recherche de site Web

Comment convertir de RPM en DEB et de DEB à RPM à l’aide d’Alien


Comme vous le savez sûrement déjà, il existe de nombreuses façons d’installer des logiciels sous Linux : en utilisant le système de gestion de paquets fourni par votre distribution (aptitude, yum ou zypper, pour ne citer que quelques exemples), compiler à partir des sources (bien qu’un peu rare de nos jours, c’était la seule méthode disponible aux premiers jours de Linux), ou l’utilisation d’un outil de bas niveau tel que dpkg ou rpm avec des packages autonomes et précompilés .deb et .rpm, respectivement.

Dans cet article, nous allons vous présenter alien, un outil qui convertit entre différents formats de paquets Linux, .rpm en .deb (et vice versa) étant l’utilisation la plus courante.

Cet outil, même si son auteur ne le maintient plus et déclare sur son site web que l’extraterrestre restera probablement toujours à l’état expérimental, peut s’avérer utile si vous avez besoin d’un certain type de paquet mais que vous ne pouvez trouver ce programme que dans un autre format de paquet.

Par exemple, alien m’a sauvé la mise une fois lorsque je cherchais un pilote .deb pour une imprimante à jet d’encre et que je n’en ai trouvé aucun - le fabricant n’a fourni qu’un package .rpm. J’ai installé alien, converti le paquet, et en peu de temps, j’ai pu utiliser mon imprimante sans problème.

Cela dit, nous devons préciser que cet utilitaire ne doit pas être utilisé pour remplacer des fichiers système et des bibliothèques importants, car ils sont configurés différemment d’une distribution à l’autre. N’utilisez alien qu’en dernier recours si les méthodes d’installation suggérées au début de cet article sont hors de question pour le programme requis.

Enfin, nous devons noter que même si nous utiliserons CentOS et Debian dans cet article, alien est également connu pour fonctionner dans Slackware et même dans Solaris, en plus des deux premières distributions et de leurs familles respectives.

Étape 1 : Installation d’Alien et de dépendances

Pour installer alien dans CentOS/RHEL 7, vous devrez activer les dépôts EPEL et Nux Dextop (oui, c’est Dextop – pas Desktop), dans cet ordre :

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

La dernière version du paquet qui active ce dépôt est actuellement la 0.5 (publiée le 10 août 2015). Vous devez vérifier http://li.nux.ro/download/nux/dextop/el7/x86_64/ s’il existe une version plus récente avant de continuer :

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

puis faites,

# yum update && yum install alien

Dans Fedora, vous n’aurez qu’à exécuter la dernière commande.

Dans Debian et dérivés, il suffit de faire :

# aptitude install alien

Étape 2 : Conversion du package .deb en .rpm

Pour ce test, nous avons choisi dateutils, qui fournit un ensemble d’utilitaires de date et d’heure pour traiter de grandes quantités de données financières. Nous allons télécharger le paquet .deb sur notre boîte CentOS 7, le convertir en .rpm et l’installer :

# 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

Important : (Veuillez noter comment, par défaut, alien augmente le numéro de version mineure du paquet cible. Si vous souhaitez remplacer ce comportement, ajoutez l’indicateur –keep-version).

Si nous essayons d’installer le paquet tout de suite, nous rencontrerons un léger problème :

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

Pour résoudre ce problème, nous allons activer le dépôt epel-testing et installer l’utilitaire rpmrebuild pour modifier les paramètres du paquet à reconstruire :

# yum --enablerepo=epel-testing install rpmrebuild

Puis courez,

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

Ce qui ouvrira votre éditeur de texte par défaut. Allez dans la section %files et supprimez les lignes qui font référence aux répertoires mentionnés dans le message d’erreur, puis enregistrez le fichier et quittez :

Lorsque vous quittez le fichier, vous êtes invité à poursuivre la reconstruction. Si vous choisissez Y, le fichier sera reconstruit dans le répertoire spécifié (différent du répertoire de travail actuel) :

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

Vous pouvez maintenant procéder à l’installation du package et vérifier comme d’habitude :

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

Enfin, vous pouvez lister les outils individuels qui ont été inclus avec dateutils et consulter leurs pages de manuel respectives :

# ls -l /usr/bin | grep dateutils

Étape 3 : Conversion de .rpm en package .deb

Dans cette section, nous allons illustrer comment convertir de .rpm en .deb. Dans une boîte Debian Wheezy 32 bits, téléchargeons le paquet .rpm pour le shell zsh à partir du dépôt du système d’exploitation CentOS 6. Notez que ce shell n’est pas disponible par défaut dans Debian et dérivés.

# 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

Vous pouvez ignorer en toute sécurité les messages concernant une signature manquante :

Après quelques instants, le fichier .deb doit avoir été généré et être prêt à être installé :

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

Après l’installation, vous pouvez vérifier que zsh est ajouté à la liste des shells valides :

# cat /etc/shells

Résumé

Dans cet article, nous avons expliqué comment convertir de .rpm à .deb et vice versa pour installer des paquets en dernier recours lorsque ces programmes ne sont pas disponibles dans les dépôts ou en tant que code source distribuable. Vous voudrez mettre cet article en signet parce que nous aurons tous besoin d’extraterrestre à un moment ou à un autre.

N’hésitez pas à partager vos réflexions sur cet article en utilisant le formulaire ci-dessous.

Articles connexes: