Isis Package Manager
The Isis Package Manager (ipm) is a tool to help users and system administrators customize their environments in order to gain access to binaries installed in AFS package space. To use binaries installed in AFS space, the user's environment needs to be altered, most commonly by prepending or appending the the PATH and MANPATH environment varibles. Some binaries need other special environment alterations made. Rather than place the responsibility making environment alterations on the user, ATN has written ipm to abstract this level of detail away from the users.
So how does ipm work? ipm makes alterations to a file that caches the shell code that sets up a user's environment in order to gain access to the binaries held in a package. There exists a cache file for each family of shells, one for the bourne shell derivitives, and one for the C shell and its derivitives. Then one of these files is sourced from the .kshrc or .cshrc files, depending on which shell the user is running. By default these environment cache files are housed in the $HOME/public directory and are called .pkg.kshrc and .pkg.cshrc. For ipm to function correctly, it is important to not edit these files by hand, instead edit them through the interface that is provided by ipm. If a user wants fine grain control over their environment, it is important that they understand the environment script mechanism that has been tailored for the Isis environment, and make changes accordingly.
ipm is really a suite of commands that lets a user add to, remove from, query, or verify their environment. Accordingly, the subcommands of the ipm command suite are add, remove, query, or verify. Each subcommand has a list of options that let a user have more control over the ipm operation.
The add subcommand of the ipm suite lets a user add a package to their environment. The add subcommand gives the flexibilty of either prepending or appending to the user's PATH and MANPATH varibles. By default ipm will prepend to the PATH and MANPATH varibles, however if the append option is given, it will append to these varibles. On systems such as linux that have other mechanisms for finding man pages besides setting the MANPATH varible, only the PATH varible is altered. When no other options are given to the add subcommand, ipm will only allow a user to add the default packages that ipm contains in an internal database. If a user wants to add a version of the package that is not the default version, a user can specify the nondefault option along with the <pkg-name>-<version> nomenclature of the package. By specifing the prefix option, a user can add a package installed in a directory other than the default /afs/isis/pkg directory. The cache option allows a user to modify the environment stored in cache files stored in a directory other than the default $HOME/public directory. The user allows system administrators to modify the environment of one of their users, the one limitation of this option is that the user specified has to have an entry in the /etc/passwd file. The verbose option enables more detailed reporting of what the add subcommand is doing.
The remove subcommand allows a user to remove a package from their environment. As with the add subcommand, the remove command understands the cache which allows the user to store the modifications made to the environment in cache files located in a directory other than the default directory. The same holds true with the user option, thus system administrators can remove packages from the environments of their users. The verbose option enables more detailed reporting of what the remove subcommand is doing.
The query subcommand allows a user to either query their current environment modifications made by ipm, or query what modifications can be made. By default, the query command only queries based on your current environment, ie what modifications have beed made by whatever ipm environmental cache files have been sourced. As with the add and remove subcommand, the cache and user options tell the query command to look at cache files other than those installed in the default location. The all option will tell the query subcommand to return all available default packages instead of only packages which are currently in the environment. If the nondefault option is used in conjuction with the all option, the list returned will contain all versions of all packages, not just the default versions. It is possible to filter this list of packages with the search option. When this option is specified, ipm will filter the list based on whether the keyword provided to the search option is contained in the description field of the package. If the query subcommand is invoked with no other options than the above, then it will just take the list of packages and print it out. If the list contains a package set, then the query subcommand will expand that to list the subpackages that comprise the package set. If the info option is specified, then the query subcommand will print out a short description of each package in the package list. If the show option is given to query, then it will print out what environment code the package sets for the shell specified by the show option.
The verify subcommand verifies that the cache files are up to date. The cache files are out of date if one of two conditions are true, either the environment code for the package has been updated, or the version of the default code held within the package cache file itself is newer. If the first of these conditions holds true, then the verify subcommand will update the package's section in the cache file with the newer code. If the second of the conditions is meet, then the entire cache file will be regenerated. The cache and user options will tell ipm to verify cache files other than the ones stored in default location. The verbose option will enable more detailed reporting on what is going on while ipm is verifing the environment.
So that's ipm in a nutshell, if you want to submit any questions or comments about ipm, please feel free to do so!
Maintained by: email@example.com
Last Updated: Jun 15, 2000