Outils du site

Menu du site


Traductions de cette page:
tech:dev:devuan

GNU/Linux Devuan : Particularités de la distribution

Table des matières

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.

DevuanBasé surDate de
publication
Fin du supportFin du support
à long terme
Devuan 1 JessieDebian 8 Jessie
(release-notes)
25/05/201717/06/201830/06/2020
Devuan 2 Ascii
(Release_notes)
Debian 9 Stretch
(release-notes)
08/06/201830/06/202030/06/2022
Devuan 3 Beowulf
(Release_notes)
Debian 10.4 Buster
(release-notes)
02/06/202007/2022 ?06/2024 ?
Devuan 4 ChimaeraDebian 11 Bullseye≥2022
Devuan 5 DaedalusDebian 12 Bookworm
Devuan 6Debian 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 DevuanEnvironnement
de bureau
Gestionnaire de
connexion graphique
Gestionnaire
de session graphique
Devuan 1 XFCEslim ou lightdmconsolekit requis par le paquet policykit-1
Devuan 2 XFCEslimconsolekit
Cinnamonlightdmlogind
KDElightdmlogind
LXQTlightdmlogind
MATEslimconsolekit
Devuan 3 XFCEslim (par défaut) ou lightdmlogind (par défaut) ou consolekit
Cinnamonlightdm (par défaut ou slimlogind (par défaut) ou consolekit
KDElightdm (par défaut ou slimlogind
LXQTlightdm (par défaut ou slimlogind
MATElightdm (par défaut ou slimlogind

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 variable GRUB_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 manuellement configfile (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 commande apt-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 :

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 :

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 nomsu rootOUI
(Devuan 2 : NON)
OUIOUI
(Devuan 2 : NON)
OUI
su demo2NONOUIOUIOUI
su -c bash nomsu -c bash rootOUI
(Devuan 2 : NON)
OUIOUI
(Devuan 2 : NON)
OUI
su -c bash demo2NONOUIOUIOUI
su - nomsu - rootNONNONNON NON
(Devuan 2 : OUI)
su - demo2NONNONNON NON
(Devuan 2 : OUI)
su -l nom
su --login nom
su -l root
su –login root
NONNONNON NON
(Devuan 2 : OUI)
su -l demo2
su --login demo2
NONNONNON 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 de gksu et gksudo, 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'environnement de bureau LXQT ont créé et maintiennent le paquet lxqt-sudo (github) (ainsi que lxqt-sudo-l10n) qui contient le programme /usr/bin/lxqt-sudo et ses liens symboliques /usr/bin/lxsu et /usr/bin/lxsudo (manpages debian)
  • 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 paquet kde-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-1policykit-1-gnome
/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1polkit-kde-agent-1
/usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1mate-polkit
/usr/bin/lxqt-policykit-agentlxqt-policykit
/usr/bin/lxpolkitlxpolkit
/usr/bin/gnome-shellgnome-shell
/usr/bin/gnome-flashbackgnome-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 :

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

  • Description : L'installation du logiciel MyPaint (paquet mypaint) désinstalle le logiciel Gimp (paquet 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 commande aptitude 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 :
  • 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é (via apt-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

Devuan 3+ : Quelques autres changements hérités de Debian 10

1)

Commentaires

Entrer votre commentaire:
Si vous ne pouvez pas lire le code, téléchargez ce fichier .wav pour l'écouter.
 
tech/dev/devuan.txt · Dernière modification: 21/08/2021 07:18 de Médéric