Reply Part 3/3. (I had to split my reply over 3 posts due to requirement that new users are limited to 2 links in a post.)
See also the “Secure-execution mode section” of the man page of ld.so
:
http://man7.org/linux/man-pages/man8/ld.so.8.html#ENVIRONMENT
In summary, Fedora 31 changed /usr/bin/gnome-shell
to run with capabilities, which causes it to run in a “secure-execution mode,” which, in turn, strips certain environment variables from the environment.
Then all the child processes of gnome-shell inherit its modified environment.
My understanding breaks down at this point, because I can’t explain how gnome-terminal is a child process of gnome-shell. I tried looking at the output of:
ps -aef --forest
but it doesn’t make that relationship evident. I suspect it has to do with ibus-daemon
.
Note that, when you look at the output of ps -aef --forest
, it is this line that starts bash as a login shell:
/usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/gnome-session"
Note that if you open a guake
terminal, you’ll get the behavior you expected; the LD_LIBRARY_PATH
environment variable will be set as you specified in your ~/.bash_profile
. This is consistent with the output of ps -aef --forest
which shows that guake
is started before gnome-shell
.
Note also that GNOME 3.34 had a significant change to the relationship between systemd and gnome-session:
GNOME 3.34 is now managed using systemd
That might explain why there’s a difference between Fedora 30 and Fedora 31.
Robin