Système Deb

DEBIAN is not perfect est la conclusion que le système renvoyait parfois lors d'une erreur d'installation ; soit cette excuse n'existe plus sous cette forme, soit le système s'est grandement amélioré. Quoi qu'il en soit, Debian n'est toujours pas parfait, comme toute production humaine. Cette page peut également servir pour d'autres distributions GNU/Linux.

Une autre page explique le minimum à connaître sur un système GNU/Linux (ligne de commande, système de fichiers…)

Les commandes affectant le système sont réservées au super-utilisateur (root) : sur une console, elles doivent être précédées de su -, [Enter] puis du mot de passe super-utilisateur et [Enter].

Pour éditer un fichier du système, ouvrir une console/terminal et lancer nano (installé par défaut) ou mc (à installer) en mode super-utilisateur :

Problèmes

0. La distribution

0.0 Pourquoi Debian?
0.1 La meilleure version à installer
0.2 Passer à la nouvelle version de Debian
0.3 Passer d'une distribution basée sur Debian à la distribution Debian

1. Installation

1.0 L'installateur ne trouve pas un pilote nécessaire
1.1 Absence d'un logiciel appartenant pourtant à la distribution
1.2 Installer un paquet .deb d'un logiciel extérieur à la distribution

2. Boot

2.0 Le système se bloque lors du boot

3. Le noyau

3.0 Le noyau 3.16 de Debian 8.0 est trop ancien
3.1 Une application nécessite un système en temps réel
3.2 Le dernier noyau installé est lancé par défaut
3.2 Le dernier noyau installé est lancé par défaut

4. Les droits de lecture, d'écriture et d'exécution

4.0 Les fichiers d'une clé USB ne sont pas lisibles
4.1 Mon script refuse de se lancer
4.2 Une commande-système refuse de se lancer, même en root

5. Interface graphique

5.0 Xlib: connection to ":0.0" refused by server
5.0 Error: no DISPLAY environment variable specified
5.1 Xsession: warning: unable to write to /tmp; X session may exit with an error

6. Performances

6.0 Le système se traîne


0. La distribution

0.0 Pourquoi Debian?

Pour les louanges au système, voyez ici.

0.1 La meilleure version à installer

Évolution des versions actuelles de Debian
TrixieBookwormBullseyeBuster
2025stableoldstableobsolète
2023testingstableoldstableobsolète
2021testingstableoldstable
2019testingstable

La version à installer est la stable (actuellement Debian 12 Bookwprm), car elle a été testée durant deux ans. Parce que son noyau et certaines de ses applications ont pris un peu d'âge, on peut être tenté d'installer la testing (nommée Trixie), mais risqué, surtout tant que cette future version n'a pas encore été «gelée», quelques mois avant sa parution. Une autre façon d'avoir un système plus à jour est d'installer un noyau plus récent par le dépôt trixie-backports.

Une distribution Debian connaît plusieurs versions de noyaux : PC (32 ou 64 bits), PowerPC, ARM, S390 et bien d'autres… chacune adaptée à un processeur particulier.

Personne ne vous oblige à systématiquement installer la nouvelle version stable : la précédente (oldstable Debian 10 Bullseye, sortie en 2021) continue à bénéficier de mises à jour de sécurité jusqu'à mi-2026.

0.2 Passer à la nouvelle version de Debian

Tous les quelques mois, Debian édite une nouvelle version mineure de sa distribution stable. Si votre système Debian est déjà en version stable, il n'est pas nécessaire de la réinstaller, les mises-à-jour régulières suffisent :

#En mode super-utilisateur: su - [Enter] apt update
#En mode super-utilisateur: su - [Enter] apt upgrade

Pour passer de l'ancienne version stable (Debian 11 Bullseye) à la nouvelle (Debian 12 Bookworm), il est possible d'upgrader la distribution, en trois étapes. La première est de remplacer bullseye par bookworm dans le fichier /etc/apt/sources.list avec #En mode super-utilisateur: su - [Enter] nano /etc/apt/sources.list ou #En mode super-utilisateur: su - [Enter] mc -e /etc/apt/sources.list

Ensuite, appliquer le changement des dépôts avec #En mode super-utilisateur: su - [Enter] apt update

Enfin (c'est l'étape la plus longue!), télécharger et installer les nouveaux paquets avec #En mode super-utilisateur: su - [Enter] apt dist-upgrade

Cette façon a pour intérêt l'automaticité de l'installation de base et la rénovation de tous les logiciels installés. Une très ancienne expérience (de Sarge à Etch) avait mal fonctionné, la configuration de certains logiciels était catastrophique, mais les suivantes n'ont occasionné aucun problème majeur.

0.3 Passer d'une distribution basée sur Debian à la distribution Debian

Même si une distribution se base sur le système de paquetage Debian, une distribution «basée sur Debian» (UBUNTU, Linux Mint Debian Edition…) n'est pas Debian, et le point précédent (dist-upgrade) n'est pas de mise. Pour «passer à Debian», il faut installer Debian de zéro.

1. L'installation

1.0 L'installateur ne trouve pas un pilote nécessaire

Au début de l'installation, le matériel est évalué et les pilotes/drivers nécessaires sont automatiquement téléchargés. L'installation s'effectuant avec des logiciels libres uniquement, les pilotes non libres ne peuvent être installés.

Il est possible de noter soigneusement le nom du ou des pilotes que l'installateur dit ne pas posséder, le ou les chercher et télécharger dans la logithèque Debian (par exemple https://packages.debian.org/bullseye/firmware-ipw2x00) et le placer sur une clé USB avant de relancer l'installation : l'installateur cherchera le pilote et déballera automatiquement les paquets Debian utiles.

1.1 Absence d'un logiciel appartenant pourtant à la distribution

apt-cache search ne renvoie que les paquets présents dans les dépôts renseignés par le fichier /etc/apt/sources.list pour peu que la commande apt update ait été lancée après la dernière modification.

Il est possible que le paquet recherché ne figure pas pour une version particulière de la distribution.

Si l'installation du système Debian n'a pas pris en compte les dépôts contrib et non-free,

deb http://ftp.be.debian.org/debian/ bullseye main

doit devenir

deb http://ftp.be.debian.org/debian/ bullseye main contrib non-free

Ne pas oublier de lancer #En mode super-utilisateur: su - [Enter] apt update avant de réinterroger la base de données des paquets avec apt-cache search.

1.2 Installer un paquet .deb d'un logiciel extérieur à la distribution

Hormis toutes les restrictions, c'est assez simple. La console positionnée dans le même répertoire (avec cd adresse-et-nom-du-repertoire) :

#En mode super-utilisateur: su - [Enter] dpkg -i nom-du-paquet.deb

La version la plus récente de LibreOffice, qui n'est pas disponible par apt, est livrée sous forme de trois archives contenant plusieurs dizaines de paquets .deb. Il faut 1) décompresser une archive, 2) pénétrer avec cd dans le répertoire produit et 3) appliquer la commande suivante :

dpkg -i *.deb

Attention! Un logiciel a souvent besoin de librairies, qui doivent préalablement être installées. C'est pourquoi il vaut mieux faire confiance au système apt. Par ailleurs, un paquet et les librairies dont il dépend provenant d'une distribution différente peuvent corrompre le système : une distribution est un tout.

2. L'amorçage (boot)

2.0 Le système se bloque lors du boot

Une installation (2013) de Debian 7.0 Wheezy avec le système de fichier btrfs n'a jamais voulu fonctionner, l'installateur Debian reportant le problème sur le fait que l'UEFI est souvent buggué ; sinon, c'est très rare qu'il se bloque vraiment.

Il est possible que vous ayez installé le gestionnaire d'amorçage sur un disque qui n'est plus attaché à votre machine (disque dur amovible, clé USB…) ou que vous ayez changé l'ordre des disques dans le BIOS. Une erreur de boot kernel panic montre que le système ne trouve pas les fichiers qu'il attend. Un gestionnaire de lancement doit avoir été défini à la fin de l'installation du système : GRUB2 (ou lilo, dont il ne sera pas question sur cette page ; il est d'ailleurs supprimé depuis la version Debian 11 Bullseye). GRUB2 analyse les disques pour lister toutes les partitions attachées au PC, susceptibles de contenir un système d'exploitation, GNU/Linux, Windows, autres Unix… Et permet de le lancer.

Une partition (non système) montée automatiquement au boot mais ayant disparu peut empêcher un boot complet. Il faut alors éditer /etc/fstab avec un éditeur, en mode super-utilisateur sans interface graphique. Avant cela, GRUB2 permet de connaître l'état des partitions avant toute édition /etc/fstab.

Avec Debian 9 Stretch (à la suite d'une configuration imbécile de systemd dont les innombrables exploits sont par défaut silencieux à l'allumage), le système semble arrêté lorsque systemd-fsck (file system check) vérifie les partitions, tous les 30 allumages environ, mais cela peut être le premier après installation et cela dure de longues minutes… Mieux vaut prendre une pause-thé qu'angoisser. Si finalement le système est lancé, une façon de rendre l'amorçage plus bavard est de modifier une ligne du fichier /etc/default/grub :

#En mode super-utilisateur: su - [Enter] nano /etc/default/grub

en y changeant

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

en

GRUB_CMDLINE_LINUX_DEFAULT="verbose"

Pour que l'action soit effective au prochain allumage du PC, il faut encore modifier GRUB :

#En mode super-utilisateur: su - [Enter] update-grub

Il ne semblait pas y avoir de truc (comme [ctr-c] auparavant) pour interrompre la vérification comme dans les versions précédentes avec sys init, mais cela s'est arrangé avec Debian 10 Buster : le contrôle des partitions est visible.

3. Le noyau

3.0 Le noyau de Debian 10.0 Buster est trop ancien

Il existe des noyaux plus récent dans le dépôt buster-backports. Il suffit d'ajouter dans le fichier /etc/apt/sources.list (en tant que super-utilisateur) la ligne

deb http://ftp.be.debian.org/debian/ buster-backports main contrib non-free

…puis de saisir #En mode super-utilisateur: su - [Enter] apt update avant de charger le noyau désiré. Plus de détails ici. Afin de différencier les paquets de bullseye-backports de ceux de bookworm tout court, spécifier le dépôt :

#En mode super-utilisateur: su - [Enter] apt -t bookworm-backports install nom-du-paquet

3.1 Un logiciel nécessite un système en temps réel

C'est notamment le cas des séquenceurs musicaux. Certaines distributions prévoient des noyau -rt- (real-time). Sinon, il convient peut-être d'ajouter le dépôt buster-backports dans le fichier /etc/apt/sources.list (voir plus haut) avec la ligne

deb http://ftp.be.debian.org/debian/ stretch-backports main contrib non-free

Après #En mode super-utilisateur: su - [Enter] apt update, installer le noyau désiré avec rt (real time) dans le nom. Attention néanmoins, il est possible que ce nouveau noyau ne possède pas tous les pilotes, spécialement les non libres.

3.2 Le dernier noyau installé est lancé par défaut

C'est effectivement assez casse-pied quand on ne le désire pas, d'autant plus que GRUB2 n'est pas simple à paramétrer. Une solution un peu brutale est de réinstaller le noyau désiré, qui deviendra celui lancé par défaut. Sinon, cela devrait se résoudre avec GRUB2 (à faire!).

4. Les droits de lecture, d'écriture et d'exécution

Le système de droits sur les fichiers permet à plusieurs utilisateurs de ne pas se marcher sur les pieds dans la gestion des fichiers.

4.0 Les fichiers d'une clé USB ne sont pas lisibles

Sur une unité de stockage (disque dur, clé USB…) formaté UNIX, chaque fichier a un numéro d'utilisateur. Sur Debian, le premier utilisateur est 1000, le second 1001… auquel le système installé attribue un nom d'utilisateur (toto, nana…). Il s'ensuit que deux utilisateurs différents, chacun premier utilisateur sur deux machines Debian, auront le même numéro : 1000. Par contre, le premier utilisateur sur une machine Debian mais second sur une autre machines Debian aura deux numéros différents : 1000 et 1001.

Il s'agit d'un effet secondaire de la gestion des droits dans un système de fichier des UNIX, qu'il est possible de contourner de plusieurs façons. La plus simple est que l'utilisateur qui sauvegarde le fichier sur la clé USB lui confère les droits de lecture les plus larges. En ligne de commande :

chmod 644 fichier

Cette commande octroie les droits de lecture et d'écriture (4+2=6) à son propriétaire, et seulement le droit de lecture (4) aux personnes de son groupe (sur son PC) et à tout le monde (le dernier chiffre). Pour permettre à tout le monde le droit de modifier le fichier (droit d'écriture), la commande est :

chmod 666 fichier

En utilisant le navigateur de fichiers, accorder les droits de lecture (éventuellement d'écriture) à tous les utilisateurs : non seulement le propriétaire, mais le groupe et les autres, en cochant les case appropriées.

La deuxième solution passe par un log du receveur en super-utilisateur, qui a tous les droits (ce qui est dangereux) et de s'attribuer la possession du fichier. Se rendre dans le répertoire de la clé USB contenant le fichier et saisir :

#mode super-utilisateur:
su + mot de passe «root»
chown toto chemin/fichier

4.1 Mon script refuse de se lancer

Un fichier bash ou python exécutable doit comporter sur la première ligne une de ces commandes :

#! /usr/bin/bash
#! /usr/bin/python3

Un tel fichier doit également être exécutable (7 pour le propriétaire du fichier) :

chmod 740 chemin/fichier

Il est possible que la partition où est situé le fichier de script ne permette pas son lancement : dans le fichier /etc/fstab de Debian/Stretch, si noexec est situé sur la ligne relative à la partition /home.

Permet le lancement de fichiers exécutables situés sur la partition /home mais pas sur /archives (qui par ailleurs n'est pas montée automatiquement) :

# /home was on /dev/sda3 during installation
UUID=e5f5f3c9-…-704c44dd1934   /home       ext3   defaults      0    2
# /archives was on /dev/sda4 during installation
UUID=bb752458-…-1d703c771670   /archives   ext3   user,noauto   0    2

Ne permet pas le lancement de fichiers exécutables situés sur la partition /home mais bien sur /archives :

# /home was on /dev/sda3 during installation
UUID=5f3c9e5f-…-937044dd1c44   /home       ext3   defaults,noexec    0   2
# /archives was on /dev/sda4 during installation
UUID=2458bb75-…-671d73c77100   /archives   ext3   user,noauto,exec   0   2

Notes :

4.2 Une commande-système refuse de se lancer, même en su

D'abord vérifier qu'elle est bien installée sur le système.

Depuis peu, un mode «super-super-utilisateur» est nécessaire pour lancer les commandes les plus sensibles. il est accessible avec su - [Enter] et le mot de passe super-utilisateur. Attention : le répertoire actuel devient /root .

5. Interface graphique

Debian permet d'utiliser beaucoup d'interfaces graphiques, que l'on utilise selon ses besoins ou les possibilités de la machine. Ce qui suit suppose que l'interface graphique installée a déjà fonctionné, qu'il ne s'agit pas d'un problème d'installation.

5.0 Xlib: connection to ":0.0" refused by server

5.0 Error: no DISPLAY environment variable specified

Dans les distributions bien faites, il n'est pas possible de lancer une application graphique en mode super-utilisateur, afin d'éviter toute une série de calamités. Dans des cas particuliers, si vous êtes conscient que vous êtes capable d'endommager des fichiers nécessaires au système, vous pouviez utiliser gksu (à installer).

nana@olympe:~$ gksu gedit

…qui demandait le mot de passe super-utilisateur et permettait de lancer un éditeur de texte permettant de modifier un fichier de configuration situé hors de l'espace /home/nana.

Avec Debian10 Buster, ce n'est plus permis, mais il est possible de saisir dans une console (fournir le mot de passe super-utilisateur) :

simple utilisateur$ xhost si:localuser:root
simple utilisateur$ su -

…la connexion en tant que superutilisateur étant maintenant possible pour éditer des fichiers de configuration du système en mode graphique.

Une erreur est possible en ce mode :

no display name and no $DISPLAY environment variable

Une façon de la contourner est (risqué?) :

#En mode super-utilisateur: su - [Enter] export DISPLAY=:0; xhost +

Le mode xhost reste valide durant la session. Pour le quitter avant terme :

#En mode super-utilisateur: su - [Enter] exit
simple utilisateur$ xhost -si:localuser:root

5.1 Xsession: warning: unable to write to /tmp; X session may exit with an error

Si une interface graphique (bureau et système de menu) installée refuse de se lancer, il est plus que probable que la partition système (/) ne dispose plus de place et donc n'accepte plus l'écriture dans son répertoire /tmp. Cette l'occasion d'essayer la connexion sans système graphique (au boot).

La saturation de la partition «root» peut avoir plusieurs origines : soit / contient le répertoire /home (il est plus prudent d'installer l'espace utilisateur /home sur une autre partition) qui s'est rempli de toutes sortes de choses, soit vous avez installé beaucoup de nouveaux paquets, soit l'image d'une copie CD a saturé l'espace (dans /tmp).

Le diagnostic se fait en lançant en mode console df qui vous indique l'espace utilisable des partitions disponibles.

Une première solution (vous vous êtes loggué en super-utilisateur) est de se débarrasser des paquets .deb de votre système devenu inutiles, en lançant

#En mode super-utilisateur: su - [Enter] apt clean

Refaites df et vérifiez si quelques centaines de Mo ne se sont pas libérés.

Une autre solution est de lancer mc (il devrait toujours être installé) qui permet de libérer quelques centaines de Mo en supprimant des fichiers .iso dans le répertoire /tmp?, soit de transférer quelques gros fichiers sur une autre partition, ou sur une clé USB après l'avoir montée.

6. Performances

6.0 Le système se traîne

Il peut y avoir beaucoup de raisons pour lesquelles le système traîne.