GNU bug report logs -
#35864
~/.local/bin is missing in default PATH on Guix System
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35864 in the body.
You can then email your comments to 35864 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 12:28:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Thu, 23 May 2019 12:28:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
~/.local/bin should be added to the PATH environment variable by
default, see
<https://unix.stackexchange.com/questions/316765/which-distributions-have-home-local-bin-in-path>.
Regards,
Florian
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 14:34:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 35864 <at> debbugs.gnu.org (full text, mbox):
pelzflorian (Florian Pelz) <pelzflorian <at> pelzflorian.de> writes:
> ~/.local/bin should be added to the PATH environment variable by
> default, see
> <https://unix.stackexchange.com/questions/316765/which-distributions-have-home-local-bin-in-path>.
They say that this is specified in the systemd file-hierarchy
specification. We already ignore most of this specification (see any
entry mentioning /usr, for example).
I think we can safely ignore this specification.
--
Ricardo
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 14:56:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 35864 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
pelzflorian (Florian Pelz) wrote:
> ~/.local/bin should be added to the PATH environment variable by
> default, see
So ~/.local/bin is a relatively recent systemd thing[1], replacing
the conventional ~/bin.
My theory is that it's intended for users of graphical file
browsers (where the traditional ~/bin is a bit too prominent even
for my tastes), but I use it too.
It's trivial to augment $PATH yourself, whether or not your
distribution is systemd-based.
> <https://unix.stackexchange.com/questions/316765/which-distributions-have-home-local-bin-in-path>.
That link doesn't support adding (or not adding) it.
Kind regards,
T G-R
[1]:
https://www.freedesktop.org/software/systemd/man/file-hierarchy.html
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 15:32:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 35864 <at> debbugs.gnu.org (full text, mbox):
On Thu, May 23, 2019 at 04:17:38PM +0200, Ricardo Wurmus wrote:
>
> pelzflorian (Florian Pelz) <pelzflorian <at> pelzflorian.de> writes:
>
> > ~/.local/bin should be added to the PATH environment variable by
> > default, see
> > <https://unix.stackexchange.com/questions/316765/which-distributions-have-home-local-bin-in-path>.
>
> They say that this is specified in the systemd file-hierarchy
> specification. We already ignore most of this specification (see any
> entry mentioning /usr, for example).
>
> I think we can safely ignore this specification.
>
Adding ~/.local/bin to the PATH is common on other distros. When
compiling and installing software as a user without making a package
for it, I want to configure it with --prefix=$HOME/.local so I can
install without sudo. Then I want to be able to run:
myprog
instead of
PATH=$HOME/.local/bin myprog
In particular, I want instructions to work on all distros, even though
Debian failed/fails to do this at the moment too.
Regards,
Florian
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 15:55:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 35864 <at> debbugs.gnu.org (full text, mbox):
On Thu, May 23, 2019 at 04:55:28PM +0200, Tobias Geerinckx-Rice wrote:
> > <https://unix.stackexchange.com/questions/316765/which-distributions-have-home-local-bin-in-path>.
>
> That link doesn't support adding (or not adding) it.
>
The people who responded accept that it is a bug in Ubuntu.
Regards,
Florian
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 19:32:05 GMT)
Full text and
rfc822 format available.
Message #20 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
pelzflorian (Florian Pelz) wrote:
> Adding ~/.local/bin to the PATH is common on other distros.
This is what still needs to be established: is it? Which ones?
Is it merely a side-effect of them using systemd? And most
crucially: does it mean that Guix needs to add it too? What about
~/bin?
I'm was just interested in the (ideally: your) arguments for doing
so, not a link to a discussion site. If it really breaks things
that should work, I'm all in favour of adding it to the default
skeleton, if not /etc/profile itself.
> When compiling and installing software as a user without making
> a package
> for it, I want to configure it with --prefix=$HOME/.local so I
> can
> install without sudo. Then I want to be able to run:
>
> myprog
>
> instead of
>
> PATH=$HOME/.local/bin myprog
You can already easily add custom directories to $PATH in your
.bash_profile, if my understanding of bash's complicated set of
configuration files is still accurate. That's where I set it,
anyway:
~ λ grep PATH= .bash_profile
PATH="$HOME/.local/bin:$PATH"
and it's always worked fine. :-)
Kind regards,
T G-R
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 19:32:06 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 19:36:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 35864 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
pelzflorian (Florian Pelz) wrote:
>> That link doesn't support adding (or not adding) it.
>
> The people who responded accept that it is a bug in Ubuntu.
Whoa! This is not a fair summary. The only ‘bug’ there is that
Ubuntu (and RHEL's?) *implementation* was buggy, nothing more.
Nowhere is it implied that a distribution not adding .local/bin to
people's PATH is in any way ’buggy’.
Kind regards,
T G-R
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 19:56:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 35864 <at> debbugs.gnu.org (full text, mbox):
(from the digest)
>Date: Thu, 23 May 2019 17:31:38 +0200
>From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
>To: Ricardo Wurmus <rekado <at> elephly.net>
>Cc: 35864 <at> debbugs.gnu.org
>Subject: bug#35864: ~/.local/bin is missing in default PATH on Guix
> System
>Message-ID: <20190523153138.6kspxwfzeisntll5 <at> pelzflorian.localdomain>
>Content-Type: text/plain; charset=us-ascii
>
>[...]
>
>Adding ~/.local/bin to the PATH is common on other distros. When
>compiling and installing software as a user without making a package
>for it, I want to configure it with --prefix=$HOME/.local so I can
>install without sudo. Then I want to be able to run:
>
>myprog
>
>instead of
>
>PATH=$HOME/.local/bin myprog
>
>In particular, I want instructions to work on all distros, even though
>Debian failed/fails to do this at the moment too.
>
>Regards,
>Florian
>
I personally think including $HOME/.local/bin in PATH by default is
unnecessary because the Guix package manager lets non-root users
install packages and installs from source with the --no-substitutes
option. However if some people don't want take the time to write and
debug a package definition for programs they want to install that are
not included in guix by default, installing to $HOME/.local remains a
valid option.
The simplest way to resolve this is probably to include it in the
skeleton folder in your OS definition (flexible design FTW, am I
right?). Maybe there can be a service to allow this option without
everyone who wants it writing the code themselves?
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Thu, 23 May 2019 22:37:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 35864 <at> debbugs.gnu.org (full text, mbox):
On Thu, May 23, 2019 at 09:31:09PM +0200, Tobias Geerinckx-Rice wrote:
> pelzflorian (Florian Pelz) wrote:
> > Adding ~/.local/bin to the PATH is common on other distros.
>
> This is what still needs to be established: is it? Which ones? Is it merely
> a side-effect of them using systemd? And most crucially: does it mean that
> Guix needs to add it too? What about ~/bin?
>
My motivation was that I would have liked a uniform standard to exist
for offering uniform, simple compilation instructions in tutorials
like mine
<https://pelzflorian.de/gui-prog-gtk-2017/handout-05-meson-en.pdf> or
for how-to-install sections in software project README files. I
therefore believe such standardization efforts should be supported,
even though Guix has good reason to ignore some other aspects of the
file-system hierarchy standard.
I checked now and systemd Parabola iso images and installed systems do
not include ~/.local/bin; neither does an installed Arch system I
looked at, despite their claim to follow
<https://wiki.archlinux.org/index.php/Frequently_asked_questions#Does_Arch_follow_the_Linux_Foundation's_Filesystem_Hierarchy_Standard_(FHS)?>.
I believe this may have to do with their tendency to ship programs
mostly like their upstream developers ship them, which would apply to
GNU Guix as well. Many other distributions are discussed at my
stackexchange link from before.
I did not know about ~/bin being conventional, but others mention it
too. I do not like ~/bin for the reasons you stated:
On Thu, May 23, 2019 at 04:55:28PM +0200, Tobias Geerinckx-Rice wrote:
> My theory is that it's intended for users of graphical file browsers (where
> the traditional ~/bin is a bit too prominent even for my tastes), but I use
> it too.
>
> I'm was just interested in the (ideally: your) arguments for doing so, not a
> link to a discussion site. If it really breaks things that should work, I'm
> all in favour of adding it to the default skeleton, if not /etc/profile
> itself.
>
I am not aware of it fixing any breakage, except Python pip according
to the Debian bug report
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820856> (I did not
try to confirm this), but Guix does not (need to?) have a package for
pip anyway.
Regards,
Florian
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Fri, 24 May 2019 05:24:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 35864 <at> debbugs.gnu.org (full text, mbox):
On Fri, May 24, 2019 at 12:36:14AM +0200, pelzflorian (Florian Pelz) wrote:
> My motivation was that I would have liked a uniform standard to exist
> for offering uniform, simple compilation instructions in tutorials
> like mine
> <https://pelzflorian.de/gui-prog-gtk-2017/handout-05-meson-en.pdf> or
> for how-to-install sections in software project README files. I
> therefore believe such standardization efforts should be supported,
> even though Guix has good reason to ignore some other aspects of the
> file-system hierarchy standard.
>
Currently for a simple GTK application of mine, on other distros I run
it by
dont-hang
but on Guix I have to run it with:
LD_LIBRARY_PATH=/gnu/store/b9p5rhhci7w1zgvv4j0fm2izk86cgnyd-gtk+-3.24.7/lib:/gnu/store/z7myqdqz5i4ahw57l5hagdkmzwz5g2wv-pango-1.42.4/lib:/gnu/store/5yaa39a8rvq8xdv8h37n29sxfmnlcv12-atk-2.32.0/lib:/gnu/store/4d8rc6vjkhsk1b20rigz0nzl7zffn4b5-cairo-1.16.0/lib:/gnu/store/h7wv1qgpascffzi5xlpagnc0hpiv2523-gdk-pixbuf+svg-2.38.1/lib:/gnu/store/0q9pq9flr76rh4bv2524niknknnl2kvq-glib-2.56.3/lib:$LD_LIBRARY_PATH PATH=$HOME/.local/bin:$PATH dont-hang
Adding ~/.local/bin to the path would remove the small part on the
right. Patching ninja could probably remove the need for
LD_LIBRARY_PATH.
Regards,
Florian
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Fri, 24 May 2019 06:18:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 35864 <at> debbugs.gnu.org (full text, mbox):
pelzflorian (Florian Pelz) <pelzflorian <at> pelzflorian.de> writes:
> Currently for a simple GTK application of mine, on other distros I run
> it by
>
> dont-hang
>
> but on Guix I have to run it with:
>
> LD_LIBRARY_PATH=/gnu/store/b9p5rhhci7w1zgvv4j0fm2izk86cgnyd-gtk+-3.24.7/lib:/gnu/store/z7myqdqz5i4ahw57l5hagdkmzwz5g2wv-pango-1.42.4/lib:/gnu/store/5yaa39a8rvq8xdv8h37n29sxfmnlcv12-atk-2.32.0/lib:/gnu/store/4d8rc6vjkhsk1b20rigz0nzl7zffn4b5-cairo-1.16.0/lib:/gnu/store/h7wv1qgpascffzi5xlpagnc0hpiv2523-gdk-pixbuf+svg-2.38.1/lib:/gnu/store/0q9pq9flr76rh4bv2524niknknnl2kvq-glib-2.56.3/lib:$LD_LIBRARY_PATH PATH=$HOME/.local/bin:$PATH dont-hang
>
> Adding ~/.local/bin to the path would remove the small part on the
> right. Patching ninja could probably remove the need for
> LD_LIBRARY_PATH.
Specifying the RUNPATH during compilation would allow you to get rid of
LD_LIBRARY_PATH. What build system are you using?
--
Ricardo
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Fri, 24 May 2019 06:51:01 GMT)
Full text and
rfc822 format available.
Message #41 received at 35864 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Florian,
this is not a bug, it's a feature :-)
the "semantic" reason not to include ~/.local/bin in default path is to
clearly state "use Guix" (even on foreign distros) to allow users to
install packages and avoid the ~/<something>/bin _broken_ workaround
IMHO at most ~/.local/bin is useful for user written scripts (but I
prefer ~/bin for mine)
"pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de> writes:
> On Thu, May 23, 2019 at 09:31:09PM +0200, Tobias Geerinckx-Rice wrote:
>> pelzflorian (Florian Pelz) wrote:
>> > Adding ~/.local/bin to the PATH is common on other distros.
[...]
> My motivation was that I would have liked a uniform standard to exist
> for offering uniform, simple compilation instructions
I can't understand what ~/.local/bin have to do with *compilation*: do
you mean installation?
...and AFAIU no distribution on earth install packages (or links) in
~/.local/bin
Guix deploys in ~/.guix-profile/bin/ linking from the store... and it's
awesome :-)
[...]
> for how-to-install sections in software project README files.
It's easier to add instructions on how to add ~/.local/bin in $PATH, no?
:-)
anyway software projects that want to help users to install (without
root permissions) in a sane way should define a Guix package, no more
workarounds please
[...]
> Many other distributions are discussed at my stackexchange link from
> before.
not Guix nor Nix, IMHO it's because they choose to depart from the
problematic FSH and derivatives long time ago and for this reason they
are generally ignored when discussing FSH issues
> I did not know about ~/bin being conventional, but others mention it
> too. I do not like ~/bin for the reasons you stated:
do you mean you don't like it because it's not hidden? :-)
I don't like ~/.local/bin because it's ".local":
«Care should be taken when placing architecture-dependent binaries in
this place, which might be problematic if the home directory is shared
between multiple hosts with different architectures.»
(from [1])
[...]
last but not least, probably systemd file-hieracy [1] is one of the
*problematic* things of systemd ecosystem we should avoid
...I even ignored the existance of systemd file-hieracy: an init system
defining a filesystem hieracy standard: mumble...
Happy hacking! Gio'.
[1] https://www.freedesktop.org/software/systemd/man/file-hierarchy.html
--
Giovanni Biscuolo
Xelera IT Infrastructures
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Fri, 24 May 2019 10:35:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 35864 <at> debbugs.gnu.org (full text, mbox):
On Fri, May 24, 2019 at 08:49:30AM +0200, Giovanni Biscuolo wrote:
> the "semantic" reason not to include ~/.local/bin in default path is to
> clearly state "use Guix" (even on foreign distros) to allow users to
> install packages and avoid the ~/<something>/bin _broken_ workaround
>
> IMHO at most ~/.local/bin is useful for user written scripts (but I
> prefer ~/bin for mine)
>
> […]
> ...and AFAIU no distribution on earth install packages (or links) in
> ~/.local/bin
> […]
> anyway software projects that want to help users to install (without
> root permissions) in a sane way should define a Guix package, no more
> workarounds please
~/.local/bin is useful for projects at the inception / hacky stage too
or for developers or when they have not been packaged for Guix yet,
but yes, also for user-written scripts.
> Guix deploys in ~/.guix-profile/bin/ linking from the store... and it's
> awesome :-)
>
> [...]
>
> > for how-to-install sections in software project README files.
>
> It's easier to add instructions on how to add ~/.local/bin in $PATH, no?
> :-)
>
Only because not all distros respect ~/.local/bin. I would prefer
ignoring distros that do not respect ~/.local/bin when writing READMEs
rather than complicating READMEs.
> > I did not know about ~/bin being conventional, but others mention it
> > too. I do not like ~/bin for the reasons you stated:
>
> do you mean you don't like it because it's not hidden? :-)
>
> I don't like ~/.local/bin because it's ".local":
>
Yes; it mixes with the user’s documents.
> «Care should be taken when placing architecture-dependent binaries in
> this place, which might be problematic if the home directory is shared
> between multiple hosts with different architectures.»
> (from [1])
>
This is seldom relevant.
> [...]
>
> last but not least, probably systemd file-hieracy [1] is one of the
> *problematic* things of systemd ecosystem we should avoid
>
This is not a fair argument against ~/.local/bin in PATH.
Regards,
Florian
Information forwarded
to
bug-guix <at> gnu.org
:
bug#35864
; Package
guix
.
(Fri, 24 May 2019 10:37:01 GMT)
Full text and
rfc822 format available.
Message #47 received at 35864 <at> debbugs.gnu.org (full text, mbox):
On Fri, May 24, 2019 at 08:17:10AM +0200, Ricardo Wurmus wrote:
>
> pelzflorian (Florian Pelz) <pelzflorian <at> pelzflorian.de> writes:
>
> > Currently for a simple GTK application of mine, on other distros I run
> > it by
> >
> > dont-hang
> >
> > but on Guix I have to run it with:
> >
> > LD_LIBRARY_PATH=/gnu/store/b9p5rhhci7w1zgvv4j0fm2izk86cgnyd-gtk+-3.24.7/lib:/gnu/store/z7myqdqz5i4ahw57l5hagdkmzwz5g2wv-pango-1.42.4/lib:/gnu/store/5yaa39a8rvq8xdv8h37n29sxfmnlcv12-atk-2.32.0/lib:/gnu/store/4d8rc6vjkhsk1b20rigz0nzl7zffn4b5-cairo-1.16.0/lib:/gnu/store/h7wv1qgpascffzi5xlpagnc0hpiv2523-gdk-pixbuf+svg-2.38.1/lib:/gnu/store/0q9pq9flr76rh4bv2524niknknnl2kvq-glib-2.56.3/lib:$LD_LIBRARY_PATH PATH=$HOME/.local/bin:$PATH dont-hang
> >
> > Adding ~/.local/bin to the path would remove the small part on the
> > right. Patching ninja could probably remove the need for
> > LD_LIBRARY_PATH.
>
> Specifying the RUNPATH during compilation would allow you to get rid of
> LD_LIBRARY_PATH. What build system are you using?
>
Yes. I am using Meson. I would like instructions like mine
<https://pelzflorian.de/git/dont-hang/tree/README> to work because
they work on other distros.
Regards,
Florian
Added tag(s) notabug.
Request was from
Ludovic Courtès <ludo <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Sun, 02 Jun 2019 19:59:02 GMT)
Full text and
rfc822 format available.
bug closed, send any further explanations to
35864 <at> debbugs.gnu.org and "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
Request was from
Ludovic Courtès <ludo <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Sun, 02 Jun 2019 19:59:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 01 Jul 2019 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 5 years and 348 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.