Comment installer des logiciels sous Linux ?

Par Julien Roland , le 10/05/2020 , mis à jour le 10/05/2023 - 13 minutes de lecture
logiciels de Gnome

Sous Windows, installer un logiciel nécessite la plupart du temps l’utilisation d’un programme d’installation, exécutable, lequel va initier diverses opérations dans le système d’exploitation pour réaliser l’installation du logiciel. Ces opérations sont de type copie des fichiers du programme, création des clés de registre éventuelles nécessaires à son fonctionnement, création des raccourcis du menu démarrer pour le lancer ou encore configuration des utilitaires de désinstallation du programme. Ce sont ces opérations qui se cachent derrière le fameux suivantsuivantterminer.
La plupart du temps, le programme d’installation d’un logiciel pour Windows embarque tous les fichiers exécutables, les fichiers de configuration et les librairies nécessaires au fonctionnement du logiciel.
Dans la majorité des distributions Linux, ce n’est pas le cas. Par exemple, les logiciels étant libres pour la plupart, leur différents composants comme les librairies de fonctions peuvent être ré-utilisées librement par d’autres programmes pour leur fournir des capacités supplémentaires. Ceci créé par conséquent des relations de dépendances entre les logiciels. Voici un bref aperçu de la gestion des paquets, de comment installer des logiciels sous Linux, et du changement du paradigme habituellement vu avec Windows.

La mutualisation et l’organisation des fichiers des logiciels dans les distributions Linux

Les logiciels libres partagent souvent entre eux des composants, et certains paquets peuvent même n’être constitués que de librairies de fonctions. Cette propriété rend caduque l’organisation utilisée sous Windows, où chaque programme installe tout ses fichiers dans un dossier qui lui est dédié. Ainsi, dans la majorité des distributions Linux, les différents éléments sont organisés par type de fichiers. Par exemple, tous les fichiers exécutables seront stockés dans les répertoires /bin ou /usr/bin (ou /sbin et /usr/sbin si ils appartiennent au super-utilisateur), les fichiers de configuration globaux seront stockés dans /etc, ou bien toutes les librairies de tous les programmes seront stockées dans les répertoires /lib ou /usr/lib. Ces dernières n’appartiennent pas spécialement à un programme particulier, elles sont à la disposition de qui en a besoin. Elles auront été déposées dans le système de fichiers lors de l’installation du premier programme qui les nécessite. De la sorte, on constate une certaine mutualisation des ressources.

Les dépendances, les paquets et les gestionnaires de paquets

Les logiciels pour les distributions Linux sont fournis par les mainteneurs des distributions sous forme de paquets. Ce sont des sortes d’archives, un peu dans l’esprit d’un fichier .zip. Ils ne sont pas tous identiques d’une distribution à une autre, et même si il y a deux grandes familles (les paquets .deb pour Debian et dérivés, et les .rpm pour les nombreuses distributions héritant de ce système de Red Hat), ce ne sont pas les deux seules. Peu importe leur type, ces paquets contiennent l’ensemble des fichiers propres au logiciel que l’on souhaite installer, ainsi que les procédures d’installation et de configuration.

Le fait que plusieurs logiciels peuvent partager des éléments tels que des librairies implique que lorsque l’on souhaite installer un logiciel ayant besoin pour l’une ou l’autre de ses fonctionnalités de base d’une librairie fournie par un autre paquet, ce dernier doit être installé en même temps, s’il ne l’est pas déjà. C’est le principe des dépendances. Si toutes les dépendances nécessaires à l’installation d’un paquet ne sont pas satisfaites, l’installateur de paquets (tel que dpkg pour les distributions basées sur Debian, ou rpm pour les distributions type Fedora ou OpenSuse Leap) refusera d’installer le paquet car le logiciel ne serait pas fonctionnel ; la cohérence du système ne serait pas satisfaisante.

Gérer manuellement les dépendances d’un paquet est envisageable, et pour prendre exemple de la distribution Debian, sa page recensant les packages logiciels indique les dépendances pour chaque paquet. On pourrait s’amuser à toutes les télécharger manuellement, et les installer avec dpkg. Mais ça ne serait pas drôle longtemps. Heureusement, pour nous aider, il y a les gestionnaires de paquets. Ceux-ci se chargent, quand on leur demande d’installer un logiciel, d’aller le télécharger sur les dépôts de la distribution, ainsi que toutes ses dépendances, et d’invoquer l’installeur de paquets (dpkg par exemple dans la distribution Debian) pour effectuer l’installation du logiciel et de tous ses composants, tout ça, automatiquement. Comme gestionnaires de paquets, on peut citer le fameux apt pour Debian / Ubuntu et affiliées, zypper pour OpenSuse Leap, ou bien encore le célèbre yum ou plus récemment dnf pour Fedora ou CentOS. Ces gestionnaires sont en ligne de commande et sont très simples d’utilisation et remarquablement efficaces. Ils peuvent par ailleurs se charger de mettre à jour l’ensemble des logiciels de la distribution, quand c’est nécessaire.

Comment installer des logiciels sous Linux avec un gestionnaire de paquet : exemples avec apt, pour Debian / Ubuntu et dérivés

Comme évoqué plus haut, dans Debian et ses dérivés apt est le gestionnaire de paquets. Voici quelques exemples de commandes Linux pour des logiciels avec apt.

sudo apt update

Cette commande demande à apt de mettre à jour la liste des paquets dans les dépôts. On l’invoquera de préférence avant chaque session apt, de sorte que celui-ci soit au courant des nouveautés dans les dépôts logiciels.

apt update
La commande apt update, pour mettre à jour la liste des paquets présents dans les dépôts.
apt search un_nom_de_logiciel

Cette commande demande à apt de rechercher dans les noms et les descriptions de paquets des dépôts le mot un_nom_de_logiciel. C’est très utile quand on cherche le nom du paquet qui permet l’installation d’un logiciel donné.

apt search
La commande apt search, pour faire une recherche dans les dépôts.
sudo apt install un_nom_de_paquet

Cette commande demande à apt de télécharger et d’installer le paquet un_nom_de_paquet, ainsi que toutes ses dépendances. Généralement l’installation d’un logiciel requière plusieurs paquets, apt se charge de tous les installer automatiquement.

apt install
La commande apt install réalise le téléchargement du paquet et de ses dépendances, et installe le tout.
sudo apt remove un_nom_de_paquet

Cette commande demande à apt de supprimer le paquet un_nom_de_paquet. Si des fichiers de configuration sont liés à ce paquet, ils seront conservés. Si on souhaite également supprimer ces fichiers de configuration, on remplacera le mot clé remove par le mot clé purge.

apt remove
La commande apt remove désinstalle les paquets.
sudo apt upgrade

Cette commande demande à apt de mettre à jour tous les paquets installés dans le système qui disposent d’une version plus récente dans les dépôts logiciels. On invoquera donc la commande sudo apt update avant.

apt upgrade
La commande apt upgrade, pour mettre à jour les logiciels déjà installés.

Note : la plupart des commandes apt listées ci-dessus réalisent des opérations administratives sur le système, et nécessitent par conséquent d’être exécutées pour le compte du super-utilisateur, c’est pour ça qu’elles sont préfixées du mot clé sudo. Il n’y a dans ces exemples que la recherche dans la liste des paquets qui ne le nécessite pas.

Comment installer des logiciels sous Linux avec un gestionnaire de paquets en mode graphique

Les gestionnaires de paquets graphiques ont les mêmes fonctions que leurs homologues en mode texte, en apportant en plus le confort d’une interface graphique ergonomique. Ils proposent un moteur de recherche dans lequel on formule sa requête, puis on pioche ce que l’on souhaite installer parmi les résultats. Ils peuvent également maintenir la distribution à jour ou bien encore gérer la liste des dépôts logiciels. Certains se présentent même sous forme d’un magasin d’applications, avec de rubriques regroupant les logiciels par thème. En voici deux parmi toute une ribambelle.

Exemple avec logiciels de Gnome (ou Gnome logiciels, ou gnome-software)

Voici un gestionnaire de paquets qui se conforme aux codes qui sont dans l’air du temps, et qui par conséquent se présente sous la forme d’un magasin d’applications typique, tel qu’on peut les rencontrer sous IOS ou Android. Il regroupe les logiciels par thème.

logiciels de Gnome
La page d’accueil de logiciels de Gnome, présentant les catégories.

L’installation d’un logiciel est aisée, il suffit de choisir le logiciel et cliquer sur le bouton installer; logiciels de Gnome (ici renommé en Logiciels Ubuntu, mais c’est bien le même gestionnaire de paquets) se charge d’installer automatiquement toutes les dépendances. Il affiche une capture d’écran du logiciel, et dispose également comme tous les magasins d’applications modernes d’un système de commentaires.

installation avec logiciels de Gnome
Une fiche décrivant un logiciel, avec le bouton installer.

En outre, il met à disposition un moteur de recherche pour réaliser ses requêtes.

recherche dans logiciels de Gnome
Une recherche dans logiciels de Gnome.

Les habitués des smartphones n’auront aucune peine à utiliser ce gestionnaire de paquets car ils retrouveront immédiatement l’ergonomie de leur outil de poche.
Il faut noter que logiciels de Gnome ne gère pas les mises à jour des logiciels à proprement parler, cette tâche étant assurée par un autre composant (update-manager dans le cas de Ubuntu 19.04).

update manager
Update-manager signale qu’il y a quelques mises à jour à effectuer.

Exemple avec Synaptic

Présent depuis longtemps par défaut dans Debian par exemple, Synaptic pourrait être considéré comme une interface graphique des outils apt. Il possède ainsi l’ensemble des fonctionnalités proposées par apt, et sait ainsi réaliser toutes les tâches d’installation et de suppression de paquets. Il gère les mises à jour, ainsi que la configuration des dépôts.

accueil synaptic
L’accueil de synaptic, avec les catégories et les filtres.

Il peut effectuer des recherches dans le répertoire des paquets.

synaptic recherche
Le résultat de la recherche du logiciel k3b dans synaptic.

Il propose également de lister les paquets en fonction de catégories, mais dispose en plus d’un système de filtres permettant par exemple de lister les paquets dits « cassés » (ayant des problèmes de dépendances par exemple).
La réalisation des opération consiste en appliquer la liste des demandes effectuées (installation, suppression, mise à jour..,) en cliquant sur le bouton dédié.

Quelques mots sur les dépôts logiciels

Dans toutes les distributions modernes, le système de base est installé depuis un média d’installation plus ou moins volumineux. Dans tous les cas, ce média dispose au moins du système minimal à installer, mais ne peut pas contenir l’ensemble des paquets de la distribution (qui représentent souvent plusieurs dizaines de giga octets).
Ainsi, pour installer des logiciels supplémentaires, les gestionnaires de paquets vont les télécharger automatiquement depuis des dépôts de paquets, gérés pour la plupart par les mainteneurs de la distribution. Lorsqu’un paquet est mis à jour par son responsable dans la distribution, cette mise à jour est immédiatement disponible pour les gestionnaires de paquets des distributions installées sur les ordinateurs de leurs utilisateurs. Les dépôts disposent également souvent de miroirs, c’est-à-dire des copies synchronisées en plusieurs points du globe, de sorte à être les plus près possibles des utilisateurs.

Installations à partir des sources

Il ne faut pas perdre de vue que la grosse majorité des logiciels dont il est question sont libres, et que donc leur code source est accessible à tout un chacun. Il est donc tout à fait possible de construire (on dit compiler) les fichiers exécutables à partir du code source du logiciel. Cette méthode présente par exemple l’avantage de pouvoir utiliser des versions les plus récentes possibles de logiciels (voire des versions de développement), ou encore de ne compiler que les options qui nous intéressent d’un logiciel et ainsi avoir une version hyper légère et optimisée de celui-ci. Quoi qu’il en soit on parle ici d’une pratique réservée à un public plutôt expert.

Retour au paradigme Windows avec Appimage et compagnie

Depuis quelques temps déjà, une nouvelle façon de distribuer et d’exécuter des logiciels se développe dans l’écosystème des distributions Linux avec des systèmes comme Appimage, snap ou bien encore flatpack. Ces systèmes sont ce qu’on appelle des lots applicatifs. Un logiciel distribué de cette sorte est empaqueté avec toutes les librairies et autres dépendances dont il a besoin pour fonctionner, sans s’intéresser à ce qui est déjà présent dans la distribution ; en ça, cela peut sembler similaire à ce qui se passe pour un logiciel pour Windows.

Dans le cas de Appimage par exemple, un logiciel entier peut être embarqué dans un unique fichier d’archives, et exécuté directement après avoir rendu exécutable ce fichier. On pourrait rapprocher ce concept de celui des logiciels portables pour Windows.
Suivant la technologie de lot applicatif, les interactions avec le système hôte sont plus ou moins présentes et l’environnement d’exécution est plus ou moins étanche. L’intégration avec l’environnement existant est également plus ou moins poussée.

L’avantage de ces solutions peut être de pouvoir mettre à disposition un nouveau logiciel sans avoir attendre qu’il soit intégré et packagé pour une distribution donnée par exemple. Ceci au prix d’une intégration moindre, et d’une lourdeur accrue.

Tux, la mascotte du noyau Linux. (c) Larry Ewing

Julien Roland

Technicien systèmes et réseaux depuis plus de 15 ans, je travaille au sein des infrastructures informatiques d'une entité de plusieurs milliers d'utilisateurs. Convaincu du fait qu'il existe des produits d'excellence à la fois issus du monde propriétaire et du monde open source, j'aime butiner dans les deux. Cependant j'ai une appétence particulière pour les logiciels libres de par leur esprit d'universalité et de partage. Mes contributions passent par le partage et la transmission des mes connaissances et expériences, mais aussi par l'aide et le conseil que je peux apporter autour de moi.

Voir les publications de l'auteur

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.