On 18 May 2018 at 19:01, Oliver Grawert <o...@grawert.net> wrote: > well, my subtle hint would point to simply add it to /etc/environment > here, which would globally cover for everything, would allow us to drop > the profile.d snippet in ubuntu images/installs and to my knowledge > would even be used by systemd (or am i wrong here ?) ... > > (and i think it would even work for zsh) >
Sorry, I do not have time for subtle hints. As you are well aware, snapd cannot modify /etc/environment; (not owned by it, it is freeform text, can contain anything, may or may not have PATH setting, not-upgradable, so on and so forth) said file is not used by systemd; it would not cover things globally; and specifically it would not cover things across other distributions. There are reasons why integration snippet was shipped by snapd in profile.d, and all of those reasons still stand. And more-over the ethos for snapd packaging is to integrate into as many systems as possible, in a native way. Shipping appropriate system-environment-generators will achieve that not only on Ubuntu classic installs but on any systemd-based Linux distros too, which my understanding is the scope for the snapd project. -- Regards, Dimitri. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, 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: New Status in systemd package in Ubuntu: New Status in snapd source package in Xenial: New Status in systemd source package in Xenial: Confirmed Status in snapd source package in Bionic: New Status in systemd source package in Bionic: Won't Fix Status in snapd source package in Cosmic: New Status in systemd source package in Cosmic: Won't Fix Bug description: 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. Specifically, this is evident by e.g. $ systemd-run env. Or any other daemons that spawn shell scripts (e.g. cloud-init metadata acquired shell hooks, etc.). Since v232 systemd provides support for environment generators, snapd should package/ship a snippet that injects the correct snapd path into systemd environment. E.g.: $ sudo mkdir -p /usr/lib/systemd/system-environment-generators $ printf '#!/bin/sh\nPATH=$PATH:/snap/bin\n' | \ sudo tee /usr/lib/systemd/system-environment-generators/90-snapd Something similar can be done for user-environment-generators too. Note that user-environment-generators can generate unique variables per user. Note please use /usr/lib path, as it appears that /lib/systemd path is not working atm. Will check if that needs to be fixed up. systemd in xenial does not support system-environment-generators, thus we probably need to upload a patch to change the DEFAULT_PATH compiled in default there. [Testcase] $ systemd-run /usr/bin/env $ journalctl -e | grep PATH Output should contain /snap/bin To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1771858/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp