Trisquel, Guix et ouverture de session graphique

No replies
Rubujeto

I am a member!

Offline
Joined: 04/18/2022

Bonjour,

J'ai souhaité installé le système de paquets Guix et je remercie l'auteur de la documentation dans Trisquel qui m'a permis de le faire fonctionner : https://trisquel.info/fr/wiki/le-gestionnaire-de-paquets-gnu-guix . Je partage ici le problème que j'ai rencontré, en ayant d'abord suivi les instructions du manuel de Guix, et comment la documentation de Trisquel m'a permis de résoudre mon problème. En cherchant à comprendre les instructions que j'ai tapé, je me pose encore 2 questions.

+---------------+
|PROBLÈME|
+---------------+

Après l'installation de Guix et le redémarrage de l'ordinateur, la fenêtre de connexion me demande de rentrer mon mot de passé après chaque validation.

En suivant les instructions du manuel de Guix, j'en avais déduit, par méconnaissance, de mettre la variable suivante dans le fichier « ~/.bashrc » (au lieu du fichier « ~/.profile ») :

export XDG_DATA_DIRS="/usr/local/share:/usr/share/\${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS"

+---------------+
|SOLUTION|
+---------------+

Afin de comprendre la distingtion des fichiens, « .bashrc » et « .profile », j'ai cherché des informations dans le manuel de « bash ». J'en déduis, en lisant la section « INVOCATION », qu'il existe 2 manières d'invoquer l'intérpréteur : le « bash de connexion » et le « bash interactif ».

Sans rentrer dans les détails, le « bash de connexion » est lorsque la commande « bash » est invoquée avec l'option « --login ». Le second, le « bash interactif », est lorsque je n'utilise pas d'option à l'exception de quelques unes comme « -i ».

Lorsque c'est un « bash de connexion », ce sont les fichiers « /etc/profile », puis « ~/.profile » qui sont lus. Lorsque c'est un « bash interactif », c'est le fichier « ~/.bashrc » qui est lu.

En valorisant la variable XDG_DATA_DIRS dans le fichier « ~/.profile », il ne m'est plus demandé en boucle mon mot de passe à la fenêtre de connexion graphique.

+--------------------+
|COMPRENDRE|
+--------------------+

Le fichier « /etc/profile » est donc le premier à valoriser des variables, pour un « bash de connection ». Et je lis que tous les scripts du répertoire « /etc/profile.d/ » sont exécutés. Ce dernier comprend notamment le script « guix.sh », qui valorise les variables PATH, GUIX_PROFILE, GUIX_LOCPATH...

À ce stade, je comprends maintenant pourquoi je n'ai pas à les rajouter dans mon fichier « ~/.profile ». Cependant, dans le fichier « /etc/profile.d/guix.sh », je lis cette ligne :

export XDG_DATA_DIRS="$GUIX_PROFILE/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}"

La documentation dans Trisquel indique de rajouter cette ligne dans « ~/.profile » :

export XDG_DATA_DIRS="/usr/local/share:/usr/share/\${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS"

En cherchant, j'ai trouvé ce que signifie les symboles « - » et « + » dans le manuel de « bash », dans la section « EXPANSION », la sous-section « Parameter Expansion ».

Dans la première ligne, si la variable XDG_DATA_DIRS est vide, on ajoute les répertoires « /usr/local/share/:/usr/share/ ». Dans la seconde ligne, si la variable XDG_DATA_DIRS n'est pas vide, on ajoute le séparateur « : » puis le contenu de la variable.

+----------------+
|QUESTIONS|
+----------------+

Finalement, je me pose toujours 2 questions :

1) Pourquoi dois-je valoriser la variable XDG_DATA_DIR dans « ~/.profile », en ajoutant la chaîne « /usr/local/share/:/usr/share/ », plutôt que de les mettre dès le départ dans « /etc/profile.d/guix.sh » ?

2) Est-ce bien la présence des répertoires « /usr/local/share/ » et « /usr/share/ » dans XDG_DATA_DIR qui permettent l'ouverture de la session graphique ?