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 :
#nano /chemin/fichierEn mode super-utilisateur: su - [Enter]#mc -e /chemin/fichierEn mode super-utilisateur: su - [Enter]
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
Trixie | Bookworm | Bullseye | Buster | |
---|---|---|---|---|
2025 | stable | oldstable | obsolète | |
2023 | testing | stable | oldstable | obsolète |
2021 | testing | stable | oldstable | |
2019 | testing | stable |
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 :
#apt updateEn mode super-utilisateur: su - [Enter]#apt upgradeEn mode super-utilisateur: su - [Enter]
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 # nano /etc/apt/sources.list ou En mode super-utilisateur: su - [Enter]# mc -e /etc/apt/sources.list
En mode super-utilisateur: su - [Enter]
Ensuite, appliquer le changement des dépôts avec # apt update
En mode super-utilisateur: su - [Enter]
Enfin (c'est l'étape la plus longue!), télécharger et installer les nouveaux paquets avec # apt dist-upgrade
En mode super-utilisateur: su - [Enter]
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 # apt update avant de réinterroger la base de données des paquets avec apt-cache search.
En mode super-utilisateur: su - [Enter]
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) :
#dpkg -i nom-du-paquet.debEn mode super-utilisateur: su - [Enter]
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 :
#nano /etc/default/grubEn mode super-utilisateur: su - [Enter]
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 :
#update-grubEn mode super-utilisateur: su - [Enter]
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 # 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-paquetEn mode super-utilisateur: su - [Enter]
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 # 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.
En mode super-utilisateur: su - [Enter]
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 :
#chown toto chemin/fichiermode super-utilisateur:
su + mot de passe «root»
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 :
- Le changement n'est pris en compte que lors du montage de la partition. Au besoin, relancer le système.
- N'ajoutez jamais noexec sur la partition racine /
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) :
xhost si:localuser:rootsimple utilisateur$su -simple utilisateur$
…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é?) :
#export DISPLAY=:0; xhost +En mode super-utilisateur: su - [Enter]
Le mode xhost reste valide durant la session. Pour le quitter avant terme :
#exitEn mode super-utilisateur: su - [Enter]xhost -si:localuser:rootsimple utilisateur$
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
#apt cleanEn mode super-utilisateur: su - [Enter]
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.
- Votre PC est assez ancien, le processeur central (CPU) est assez lent, et les systèmes d'exploitation sont de plus en plus lourds. Il existe des distributions GNU/Linux pour ordinosaures, comme TinyCoreLinux.
- Votre PC dispose de trop peu de mémoire : le système doit donc utiliser la mémoire virtuelle (partition swap), beaucoup moins rapide que la mémoire RAM. Il faut soit ajouter de la mémoire, soit ne pas lancer trop d'applications à la fois.
- Vos partitions sont presque pleines, et le système doit constamment déplacer des fichiers pour qu'ils ne soient pas trop fragmentés : df ou df -h permet de voir quelles partitions commencent à être remplies :
- il y a lieu de faire un peu d'espace en déplaçant de gros fichiers personnels vers une partition de sauvegarde ou clé USB, ou en effaçant quelques gros fichiers devenus inutiles, tels que les iso d'installation téléchargés avant d'être installés sur clé USB ou gravés sur CD ou DVD.
- top permet de voir si un processus ne consomme pas la quasi-totalité des ressources du/des CPU (%CPU, 9e colonne) ou n'encombre pas la mémoire (%MEM, 10e colonne). Auquel cas vous pouvez tuer le processus gourmand avec kill nnn (PID, 1ère colonne). Attention! si l'utilisateur est root (USER, 2e colonne), il faudra se logguer en superutilisateur : su - (+ mot de passe «root»).