Place to install library of shell functions

Michael Grünewald michaelgrunewald at yahoo.fr
Tue Apr 5 15:41:51 UTC 2011


Dear FreeBSD users,


today I come to you with what seems to be somehow pedantic question:  
where is the best place to install libraries of shell functions.

I read hier(4) carefully and it seems the correct place for this would 
be somewhere under `/usr/local/share':

                 share/    architecture-independent files


On the base systems, many macros (make templates and groff macros) are 
actually installed under /usr/share.  However, the only library of shell 
functions I am aware of is `/etc/rc.subr', that landed on this funny 
location, probably to be pretty sure that this library is on the same 
filesystem as the scripts under /etc/rc.d.

Several of the ports install shell scripts under `/usr/local/lib' that 
hier(4) devotes to  ``shared and archive ar(1)-type libraries''.  These 
shell scripts are:

 > find /usr/local/lib -name '*.sh'
/usr/local/lib/tk8.5/tkConfig.sh
/usr/local/lib/seamonkey/run-mozilla.sh
/usr/local/lib/libxul/run-mozilla.sh
/usr/local/lib/rpm/convertrpmrc.sh
/usr/local/lib/rpm/find-lang.sh
/usr/local/lib/rpm/getpo.sh
/usr/local/lib/rpm/u_pkg.sh
/usr/local/lib/rpm/vpkg-provides.sh
/usr/local/lib/rpm/vpkg-provides2.sh
/usr/local/lib/firefox/run-mozilla.sh
/usr/local/lib/tcl8.5/tclConfig.sh
/usr/local/lib/thunderbird/run-mozilla.sh
/usr/local/lib/llvm-gcc-2.8/gcc/x86_64-portbld-freebsd8.2/4.2.1/install-tools/fixinc.sh

Two files (the `/usr/local/lib/tcl8.5/tclConfig.sh' one and the 
`s/tcl/tk/g' one) are actually shell script libraries (defining a bunch 
of variables), and all the others are ancillary scripts, that would 
maybe better fit in `/usr/local/libexec'.

So, practical experience does not really second my a priori that these 
files sould go under the `share' hierarchy and I would like to have your 
opinion on this question.
-- 
Best Regards,
Michael


More information about the freebsd-questions mailing list