# Tazpkg Manual

## NAME

Tazpkg—Tiny autonomous zone package manager

## SYNTAX

     tazpkg [command] [package|dir|pattern|list|cat|--opt] [dir|--opt]

## DESCRIPTION

Tazpkg is an ultralightweight (~ 80KB) package manager to install, list, download, update or remove precompiled packages on a GNU/Linux system. Tazpkg offers commands for searching and creating packages and was created independently for the project. The format of the packages using the *.tazpkg extension is a cpio archive containing a filesystem compressed with gzip, a receipt and an optional description. Tazpkg also manages dependencies based on package receipts. Each receipt contains all the information about a package and can also include pre and post installation functions. The same receipt is used by Cookutils to compile sources and generate a .tazpkg package.

Tazpkg is entirely built from scratch using SHell script, compatible with Bash; it runs under Ash—part of the Busybox project. Tazpkg is distributed under the free GNU license GPL V3.

## COMMANDS

### list

List packages installed on the system. This command displays a column list of all installed packages, It also allows you to list the categories, packages based on category and packages placed on hold. You can also use the `search` command for a list based on a term or package name:

    # tazpkg list
    # tazpkg list cat|categories
    # tazpkg list blocked

### xhtml-list

The `xhtml-list` command can create a XHTML list of all the packages installed on the system which can be read with your preferred Web browser. It can be run as a normal user and creates a page `installed-packages.html` in your current directory. Note that you can change the name of the generated list via the command line:

    # tazpkg xhtml-list
    # tazpkg xhtml-list list-name.html

### list-mirror

List packages available on the mirror. This command will display the `packages.list` file recharged from the mirror. If this doesn't exist, you will be asked to launch `tazpkg recharge` as administrator (root) for a list of available packages . The `--diff` option is used to display the differences between the last and current list of packages:

    # tazpkg list-mirror
    # tazpkg list-mirror --diff

### info

Display any information available in the receipt for the package in question—its version, category, maintainer, Web site and any dependencies (see also Cookutils for more information on receipts):

    # tazpkg info busybox

### desc

Description of the package (if it exists). This command displays the `description.txt` file of each package (a simple text file, justified to 80 characters to fit in a standard terminal):

    # tazpkg desc busybox

### list-config

Lists the system configuration files. The `--box` option displays in table format:

    # tazpkg list-config
    # tazpkg list-config --box

### list-files

List all files installed with a package. This command will simply read and display the `files.list` of each package which is automatically generated when the package is created and is also used to remove files when uninstalling a package. To list the files installed with the package bc:

    # tazpkg list-files bc

### search

Search for packages by owner or package name. This command will search for the term wanted in the installed packages and the list of available packages on the mirror. To obtain the latest list of installable packages on the mirror, just run `tazpkg recharge` before conducting a search:

    # tazpkg search gcc

### search-file

The `search-file` command allows you to search for a file among the files installed by the packages. This command is very useful to find the full path to a file and determine if a file is present on the system. Example:

     $ tazpkg search-file libnss

### install

This command allows the installation of a local package with the `.tazpkg` extension. See `get-install` to install a package from the internet. Note that you can force the installation via the `--forced`, `uninstall` and `reinstall` options or specify the root system where you want to install the packages via the `--root=` option:

    # tazpkg install package-1.0.tazpkg
    # tazpkg install path/to/package-1.0.tazpkg --forced
    # tazpkg install path/to/package-1.0.tazpkg --root=/mnt/rootfs

### install-list or get-install-list

Install a set of packages listed in a file. This command allows you to (download and) install several packages with a single command and can also be forced:

    # tazpkg install-list my-packages.list
    # tazpkg get-install-list my-packages.list --forced

### link

This command allows the installation of a package from another media device. The set up is done through symbolic links and consumes very little memory. It is generally used within the system RAM to install add-ons from an USB key:

    # tazpkg link openoffice /media/usbdisk

### remove

Remove a package. You will be asked for confirmation (y/N). This command will delete all files installed with the package. To view the list of files, use the `list-files` command followed by the name of the package. Example with the package bc:

    # tazpkg remove bc

### extract

Extract a package into a directory. If you do not specify the destination directory, the package will be extracted in the current directory using the name `package-version`:

    # tazpkg extract package.tazpkg
    # tazpkg extract package.tazpkg target/dir

### pack

The `pack` command will create a package from a directory prepared in advance or from an unpacked package. It can also manually create a .tazpkg package (see the Cookutils documentation for the automatic creation of packages). To pack a package:

    # tazpkg pack package-version

### repack

The `repack` command allows you to recreate a package from the files on a system where it was previously installed. To repack a package:

    # tazpkg repack package

### repack-config

The `repack-config` command recreates a package of the system configuration files (see `list-config`). It is enough to install the package to find the current configuration. To repack the configuration files:

    # tazpkg repack-config

### recharge

Recharge the list of available packages on the mirror. This command will download the most recent `packages.list` of installable packages on the mirror and before starting will save the old list. Once the list is updated, you can then use the `list` and `search` commands. To view and list the differences, you can use `list-mirror --diff`; and to view and update packages, you can simply `upgrade`. To recharge the latest list of packages:

    # tazpkg recharge

### up or upgrade

Upgrade allows you to update all installed packages available on the current mirror. Upgrading packages is an important part of system security, it helps to keep you secure with the latest updates and fixes. The SliTaz project, although tiny, provides regular updates on security and generally offers the latest versions of software. Note that this function is aimed at people with SliTaz installed on a hard drive. Updated packages in LiveCD mode will be lost on system shutdown. To upgrade or display the full `up` options:

    # tazpkg up
    # tazpkg --help-up
    # tazpkg up --recharge --install
    # tazpkg up -r -i

### check

The `check` command can check dependencies on installed packages and determine whether all the files needed for the repacking of packages are present:

    # tazpkg check package

### block or unblock

The `block` and `unblock` commands permit you to block installed package versions so that they are not maintained by an `upgrade`. The list of packages on hold are contained in the `/var/lib/tazpkg/blocked-packages.list`. This file can also be edited by hand. To block or unblock a package such as Grub:

    # tazpkg block grub
    # tazpkg unblock grub

### get

Get a package from the mirror (if it exists). The downloaded package is stored in the current directory. To find the path you can use `pwd`. To get the Grub package:

    # tazpkg get grub

### get-install

Get and install a package from a mirror on the internet. The `get-install` command begins by checking whether the package exists on the mirror and if it has been already downloaded. For a list of packages on the mirror, we must use the `list-mirror` command. To install the package Grub:

    # tazpkg get-install grub

### clean-cache

Remove *.tazpkg packages downloaded to the cache. During installation, Tazpkg keeps a copy of packages downloaded from the web. This is done to save bandwidth in case of reinstallation, but you may want to free up space on the hard drive or re-download the packages:

    # tazpkg clean-cache

### setup-mirror

Setup the URL for the mirror. The `setup-mirror` command will ask for the URL of the new mirror. You can specify multiple URLs separated by spaces. Note that you can also modify the main `/var/lib/tazpkg/mirror` file. The URL must point to the directory containing the `packages.list` and packages:

    # tazpkg setup-mirror

### reconfigure

Replays the post-install script from the package. Example using gcc:

    # tazpkg reconfigure gcc

### depends or rdepends

Displays a dependency tree or reverse dependency tree for a package. Examples using mpd:

    # tazpkg depends mpd
    # tazpkg rdepends mpd

### add-undigest or setup-undigest

Set the URL of an additional unofficial mirror to test packages that are not yet present on the official mirrors. Note, you can also manually edit the file in `/var/lib/tazpkg/undigest/repository`. The URL must point to the directory containing the packages and `packages.list`:

    # tazpkg add-undigest public-repository http://my.home.org/slitaz
    # tazpkg setup-undigest local-repository /home/slitaz/packages

### remove-undigest

Removes the URL of an undigest mirror:

    # tazpkg remove-undigest my-repository

### list-undigest

Lists additional undigest mirrors:

    # tazpkg list-undigest

### convert

Converts a Debian package (.deb), Redhat (.rpm), Slackware (.tgz) or Archlinux (.pkg.tar.gz) package into a SliTaz package (.tazpkg):

    # tazpkg convert alien-package

### set-release

The `set-release` command changes the current version and upgrades all of the packages to the latest release:

    # tazpkg set-release cooking

### bugs

Generates a list of known bugs in the packages:

    # tazpkg bugs

## MAINTAINER

Christophe Lincoln <pankso at slitaz.org>