Installer un logiciel avec GNU/Linux, orienté Debian
Cette page explique le minimum à connaître sur la ligne de commande (ligne de commande, système de fichiers…)
1. apt (Debian)
1.1 sources.list 2. Synaptic |
3. Compiler des sources4. Méthodes alternatives
4.1 AppImage 5. Chargement de modules |
1. apt / apt-get (Debian)
Le système d'installation de Debian s'appelle apt (Advanced Packaging Tool), repris par les systèmes basés sur Debian. Les commandes apt télécharge les applications à partir des dépôts Debian et les installent de façon très automatique, en recherchant et installant les librairies nécessaires.
Si vous disposez déjà d'un paquet .deb sur votre ordinateur, voyez dpkg
Les commandes initiales étaient apt-get et apt-cache (suivie d'une option), elles ont été simplifiées à partir de la version 1.0 pour une commande unique apt suivie de l'option. Par exemple :
apt autoremove pour apt-get autoremove
apt show paquet pour apt-cache show paquet
La forme courte est une réécriture de la précédente, et est plus facile à lire par un simple utilisateur (couleur, mise en forme). La forme longue reste préconisée pour les scripts bash.
1.1 sources.list
Les dépôts qui seront visités figurent dans le fichier /etc/apt/sources.list, qu'il n'est possible d'éditer qu'en mode super-utilisateur, avec nano ou mc (ce dernier est à installer).
# deb cdrom:[Debian GNU/Linux 12.0 _bookworm_ - Official amd64 NETINST Binary-1 20230625-12:50]/ bookworm main deb http://ftp.be.debian.org/debian/ bookworm main contrib non-free non-free-firmware # deb-src http://ftp.be.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware # bookworm-updates, to get updates before a point release is made; # see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports deb http://ftp.be.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware deb http://www.deb-multimedia.org/ bookworm main non-free # bookworm-backports, previously on backports.debian.org deb http://ftp.be.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
Notes :
- Il s'agit d'un exemple assez complet, mais tout n'est pas toujours nécessaire. Les lignes commençant par deb-src ne sont utiles que pour la compilation : on peut les «commenter» en les préfixant d'un #
- Depuis Debian 12 Bookworm, les dépôts étrangers à la distribution (eid pour la gestion de la carte d'identité électronique belge, skype...) sont placés dans le répertoire /etc/apt/sources.list.d.
Ce fichier modifié, il est nécessaire de remettre à jour la base de données de la logithèque apt avec :
#apt updateEn mode super-utilisateur: su - [Enter]
…et éventuellement
#apt upgradeEn mode super-utilisateur: su - [Enter]
- Le # du fichier /etc/apt/sources.list de la première ligne (qui permet un commentaire) la rend inopérante, en cas de possession d'une connexion Internet à haut débit permettant de s'affranchir du média d'installation (CDROM, DVD, clé USB, disque dur USB). En cas d'utilisation d'un jeu de CDROM dont le premier seul est connu de sources.list, il suffit de signaler les autres au système avec la commande
#apt-cdrom add, suivi de l'introduction de chaque CDROM.En mode super-utilisateur: su - [Enter] - Catégories de logiciels :
- main signifie que le logiciel est conforme aux «Debian Free Software Guidelines», notamment libre (GPL, BSD, Artistic…), mais aussi non-discriminatoire à l'égard de groupes ou personnes ;
- non-free signifie que le logiciel n'est pas conforme aux DFSG ;
- contrib est un logiciel libre qui peut avoir des dépendances non libres
- Beaucoup de dépôts existent dans le monde, il vaut mieux choisir un dépôt pas trop loin de chez vous, pour des raisons de connexion.
- Les sources des paquetages ne sont pas nécessaires et peuvent donc être «commentées» (ajout d'un # en début de ligne), à moins de vouloir recompiler les applications.
- deb http://ftp.be.debian.org/debian/ bookworm-backports main contrib non-free peut contenir un noyau Linux plus neuf.
Ajouter deb-multimedia parmi les sources permet certaines applications et bibliothèques concernant le multimédia et acroread (pdf). Ajouter la ligne (voir début de section) :
deb http://www.deb-multimedia.org/ bookworm main non-free
…puis saisir
#apt update -oAcquire::AllowInsecureRepositories=trueEn mode super-utilisateur: su - [Enter]
apt edit-sources
# apt edit-sources permet (en mode super-utilisateur) une édition du fichierEn mode super-utilisateur: su - [Enter]
1.2 apt(-get)
# apt install application_souhaitée permet l'installation d'une application en ligne de commande, à partir de CD, clé USB ou connexion Internet.En mode super-utilisateur: su - [Enter]
# apt remove [--purge] application désinstalle [complètement : fichiers de configuration y compris] un paquet.
En mode super-utilisateur: su - [Enter]
Bien que Debian ait opté pour des noms simples débarrassés des numéros de version, on ne sait pas toujours comment s'appelle exactement une application :
apt-cache search mot_clé recherche un mot clé dans le noms et le descriptif des applications
apt-cache search video mpg4 sélectionne les applications dont le nom et le descriptif contiennent en même temps video et mpg4
apt-cache show paquet donne les informations disponibles sur un paquet particulier
L'installation consiste en un placement des paquets .deb en /var/cache/apt/archives/, en une décompression des paquets et le placement d'exécutables, de la documentation ou des données en /usr/bin ou /usr/share, en tenant compte des dépendances (librairies nécessaires), en actualisant la base de données et les fichiers de configuration. De plus, les nouvelles applications sont le plus souvent inscrites dans le menu de l'interface graphique.
Attention : apt ne peut fonctionner tant qu'une installation par dpkg est en cours ou lorsque synaptic est ouvert, car la base de données des applications est alors verrouillée, ce qui empêche deux opérations d'installation contradictoires.
1.3 Liste des logiciels
Afin de faciliter les installations multiples, les réinstallations ou les upgrades, il est possible de lister tous les logiciels installés sur un système debian :
dpkg --get-selections > logiciels.txt
Ce fichier (à conserver sur une clé USB ou sur une partition qui ne sera pas reformatée) sera utile pour réinstaller ces applications (si elle figurent sur la base de données des logiciels de la nouvelle version de Debian). Après la réinstallation du système :
#apt updateEn mode super-utilisateur: su - [Enter]#dpkg --set-selections < logiciels.txtEn mode super-utilisateur: su - [Enter]#apt dselect-upgradeEn mode super-utilisateur: su - [Enter]
Attention au sens des pipes > < ! La première ligne établit (get) la liste des logiciels et sa sauvegarde (> logiciels.txt) ; la seconde lit la liste sauvegardée (< logiciels.txt) et la met en œuvre (set).
1.4 Mises à jour
Il est bon de temps en temps de vérifier qu'il n'existe pas de nouvelle version corrigeant les éventuels défauts ou problèmes de sécurité des applications se trouvant sur votre système. Cela se fait en deux temps :
# apt update remet à jour la base de données des dépôts indiqués dans le fichier /etc/apt/sources.listEn mode super-utilisateur: su - [Enter]
# apt upgrade recherche les nouvelles versions des applications installées sur votre système et remplace les anciennes
En mode super-utilisateur: su - [Enter]
Attention : il peut exister des conflits entre versions différentes d'un paquet situées sur des dépôts différents. Il faut alors spécifier le dépôt :
#apt -t stretch-backports install nom-du-paquetEn mode super-utilisateur: su - [Enter]
# apt clean détruit les paquets .deb téléchargés lors d'une installation, ce qui permet de récupérer de la place. Les logiciels installés à partir de ces paquets restent en place.
En mode super-utilisateur: su - [Enter]
Mise à jour de la distribution
Il est possible d'installer la nouvelle version de la distribution, comme passer de Debian 11 Bullseye (juillet 2019) à Debian 12 Bookworm (juin 2023).
Remplacer les occurrence de buster par bullseye dans le fichier /etc/apt/sources.list (voir apt).
# apt update
En mode super-utilisateur: su - [Enter]# apt dist-upgrade
En mode super-utilisateur: su - [Enter]
Note : cela ne concerne pas l'éventuelle ligne contenant backport.
1.5 dpkg
Certains logiciels sont disponibles sous forme de paquet isolé. L'installer est toujours risqué sauf si l'on est sûr de l'intégrité du site qui le distribue : à vos risques et périls. Par ailleurs, le logiciel peut nécessiter de librairies plus récentes que celles de votre système, ce qui peut rendre ce dernier instable.
# dpkg -i nom_du_paquet.deb installe un paquet téléchargé, à condition de disposer des paquets dont il dépend (ce n'est pas conseillé, le système Debian étant un tout structuré). Il est possible que l'installation ne puisse se faire pour des problèmes de dépendances (des composantes nécessaires ne sont pas installées), laissant apparaître l'erreur de type :
En mode super-utilisateur: su - [Enter]
Le paquet libclang-dev n'est pas installé.
La tentative d'installation apt install libclang-dev peut elle-même provoquer une nouvelle erreur, et le système recomande
#apt --fix-broken installEn mode super-utilisateur: su - [Enter]
qui tente d'installer tout ce qui manque. C'est seulement après que l'on peut retenter
#dpkg -i nom_du_paquet.debEn mode super-utilisateur: su - [Enter]
Attention : dpkg ne peut fonctionner tant qu'une installation par apt est en cours ou lorsque synaptic est ouvert, car la base de données des applications est alors verrouillée.
# dpkg-reconfigure nom_du_paquet permet de reparamétrer un paquet, ce qui ne concerne pas toutes les applications.
En mode super-utilisateur: su - [Enter]
# dpkg --remove nom_du_paquet permet d'éliminer un paquet mal configuré, qui empêche toute nouvelle installation ou configuration (tel une tentative d'installation de ttf-mscorefonts-installer sur Jessie).
En mode super-utilisateur: su - [Enter]
Attention : la désinstallation de certains paquets rend le système inutilisable, comme par exemple l'éditeur de simples textes d'un bureau.
1.6 Multi-Arch
Le système Multi-Arch permet d'utiliser des binaires prévus pour une autre architecture. Dans cet exemple, il s'agit d'utiliser skype écrit pour une architecture 32bits avec une distribution 64bits :
#dpkg --add-architecture i386En mode super-utilisateur: su - [Enter]#apt updateEn mode super-utilisateur: su - [Enter]#apt -f installEn mode super-utilisateur: su - [Enter]#dpkg -i skype-debian_4.3.0.37-1_i386.debEn mode super-utilisateur: su - [Enter]
Note : il faut parfois relancer # apt -f install avant une nouvelle réinstallation du paquet .deb
En mode super-utilisateur: su - [Enter]
2. Synaptic
Synaptic est une interface utilisateur pour les commandes apt. Elle se lance avec synaptic. Appelée par le menu Gnome ou Mate-desktop, le mot de passe du super-utilisateur est évidemment exigé. Bien que synaptic puisse être utilisé pour les distributions basées sur le système rpm , nous nous limiterons au système apt.
Synaptic permet la recherche d'applications dans la base de donnée Debian, donne un aperçu de leur utilité, les installe en vérifiant leurs dépendances (une application se base en général sur des librairies, ou sont des versions graphiques d'applications en ligne de commande) et les configure.
Avec une connexion rapide, cela permet de suivre l'évolution des applications et de leur sécurité : Synaptic permet l'update en cliquant successivement sur les trois gros boutons de la barre en haut, Recharger (apt update), Tout mettre à jour (apt upgrade) et, s'il y a de nouvelles versions de paquets : Appliquer
Comme apt, synaptic se base sur le fichier /etc/apt/sources.list), mais la gestion est plus aisée, par Configuration » Dépôts :
URI: http://ftp.be.debian.org/debian/ (ou similaire)
Distribution: stretch (ou testing si vous vous y connaissez)
Catégorie(s): contrib non-free main (ou seulement main pour les puristes)
Un petit carré vert devant le nom d'un paquet signifie qu'il est installé. Avec une petite étoile jaune, cela signifie qu'un des dépôts contient une version plus récente. Il n'est pas toujours conseillé de procédéer à la mise à niveau, une application d'un dépôt nécessitant peut-être sa version plus ancienne.
Si synaptic n'est pas installé, il faudra utiliser… la ligne de commande
#apt install synapticEn mode super-utilisateur: su - [Enter]
Note :
- pour éviter que deux ou plusieurs applications ne manipulent simultanément le système apt, une application d'administration verrouille la base de données des applications. Impossible donc d'utiliser en même temps synaptic, apt ou dpkg.
- une boîte de dialogue peut vous poser une question qui conditionne la suite de l'installation, et cette boîte peut être cachée par une fenêtre de synaptic. Si après le téléchargement plus rien ne se passe, vérifiez toutes les fenêtres ouvertes su votre bureau.
Note : il arrive parfois que synaptic se bloque entre le téléchargement et l'installation. Cela est souvent dû à une fenêtre d'alerte qui pour une raison ou une autre s'est ouverte en dessous de la fenêtre principale et qui attend un clic de souris.
3. Compiler des sources
Certaines applications n'existent que sous forme d'archives à compiler, soit qu'elles n'existent pas dans un paquet officiel de votre distribution, soit pas sous une version comprenant une fonctionnalité dont vous avez besoin. Une compilation n'est pas nécessairement difficile, si l'on veut bien faire attention à ce que la machine raconte.
uname -r indique le numéro de noyau Linux. Certains paquets à compiler ne fonctionnent que pour certaines versions du noyaux (entre 3.06 et 3.14, par exemple).
Il faut que certains paquets soient installés :
- les headers (fichiers de description des sources du noyau). Le nom dépend du noyau linux installé. Si le noyau porte le numéro 4.10.0-4-amd64, les headers sont compris dans le paquet dont le nom ressemble à linux-headers-4.10.0-4-amd64.
- gcc est le compilateur. Le paquet renvoie en fait à un autre paquet, comme gcc4.8
- cpp et build-essential sont parfois nécessaires
Pour la compilation proprement dite, il faut décompresser votreapplication.tar.gz et d'abord lire le fichier README ou INSTALL qui s'y trouve. La procédure à suivre est (le plus généralement!) :
- tar -xvjf répertoire-à-décompresser.tar.bz2 (l'interface graphique installée permet le plus souvent de double-cliquer sur le zip et décompresser le répertoire qui s'y trouve en le tirant-glissant sur le bureau)
- cd répertoire-décompressé (il peut être intéressant de simplifier son nom au préalable)
- Lire le fichier README ou INSTALL, qui indique parfois une méthode particulière, sinon :
- ./configure lance le fichier configure du répertoire, qui fabrique le fichier makefile
- make lance la commande make normalement disponible sur votre système (sinon, installer make)
#make install lance l'installation.En mode super-utilisateur: su - [Enter]
Parfois, un script d'installation ./install remplace la procédure ./configure / make / make install. Pour pouvoir être lancé, un script doit être rendu exécutable, soit par un clic-droit » Propriétés » Permission » Autoriser l'exécution de ce fichier comme un programme, soit par la commande dans une console :
chmod u+x install.sh
En général, les erreurs surviennent lors des deux premières étapes, par exemple :
Error 1: libgcc1 library not found
doit vous inciter à installer le paquet libgcc1.
Compiler un script .c
Le compilateur gcc (GNU compiler collection) permet de rendre une application directement exécutable par le système. Les sources peuvent être écrites en Ada, C, C++, Objective-C, Java, Fortran et Go. L'exemple suivant est un fichier «C» :
#include <stdio.h> int main() { printf("Les sanglots longs des violons.\n") ; }
- stdio.h est la librairie des entrées et sorties basiques (standard input/output) qui permet l'utilisation de printf()
- main() est le corps central de l'application
- \n (octet 10) est le saut de paragraphe UNIX et MacOSX en fin de chaîne
En ayant sauvegardé le script sous le nom essai.c, gcc (GNU compiler) étant installé sur votre système, lancer la compilation puis lancer le binaire produit :
gcc essai.c -o essai.bin ./essai.bin
Si -o essai.bin n'est pas précisé, l'exécutable produit est a.out.
4. Paquets «universels»
Trois méthodes permettent une utilisation d'applications quelle que soit la distribution : AppImage, Snap et FlatPak. Ces méthodes sont surtout utilisées pour disposer d'applications dans les versions les plus récentes, mais cela va à l'encontre de la notion même de distribution.
Une AppImage peut être pratique car elle est constituée d'un seul fichier, bien entendu plus volumineux que l'application équivalente de votre distribution. Snap et Flatpak sont plutôt deux systèmes de paquetages parallèles à votre distribution avec leur lot de dépendances qui saturent vite la partition système si vous l'avez séparée de /home comme il est préférable de faire.
Notes (concerne surtout Debian) :
- certains logiciels, comme firefox, proposent très vite leur nouvelle version à installer par le système apt update / upgrade : votre système reçoit facilement les dernières versions
- LibreOffice met à disposition ses paquets deb ou rpm.
- la mention du dépôt http://deb.debian.org/debian/ bullseye-updates main contrib non-free dans le fichier /etc/apt/sources.list permet une mise à jour des versions récentes de certaines librairies ou logiciels comme tzdata ou clamav
- ajouter la ligne deb https://deb.debian.org/debian bullseye-backports main contrib non-free dans le fichier /etc/apt/sources.list puis
#apt -t bullseye-backports upgrade permet d'installer des versions futures de logicielsEn mode super-utilisateur: su - [Enter]
4.1 AppImage
Une AppImage est un fichier qu'il faut rendre exécutable avant de s'en servir. Après avoir téléchargé MuseScore, pour simplement le lancer le programme (un éventuel cd chemin pour se placer dans le répertoire où est téléchargé le fichier «AppImage») :
$ cd Bureau $ chmod 740 MuseScore-4.0.1.230121751-x86_64.AppImage $ ./MuseScore-4.0.1.230121751-x86_64.AppImage
Lancé sans les privilèges de super-utilisateur, il ne devrait pas pouvoir endommager le système.
Pour l'installer sur le système (dans les menus, avec icone) :
#./MuseScore-4.0.1.230121751-x86_64.AppImage installEn mode super-utilisateur: su - [Enter]
Le répertoire /usr/local/bin contient le fichier exécutable 4.0 de 140Mo, contre 160 (3.6, sic!) et 62Mo pour la version 3.2.3 disponible sur les dépôts de Debian 11 Bullseye. Sur Mate-Desktop, un lanceur s'est placé dans le Menu » Son et Vidéo.
4.2 Snap
Il s'agit d'un mode de distribution centralisée d'applications exécutables sur toutes les distributions. Il existe un paquet Debian officiel pour utiliser cette technique, à installer : snapd (70Mo sur le système). Cela permet d'installer les versions les plus récentes de gimp, blender, inskape… mais cela n'est pas recommandé.
#apt update # apt install snapd # snap install coreEn mode super-utilisateur: su - [Enter]
Pour installer hugo (éditeur de sites Internet statiques) :
#snap install hugoEn mode super-utilisateur: su - [Enter]
Le répertoire /snap/hugo/11017/bin contient maintenant le fichier exécutable de 40Mo, mais l'ensemble du répertoire /snap pèse 2,9Go.
4.3 FlatPak
Il s'agit d'un mode de distribution centralisée d'applications exécutables sur toutes les distributions. Il existe un paquet Debian officiel pour utiliser cette technique, à installer : flatpak (10Mo sur le système)… mais cela n'est pas recommandé.
#apt update # apt install flatpak # flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # flatpak search blender # flatpak install blenderEn mode super-utilisateur: su - [Enter]
Le lancement de l'application se fait avec
flatpak run org.blender.BlenderEn mode simple utilisateur$
…org.blender.Blender étant apparu avec la commande flatpack search blender.
Le répertoire /var/lib/flatpak/app/org.blender.Blender/etc… contient le fichier exécutable de 260Mo, parmi 41000 autres fichiers d'une taille globale de 1,8Go.
5. Chargement de modules
Les modules sont des intermédiaires entre le noyau Linux et le matériel, qui peut varier d'un ordinateur à l'autre : mémoire, disques, cartes vidéo, cartes son, réseaux, imprimantes. tous les modules pour tous les périphériques possibles chargés en mémoire seraient très encombrants. Lors de l'installation Debian, il est demandé si tous les modules doivent être chargés sur le disque, et cela est préférable : cela prendra environ 100 Mo, ce qui n'est pas grand-chose en comparaison aux disques d'un TéraOctets. Les modules pour les cartes wifi sont rarement libres : il faut alors les installer, à condition d'avoir activé les dépôts non libres.
# modprobe module permet de charger un module et ses dépendances. Pour automatiser cela, inscrire les modules (dans l'ordre des dépendances : le module spécifié en dernier lieu) dans le fichier /etc/modules (pour Mandriva, ce serait le fichier /etc/modprobe.preload).
En mode super-utilisateur: su - [Enter]
lsmod permet de déceler les modules dépendants, mais peut-être vaut-il mieux comparer avant et après modprobe –: pas trop pratique.
# rmmod module désinstalle un module
En mode super-utilisateur: su - [Enter]
lspci -k affiche les périphériques PCI et leurs modules