Recherche de site Web

Comment convertir un package RPM en DEB et DEB en 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), en compilant à partir des sources (bien que quelque peu rare de nos jours, c'était la seule méthode disponible aux débuts de Linux), ou en utilisant un outil de bas niveau tel que dpkg ou rpm avec .deb< et .rpm packages autonomes et précompilés, respectivement.

Dans cet article, nous allons vous présenter alien, un outil qui convertit entre différents formats de packages Linux, avec .rpm en .deb (et vice-versa). versa) étant l’usage le plus courant.

Cet outil, même lorsque son auteur ne le maintient plus et déclare sur son site Web qu'alien restera probablement toujours au statut expérimental, peut s'avérer utile si vous avez besoin d'un certain type de package mais que vous ne pouvez trouver ce programme que dans un autre format de package.

Par exemple, alien m'a sauvé la journée un jour alors que je cherchais un pilote .deb pour une imprimante jet d'encre et que je n'en trouvais pas : le Le fabricant a uniquement fourni un package .rpm. J'ai installé Alien, converti le package et peu de temps après, 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 selon les distributions. 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 et surtout, 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 des dépendances

Pour installer alien dans CentOS/RHEL 7, vous devrez activer l'EPEL et le Nux Dépôts 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 package qui active ce référentiel est actuellement 0.5 (publiée le 10 août 2015). Vous devriez vérifier http://li.nux.ro/download/nux/dextop/el7/x86_64/ pour voir 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

alors fais,

yum update && yum install alien

Dans Fedora, il vous suffira d'exécuter la dernière commande.

Dans Debian et dérivés, faites simplement :

aptitude install alien

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

Pour ce test, nous avons choisi dateutils, qui fournit un ensemble d'utilitaires date et heure pour traiter de grandes quantités de données financières. Nous allons télécharger le package .deb dans 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 package cible. Si vous souhaitez remplacer ce comportement, ajoutez le – drapeau keep-version).

Si nous essayons d'installer le package immédiatement, 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 package à reconstruire :

yum --enablerepo=epel-testing install rpmrebuild

Alors cours,

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 serez 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 inclus avec dateutils et également consulter leurs pages de manuel respectives :

ls -l /usr/bin | grep dateutils

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

Dans cette section, nous illustrerons 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 système d'exploitation CentOS 6. référentiel. Notez que ce shell n'est pas disponible par défaut dans Debian et ses 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 devrait 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 en .deb et vice versa pour installer des packages en dernier recours lorsque ces programmes ne sont pas disponibles dans les référentiels ou sous forme de code source distribuable. Vous voudrez ajouter cet article à vos favoris car nous aurons tous besoin d’un extraterrestre à un moment ou à un autre.

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