Linux standards
Andy Davidoff
andy+blu at utter.net
Fri Jun 21 13:24:46 EDT 2002
#if David Kramer /* Jun 20, 22:07 */
> But thinking about this a little more, an even harder problem to
> solve is library dependencies. Different distributions ship with
> different kernels, glibc, and other support libraries. Which do you
> compile against?
At Tufts we compile against libraries supplied by the OS vendor /only/.
We use software to analyze dependencies between libraries so that we
never introduce new linkages and the scope of any legacy linkages may
be easily determined. The tool is 'sowhat' and you can find it on
SourceForge. We presented a paper on it last year at LISA.
> That's why it would take a brand new package manager, advertised
> from day one as cross-platform/cross-distro, Less politics.
#endif /* david at thekramers.net */
We use another custom tool for installations. Slink, from LISA '96 or
thereabouts (too many papers). The package system I use is to install
tarballs with the --prefix
/repository/<application>/<version>/<architecture>
which results in directories like
/repository/xemacs/21.5.6/sunos-5.7/bin
/repository/xemacs/21.5.6/sunos-5.7/man
/repository/xemacs/21.5.6/sunos-5.7/lib
Then we use Slink to create symbolic links in another tree, say /local.
Thus, xemacs appears in /local/bin and xemacs.1 appears in /local/man/man1.
If I want to remove xemacs, I just unlink it from /local. If I want to
upgrade it, I unlink it and link in a new version. Downgrade in reverse.
If I decide version 21.5.6 is cruft because we're using 23.4.1, I can just
`rm -rf /repository/xemacs/21.5.6/sunos-5.7`. There's my `make uninstall`.
We keep architectures alongside each other so that we can easily identify
and maintain common versions across hosts on the network, and everything
is shared via NFS so upgrades on one host of a given architecture are
upgrades for all hosts of that architecture. As long as symbolic links
are supported on your OS, this solution is portable to other platforms.
There are other programs (GNU stow, epkg) which help manage link trees.
I honestly wish I could use another package (because I could benefit
from outside development) but frankly, stow/epkg aren't flexible enough
to meet our needs.
--
Andy Davidoff
Sen. Unix SysAdmin
Tufts University
More information about the Discuss
mailing list