[Bug 1771858] Re: /snap/bin not in default PATH for units, snapd should ship system-environment-generators to inject /snap/bin into $PATH
Balint Reczey
balint.reczey at canonical.com
Wed Jun 26 07:32:19 UTC 2019
Verified 237-3ubuntu10.24 on Bionic:
root at bb:~# systemd-run /usr/bin/env
Running as unit: run-r14e6d7c0430841c59697a5c84ded2a88.service
root at bb:~# dpkg -l systemd | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-================-============-=================================
ii systemd 237-3ubuntu10.23 amd64 system and service manager
root at bb:~# systemd-run /usr/bin/env
Running as unit: run-r512450e1e4134a86bc6c65eb4b68d9c3.service
root at bb:~# journalctl -e | grep PATH
Jun 26 06:54:12 bb env[2830]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Jun 26 06:54:38 bb env[2835]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root at bb:~# sed -i 's/-backports/-proposed/' /etc/apt/sources.list
root at bb:~# apt update -qq
16 packages can be upgraded. Run 'apt list --upgradable' to see them.
root at bb:~# apt install -y -qq systemd
...
root at bb:~# ls -alh /usr/lib/systemd/system-environment-generators/snapd-env-generator
-rw-r--r-- 1 root root 44K Jun 5 06:41 /usr/lib/systemd/system-environment-generators/snapd-env-generator
root at bb:~# chmod +x /usr/lib/systemd/system-environment-generators/snapd-env-generator
root at bb:~# reboot
Session terminated, terminating shell...rbalint at yogi:~$ lxc shell bb
mesg: ttyname failed: No such device
root at bb:~# dpkg -l systemd | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-================-============-=================================
ii systemd 237-3ubuntu10.24 amd64 system and service manager
root at bb:~# journalctl -e | grep PATH
Jun 26 06:54:12 bb env[2830]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Jun 26 06:54:38 bb env[2835]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root at bb:~# systemd-run /usr/bin/env
Running as unit: run-r5a67017348664e9face4a9f084dfcde7.service
root at bb:~# journalctl -e | grep PATH
Jun 26 06:54:12 bb env[2830]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Jun 26 06:54:38 bb env[2835]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Jun 26 06:59:20 bb env[311]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1771858
Title:
/snap/bin not in default PATH for units, snapd should ship system-
environment-generators to inject /snap/bin into $PATH
Status in snapd package in Ubuntu:
Confirmed
Status in systemd package in Ubuntu:
Fix Released
Status in snapd source package in Xenial:
Confirmed
Status in systemd source package in Xenial:
Confirmed
Status in snapd source package in Bionic:
Confirmed
Status in systemd source package in Bionic:
Fix Committed
Status in snapd source package in Cosmic:
Fix Released
Status in systemd source package in Cosmic:
Fix Released
Bug description:
[Impact]
* This means that software installed via snap isn't transparently
available for units to use. As snaps are first-class citizens in
Ubuntu, we should update the PATH.
* When a generator started to be provided by systemd, it was
recognized that $PATH is not correctly set, nonetheless, due to an
environment bug that systemd generators run in.
[Testcase]
# make snapd-env-generator executable if it is not
$ sudo chmod +x /usr/lib/systemd/system-environment-generators/snapd-env-generator
# reboot, then test the effect of the fix
$ systemd-run /usr/bin/env
$ journalctl -e | grep PATH
Output should contain /snap/bin
Output should contain a complete and a valid PATH, i.e.
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" or similar.
[Regression Potential]
* snapd generator was already fixed separately to cause no harm, when
running under a broken systemd. With the corrected environment,
generators will now run with a correct PATH out of the box. A slight
change of PATH will be observed by all generators, when running in
containers/initramfs-less boots. However most generators will not be
affected as they typically do not execute external binaries.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1771858/+subscriptions
More information about the foundations-bugs
mailing list