The correct way to do this in Fedora and in the FHS is to :
1. install libraries (and binaries? see 3.) in /usr/lib(64)
Large software packages must not use a direct subdirectory under
the /usr hierarchy.
2. provide prefixed :
— binaries or
— symlinks to binaries in /usr/lib(64)/foo (see 3.)
… in /usr/bin so binaries that are intended to be executed directly by users
or shell scripts are exposed properly
/usr/lib includes object files, libraries, and internal
binaries
that are not intended to be executed directly by users or shell
scripts.
3. eventually use alternatives to switch between prefixed implementations (as
do java for example, not that I recommand this particular can of worms it's a
packager PITA) ; this requires cooperation between all the alternative
implementation packages
If there is no wish to switch the whole system implementation then your
binaries are not “ intended to be executed directly by users or shell script ”
and the few scripts that specifically require them can set a path pointing to
/usr/lib(64)/foo
So there is no need to panic, everything is provided for in the FHS, and no
need to ask for an exception against “Large software packages must not use a
direct subdirectory under the /usr hierarchy.”
--
Nicolas Mailhot