Subject: Re: (Fwd) Re: Packages (Re: xntpd)
To: Hubert Feyrer <Hubert.Feyrer@rz.uni-regensburg.de>
From: Zdenek Salvet <salvet@dior.ics.muni.cz>
List: current-users
Date: 01/05/1996 11:07:09
> or should that be the other way round:
>
> /usr/local/archbin/mac68k/mtools-2.07/mdir
> /usr/local/bin/mdir -> ../../mtools-2.07/bin/mdir
> /usr/local/mtools-2.07 -> archbin/mac68k/mtools-2.07
>
> while i'm here i may as well say that i'd prefer package dirs to be put
> somewhere other than in the top of /usr/local/ - i like the sound of
> /usr/local/package/.
This is close to my setup (I'm managing 5 archs: NETBSD_386,SOL2_SPARC,
IRIX5,BSDI_386,LINUX_386).
I use /whatever/packages/{NETBSD_386,...}/pkgname-version/{bin,lib,...}
for machine/system dependent parts and
/whatever/packages/share/pkgname-vers/{man,doc,info,defaults,app-defaults,...}
for machine/system independent parts as repository.
Then I mount or symlink the relevant part of repository on
/packages/run (MD) and /packages/share (MI).
E.g. server:/export/packages/NETBSD_386 on /packages/run
server:/export/packages/share on /packages/share
I compile so that all hardcoded paths are /packages/{run,share}/pkgname-vers/* .
I solved the PATH,MANPATH problem by having symlinks in special package "links"
(e.g. /packages/run/links/bin/lynx -> /packages/run/lynx-2.4.2/bin/lynx).
For things that I don't want in default PATH I use "modules" package
from ftp.eng.auburn.edu.
A little info about modules follows, skip lines starting with *, if you
don't want to read it:
* Usage: module sub-command [args]
*
* Available Commands and Usage:
*
* + add|load modulefile [modulefile ...]
* + rm|unload modulefile [modulefile ...]
* + switch modulefile1 modulefile2
* + display modulefile [modulefile ...]
* + avail path [path]
* + use dir [dir ...]
* + use -append dir [dir ...]
* + unuse dir [dir ...]
* + update
* + purge
* + list
* + clear
* + help modulefile [modulefile ...]
*
* SYNOPSIS
* module [ sub-command ] [ sub-command-args ]
*
* DESCRIPTION
* module is a user interface to the Modules package. The
* Modules package provides for the dynamic modification of a
* user's environment via modulefiles.
*
* Each modulefile contains the information needed to configure
* the shell for an application. Once the Modules package is
* initialized, the environment can be modified on a per-module
* basis using the module command which interprets modulefiles.
* Typically modulefiles instruct the module command to alter
* or set shell environment variables such as PATH, MANPATH,
* etc. modulefiles may be shared by many users on a system
* and users may have their own collection to supplement or
* replace the shared modulefiles.
*
* The modulefiles are added to and removed from the current
* environment by the user. The environment changes contained
* in a modulefile can be summarized through the module command
* as well. If no arguments are given, a summary of the module
* usage and sub-commands are shown.
*
* The action for the module command to take is described by
* the sub-command and its associated arguments.
*
* Example of my module:
* $ module disp graphics
* -------------------------------------------------------------------
* /packages/run/modules-2.0/modulefiles/graphics:
*
* Append /packages/run/xv-3.00a/bin to PATH
* Append /packages/share/xv-3.00a/man to MANPATH
* Append /packages/run/xpm-3.2g/bin to PATH
* Append /packages/share/xpm-3.2g/man to MANPATH
* Append /packages/share/xpm-3.2g/app-defaults/%N to XUSERFILESEARCHPATH
* Append /packages/run/xpaint-2.1.1/bin to PATH
* Append /packages/share/xpaint-2.1.1/man to MANPATH
* Append /packages/run/IMagick-3.6/lib to LD_LIBRARY_PATH
I can also use /packages/{run,share} as automount points and
compose package collection from multiple repositories.
This is part of my amd map for /packages :
share type:=auto;fs:=${map};pref:=${key}/
share/gnuplot-3.5 rhost:=other;rfs:=/export/packages/share;sublink:=${/key}
share/* type:=linkx;fs:=/export/packages/share;sublink:=${/key} \
rhost:=server;rfs:=/export/packages/share;sublink:=${/key}
run type:=auto;fs:=${map};pref:=${key}/
run/* type:=linkx;fs:=/export/packages/NETBSD_386;sublink:=${/key} \
rhost:=server;rfs:=/export/packages/NETBSD_386;\
sublink:=${/key}
With this setup I get MI parts of gnuplot from host "other" and everything
else from server unless it is installed locally
(in /export/packages/NETBSD_386).
Zdenek Salvet salvet@ics.muni.cz
----------------------------------------------------------------------------
If God had meant for us to be in the Army,
we would have been born with green, baggy skin.