Useful Features?
Manage your shell environment variables and aliases
Brought to you by:
leomania,
xdelaruelle
From: Ian F. <fl...@cs...> - 1996-10-16 01:14:35
|
Hi folks, I'm new to the Modules system. Until recently, I've been using a similar system developed at Washington University in St. Louis called, for lack of a better name, "the package system". The main concept is the same, both systems allow the user to modify their environment in place. There are some differences in the details and features that I'd like to get other people's oppinions on. For one, the package system uses a special startup file (.pkgrc) to keep track of a user's default packages/modules. The .pkgrc file is merely a list of packages/modules that should be loaded into every shell. This is convenient since it's easy for a user to edit, it's easy to programatically add and delete modules, and it doesn't involve the shell's rc files at all. This is good because it allows us to give all users standard shell rc files *that they can't change*. (We add a callout to a user startup file so that people can customize their environment *after* all the global stuff is set up.) Another difference is that the package system allows a user to force a package/module to add things at the front or at the end of all the paths. This way users have more control over where things appear in their paths. The package system also has short descriptions in its listing of available packages. For example, it might look like: ars Remedey Action Request System cwd current working directory dxlib direct X libraries (use with caution) gnu almost all GNU utilities, including GCC, except Perl local miscellaneous useful utilities netscape Netscape's Navigator (3.0 Release) openwin OpenWindows perl Perl v5.003 spro SUNPro C & C++ compilers tcl TCL -- Tool Command Language user User's ~/bin and ~/man directories usr standard bin and man directories (/bin, /usr/bin, etc.) usr-bsd standard bin and man directories with BSD first usr-local stuff in /usr/local/bin (Note: THIS WILL GO AWAY) usr-sysv standard bin and man directories with SysV first xemacs X-enhanced version of Emacs (better than GNU Emacs) This gives users a good idea of what each package/module is without having to ask explicitly. If the user wants to find out what versions are available, they do something like: flan@famine /home/flan> pkgversion netscape netscape_3.0 netscape_3.0b7 I think it would be nice to have some sort of short listing like the above in the Modules system. As far as the package/module definition files go, the package system uses "locks" to deal with conflicts instead of package/module names. This way a package/module doesn't need to know what resources other packages/modules use, it just needs to declare that it wants to use some resource. For example, a user should not have the packages "usr-bsd" and "usr-sysv" at the same time. In the package system, they both declare that they use the "usr" resource. All of the resources are then documented so that everything works and plays well together. I'd like to know if people would find these features useful. Because of our current situation, it's necessary to implement some of these features before we migrate to the Module system anyway. Thanks for your time, Ian Flanigan |