/usr/share vs /usr/libexec

Miloslav Trmač mitr at redhat.com
Wed Apr 22 14:28:12 UTC 2015


> On Wed, Apr 22, 2015 at 8:06 AM, Miloslav Trmač <mitr at redhat.com> wrote:
> > Hello,
> >> I confess I've only seen /usr/libexec used for add-on utilities, but
> >> now I'm curious.
> >>
> >> Does it make more sense for these sort of scripts to live in
> >> /usr/libexec, or in /usr/share?
> >
> > /usr/libexec.  From (info standards):
> >
> >> `libexecdir'
> >>     The directory for installing executable programs to be run by other
> >>     programs rather than by users.
> >
> 
> The thing that threw me is that I poked around in /usr/share and found this:
> 
> $ cat /bin/createrepo
> #!/bin/sh
> exec /usr/share/createrepo/genpkgmetadata.py "$@"
> 
> Given what you're saying, would this be considered a bug in createrepo?

Then we get into philosophical discussions about what is “the program” and what is “data used by the program”…  In this case, the /usr/share/createrepo/* paths are not a documented stable API (but /usr/bin/createrepo is), and Python programs consisting of multiple files are easier to run and develop if all the files are in the same directory, so this seems a reasonable way to do things.
    Mirek


More information about the devel mailing list