You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gh is installed into /usr/local/bin/gh when installed via RPM. It should be in /usr/bin/ instead. Among other things, this ensures that the command is in the normal $PATH.
Package-installed software should not be installed into /usr/local/ as that's for local admin use (more specifically, locally compiled and installed items). Packages should install in regular system directories.
Package-installed software should not be installed into /usr/local/ as that's for local admin use (more specifically, locally compiled and installed items). Packages should install in regular system directories.
"The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated."
and
"Software placed in / or /usr may be overwritten by system upgrades (though we recommend that distributions do not overwrite data in /etc under these circumstances). For this reason, local software must not be placed outside of /usr/local without good reason."
Does a "normal $PATH" exist that does not include /usr/local/bin? I don't recall ever having to manually add it.
Can this issue be reopened @mislav ? I suspect github influences the choices of other developers.
Update: Oh I just realized that you were advocating for the reverse: that our RPM installs into /usr/local. Is that common practice for RPMs?
The references I included above explain that local software should not be deployed outside of /usr/local without good reason (because distro may overwrite).
I checked the Makefile for a couple of projects (openssh, vim) and they default to deploying to /usr/local/bin.
vim
# src/Makefile
# 5. "make install" {{{1
# If the new Vim seems to be working OK you can install it and the
# documentation in the appropriate location. The default is
# "/usr/local". Change "prefix" below to change the location.
@mbailey Thanks for elaborating. Makefiles of software you compile locally are one thing and I agree that they have /usr/local as default target, but we are talking about RPMs that you pull from remote package repositories. I'm not sure if that software is also considered "local" and, since it's managed by the system package manager, it makes sense to me that it's installed in /usr and not /usr/local. Note that I'm not a Linux expert of any kind.
Makefiles of software you compile locally are one thing and I agree that they have /usr/local as default target, but we are talking about RPMs that you pull from remote package repositories.
That's a good distinction to make.
I suspect the right answer is /usr/local for installs that aren't from the linux distribution but it would be good to know:
whether the Linux FHS has anything that would answer this question
what convention is being followed by other packages being hosted by 3rd parties
Activity
mbailey commentedon Jun 17, 2022
I believe this is incorrect.
The Linux FHS spec 3.0 states:
"The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated."
and
"Software placed in / or /usr may be overwritten by system upgrades (though we recommend that distributions do not overwrite data in /etc under these circumstances). For this reason, local software must not be placed outside of /usr/local without good reason."
Does a "normal $PATH" exist that does not include
/usr/local/bin? I don't recall ever having to manually add it.Can this issue be reopened @mislav ? I suspect github influences the choices of other developers.
mislav commentedon Jun 20, 2022
@mbailey Our RPM installs nothing to
/usr/local:Update: Oh I just realized that you were advocating for the reverse: that our RPM installs into
/usr/local. Is that common practice for RPMs?mbailey commentedon Jun 20, 2022
The references I included above explain that local software should not be deployed outside of /usr/local without good reason (because distro may overwrite).
I checked the Makefile for a couple of projects (openssh, vim) and they default to deploying to
/usr/local/bin.I originally read about the purpose of /usr/local in a blog post by Dan Benjamin from 2007.
mislav commentedon Jun 20, 2022
@mbailey Thanks for elaborating. Makefiles of software you compile locally are one thing and I agree that they have
/usr/localas default target, but we are talking about RPMs that you pull from remote package repositories. I'm not sure if that software is also considered "local" and, since it's managed by the system package manager, it makes sense to me that it's installed in/usrand not/usr/local. Note that I'm not a Linux expert of any kind.mbailey commentedon Jun 20, 2022
That's a good distinction to make.
I suspect the right answer is /usr/local for installs that aren't from the linux distribution but it would be good to know:
I'll dig further
docs(multiagent): Update A2AServer docstrings (cli#377)