# Le système d'exploitation GNU-Linux/Installation de nouveaux logiciels

* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
[ Modifier le sommaire ]
Au début de linux, installer un logiciel libre nécessitait de récupérer les sources et de les compiler. Cette étape de compilation pouvait être fastidieuse car il fallait disposer de toutes les librairies utilisées par le logiciel.
Redhat a énormément simplifié ce processus en inventant le format RPM (Redhat Package Manager), format qui propose les logiciels open-source pré-compilés.
Debian s'en est inspiré pour créer le format DEB.
* REDHAT = logiciel.x.y.rpm
* DEBIAN = logiciel.x.y.deb
x et y correspondent aux numéros de version du logiciel.

## dpkg

dpkg est le programme qui permet d'installer, mettre à jour et supprimer un logiciel en format DEB. Sur Redhat, la commande rpm fait la même chose.

### Installer un fichier DEB

L'option -i (i: install) de dpkg (debian package) permet d'installer un fichier DEB :

### Connaitre la liste de tous les logiciels installés

L'option -l (l : list) permet de connaitre la liste de tous les logiciels installés :

### Savoir quel package a installé tel fichier

L'option -S permet de savoir quel package a installé tel fichier :

### Connaitre le descriptif d'un package installé

L'option --status permet de consulter le descriptif d'un package installé :
On apprend notamment :
* la priorité : s'agit-il d'un package indispensable ou optionnel ?
* la taille disque occupée par le package installé
* le nom et l'email du mainteneur Debian
* l'architecture
* le numéro de verstion
* les dépendances
* une description courte et longue

### Autres options de dpkg

La commande dpkg dispose d'une page de manuel détaillant toutes les options disponibles :

## apt-get

La commande apt-get permet d'installer, mettre à jour et supprimer les logiciels. Le principal avantage d'apt-get par rapport à dpkg est sa capacité à télécharger les packages sur les mirroirs Debian et de résoudre les dépendances nécessaires au logiciel, et ceci de façon récursive.

### Installer un logiciel

L'option install de la commande apt-get permet d'installer un logiciel :
Note: apt-get install va télécharger tous les packages nécessaires au bon fonctionnement du logiciel, et apeller dpkg -i sur chaque fichier DEB téléchargés.
Il existe plus de 300 miroirs DEBIAN

### Rajouter des mirroirs

On peut rajouter des miroirs à apt-get en modifiant le fichier /etc/apt/sources.list. Ce fichier contient la liste des mirroirs officiels DEBIAN, et on peut rajouter d'autres mirroirs.
On peut rajouter à ce fichier un miroir contenant des fichiers DEB non-intégrés dans les miroirs officiels Debian :

### Mettre à jour la liste des logiciels disponibles

Chaque fois que l'on modifie le fichier /etc/apt/sources.list, il faut lancer la commande apt-get update pour récupérer la liste des nouveaux logiciels :
Note: apt-get utilise la commande wget pour télécharger les fichiers.

### Mettre à jour tous les logiciels installés

L'option upgrade de apt-get prend la liste des paquets installés, regarde sur le dépôt si ces logiciels sont disponibles dans une version plus récentes. Si c'est le cas, cette commande va mettre à jour ces logiciels.

### Effacer les fichiers DEB installés

Par défaut, la commande apt-get conserve tous les fichiers DEB installés dans le répertoire /var/cache/apt/archives.
L'option clean permet d'effacer les fichiers DEB que l'on a installé :

### Autres options de apt-get

La commande apt-get dispose d'une page de manuel détaillant toutes les options disponibles :

## apt-cache
### Chercher un package

L'option search de la commande apt-cache permet de rechercher un terme sur les paquets installés et non-installés.

### Voir les informations d'un package

L'option show de la commande apt-cache permet de voir les informations d'un paquet (installé ou non).

### Autres options de apt-cache

La commande apt-cache dispose d'une page de manuel détaillant toutes les options disponibles :

## aptitude

La commande aptitude est un remplaçant d'apt-get, son principal avantage est de désinstaller les dépendances.

## apk

Si la distribution est basée sur Alpine Linux, elle renvoie :
Il faut alors utiliser apk update et apk add. Ex :

## synaptic

Le programme synaptic permet d'effectuer les mêmes opérations que la commande apt-get depuis l'interface graphique.

## Les documentations des packages

Chaque package Debian est accompagné d'une documentation. Ces documentations se trouvent dans le répertoire /usr/share/doc :
/usr/share/doc/<nom du package>/
Certaines documentations sont compressées en gzip afin d'économiser de la place disque. On peut utiliser les commandes zcat, zmore ou zless pour visualiser ces fichiers sans avoir à les décompresser :

## Installer un logiciel à partir des sources

Dans certains cas, on peut être amené à devoir installer un logiciel à partir des fichiers sources :
* le logiciel n'est pas disponible sous Debian en .DEB
* on a besoin d'une version plus récente du logiciel
* on a besoin d'une option uniquement activable durant la compilation
Pour faire ceci, on télécharge les sources du logiciel et on va les compiler.
Debian fournit un répertoire particulier destiné à accueillir les programmes installés à la main : /usr/local.
Si on regarde le contenu de ce répertoire, on constate qu'il contient des sous-répertoires déjà présents à la racine :
Ces répertoires vont accueillir tous les fichiers des programmes installés à la main :
* les exécutables : /usr/local/bin ou /usr/local/sbin
* les fichiers de configuration : /usr/local/etc
* les librairies : /usr/local/lib
* les pages de man : /usr/local/man
* les fichiers communs (icones, traductions ...) : /usr/local/share
Pour illustrer cette méthodologie, nous allons installer pidgin.
Tout d'abord, on télécharge les fichiers sources du logiciel dans le répertoire /usr/local/src :
La première chose à faire est de lire le fichier README :
On apprend dans ce fichier qu'il faut lire le fichier INSTALL pour connaître les dépendances et la procédure pour compiler le logiciel :
Comme dans la majorité des logiciels écrits en langage C, il faut effectuer la procédure standard : ./configure; make; make install .
On lance donc la première commande :
Cette étape se solde par une erreur : pidgin a besoin de la librairie perl XML parser. On cherche donc le paquet Debian contenant cette librairie :
On installe donc le packet libxml-parser-perl :
On relance le ./configure :
Cette étape se solde à nouveau par une erreur : pidgin a besoin de la librairie de développement glib2. On cherche donc le paquet Debian contenant cette librairie et on l'installe :
On relance le ./configure :
Cette étape se solde à nouveau par une erreur : pidgin a besoin de la librairie de développement xml2. On cherche donc le paquet Debian contenant cette librairie et on l'installe :
On relance le ./configure :
Cette fois-ci, l'étape s'est terminée sans erreur et on peut lancer la compilation :
Ca y est (enfin!), le logiciel s'est correctement installé, et l'exécutable a été copié dans le répertoire /usr/local/bin :
On peut désormais lancer le logiciel et l'utiliser :
parler de checkinstall