Le programme alien convertit les paquets d’installation d’une distribution Linux pour les utiliser sur une autre. Mais Snap et Flatpak ne rendent-ils pas cela superflu maintenant ? En quelque sorte, mais ce n’est pas aussi simple.

Systèmes d’empaquetage Linux

Afin de permettre à leurs utilisateurs d’installer des logiciels, les distributions Linux ont besoin d’un système d’empaquetage de logiciels. Si la distribution est un fork d’une autre distribution établie, elle utilisera généralement le système d’empaquetage de l’ancienne distribution.

Comment installer un fichier RPM sous Linux

C’est pourquoi Fedora utilise des paquets RPM (qui signifiaient auparavant RedHat Package Manager) et Ubuntu et ses nombreux enfants utilisent des paquets DEB. DEB est simplement l’abréviation de « Debian ». D’autres distributions choisissent d’écrire leur propre système de gestion de paquets. Les fichiers d’installation empaquetés pour un gestionnaire de paquets ne sont pas interchangeables avec d’autres gestionnaires de paquets.

Traditionnellement, les développeurs d’applications devaient soit empaqueter leur application dans tous les formats qu’ils choisissaient de prendre en charge, soit travailler avec les responsables des différentes distributions Linux et leur confier les étapes de l’empaquetage. Cette dernière solution entraîne des retards dans la mise à disposition des nouvelles versions aux utilisateurs, tandis que la première impose aux développeurs une charge de travail supplémentaire.

Les projets Snap et Flatpak tentent de fournir le Saint Graal de la distribution de paquets : empaquetez votre application une fois, et installez-la sur n’importe quelle distribution Linux. Bien sûr, il peut y avoir ou non un Snap ou un Flatpak pour l’application que vous recherchez.

Pour aller plus loin : 5 systèmes d’exploitation Linux pour smartphones à installer sur votre appareil

Comment compiler et installer à partir des sources sur Ubuntu

Vous pouvez supprimer complètement les systèmes de packaging de l’équation, pour autant que vous soyez à l’aise avec le clonage d’un dépôt Git et la construction d’une application à partir du code source. Mais ce n’est pas le cas de tout le monde. Et toutes les applications – même sous Linux – ne sont pas open source, de sorte que vous ne pouvez pas tout construire à partir des sources.

Les mainteneurs de certaines distributions sont très doués pour récupérer des paquets pour d’autres plateformes et les reconditionner pour leur propre système de gestion des paquets, y compris pour les applications à source fermée. Mais il y aura toujours des cas où une application offre un DEB ou un RPM – les deux grands formats – et où tout le monde doit se débrouiller tout seul.

Des programmes comme alien existent pour résoudre le problème de la conversion d’un fichier de paquetage d’une autre distribution vers la version dont vous avez besoin sur votre ordinateur Linux. C’est bien en théorie, mais quel est leur degré de réussite ?

L’expérience alien

C’est à l’usage que l’on peut juger de la qualité du produit.

Nous avons pris trois RPMs différents et utilisé alien pour les convertir en DEBs. Nous avons ensuite essayé d’installer les DEB fraîchement créés sur Ubuntu.

Dans tous nos cas de test, il y avait aussi un DEB disponible au téléchargement, donc ce que nous faisions était en fait redondant. Mais nous avons pensé que les applications de test – le navigateur Microsoft Edge, l’éditeur Atom et Slack – constitueraient un bon test des capacités d’alien et nous avons donc ignoré les DEB standard.

Installation d’alien

L’installation d’alien a été simple sur Ubuntu, Fedora et Manjaro.

Sur Ubuntu, vous pouvez utiliser cette commande :

sudo apt install alien

Installation d’alien sur Ubuntu

Sur Fedora, vous devez taper

sudo dnf install alien

Installer alien sur Fedora

Sur Manjaro, le paquet alien est dans l’Arch User Repository. Cela signifie que pacman ne sera pas capable de le voir, nous devons donc utiliser un programme d’aide AUR comme yay. Le nom du paquet est également légèrement différent.

yay -S alien_package_converter

Installation de alien sur Manjaro

Pour aller plus loin : 11 Distros Linux qui supportent toujours l’architecture 32 bits

Utilisation de alien

Pour utiliser alien, vous devez spécifier le fichier que vous voulez convertir, et le format vers lequel vous voulez le convertir. Il crée un fichier avec le même nom de fichier – généralement – et avec l’extension du format que vous avez demandé.

En utilisant alien pour créer un paquet, alien incrémente le numéro de version du paquet. Si le numéro du paquet se trouve dans le nom du fichier, ce dernier sera également modifié.

Voici les formats qu’alien peut convertir depuis et vers.

-d : Convertit en un fichier DEB, pour Debian, Ubuntu, et tous les dérivés.
-r : Convertit en un fichier RPM, pour RedHat, CentOS, et Fedora.
-t : Convertit en un fichier d'archive TAR.GZ, pour Arch et les systèmes basés sur Arch comme EndeavourOS et Manjaro.
-l : Convertit en un fichier LSB, un fichier de base standard de Linux. Il s'agit d'une autre initiative visant à développer un format de paquetage multi-distribution.
-p : Convertit en un fichier PKG, un format utilisé entre autres par Solaris.
-to-slp : Convertit en un paquet SLP, un format utilisé par la distribution abandonnée Stampede Linux.

L’option de format que nous utiliserons est -d (DEB) car nous convertissons vers un fichier DEB. Nous utiliserons également l’option -c (scripts) pour convertir tous les scripts contenus dans le paquet.

Microsoft Edge

Nous avons téléchargé un RPM pour le navigateur Edge de Microsoft, et avons exécuté la commande suivante sur celui-ci :

sudo alien -d -c microsoft-edge-beta-97.0.1072.54-1.x86_64.rpm

Conversion du RPM Edge en fichier DEB

Sans l’option -c (scripts), il n’a pas créé le fichier DEB, il a signalé une erreur. Avec l’option -c, il a créé le fichier DEB.

Le fichier RPM original et le fichier DEB nouvellement créé

Notez que le nom du fichier DEB contient 54-2, et non 54-1.

Il est peu probable que la conversion de scripts se termine bien. Ils peuvent très bien être écrits pour une situation particulière ou une configuration unique à la véritable plate-forme cible du fichier de paquetage original. Pour cette raison, nous n’avions pas de grands espoirs. Néanmoins, nous avons essayé d’installer le DEB avec le programme dpkg et l’option -i (install).

sudo dpkg -i microsoft-edge-beta_97.0.1072.54-2_amd64.deb

Échec de l’installation avec le fichier DEB nouvellement créé

Cela n’a pas fonctionné.

Nous avons également essayé de double-cliquer sur le fichier DEB et d’utiliser l’application Ubuntu Software pour l’installer. Il est intéressant de noter que l’application logicielle savait que le fichier DEB avait été créé par alien.

Utilisation de l’application Ubuntu Software pour installer le fichier DEB nouvellement créé.

Cela n’a pas fonctionné non plus. Pour être sûr que le navigateur Edge s’installerait effectivement sur Ubuntu, nous avons installé le fichier DEB officiel de Microsoft Edge.

sudo dpkg -i microsoft-edge-beta_97.0.1072.54-1_amd64.deb

Commande d’installation du fichier DEB officiel de Microsoft Edge

Cela a fonctionné sans problème. Vous pouvez voir ci-dessous Microsoft Edge fonctionnant sur Ubuntu.

Microsoft Edge fonctionnant sur Ubuntu

L’éditeur Atom

Nous avons téléchargé le paquet d’installation RPM pour le populaire éditeur Atom. Nous avons utilisé la même commande alien pour le convertir en DEB.

sudo alien -d -c atom.x86_64.rpm

Conversion du fichier RPM Atom en fichier DEB

Cela a créé un fichier DEB sans aucun avertissement ni erreur. Nous l’avons installé en utilisant la commande dpkg avec l’option -i (install).

sudo dpkg -i atom_1.58.0-1.1_amd64.deb

Installation d’Atom à partir du fichier DEB nouvellement créé

Cela a parfaitement fonctionné.

Atom fonctionnant sur Ubuntu

Application de messagerie professionnelle Slack

Enfin, nous avons essayé de convertir le RPM de Slack en un DEB.

sudo alien -d -c slack-4.23.0-0.1.fc21.x86_64.rpm

Convertir le fichier RPM de Slack en un fichier DEB

Encore une fois, cela a créé un DEB sans avertissement et sans erreur. Nous avons utilisé cette commande d’installation :

sudo dpkg -i slack_4.23.0-1.1_amd64.deb

Installation de Slack à partir du fichier DEB nouvellement créé

L’installation a fonctionné sans problème. Slack était opérationnel sans aucun problème.

Slack fonctionnant sur Ubuntu

Résultats mitigés

Un utilitaire tel qu’alien est inévitablement confronté à une bataille difficile. Il y a peu de chances qu’il puisse fonctionner dans tous les cas, et cela a été confirmé par notre petite quantité de tests. Cela dit, quand il a fonctionné, il a été formidable.

Si vous êtes dans une situation où il n’y a rien d’autre à faire, essayez l’alien. Mais si une autre méthode s’offre à vous – Snap, Flatpak, ou la construction à partir des sources – essayez-les d’abord. Même les auteurs d’alien connaissent ses limites, et ont mis cet avertissement dans la page de manuel :

alien ne doit pas être utilisé pour remplacer des paquets système importants, comme init, libc, ou d'autres choses qui sont essentielles au fonctionnement de votre système. Beaucoup de ces paquets sont configurés différemment par les différentes distributions, et les paquets des différentes distributions ne peuvent pas être utilisés de manière interchangeable. En général, si vous ne pouvez pas supprimer un paquet sans casser votre système, n'essayez pas de le remplacer par une version étrangère.

Même si cela peut vous sortir d’un mauvais pas, assurez-vous d’avoir épuisé toutes les autres possibilités avant de vous tourner vers une version alien.