Installation de Linux et des logiciels
Prérequis et objectifs
1. Prérequis
Avoir configuré le BIOS pour démarrer sur le lecteur CD/DVD ou le support USB, ou bien disposer d’un gestionnaire de machine virtuelle.
Disposer d’une source d’installation (CD, DVD, USB, image ISO, réseau).
2. Objectifs
À la fin de ce chapitre, vous serez en mesure :
D’installer une distribution Ubuntu, Debian ou de type Red Hat.
De gérer les paquets logiciels de type Red Hat.
D’utiliser les commandes Red Hat Package Manager.
D’utiliser les gestionnaires de paquets Yum et DNF.
De gérer les paquets logiciels de type Debian.
D’utiliser les gestionnaires de paquets APT et dérivés.
D’utiliser le gestionnaire de paquets Zypper.
De gérer les bibliothèques partagées.
Installer une distribution
Avant de procéder à l’installation d’une distribution Linux sur un ordinateur, il faut répondre à différentes questions et déterminer des paramètres essentiels :
1. Déterminer les caractéristiques d’installation
-
Quelle sera l’utilisation du système : poste de travail d’utilisateur, de développeur, serveur de ressources, d’application, réseau ?
-
Quelle sera la configuration minimale souhaitable (variable suivant l’utilisation envisagée) : taille mémoire, processeur(s), espace disque, carte(s) réseau ?
-
Quelle distribution installer ?
-
Quel média d’installation utiliser : CD/DVD, clé USB, installation via le réseau ?
Il est possible d’installer une distribution Linux dans une machine virtuelle, surtout pour des tests. On peut également configurer une machine virtuelle dans le « cloud ».
2. Paramètres d’installation
Après avoir déterminé les réponses aux questions précédentes, on peut commencer l’installation. Peu d’éléments sont nécessaires à une installation de base, et il sera généralement possible de compléter celle-ci ultérieurement, hormis certains paramètres qui devraient être spécifiés dès l’installation, leur modification pouvant être difficile ultérieurement :
-
Langue
-
Fuseau horaire
-
Nom de machine
-
Domaine DNS
-
Adressage IP de base (adresse IP, passerelle par défaut...
Les gestionnaires de paquets logiciels
Les distributions Linux proposent des outils de gestion des logiciels, qui permettent d’installer, de mettre à jour ou de désinstaller les composants logiciels d’un système. Ces outils maintiennent une base de données permettant aux administrateurs de connaître et de gérer toutes les applications déployées via ces outils.
Les deux gestionnaires de logiciels les plus utilisés aujourd’hui sont ceux de type Debian et ceux de type Red Hat. Ils s’appuient tous les deux sur le concept de paquet logiciel (package), mais ne disposent pas de structure ni d’outils communs de structure différente, et proposent des outils différents. Les distributions de type Red Hat ou SUSE, utilisent le format RPM (Red Hat Package Manager) tandis que celles de type Debian et Ubuntu utilisent le format DPKG (Debian Package).
1. Notion de paquet logiciel (package)
En environnement Linux, la plupart des composants logiciels sont fournis sous forme de paquets logiciels (packages). Un paquet logiciel est un fichier qui contient les composants du produit à installer, ainsi qu’un ensemble de règles pour son installation, sa mise à jour ou sa désinstallation. Selon son contenu, sa taille peut être plus ou moins importante. Le noyau et tous ses modules sont par exemple fournis sous cette forme.
Les règles concernant...
Les paquets logiciels Red Hat
Red Hat a défini le format de paquets logiciels RPM (Red Hat Package Manager), utilisé par les distributions de type Red Hat et SUSE.
1. Le gestionnaire RPM
RPM est un ensemble logiciel qui prend en charge la distribution, l’installation, la mise à jour et la suppression des logiciels. Il dispose pour cela de commandes spécifiques s’appuyant sur une base de données locale.
La base de données de gestion des paquets logiciels est située dans /var/lib/rpm. Toutes les informations concernant les logiciels installés, leurs versions, leurs fichiers et droits, et leurs dépendances y sont stockées. Sauf cas particulier, il ne faut JAMAIS modifier cette base directement, mais utiliser pour cela les outils RPM.
Chaque logiciel est fourni sous forme de paquet logiciel au format RPM. Le nom du paquet, suffixé par .rpm, répond à une nomenclature précise.
nom-version-edition.architecture.rpm
L’édition est un identifiant de version du paquet logiciel RPM propre à l’éditeur qui peut être un simple numéro de construction (nombre de fois que le paquet logiciel a été reconstruit), mais peut aussi contenir d’autres informations comme la version du système cible ou la référence à un commit d’un dépôt de code git.
L’architecture spécifie le type de processeur pris en charge. Un paquet logiciel en architecture noarch ne contient que des éléments indépendants du type de processeur (scripts, programmes en langage interprété, documentation, images, son, vidéo, etc.).
Exemple
Fichier paquet logiciel de php 8.1.14 :
php-8.1.14-1.module_el9+260+8424407f.x86_64.rpm
Ce fichier contient l’édition 1.module_el9+260+8424407f du paquet logiciel PHP en version 8.1.14. L’architecture est x86_64 (Intel ou AMD 64 bits).
2. Installation, mise à jour et suppression
Pour installer un paquet logiciel RPM, on peut utiliser l’option -i.
rpm -i php-8.1.14-1.module el9+260+8424407f.x86_64.rpm
Comme il est possible d’utiliser des caractères de substitution (rpm -i *.rpm), vous pouvez afficher le nom du paquet logiciel en cours d’installation avec l’option -v. L’option -h affiche des caractères # pour indiquer...
Le gestionnaire de paquets YUM
Yum (Yellow dog Updater Modified) est un logiciel de gestion de paquets logiciels. Il télécharge les paquets logiciels au sein de dépôts logiciels et gère les dépendances. Il est utilisé par les distributions de type RPM, si les dépôts associés le supportent..
Depuis les versions 8 de Red Hat Enterprise Linux et CentOS, la commande yum est associée à un lien symbolique vers le fichier exécutable de la commande dnf, qui la remplace et est entièrement compatible.
# ls -l /usr/bin/yum
lrwxrwxrwx. 1 root root 5 15 sept. 2022 /usr/bin/yum -> dnf-3
Les commandes et exemples suivants utilisent un serveur RHEL en version 9. Le fichier de configuration est /etc/yum.conf (lien symbolique vers /etc/dnf/dnf.conf).
1. Configuration des dépôts
Il est possible de configurer des dépôts logiciels supplémentaires à ceux présents par défaut. C’est par exemple le cas du dépôt EPEL, géré par le projet Fedora qui ajoute de nombreux paquets logiciels absents des distributions.
Les dépôts sont placés soit dans le fichier de configuration principal, soit dans le répertoire /etc/yum.repos.d.
Le format de déclaration d’un dépôt est le suivant (une ligne commençant par # est un commentaire) :
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=
epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
Avec :
-
[epel] : identifiant du dépôt.
-
name : le nom long du dépôt, détaillé.
-
baseurl : l’URL du dépôt.
-
metalink (ou mirrorlist) : plutôt que de fournir une URL précise, metalink pointe vers une liste d’URL utilisable par Yum.
-
gpgcheck : demande une vérification de la signature GPG du dépôt si la valeur est égale à 1.
-
enabled : si absent ou à 1, le dépôt est actif.
-
gpgkey : chemin de la clé publique GPG.
-
failovermethod...
Le gestionnaire de paquets DNF
DNF (Dandified Yum), apparu dans la version 18 de la distribution Fedora, est devenu le logiciel d’installation de paquets logiciels par défaut pour les distributions de type Red Hat.
DNF est une réécriture complète du logiciel Yum, sa commande, dnf, reprend l’ensemble des options de la commande yum, avec la même syntaxe.
Exemple
Recherche du paquet logiciel httpd-core :
# dnf search httpd-core
Mise à jour des référentiels de gestion des abonnements.
Dernière vérification de l'expiration des métadonnées effectuée
il y a 0:30:03 le mar. 09 mai 2023 10:04:21.
=============== Nom correspond exactement à : httpd-core ================
httpd-core.x86_64 : httpd minimal core
Les paquets logiciels Debian
Debian a défini le format de paquets logiciels .deb, utilisé par sa propre distribution et ses dérivés (comme Ubuntu).
1. dpkg : la commande de gestion de paquets Debian
La commande dpkg est l’équivalent de la commande rpm pour les paquets logiciels au format Debian utilisant des paquets avec l’extension .deb. La commande dpkg permet ainsi de gérer des paquets logiciels.
La base de données de dpkg est généralement placée dans /var/lib/dpkg. Les fichiers qui la constituent sont au format texte, mais ne doivent pas être édités directement. Le fichier /var/lib/dpkg/status contient l’intégralité des paquets logiciels connus par dpkg avec leur état.
Exemple
Liste des lignes « package » dans le fichier status :
# grep ^Package: /var/lib/dpkg/status | grep linux
Package: accountsservice
Package: acl
Package: adduser
Package: adwaita-icon-theme
Package: aisleriot
Package: alsa-topology-conf
Package: alsa-ucm-conf
Package: alsa-utils
Package: anacron
Package: apache2-bin
Package: apg
[...]
2. Installation, mise à jour et suppression de paquets logiciels
Les options -i, ou --install, installent les paquets logiciels des noms de fichiers passés en argument.
Exemple
# dpkg -i monpaquet.deb
La commande dpkg ne gère pas les dépendances. S’il en manque, la commande le signale. Dans ce cas, il faut les installer avant de déployer le paquet logiciel.
On peut demander l’installation de tous les paquets logiciels d’une arborescence avec l’option -R (Récursif). L’option attend en argument un nom de répertoire : tous les paquets logiciels présents dans le répertoire et ses sous-répertoires seront installés.
Exemple
# dpkg -R folder
La mise à jour s’effectue comme l’installation, avec l’option -i. Si le paquet logiciel est déjà présent, la commande effectue une mise à jour.
Procédure d’installation ou de mise à jour par dpkg :
-
Extraction des fichiers de contrôle du nouveau paquet.
-
Si une ancienne version est déjà installée, exécution du script présuppression de l’ancien paquet.
-
Lancement du script...
Le gestionnaire de paquets APT
Le composant logiciel APT (Advanced Packaging Tool) permet de gérer en ligne de commande les paquets logiciels stockés dans des dépôts logiciels, locaux ou distants.
Un dépôt logiciel contient un ensemble de paquets logiciels qui dépendent soit les uns des autres, soit d’autres paquets logiciels en provenance d’autres dépôts. APT gère automatiquement les dépendances des paquets logiciels.
1. Les dépôts de paquets logiciels
a. Configuration
Les dépôts sont spécifiés dans le fichier /etc/apt/sources.list et dans les fichiers présents du répertoire /etc/apt/sources.list.d.
Exemple
Fichier /etc/apt/sources.list d’une distribution Debian 12.0.0 Bookworm :
# cat /etc/apt/sources.list
deb cdrom:[Debian GNU/Linux 12.0.0 _Bookworm_ - Official amd64 DVD Binary-1
with firmware 20230610-10:23]/ bookworm main non-free-firmware
deb http://deb.debian.org/debian/ bookworm main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main
non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main
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://deb.debian.org/debian/ bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
# see https://www.debian.org/doc/manuals/debian-reference/
ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bullseye-updates main contrib
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib
La structure d’une ligne d’un...
Le gestionnaire de paquets aptitude
1. apt ou aptitude ?
Aptitude est un gestionnaire de paquets logiciels Debian avec une interface en mode ligne de commande. Il se substitue à APT (et apt-get), qu’il peut remplacer ou compléter.
Aptitude bénéficie d’une meilleure gestion des dépendances, en particulier lors de la désinstallation de paquets logiciels. Voici quelques-uns de leurs avantages et inconvénients :
-
apt-get remove supprime le paquet logiciel mais pas ses dépendances, même non utilisées. Il faut ensuite utiliser apt-get autoremove ou autoclean pour purger les dépendances devenues inutiles.
-
APT propose environ vingt commandes (dont apt-get et apt-cache) pour gérer l’ensemble des possibilités.
-
APT ne propose pas de mode interactif.
-
Aptitude supprime le paquet logiciel et ses dépendances si elles ne sont plus utilisées.
-
Aptitude propose une commande unique pour l’ensemble de ses fonctionnalités.
-
La commande aptitude, sans argument, se lance en mode interactif.
2. Installation d’aptitude
Aptitude s’installe via le paquet logiciel aptitude :
# apt-get install aptitude
3. Utilisation
La syntaxe de la commande aptitude est très proche de celle la commande apt-get. Voici les principales options :
Options |
effet |
update |
Mise à jour des dépôts. |
install |
Installe les paquets logiciels... |
Le gestionnaire de paquets logiciels Zypper
Zypper est un gestionnaire de paquets logiciels en mode ligne de commande, utilisant la bibliothèque ZYpp (libzypp). Il permet d’installer, mettre à jour et supprimer des paquets logiciels, ainsi que les dépôts correspondants.
Zypper gère les paquets logiciels au format rpm, comme Yum ou DNF. Il est utilisé par SUSE Linux, et sa version libre openSUSE.
La bibliothèque qui gère les dépendances pour Zypper a été réutilisée par Red Hat pour son outil DNF.
Zypper conserve la trace des dépôts qui ont servi de source d’installation pour chaque application. Lors d’une mise à jour, cette information (ou plutôt celle du distributeur, vendor), lui permet de mettre à jour les paquets logiciels qui proviennent du même distributeur, même si une version plus récente est disponible sur un autre dépôt. Dans ce dernier cas, il faudrait autoriser Zypper à changer de source.
1. Gestion des dépôts
Les fichiers de configuration des dépôts Zypper sont dans le répertoire /etc/zypp/repos.d et portent le suffixe .repo.
Le contenu d’un fichier .repo ressemble à celui d’un dépôt Yum, et utilise aussi des alias.
Exemple
# cat repo-oss.repo
[repo-oss]
name=Dépôt principal
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/oss/
path=/
type=rpm-md
keeppackages=0
L’option removerepo permet de supprimer un dépôt, l’option mr permet de le modifier.
L’option clean vide les caches locaux.
L’option refresh met à jour tous les dépôts.
Exemple
# zypper clean ; zypper refresh -f
All repositories have been cleaned up.
Retrieving repository...
Gérer les bibliothèques partagées
Une bibliothèque partagée est un fichier qui contient un ensemble de fonctions compilées, accessibles à tout programme faisant appel à elles. Contrairement à une bibliothèque statique, incluse dans l’exécutable, une bibliothèque partagée est chargée indépendamment et ses fonctions sont accessibles dynamiquement par le ou les programmes appelants.
L’ensemble des fonctions proposées par une ou plusieurs bibliothèques partagées forme une API, Application Programming Interface.
Un lien est établi entre le programme et une bibliothèque partagée au cours de la génération de l’exécutable, lors de l’étape de l’édition des liens par l’éditeur de liens ld.
Une autre possibilité pour un programme est d’utiliser la fonction C dlopen qui ouvre une bibliothèque dynamique comme un fichier et accède aux fonctions qui y sont contenues avec des pointeurs de fonctions.
Si un programme dépend d’une bibliothèque partagée et que celle-ci est absente, le programme ne peut pas fonctionner.
Les bibliothèques partagées sont appelées des Shared Objects (so), car elles contiennent des modules objets (compilés) sans bloc d’instruction main. Les noms des fichiers correspondants portent le suffixe .so.
Une bibliothèque peut disposer de plusieurs versions, pouvant être ou non compatibles, et la version peut être précisée lors de l’édition des liens, avec une version par défaut possible.
1. Lieu de stockage
Les bibliothèques partagées sont généralement stockées dans des répertoires appelés lib, en particulier :
-
/lib : bibliothèques système.
-
/lib64 : bibliothèques système en 64 bits.
-
/lib32 : bibliothèques système en 32 bits.
-
/usr/lib : bibliothèques utilisateur et système, non nécessaires au boot.
-
/usr/local/lib...
Validation des acquis : questions/réponses
1. Questions
Si l’état de vos connaissances sur ce chapitre vous semble suffisant, répondez aux questions ci-après.
Installation
1 Pourquoi est-il préférable de configurer le réseau dès l’installation ?
2 Quelle est la méthode la plus simple pour partitionner le disque dur lors de l’installation d’Ubuntu ?
3 Pour un ordinateur personnel ou un poste de travail en entreprise, quel est le partitionnement de disque le mieux adapté ?
-
A - Une seule partition / prenant tout l’espace.
-
B - Des partitions /,/usr, /var, /home, /boot.
-
C - Deux partitions : / et /home.
4 Quel est le système de fichiers choisi par défaut à la création de partitions ?
5 Quelle partition est automatiquement ajoutée par le programme d’installation ?
6 Quel est le rôle du compte root ?
7 Pourquoi est-il conseillé de créer au moins un compte utilisateur en plus du compte root ?
8 Lors de la sélection des paquets logiciels à installer, faut-il ?
-
A - Tout installer.
-
B - Installer le minimum.
-
C - Installer uniquement les composants logiciels nécessaires.
9 Quel est le rôle du gestionnaire d’amorçage (ou de démarrage) ?
Paquets logiciels
10 Qu’est-ce qu’un paquet logiciel ?
11 Des dépendances empêchent l’installation d’un paquet logiciel. Il faut :
-
A - Forcer l’installation.
-
B - Abandonner l’installation.
-
C - Installer au préalable les paquets logiciels dont dépend le paquet à installer.
-
D - Chercher une autre version du paquet logiciel.
RPM
12 Un fichier RPM s’appelle ainsi « bash-3.2-112.x86_64.rpm ». Lesquelles de ces affirmations sont correctes ?
-
A - Ce paquet logiciel installe bash en version 3.2.
-
B - Ce paquet logiciel fonctionne sur les architectures x86 en 64 bits.
-
C - Ce paquet logiciel ne pourra pas être installé sur une version 32 bits de Linux.
-
D - Ce paquet logiciel installe la version 112 de bash.
13 Comment désinstaller un paquet logiciel RPM ?
-
A - rpm -r
-
B - rpm -e
-
C - rpm -d
-
D - rpmdel
14 Quelle commande permet de déterminer à quel paquet logiciel appartient le fichier /usr/bin/ksh ?
15 Comment savoir si un paquet logiciel est installé...
Travaux pratiques
1. Schéma de partitionnement
Ce TP a pour but de déterminer le schéma de partitionnement d’un système Linux, quelle que soit la distribution. Le PC à installer dispose d’un disque de 120 Go et de 2 Go de mémoire vive. Comment partitionner le disque, en séparant les données utilisateur des fichiers du système ?
1. |
Quelle doit être la taille de la partition d’échange (swap) ? |
2. |
Quelle place réserver à la partition système / ? |
3. |
Quelle place réserver à la partition /home ? |
Solutions possibles
Ce TP a pour but de déterminer le schéma de partitionnement d’un système Linux, quelle que soit la distribution. Le PC à installer dispose d’un disque de 120 Go et de 2 Go de mémoire vive. Comment partitionner le disque, en séparant les données utilisateur des fichiers du système ?
1. |
Quelle doit être la taille de la partition d’échange (swap) ? La partition d’échange est utilisée lorsque Linux ne dispose plus d’assez de place en mémoire vive. Une partie du contenu de la mémoire vive est alors déplacée vers cette partition d’échange pour libérer temporairement de l’espace mémoire. Votre système disposant de 2 Go de mémoire, vous pouvez prévoir une partition de swap de 2 Go. |
2. |
Quelle place réserver à la partition système / ? Cette partition va contenir les fichiers du système et des composants logiciels. Il est souhaitable de réserver une place suffisante, variable suivant les applications à mettre en place. 50 Go semblent un bon compromis. |
3. |
Quelle place réserver à la partition /home ? La partition contiendra les données utilisateurs. Vous pouvez lui allouer l’espace disque restant, soit les 68 Go restants. Le disque est ainsi entièrement partitionné. |
2. Gestion des RPM et Yum
Le but de ce TP est de travailler sur la base RPM des paquets logiciels déjà installés sur votre système et d’en installer de nouveaux. Le système doit disposer d’une distribution basée sur RPM et supportant Yum : Red Hat, CentOS, Fedora.
1. |
Déterminez le nombre... |