- 27/11/2014: devuan.org > Première annonce du fork de Debian (en)
- 13/12/2014: archive.org > devuan.fr — Ne paniquez pas, on va fork Debian ! (fr)
- Français (fr)
- English (en)
GNU/Linux Devuan : Particularités de la distribution
Devuan GNU/Linux est un fork de Debian sans systemd qui permet aux utilisateurs de reprendre le contrôle de leur système en évitant les enchevêtrements inutiles et en garantissant Init Freedom1).
Le site officiel de Devuan est devuan.org. Son forum officiel est dev1galaxy.org.
Cette page s'adresse aux personnes qui ont des compétences en administration des systèmes de type UNIX.
Dans l'espoir que cela soit utile, je partage ci-dessous quelques particularités rencontrées au cours de mon utilisation de la distribution GNU/Linux Devuan, de ses installations et de ses mises à niveau successives depuis Debian 7.
Cycle de vie de la distribution GNU/Linux Devuan
Les noms usuels des versions Devuan proviennent du catalogue international des planètes, tandis que les noms usuels des versions Debian proviennent des personnages du film d'animation Toy Story.
Devuan | Basé sur | Date de publication | Fin du support | Fin du support à long terme |
---|---|---|---|---|
Devuan 1 Jessie | Debian 8 Jessie (release-notes) | 25/05/2017 | 17/06/2018 | 30/06/2020 |
Devuan 2 Ascii (Release_notes) | Debian 9 Stretch (release-notes) | 08/06/2018 | 30/06/2020 | 30/06/2022 |
Devuan 3 Beowulf (Release_notes) | Debian 10.4 Buster | 02/06/2020 | 07/2022 ? | 06/2024 ? |
Devuan 4 Chimaera (release-notes) | Debian 11.1 Bullseye (Release note) | 14/10/2021 | 07/2024 ? | 06/2026 ? |
Devuan 5 Daedalus | Debian 12 Bookworm | |||
Devuan 6 | Debian 13 Trixie |
Gestionnaires de session graphique et de connexion
Bien que le récent programme systemd (absent de Devuan) soit un contre-exemple éloquent, les distributions GNU/Linux restent marquées par le principe KISS des anciens systèmes d’exploitation UNIX consistant à demander à chaque programme d’effectuer une seule tâche simple. Il en résulte que si le fonctionnement de GNU/Linux en mode texte est simple, son fonctionnement en mode graphique devient plus complexe parce qu’il est obligé de faire appel à plusieurs programmes effectuant chacun une tâche simple.
Cette division du travail permet notamment d’augmenter la sécurité en restreignant le plus tôt possible les permissions des programmes qui démarrent en mémoire.
Ainsi, en général pour afficher un bureau cliquable à l’utilisateur, GNU/Linux commence par démarrer à la fois un gestionnaire de session graphique et un gestionnaire de connexion graphique. Le gestionnaire de connexion graphique démarre à son tour le serveur d’affichage graphique (par exemple Xorg) et demande à l’utilisateur un couple identifiant / mot de passe. Si celui-ci fourni la bonne combinaison, le gestionnaire de connexion graphique en lien avec le gestionnaire de connexion graphique, démarre le gestionnaire d’environnement de bureau (par exemple XFCE) avec des permissions limitées, c’est-à-dire sous l’identifiant de l’utilisateur qui a été approuvé. Comme ce gestionnaire d’environnement de bureau fonctionne sous l’identifiant de l’utilisateur, tous les programmes fils qu’il démarre fonctionnent également dans le cadre restreint de cet utilisateur. Parmi ces programmes fils se trouvent par exemple le gestionnaire de fenêtres (qui s’occupe de dessiner les fenêtres à la demande) et l’explorateur de fichiers en mode gestionnaire de bureau (qui s’occupe de démarrer les programmes à la demande par simple clic de souris).
À partir de Devuan 2, l’affichage graphique nécessite l’installation d’un des deux gestionnaires de sessions graphiques suivant à l’exclusion de l’autre : consolekit (/lib/systemd/system/console-kit-daemon.service
) et logind (/etc/init.d/elogind
) (source). Le fonctionnement de ces deux gestionnaires de sessions concurrents repose sur le sous-programme d'authentification Polkit, anciennement nommé PolicyKit.
Attention : l’exclusion / inclusion des paquets logiciels n’est pas toujours indiquée dans les méta-données des paquets principaux consolekit et logind. C’est pourquoi afin qu’un de ces deux gestionnaires de sessions fonctionne correctement, il faut s’assurer que tous ses paquets logiciels sont installés et qu’aucun paquet de l’autre gestionnaire ne l’est.
Paquets qui doivent être installés exclusivement pour logind pas pour consolekit :
elogind libpam-elogind libelogind0 libpolkit-backend-elogind-1-0 libpolkit-gobject-elogind-1-0
Paquets qui doivent être installés exclusivement pour consolekit (pas pour logind) :
consolekit libpam-ck-connector libpolkit-backend-consolekit-1-0 libpolkit-gobject-consolekit-1-0 libck-connector0
Test de présence des paquets en ligne de commande :
LOGIND="elogind libpam-elogind libelogind0 libpolkit-backend-elogind-1-0 libpolkit-gobject-elogind-1-0" CONSOLEKIT="consolekit libpam-ck-connector libpolkit-backend-consolekit-1-0 libpolkit-gobject-consolekit-1-0 libck-connector0" for i in $LOGIND; do dpkg -s $i &>/dev/null && echo "logind: $i installé" || echo "logind: $i non installé"; done for i in $CONSOLEKIT; do dpkg -s $i &>/dev/null && echo "consolekit: $i installé" || echo "consolekit: $i non installé"; done
Sous Devuan 1, consolekit est obligatoirement installé par dépendance du paquet policykit-1 (sous-programme Polkit avec le programme /usr/bin/pkexec
).
À partir de Devuan 2, le paquet logiciel policykit-1 dépend du méta-paquet transitionnel libpolkit-gobject-1-0 (PolicyKit Authorization API) qui par dépendance, laisse le choix entre le paquet libpolkit-gobject-consolekit-1-0 et le paquet libpolkit-gobject-elogind-1-0
Cependant, sous Devuan 2, le choix de l’environnement de bureau lightdm nécessite pour fonctionner correctement que l’administrateur opte pour le gestionnaire de session logind au lieu de consolekit.
Sous Devuan 3, n’importe lequel des deux gestionnaires de session consolekit et logind peut être installé à l’exclusion de l’autre (source).
Synthèse des configurations recommandées :
Version Devuan | Environnement de bureau | Gestionnaire de connexion graphique | Gestionnaire de session graphique |
Devuan 1 | XFCE | slim ou lightdm | consolekit requis par le paquet policykit-1 |
Devuan 2 | XFCE | slim | consolekit |
Cinnamon | lightdm | logind | |
KDE | lightdm | logind | |
LXQT | lightdm | logind | |
MATE | slim | consolekit | |
Devuan 3 | XFCE | slim (par défaut) ou lightdm | logind (par défaut) ou consolekit |
Cinnamon | lightdm (par défaut ou slim | logind (par défaut) ou consolekit | |
KDE | lightdm (par défaut ou slim | logind | |
LXQT | lightdm (par défaut ou slim | logind | |
MATE | lightdm (par défaut ou slim | logind |
Note : LXDE reste encore installable sous Devuan 3 mais est toujours déconseillé à cause de bugs non corrigés pour cet environnement de bureau dont le développement a été suspendu au profit de LXQT (source).
Quelques évolutions divergentes vis-à-vis de Debian
Devuan 1+ : conserve SysV init de Debian 7
Devuan 1 est basée sur Debian 8 mais conserve le SysV init de Debian 7 (provenant de UNIX_System_V) comme système d’initialisation du système dexploitation. Cette initialisation est moins rapide que Systemd adopté sur Debian 8 et suivant, mais il conserve l’esprit UNIX et du hacking (personnalisation) accessible.
Devuan 2+ : eudev remplace udev
À partir de Devuan 2, le paquet logiciel eudev remplace le paquet logicielUdevparce que celui-ci dépend désormais de l’usine à gaz Systemd. Ceci est transparent pour la plupart des utilisateurs, sauf pour les personnes expérimentées qui cherchent par exemple à adapter certains pilotes de (vieux) périphériques.
Note pour Debian : À cause de systemd, le paragraphe wiki.debian.org > NewInBuster > Network interface name migration indique : "The buster release notes warn that the /etc/udev/rules.d/70-persistent-net.rules/
method for assigning persistent network interface names is no longer supported. However, it may be difficult to predict what the new "predictable" interface name will be. The udevadm command suggested in the release notes, when run under stretch, may not show all of the possible interface name choices. Even in the cases where the name is shown, it may be difficult to see which of the choices will be the correct one."
Devuan 3.1+ : [bug de MàJ 3.0 → 3.1] Erreur de chargement grub sous BIOS UEFI
- Description : Le niveau 1 de Grub échoue à charger son niveau 2 et affiche l’invite de commande du shell grub :
grub>
- Explication : Depuis la publication de Devuan 3.1 le 14/02/2021 qui a conduit à la mise à jour du paquet base-files 10.3+devuan3.4 –> 10.3+devuan3.5, la variable ID du fichier
/etc/os-release
contient Devuan au lieu de Debian. Il en résulte que l'affectation de la variableGRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
dans/etc/default/grub
renvoie désormais Devuan. Cest pourquoi le programme grub-install construit ses deux programmes bootloaders UEFI grubx64.efi et shimx64.efi (secure boot) dans/boot/efi/EFI/devuan
alias<partition EFI>/EFI/devuan
au lieu de/boot/efi/EFI/debian
alias<partition EFI>/EFI/debian
. Mais ces deux programmes continuent de chercher en vain le fichier/boot/efi/EFI/debian/grub.cfg
alias<partition EFI>/EFI/debian/grub.cfg
(comme l'indique la commande strings/boot/efi/EFI/debian/grubx64.efi | grep /EFI/debian
), ce qui oblige l'utilisateur à taper manuellementconfigfile (hdX,gptY)/EFI/devuan/grub.cfg
afin de booter le système - Solution provisoire dans le shell grub :
1. Récupérer la valeur de la partition FAT EFI en faisant echo $prefix. Exemple :
grub> echo $prefix (hd0,gpt1)/EFI/debian
2. Charger le fichier de configuration depuis le chemin correct en remplaçant dans la valeur $prefix précédemment affichée debian par devuan. Exemple :
grub> configfile (hd0,gpt1)/EFI/devuan/grub.cfg
- Solution définitive (contournement du bug par surclassement de la configuration grub) : Il s’agit de rester avec un grub UEFI configuré pour Debian tant que la prise en charge Devuan pour grub n'est pas effective à 100% :
1. Créé le fichier /etc/default/grub.d/grub_set_efi_debian.cfg
:
## /etc/default/grub.d/grub_set_efi_debian.cfg ## ## This is a workaround to the devuan 3.1 bug that prevent ## grub-install to make /boot/efi/EFI/devuan/ instead of /boot/efi/EFI/debian/ ## because with /boot/efi/EFI/devuan/, the binaries grubx64.efi and ## shimx64.efi still points to <EFI partition>/EFI/debian/grub.cfg ## instead of <EFI partition>/EFI/devuan/grub.cfg GRUB_DISTRIBUTOR=`(dpkg -s grub-efi-amd64 1>/dev/null 2>&1 && echo Debian) || (lsb_release -i -s 2> /dev/null || echo Debian)`
2. Exécuter grub-install /dev/sda
(si /dev/sda
est le disque de boot)
- Référence : 16/02/2021: archive.org > files.devuan.org > Devuan Beowulf > Devuan 3.1.0 Beowulf Release Notes : Changing the ID of the operating system. - This point-release (3.1.0) fixes a bug in the last release that showed "Debian" in the boot menu instead of "Devuan". If you need the system to identify itself as Debian, you can edit /etc/os-release to show ID=debian. This may be needed for third-party software that expects to see debian.
Nouveautés dans Devuan héritées de Debian
Préambule :
Le caractère envahissant du sous-programme d’init (usine à gaz) systemd, et d’une manière plus générale, la tendance – y compris désormais chez Debian – à privilégier la course à l’innovation (hackers open source de l’OSI) sur la solidité et l’indépendance (hackers logiciels libres de la FSF) bouleverse l’écosystème Linux en altérant le fonctionnement ordinaire des programmes qui existaient antérieurement à systemd. C’est pourquoi bien que la distribution Devuan (basée sur Debian) soit indépendante du sous-programme d’init systemd, certains des programmes qu’elle contient subissent des transformations successives qui compliquent au fil du temps son utilisation, à l’instar des autres systèmes d’exploitation GNU/Linux.
Bien que beaucoup de distributions GNU/Linux revendiquent l’universalité (en particulier Debian), on peut craindre que l’utilisateur expérimenté qui n’a pas le temps de recompiler les programmes soit un jour contraint d’utiliser deux distributions GNU/Linux différentes pour continuer d’accéder à tous ses logiciels préférés.
Devuan 1+ (Debian 6+) : [bug] Erreur dbus pour les nouveaux utilisateurs
- Description : Après la création d’un nouvel utilisateur, la connexion à sa session graphique sous Devuan affiche dans une boîte de dialogue le message d’erreur suivant : Impossible de contacter le démon à cause dune erreur daccès interdit venant de D-bus. Vérifiez votre configuration de D-Bus.
- Cause directe imputé : Lutilisateur ne fait pas partie du groupe netdev. Or cette appartenance est requise par le fichier
/etc/dbus-1/system.d/wicd.conf
qui est fourni par le paquet wicd-daemon - Actions correctives :
adduser nom_utilisateur netdev ; dpkg-reconfigure wicd-daemon ; apt-get -y –reinstall install wicd-daemon
- Action préventive : Ajouter netdev à la chaîne de caractères de la variable EXTRA_GROUPS dans le fichier
/etc/adduser.conf
. Par exemple :EXTRA_GROUPS="users fax cdrom floppy tape audio dip video plugdev fuse scanner vboxusers powerdev netdev"
- Source de l’information : 18/03/2009: go2linux.garron.me > wicd error: cannot connect to dbus
Devuan 1+ : Utilitaire supplémentaire du paquet apt : /usr/bin/apt
Note : Le programme /usr/bin/apt
distribué avec Linux Mint est un script python, tandis que celui qui est distribué avec Debian, Devuan et Ubuntu est un fichier binaire ELF.
Différences entre /usr/bin/apt
et /usr/bin/apt-get
:
Devuan 2+ : Les vieux CPU i586 (intel Pentium) ne sont plus supportés
À partir de Devuan 2, les vieux microprocesseurs 32 bits de la famille i586 (Intel P5 = Intel Pentium MMX et AMD-K5) ne sont plus pris en charge (note officielle Debian). Cependant, la famille de microprocesseurs 32 bits i686 (Intel P6 = Intel Pentium Pro et AMD-K6) reste toujours supportée.
Ce fil du forum de discussion Devuan précise que les possesseurs de PC 32 bits i586 peuvent se tourner vers les distributions de la famille BSD, comme par exemple NetBSDet FreeBSD. Les utilisateurs expérimentés peuvent également installer la distribution GNU/Linux Slackware.
Devuan 2+ : Nouvel utilisateur système _apt
Pour des raisons de sécurité, à partir de la version 1.1~exp3 du 24/09/2014 du paquet apt (publié dans debian 9), les répertoires suivants doivent appartenir à _apt:root avec les permissions octales 700 :
- Répertoire
/var/lib/apt/lists/partial
(base de données APT partielle) - Répertoire
/var/cache/apt/archives/partial
(cache APT partiel des paquets deb)
Les répertoires suivants continuent d’appartenir à root:root en permission (chmod)octale 755 :
- Répertoire
/var/cache/apt/archives
(base de données APT) - Répertoire
/var/lib/apt/lists
(cache APT des paquets deb, purgé via la commandeapt-get clean
)
Réinitialiser le cache APT depuis debian 9 / devuan 2 :
rm -rf /var/lib/apt/lists mkdir -pm 755 /var/lib/apt/lists/partial\\ chown -R _apt:root /var/lib/apt/lists/partial /var/cache/apt/archives/partial\\ chmod 700 /var/lib/apt/lists/partial /var/cache/apt/archives/partial
Réinitialiser le cache APT quelque soit la distribution debian dérivée :
rm -rf /var/lib/apt/lists mkdir -pm 755 /var/lib/apt/lists/partial if dpkg --compare-versions $(dpkg -s apt | awk '$1=="Version:"{print $2}') ge 1.1~exp3; then ## Changelog à partir de apt (1.1~exp3) du 24/09/2014 : ## * Make /var/lib/apt/lists and /var/cache/apt/archives owned ## by the new _apt user ## * Use _apt as our unprivileged user name chown -R _apt:root /var/lib/apt/lists /var/cache/apt/archives/partial chmod 700 /var/lib/apt/lists/partial /var/cache/apt/archives/partial else chmod 755 /var/lib/apt/lists/partial /var/cache/apt/archives/partial fi apt-get update
Devuan 2+ : Quelques autres changements hérités de Debian 9
- Nouveau noyau Linux version 4.9
- nftables : nouveau programme de gestion du parefeu Linux
- Le gestionnaire de mots de passe KeepassX passe en version 2 (La base de données Keepass version 1 n'étant pas compatible avec la version 2 du logiciel, il faut créer un nouveau fichier base de données puis importer dans cette nouvelle base le fichier correspondant à la version 1 de KeepassX)
- L’excellent vieux logiciel metamorphose (renommage de fichiers en lot) n'est malheureusement plus compatible (sauf en version Windows via l’adaptateur Wine). Cependant, deux logiciels moins efficaces sont compatibles : GPRename (anglophone) et le "renommeur en masse" de lexplorateur de fichier Thunar
Devuan 3+ (debian 10+) : AppArmor est installé par défaut
Les paquets logiciels noyaux Linux fournis par Debian 10+ recommandent l’installation du paquet logiciel apparmor qui permet de configurer et de gérer la conteneurisation des programmes par le noyau Linux. Il s’ensuit que si un fichier de configuration apparmor est mal configuré, alors il peut ralentir le démarrage du système.
Source documentaire :
- 05/08/2017: groups.google.com > Lets enable AppArmor by default (why not?)
Devuan 3+ (debian 10+) : su préserve différemment certaines variables d’environnement
À partir de Devuan 3 (Debian 10), le programme /bin/su
n’est plus fourni par le paquet logiciel login mais par le paquet util-linux.
Et à partir de la version 2.33.1-0.1 du paquet util-linux distribué par Debian, le programme /bin/su
modifie sa stratégie de préservation des variables d’environnement USER LOGNAME PATH IFS XAUTHORITY et DISPLAY sur le même schéma que celui du programme /bin/su
des développeurs amonts.
Pour initialiser correctement les variables d’environnement à leurs valeur par défaut pour l’utilisateur NOM, il faut désormais utiliser l’une des options suivantes :
su - NOM
su -l NOM
su --login NOM
Pour autant, utiliser su avec les options suivantes devient beaucoup moins intuitif :
su NOM
su -c PROGRAMME NOM
Annonces officielles par les développeurs amont du paquet util-linux :
- 10/10/2012: lwn.net > util-linux 2.22.1 Release Notes : "- dont modify PATH if -l not specified [Karel Zak]"
- 31/07/2013: lwn.net > Util-linux 2.23.2 Release Notes : "- ignore –preserve-environment, its mutually exclusive to –login [Karel Zak]"
Annonce officielle du portage du /bin/su
par les mainteneurs debian du paquet util-linux :
- 03/08/2018: sources.debian.org > sources > util-linux > 2.33.1-0.1 > debian > util-linux.NEWS :
util-linux (2.32-0.4) unstable; urgency=medium
The util-linux implementation of /bin/su is now used, replacing the
one previously supplied by src:shadow (shipped in login package), and
bringing Debian in line with other modern distributions. The two
implementations are very similar but have some minor differences (and
there might be more that was not yet noticed ofcourse), e.g.
- new su (with no args, i.e. when preserving the environment) also
preserves PATH and IFS, while old su would always reset PATH and IFS
even in preserve environment mode.
- new su - (creating new environment) will do just that, while old
su would always preserve content of DISPLAY and XAUTHORITY
environment variables. Set them as needed (but beware X doesnt give
you any real privileges separation anyway if you can access an X
server of another user). See pam_xauth(8) if you want to reconfigure
pam for seamless xauth keys.
- su (empty user string) used to give root, but now returns an error.
- previously su only had one pam config, but now su - is configured
separately in /etc/pam.d/su-l. This file additionally invokes
pam_keyinit to revoke the session keyring.
The first difference is probably the most user visible one. Doing
plain su is a really bad idea for many reasons, so using su - is
strongly recommended to always get a newly set up environment similar
to a normal login. If you want to restore behaviour more similar to
the previous one you can add ALWAYS_SET_PATH yes in /etc/login.defs.
– Andreas Henriksson <…> Fri, 03 Aug 2018 10:52:22 +0200
- Annonce concernant la variable PATH sur le forum dev1galaxy.org :
08/06/2020 : dev1galaxy.org > sbin PATH problems on Beowulf [SOLVED] - Annonce officielle concernant les variables DISPLAY et XAUTHORITY :
debian.org > releases > buster > 5.3.2. Semantics for using environment variables for su changed :
su has changed semantics in buster and no longer preserves the user environment variables DISPLAY and XAUTHORITY. If you need to run graphical applications with su, you will have to explicitly set them to allow access to your display. Seebug #905409for an extensive discussion.
Tableau de synthèse Préserve la variable d’environnement |
|||||
USER LOGNAME | PWD | PATH IFS | XAUTHORITY DISPLAY |
||
su nom | su root | OUI (Devuan 2 : NON) | OUI | OUI (Devuan 2 : NON) | OUI |
su demo2 | NON | OUI | OUI | OUI | |
su -c bash nom | su -c bash root | OUI (Devuan 2 : NON) | OUI | OUI (Devuan 2 : NON) | OUI |
su -c bash demo2 | NON | OUI | OUI | OUI | |
su - nom | su - root | NON | NON | NON | NON (Devuan 2 : OUI) |
su - demo2 | NON | NON | NON | NON (Devuan 2 : OUI) |
|
su -l nom su --login nom | su -l root su –login root | NON | NON | NON | NON (Devuan 2 : OUI) |
su -l demo2 su --login demo2 | NON | NON | NON | NON (Devuan 2 : OUI) |
Note : Comme l’écrit un utilisateur sur le forum dev1galaxy.org, pour revenir approximativement à l'ancien comportement de /bin/su
, il faut ajouter une ligne "ALWAYS_SET_PATH yes" dans le fichier /etc/login.defs
(et non dans le fichier /etc/default/su
comme c’est indiqué par erreur dans le man de su !!!)
Conséquences pratiques en mode interactif
L’utilisateur qui pratiquait déjà /bin/su
doit s’habituer à utiliser su -
ou su -l
ou su –login
au lieu de su
tout seul. Mais même s’il fait l’effort d’adopter de nouveaux automatismes, il doit conserver en mémoire que les variables d’environnement XAUTHORITY et DISPLAY ne sont plus préservées avec ces commandes.
Concrètement, si l’utilisateur veut lancer une commande externe d’administration comme nft sans être obligé de taper son chemin complet /usr/sbin/nft
, il commencera par écrire su -
ou su -l
ou su –login
.
Conséquences pratiques en mode non-interactif (scripts)
Un programme, et en particulier un script shell, ne peut plus tester l'utilisateur avec certitude via les variables USER et LOGNAME. Il est recommandé de vérifier et corriger tous les anciens scripts shell (bash, dash, C shell, Korn shell, Z Shell, etc.) de personnalisation avant la mise à niveau de Devuan 2 vers Devuan 3 :
- Dans bash, recours à la variable entier EUID (numéro identifiant de l'utilisateur effectif)
- Dans tous les shells (bash, dash, etc.) recours à l'entier fourni par
`id -u`
, recours à la chaîne`id -un`
ou à la chaîne`whoami`
. Exemple d’ajout en début de script :
## /bin/su debian 10+ update fix: dash/bash compliant workaround ## Doc: https://sources.debian.org/src/util-linux/2.33.1-0.1/debian/util-linux.NEWS export USER=`id -un`; export LOGNAME=$USER if test `id -u` -eq 0; then echo $PATH | grep -Eq /sbin\> || export PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin" fi
Les autres programmes ne doivent plus utiliser des méthodes basées sur l’environnement pour récupérer le nom d’utilisateur et son répertoire personnel. Par exemple, les scripts python ne doivent plus utiliser os.getlogin()
, os.getenv("USER")
, os.environ["USER"]
ou os.environ["LOGNAME"]
mais plutôt : pwd.getpwuid(os.getuid()).pw_name
Devuan 3+ (debian 10+) : Disparition de /usr/bin/gksu des dépôts
Les programmes graphiques d'exécution de commandes par élévation de privilège gksu et gksudo ont disparu des dépôt GNU/Linux à partir des distribution Debian 10 / Devuan 3, Ubuntu 18.04, etc., au profit de /usr/bin/pkexec
qui rend la vie beaucoup plus compliquée (sous-programme Polkit avec le programme /usr/bin/pkexec
fourni dans toutes les distributions GNU/Linux en complément alternatif du programme sudo).
Explications :
- 12/03/2018: bugs.debian.org > Debian Bug report logs - #892768 — RM: gksu -- RoM; RoQA; unmaintained : gksu has been deprecated for years. The intent of gksu is to allow running apps with elevated privileges but the recommended way to do that is for the app developer to use PolicyKit to request elevated privileges for the specific actions that need done instead of for the whole app to run as root. For the next major stable release of Debian (codenamed Buster), the Debian GNOME team plans to default to GNOME on Wayland where gksu does not even work. gksu is unmaintained (last upload 2014) and is considered a security vulnerability. Therefore, please remove it. On behalf of the Debian GNOME team, Jeremy Bicha
- tracker.debian.org > pkg > gksu :
- [2018-03-21] Removed 2.0.2-9 from unstable (Debian FTP Masters)
- [2018-01-21] gksu REMOVED from testing (Debian testing watch)
- Site officiel nongnu.org/gksu : gksu is being replaced by gksu PolicyKit, please take a look at live.gnome.org/gksu : This page does not exist yet. You can create a new empty page, or use one of the page templates.
Contournements du bug :
- La commande
pkexec
est recommandée en remplacement degksu
etgksudo
, mais elle nécessite qu'un fichier de configuration correspondant au programme concerné ait été créé au préalable (Documentation wiki.debian.org > PolicyKit) - Les développeurs de l'environnemnent de bureau KDE ont créé et maintiennent le paquet
kde-runtime
qui contient le programme/usr/lib/kde4/libexec/kdesu-distrib/kdesu
(manpage debian)./usr/lib/kde4/libexec/kdesu
est un lien symbolique vers l'alternative/etc/alternatives/kdesu
qui est lui-même un lien symbolique vers le programme/usr/lib/kde4/libexec/kdesu-distrib/kdesu
installé par le paquetkde-runtime
) - Dans certaines configurations et distributions GNU/Linux, il est possible d'utiliser dans l'interface graphique, le protocole admin:// devant le nom du fichier à éditer
Prérequis pour exécuter un programme en tant que root via pkexec
:
1. Un programme résident ("agent") doit être chargé en mémoire au démarrage de la session utilisateur graphique. Selon la configuration il s’agit de l’un des programmes suivants :
Programme résident "agent" pour pkexec | Paquet logiciel |
---|---|
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 | policykit-1-gnome |
/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1 | polkit-kde-agent-1 |
/usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1 | mate-polkit |
/usr/bin/lxqt-policykit-agent | lxqt-policykit |
/usr/bin/lxpolkit | lxpolkit |
/usr/bin/gnome-shell | gnome-shell |
/usr/bin/gnome-flashback | gnome-flashback |
2. La valeur de la variable SHELL de l’utilisateur appelant doit être présent dans la liste /etc/shells
3. Un fichier de règle au format .policy et avec les permissions 644 doit exister pour ce programme dans le répertoire /usr/share/polkit-1/actions/
. Exemple simplifié pour le gestionnaire graphique de paquet synaptic :
demo@devuan3:~$ cat /usr/share/polkit-1/actions/com.ubuntu.pkexec.synaptic.policy <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> <policyconfig> <action id="com.ubuntu.pkexec.synaptic"> <message>Authentication is required to run the Synaptic Package Manager</message> <message xml:lang="en_GB">Authentication is required to run the Synaptic Package Manager</message> <message xml:lang="fr">Une authentification est requise pour exécuter le gestionnaire de paquets Synaptic</message> <icon_name>synaptic</icon_name> <defaults> <allow_any>auth_admin</allow_any> <allow_inactive>auth_admin</allow_inactive> <allow_active>auth_admin</allow_active> </defaults> <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/synaptic</annotate> <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> </action>
Devuan 3+ (debian 10+) : Disparition des bibliothèques LSB
Niveau d’encre : Le paquet officiel epson-printer-utility reposant sur les bibliothèques Linux Standard Base (LSB) abandonnées dans Debian depuis 2015, cet utilitaire est incompatible avec Debian 10+ et Devuan 3+.
Plus d'explications : wiki.debian.org > LSB et lwn.net > Debian dropping the Linux Standard Base (LSB semble toujours exister chez Ubuntu).
Niveau d'encre en console :
- Paquet ink : $
ink -p usb
- Paquet escputil :
sudo escputil -i -r /dev/usb/lp0
(GUI : possibilité d'adapter le très vieux script python stylus-toolbox)
Devuan 3+ (debian 10+) : Paquet usbutils : update-usbids supprimé
Le programme /usr/sbin/update-usbids
du paquet usbutils
est supprimé.
À partir de Debian 10, le programme /usr/sbin/update-usbids
est supprimé du paquet usbutils, semble-t-il au profit d'une méthode basée sur systemd :
- 18/04/2019: unix.stackexchange.com > Why is the hardware database of usbutils not updated?
Devuan 3+ (debian 10+) : méta-paquet apt-transport-https superflus
À partir de la version 1.5 du paquet apt
– donc de Debian 10 / Devuan 3 –, la méthode de transport https est nativement prise en charge par le programme APT. Le méta-paquet apt-transport-https
peut donc être désinstallé.
Devuan 3+ (debian 10+) : Dépôt tiers deb-multimedia.org incompatible
Avant toute mise à niveau de Devuan 2 vers Devuan 3, il est OBLIGATOIRE sous peine de casse du système, que tous les paquets provenant du dépôt deb-multimedia.org soient remplacés (rétrogradés) par leurs versions provenant du dépôt Devuan 2 officiel. Tous les paquets du dépôts deb-multimedia.org ont un numéro de version qui se termine par "-dmo1". Si bien que la commande dpkg -l | grep "\-dmo1"
permet de savoir si le système est concerné par ce problème. Si c’est le cas, voici la procédure à suivre :
1. Configuration d’un pinning APT provisoire :
cat > /etc/apt/preferences.d/temp.50_remove_deb-multimedia.org.pref <<\EOF Explanation: Pin-Priority < 0: Only install package updates from deb-multimedia.org manually Package: * Pin: origin *.deb-multimedia.org Pin-Priority: -1 EOF chmod 644 /etc/apt/preferences.d/temp.50_remove_deb-multimedia.org.pref cat > /etc/apt/preferences.d/temp.60_force_install_from_devuan.org.pref <<\EOF Explanation: Pin-Priority > 1000: Automatically install a package from Debian even if it forces to downgrade from a greater installed version Package: * Pin: release o=devuan Pin-Priority: 1001 EOF chmod 644 /etc/apt/preferences.d/temp.60_force_install_from_devuan.org.pref
2. Rétrogradation des paquets concernés :
apt-get -y --allow-downgrades --simulate dist-upgrade 2>&1 | tee apt-get_downgrade.log ## Si tout est OK dans le fichier apt-get_downgrade.log, enlever le mode simulation : apt-get -y --allow-downgrades dist-upgrade
3. Désinstallation des paquets restants qui proviennent de deb-multimedia.org :
(par exemple le paquet avidemux qui est n'est pas fourni par les dépôts officiels Debian et reste officiellement disponible au format AppImage)
dpkg -l | awk '$3~/^[0-9].*-dmo[0-9]/&&$1~/^.[iufh]$/{print $2}' | xargs apt-get -y --simulate purge 2>&1 | tee apt-get_purge.log ## Si tout est OK dans le fichier apt-get_purge.log, enlever le mode simulation : dpkg -l | awk '$3~/^[0-9].*-dmo[0-9]/&&$1~/^.[iufh]$/{print $2}' | xargs apt-get -y purge 2>&1 | tee apt-get_purge.log ## Conseil : Grâce au paquet logiciel apt-show-versions, vérifier si d’autres paquets absents des dépôts ne sont pas inutiles sur le disque dur ## (vieux noyaux Linux, vieux pilotes d’imprimantes, etc.) : apt-show-versions -a | awk -F: '$0~/No available version in archive/{print $1}'
4. Suppression manuelle dans /etc/apt/sources.list
ou dans /etc/apt/sources.list.d/
de toute référence à deb-multimedia.org
(Vérification : grep -Hrn deb-multimedia.org /etc/apt
)
5. Suppression du pinning APT provisoire :
rm -v/etc/apt/preferences.d/temp.*.pref
Après cette dernière étape, la mise à niveau vers Devuan 3 est possible sans grande difficulté.
Devuan 3+ (debian 10+) : [bug] La session graphique gèle au démarrage sous Virtualbox
- Description : La session graphique gèle au démarrage sous Virtualbox
- Explication : Bug (non certifié) lié aux additions VirtualBox lorsque la fenêtre de la VM est à sa taille maximale
- Solution : Redimensionner la fenêtre, attendre que le bureau soit correctement démarré, puis remettre la fenêtre de la VM à sa taille maximale
Devuan 3+ (debian 10+) : [bug] L’installation de mypaint désinstalle gimp et vice-versa
- Explication : Conflit entre les paquets mypaint et gimp : À partir de la version 2.10 de Gimp, les développeurs de ce logiciel ont décidé d'inclure les bibliothèques de brosses du logiciel MyPaint sans concertation avec les développeurs du projet MyPaint qui est lui aussi en évolution.
Comme à chaque fois, la commandeaptitude why not nom_paquet
est notre ami. Concrètement, le paquet gimp 2.10.8-2 dépend du paquet bibliothèque de sous-programmes libmypaint-1.3-0 qui dépend du paquet libmypaint-common dont la méta-donnée de paquet indique quil est en conflit avec le paquet mypaint-data. Or le paquet mypaint dépend du paquet mypaint-data. Les développeurs de MyPaint ont été avertis en 2018 de ce problème qui concerne toutes les distributions GNU/Linux :- 03/04/2018: github.com > mypaint > mypaint > issues > mypaint has file conflict with libmypaint #918 : "For debian yes, in as far as Gimp 2.10 is now in testing (using libmypaint), and there is simply a conflict with mypaint which doesnt allow the installation of mypaint in parallel with gimp/libmypaint."
- 03/04/2018: bugs.debian.org > Debian Bug report logs - #894757 — libmypaint-common: file conflict with mypaint-data
- Solution en attendant la résolution du conflit dans Debian 11 / Devuan 4 (Contournent) : Télécharger le paquet AppImage de MyPaint depuis la page Téléchargements du site officiel MyPaint, le rendre exécutable, puis l'exécuter
Devuan 3+ (debian 10+) : [bug] Crash de gimp au démarrage
- Description : Gimp ne démarre pas et affiche dans le terminal : "gimp: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgegl-0.4.so.0: undefined symbol: babl_format_with_space"
- Explication : La bibliothèque de sous-programmes livrée par le paquet libbabl-0.1-0 est plus récente que la version officielle compilée pour gimp de Debian 10 parce quelle provient du dépôt tiers non officiel deb-multimedia.org qui est incompatible avec la distribution Debian.
Ressource documentaire : 19/04/2018: bugs.debian.org > Debian Bug report logs - #896091 — gimp fails to run with a symbol lookup error: undefined symbol: babl_process_rows - Solution : Rétrograder le paquet libbabl-0.1-0 depuis la version 1:0.1.28-dmo1 vers la version 0.1.62-1 du dépôt debian 10 officiel.
Pour cela : Préférer rétrograder proprement tous les paquets provenant du dépôt deb-multimedia.org à leurs versions respectives Debian 10 officielles comme indiqué dans le paragraphe précédent "Devuan 3+ (debian 10+) : Dépôt tiers deb-multimedia.org incompatible", plutôt que rétrograder uniquement le paquet concerné (viaapt-get -y –allow-downgrades install libbabl-0.1-0=0.1.62-1
) en cassant la cohérence de l'arbre des dépendances des paquets
Devuan 3+ (debian 10+) : [bug] K3b n’a pas les permissions suffisantes pour graver un DVD
- Description : K3b échoue à graver un DVD avec un message d'erreur signifiant qu'il n'a pas assez de permissions. Au démarrage, K3b affiche le message suivant "Permissions insuffisantes pour exécuter cdrecord : /usr/bin/wodim. K3b utilise cdrecord pour la gravure de CD. Solution : Vérifiez les permissions dans Paramètres → Configurer K3b… → Programmes → Permissions. Si la valeur par défaut de K3b est en place, vérifiez que vous êtes membre du groupe « root »."
- Explication : Le programme inclus dans le paquet k3b du dépôt debian 10 n'a exceptionnellement pas été compilé avec l'option de configuration idoine. Ainsi, le menu Configuration > Programmes > Onglet "Droits d'accès" affiche : "L'assistant Permissions na pas été activé durant la compilation. Vérifiez les programmes dont les permissions devraient être modifiées" et propose que les ressources appartiennent au groupe root au lieu du groupe cdrom
- Solution : Préférer contourner le problème en utilisant le logiciel XfBurn (paquet xfburn), plutôt que modifier les permissions de façon trop permissives et dune manière non conventionnelles qui pourraient avoir un impact négatif ultérieur après la prochaine mise à niveau vers Devuan 4.
Où bien : recompiler K3b avec les paramètres de configuration idoines "dh_auto_configure
" affichées dans les pages de liens "Maybe-Successfull" de la page buildd.debian.org > Build logs for k3b pour les versions de paquets k3b sans bug
Devuan 3+ (debian 10+) : [bug] Crash de clipit à l’ouverture de son historique
- Description : L'ouverture de l'historique affiche un carré noir en haut à gauche de l'écran. Et clipit affiche le message suivant dans le terminal :
"_gtk_widget_captured_event: assertion WIDGET_REALIZED_FOR_EVENT (widget, event) failed".
Par ailleurs dans le terminal, clipit affiche au démarrage :
dbind-WARNING **: 04:43:17.412: Couldnt register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
(clipit:9488): Gdk-CRITICAL **: 04:43:17.598: gdk_window_thaw_toplevel_updates: assertion window->update_and_descendants_freeze_count > 0 failed - Explication : Le programme est bogué car le paquet clipit du dépôt debian 10 n’a pas été mis à jour depuis le dépôt github amont du projet clipit officiel
- Solution : À la place de la version 1.4.4+git20190202-1 provenant du dépôt Debian, installer la version corrigée 1.4.5+git20200624-1ppa1 provenant du dépôt github
- Source documentaire : 22/07/2020: github.com > CristianHenzel > ClipIt > issues > Clipit stoped working after update to Mint 20 #148
Devuan 3+ (debian 10+) : [bug] Les menus libreoffice sont trop petits
- Description : Les menus LibreOffice sont trop petits
- Solution : Installer le paquet
libreoffice-gtk3
- Source documentaire : 01/06/2018: ask.libreoffice.org > menu fonts to small in libreoffice 6
Devuan 3+ : Quelques autres changements hérités de Debian 10
- L’éditeur de texte ultraléger leafpad n’est plus fourni. Cependant la version du dépôt Debian 9 fonctionne très bien.
- Bien que non disponible dans les dépôts, le très vieux programme de catalogage de CD GWhere fonctionne toujours depuis les archives Debian. cf. Téléchargement de programmes abandonnés > GWhere