wiki:EncapManEpkg
Last modified 11 years ago Last modified on 08/11/06 07:03:06

NAME

epkg - Encap package manager  

SYNOPSIS

epkg [options] [-i] pkgspec ...
epkg [options] -r pkgspec ...
epkg [options] -k pkgspec ...
epkg [options] -u [pkgspec ...]
epkg [options] -b
epkg [options] -c  

VERSION

This man page documents version 2.3 of epkg.  

DESCRIPTION

epkg is an Encap package manager. It allows the administrator to flexibly install, remove, and manage software packages which are commonly installed in /usr/local.

epkg supports the Encap 2.1 package format.  

PACKAGE MODES

epkg has the following operating modes:
-b
Batch mode. epkg will select the latest version of each package installed in the Encap source directory, remove all of the older versions, and install the latest version.
-c
Clean target directory. epkg will recursively go through the Encap target directory and remove any dangling symbolic links which point under the Encap source directory. All subdirectories of the target directory are processed, except for the entries in the global exclude list (and, if -E is specified, encap.exclude entries in the target tree).
-k
Check mode. For each pkgspec listed on the commandline, epkg will check to see if the package is installed.
-i
Install mode. epkg will install only the package(s) specified on the commandline. This mode is assumed if none are specified.

If versioning is on (see -S), epkg will scan the source directory for all versions of each pkgspec listed on the commandline. It then selects one version to be installed, removes all the other versions, and installs the selected one. If the pkgspec specifies a version, that version is selected for installation. If no version is specified, the latest available version is selected.

If versioning is off, epkg will install only the exact package name and version which matches each pkgspec on the commandline. No other versions will be removed.

-r
Remove mode. epkg will remove the package(s) listed on the commandline.

If versioning is on (see -S), epkg will remove all versions of each pkgspec which do not specify a version. For the pkgspecs which do specify a version, only that version is removed.

If versioning is off, only the exact package name and version which matches each pkgspec will be removed.

-u
Update mode. This mode will check a set of central distribution directories for new Encap packages and install them on the local system. The central distribution directories are referred to as the "update path".

The update path is specified as a space-delimited list in the ENCAP_UPDATE_PATH environment variable. In directory names, the special token "%p" is replaced by the host platform name.

If one or more pkgspecs are listed on the commandline, the update path is searched for newer versions of the listed packages than those that are already available on the system. If a listed package is not available locally, any version of that package which is found in the update path is installed.

If no pkgspecs are given on the commandline, the update path is searched for newer versions of each of the packages which are already available on the system.

 

OPTIONS

Options which turn on or off features act as toggles. Specifying them twice will return to the default behavior.
-1
Back off from most recent version. In versioning install mode, for each pkgspec which doesn't specify a version, install the next-to-latest version of the package rather than the latest version.
-a
Use absolute symlinks. The default is to use relative links.
-A platform_suffix
Add platform_suffix to the list of acceptable platform suffixes. Packages with any of the listed suffixes are considered acceptable for installation.
-C
Client operation. epkg will execute package scripts, but wont do any linking or removing. This is useful when your Encap source and target directories are NFS-mounted on many client machines from a central server. The linking or removing is taken care of on the server, but it is often desirable to run the package scripts on each client as well.
-d
Tells epkg not to remove empty target directories.
-D
Tells epkg not to honor linkdir directives in the packages it processes.
-E
Check for encap.exclude files in places other than under the package directory. This includes the Encap source directory itself and all directories in the Encap target tree. This option is deprecated, and is provided only for compatibility reasons.
-f
Force conflict resolution. If a file already exists when epkg attempts to create a link, it will be removed so that the link can be created.
-F
Display debugging output for update mode. This is especially useful for FTP connections.
-H host_platform
Use host_platform to identify the platform name of the machine epkg is running on. If this option is not specified, the platform name is generated automatically.
-K
Keep checking all update directories to find the latest matching package. This option is enabled by default. If disabled, epkg will stop looking for updates after the first update directory that contains any version of the requested package.
-l
Disable transaction logging.
-L
Tells epkg not to honor linkname directives in the packages it processes.
-n
Show what operations would have been performed without actually doing anything.
-N
Removes the default entries from the global exclude list.
-o
Removes the default entries from the list of packages to automatically override.

The override list is primarily intended to help people transition from a monolithic /usr/local to using Encap.

-O pkgspec
Add pkgspec to the list of packages whose links will be overriden when a new package is installed. This option can be used multiple times.
-p
Don't perform prerequisite checking.
-P
Link or remove files directly in the package directory. Normally, files in the package directory are not linked or removed. Special package files, such as encapinfo and the package scripts, are not linked or removed even when -P is specified. This option is deprecated, and is provided only for compatibility reasons.
-q
Quiet mode. epkg will not produce any output except for error messages.
-R
Don't run package scripts.
-s source_dir
Tells epkg to use source_dir as the Encap source directory. If the source is not specified but the target is, epkg will assume the relative path from the target to the source is encap/. If neither is specified, epkg will check the contents of the ENCAP_SOURCE environment variable. If that is not set, it will use the default set at compile-time (usually /usr/local/encap).
-S
Specific package only. This tells epkg to disable versioning and operate only on the exact package and version specified.

This option is only meaningful in install and remove modes.

-t target_dir
Tells epkg to use target_dir as the Encap target directory. If the target is not specified but the source is, epkg will assume the relative path from the source to the target is ../. If neither is specified, epkg will check the contents of the ENCAP_TARGET environment variable. If that is not set, it will use the default set at compile-time (usually /usr/local).
-T
Don't automatically retry connections to update directories. The default is to retry connections.
-U update_dir
Prepends update_dir to the update path (which is specified by the ENCAP_UPDATE_PATH environment variable).
-v
Increase verbosity. This option can be specified multiple times.
-V
Print epkg's version and compile-time defaults.
-x
Do not check for excluded files within packages. This does not affect the global exclude list (see -X) or encap.exclude files in other places (see -E).
-X exclude_path
Add exclude_path to the global exclude list.

If the Encap source directory lies under the Encap target directory, the relative path from target to source is automaticly added to the list.

 

TRANSACTION LOGGING

By default, epkg will log an entry to the file epkg.log in the Encap source directory for each transaction indicating the date, target directory, package, install or remove as appropriate, and the status. The status is success if completely successful, failed if there was a fatal error, forced if invoked in force mode (see above), or partial if the operation was partially successful (for example, most of the links were created, but some could not be created because of a link by the same name into a previously-installed package).  

EXAMPLES

To install only package mutt-0.93.2i:

        epkg -Si mutt-0.93.2i

To upgrade to the latest version of mutt:

        epkg mutt

 

BUGS

Probably quite a few. Reports are welcome.  

ENVIRONMENT VARIABLES

ENCAP_SOURCE
ENCAP_TARGET
ENCAP_PKGNAME
ENCAP_MODE
ENCAP_UPDATE_PATH  

FILES

/usr/local/encap/pkgname/encapinfo
/usr/local/encap/pkgname/preinstall
/usr/local/encap/pkgname/postinstall
/usr/local/encap/pkgname/preremove
/usr/local/encap/pkgname/postremove  

SEE ALSO

mkencap(1)
The epkg Homepage (http://www.encap.org/epkg/)
The Encap Archive (http://www.encap.org/)  

AUTHOR

Mark D. Roth <roth@feep.net>