urpkg — Install programs in a safe and undoable way




Urpkg is a software to install programs so that we can easily uninstall them afterward. It does so by creating a new user for each package that gets installed on the system. The package is then installed with this user's privileges instead of root's. This guarantees a much better security during installation.

Note that this manpage is only a short reference. You should read the user manual (published on urpkg's homepage) if you want to know more about urpkg.

When invoking urpkg, you must always specify exactly one action first. You can then give options and arguments if required.


-h, --help

Print a short description of each option and exit.

-v, --version

Output information about the program's version and exit.

-I, --info

Output some information on the settings urpkg was compiled with and exit.

-i, --install

Install a package by running the command given as argument.

-u, --uninstall

Uninstall the package(s) whose name(s) are given as argument.

-l, --list

Without argument, list all installed packages on the system. Otherwise, list all files part of the package(s) that are given.

-W, --list-instdir

List all the installation directories that are in the path(s) specified as argument. If no path is given, / is assumed.

-L, --list-shared

Same as --list-instdir but for shared directories.

-a, --add-files

Add some files to a package, without changing their owner or group unless the --change-owner and/or --change-group options are given. The package name must be the first argument, then the files should follow

-T, --free-files

Remove some files from a given package i.e urpkg will not remove those files if we remove the package. The files are of course not removed from the filesystem.

-g, --gen

Make the given directories to install directories (i.e place where package can install files).

-w, --ungen

Make the given install directories normal directories again.

-s, --share

Make the given files shared files (i.e files packages can write to)

-S, --unshare

Make the given shared files ordinary file again.

-f, --find

Find which package the given files belong to.

Global Options

Global options can be used with any action

-D, --debug

Print debugging information to stderr. Implies --verbose

-V, --verbose

Print more details on what urpkg is doing to stdout.

-q, --quiet

Only print warnings, errors, and what the user asks for.

Install Options

-p, --pretend

Print what would have been done but do not install the package.

-P, --no-preinst

Don't run the preinstall script.

-G, --no-postinst

Don't run any postinstall scripts

-e, --exclude-script=NAME

Do not run the postinstall script NAME, where NAME is the beginning of the script's name such that it can be recognized unambiguously.


Pass the argument A to the postinstall script NAME.

-H, --pkg-dir=PATH

Use PATH/NAME as the package's home directory, where NAME is the package's name (guessed or given explicitly using --pkg-name).

-n, --pkg-name=NAME

Explicitly specify the package's name. Otherwise, urpkg will try to guess it from the current directory.

-F, --findcmd=SCRIPT

Give a custom script to be used to find files part of a given package.

Uninstall Options

List Options

List-instdir Options

List-instdir Options

Add-files Options

-U, --change-owner

Change the file's owner (set it to the package user). By default, the file's owner is not changed.

-d, --change-group

Change the file's group (set it to the package user). By default, the file's group is not changed.

Free-files Options

-U, --change-owner=USER

Restore the file's owner to USER. By default, the program will set it to root.

-d, --change-group=GROUP

Restore the file's group to GROUP. By default, the program will set it to root.

Ungen and Unshare Options

-d, --change-group=GROUP

See the section called “Free-files Options”

-m, --change-perm=PERM

Change the files access permission to PERM (given in octal form). If not given, urpkg will try to set the permissions to a reasonable default.

See Also



Please report bugs and other inconsistencies you find to the author (address is below). If you have implemented a patch, please do send it there. Any contribution is welcome. See also urpkg's website:


Urpkg is public-domain software. See the COPYING file for more information.


The author is Sebastien Vasey (sebastien dot vasey at gmail dot com)