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 qu'un peu rare de nos jours, c'était la seule méthode disponible au début de Linux), ou en utilisant un outil de bas niveau tel que dpkg ou tr/min 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 vers .deb (et vice versa) étant l'utilisation la plus courante.
Cet outil, même lorsque son auteur ne le maintient plus et déclare sur son site Web qu'alien restera probablement toujours à l'état expérimental, peut être 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, extraterrestre m'a sauvé la journée quand je cherchais un .deb pilote pour un jet d'encre imprimante et n'en a pas trouvé - le fabricant n'a fourni qu'un .rpm emballer. 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 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 , outre les deux premières distributions et leurs familles respectives.
Étape 1 :Installer Alien et ses dépendances
Pour installer étranger dans CentOS /RHEL 7 , vous devrez activer le EPEL et le 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 package qui active ce dépôt est actuellement 0.5 (publié 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 , vous n'aurez qu'à exécuter la dernière commande.
Dans Debian et ses dérivés, faites simplement :
# aptitude install alien
Étape 2 :Conversion d'un package .deb en package .rpm
Pour ce test, nous avons choisi dateutils , qui fournit un ensemble de date et temps utilitaires pour traiter de grandes quantités de données financières. Nous allons télécharger le .deb package à notre CentOS 7 box, convertissez-le en .rpm et installez-le :
# 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 –keep-version drapeau).
Si nous essayons d'installer le package 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 référentiel epel-testing et installez le rpmrebuild utilitaire pour modifier les paramètres du package à reconstruire :
# yum --enablerepo=epel-testing install rpmrebuild
Alors lancez,
# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm
Ce qui ouvrira votre éditeur de texte par défaut. Allez dans les %files
section 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 O , 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 répertorier les outils individuels inclus avec dateutils et alternativement vérifier leurs pages de manuel respectives :
# ls -l /usr/bin | grep dateutils
Étape 3 :Conversion d'un package .rpm en package .deb
Dans cette section, nous allons illustrer comment convertir à partir de .rpm vers .deb . Dans une Debian Wheezy 32 bits box, téléchargeons le .rpm paquet pour le zsh shell du système d'exploitation CentOS 6 dépôt. 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 .deb le fichier 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 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 en tant que code source distribuable. Vous voudrez ajouter cet article à vos favoris car nous aurons tous besoin d'extraterrestres à un moment ou à un autre.
N'hésitez pas à partager vos réflexions sur cet article en utilisant le formulaire ci-dessous.