TazPkg — Tiny autonomous zone package manager
tazpkg [command] [options...]
TazPkg is a lightweight 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.
- usage: print short usage
- help: show help on the TazPkg commands
- activity: show TazPkg activity log
- clean-cache: clean all packages downloaded in cache directory
- shell: run interactive TazPkg shell
Working with lists
- list: list installed packages on the system
- list-mirror: list all available packages on the mirror
- list-config: list the configuration files
- search: search for a package by pattern or name
- search-pkgname: search on mirror for package having a particular file
- search-file: search for file in all installed packages files
Installing and removing packages
- get: download a package into the current directory
- install: install a local package
- get-install: download and install a package from the mirror
- install-list: install all packages from a list of packages
- get-install-list: download and install a list of packages from the mirror
- remove: remove the specified package and all installed files
- reconfigure: replay post install script from package
- link: link a package from another SliTaz installation
- set-release: change release and update packages
- add-flavor: install the flavor list of packages
- install-flavor: install the flavor list of packages and remove other ones
Working with packages
- info: print information about a package
- desc: print description of a package
- list-files: list the files installed with a package
- block, unblock: block an installed package version or unblock it for upgrade
- check: verify consistency of installed packages
- bugs: show known bugs in packages
- depends: display dependencies tree
- rdepends: display reverse dependencies tree
- extract: extract a (*.tazpkg) package into a directory
- pack: pack an unpacked or prepared package tree
- repack: create a package archive from an installed package
- repack-config: create a package archive with configuration files
- recompress: rebuild a package with a better compression ratio
- convert: convert alien package to tazpkg
- list-suggested: print list of suggested packages
Working with repositories
- recharge: recharge your packages database from the mirror
- upgrade: check packages, list and install latest upgrades
- setup-mirror: change the mirror URL configuration
- setup-undigest: update an undigest mirror
- list-undigest: list undigest mirrors
- add-undigest: add an undigest mirror
- remove-undigest: remove an undigest mirror
Show the full list of the TazPkg commands with a brief description.
$ tazpkg usage $ tazpkg
Display help for the selected command (help or -h). You can enter a short name of the command, the full name or a part of the full name. You can ignore hyphens at the beginning of the short name. If the requested part of the full name match the several commands, you will be asked to clarify the request.
$ tazpkg help -gi $ tazpkg -h us
Display TazPkg activity log (activity or log or -a). Optional parameter --nb= lets you set number of displayed lines.
$ tazpkg activity $ tazpkg -a --nb=20
Remove *.tazpkg packages downloaded to the cache (clean-cache or -cc). 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 # tazpkg -cc
Run interactive TazPkg shell. Here you can enter all the TazPkg commands listed above.
$ tazpkg shell # tazpkg shell
Working with lists
List packages installed on the system (list or -l). This command displays a column list of all installed packages. It also allows you to list the categories (c or cat or categories), packages based on category and packages placed on hold (b or blocked). You can also use the search command for a list based on a term or package name.
$ tazpkg list $ tazpkg list cat $ tazpkg list games $ tazpkg list blocked
List packages available on the mirror (list-mirror or -lm).
This command will display the packages list recharged from the mirror. If it
doesn't exist, you will be asked to launch
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 -lm --diff
Lists the system configuration files. The --box option displays in table form. You can specify package name to display configuration files only for this package.
$ tazpkg list-config $ tazpkg list-config --box $ tazpkg list-config slim $ tazpkg list-config --box slim
Search for packages by owner or package name (search or -s). This command will search for the term wanted in the installed packages (-i or --installed) and the list of available packages on the mirror (-l or --list).
To obtain the latest list of installable packages on the mirror, just run
tazpkg recharge before conducting a search.
$ tazpkg search gcc $ tazpkg search mt -i $ tazpkg search bit -l
Search for a file on mirror and output only the packages names (search-pkgname or -sp).
$ tazpkg search-pkgname libnss $ tazpkg -sp /usr/share/fonts
Search for a file among the files installed by the packages (search-file or -sf). This command is very useful to find the full path to a file and determine if a file is present on the system. Option --mirror allows to search for a file among all the files available on the mirror.
$ tazpkg search-file libnss $ tazpkg -sf /usr/share/fonts --mirror
Installing and removing packages
Get a package from the mirror (get or -g). The downloaded
package is stored in the current directory. To find the path you can use
# tazpkg get grub # tazpkg get nano --root=/mnt/sda6
This command allows the installation of a local package with the .tazpkg extension (install or -i). See get-install to install a package from the internet. Note that you can force the installation via the --forced option, specify the root system where you want to install the packages via the --root= option.
# tazpkg install package-1.0.tazpkg # tazpkg -i path/to/package-1.0.tazpkg --forced # tazpkg -i path/to/package-1.0.tazpkg --root=/mnt/rootfs
Get and install a package from a mirror on the internet (get-install or -gi). 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.
Following options are recognized by command:
--forced allow update already installed package.
--root= allow specify root of filesystem where package will be installed.
# tazpkg get-install grub # tazpkg -gi grub --forced # tazpkg -gi nano --root=/mnt/sda6
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
Remove a package (remove or -r). You will be asked for confirmation (y/N) of removing the package, as well as for removing packages depending on this package, and for reinstalling packages modified by this package. This command will delete all files installed with the package.
Option --root= allows to specify root of the FS where package will be removed. Option --auto removes and reinstall packages without your confirmation.
# tazpkg remove bc # tazpkg -r gtk+-3 --root=/mnt/sda6 # tazpkg -r nano --auto
Replays the post-install script from the package.
# tazpkg reconfigure gcc # tazpkg reconfigure gcc --root=/mnt/sda6
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
The set-release command changes the current version and upgrades all of the packages to the latest release.
# tazpkg set-release cooking
Install a set of packages from a flavor. In addition, install-flavor purges other installed packages.
# tazpkg add-flavor gtkonly # tazpkg install-flavor justx
Working with packages
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
Description of the package (if it exists) (desc or -d). 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 all files installed with a package (list-files or -lf). 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.
$ tazpkg list-files bc
block, unblock, chblock
The block (or -b) and unblock (or -u) commands permit you to block installed package versions so that they are not maintained by an upgrade. Command chblock changes blocking state of the package. The list of packages on hold are contained in the /var/lib/tazpkg/blocked-packages.list. This file can also be edited by hand.
# tazpkg block grub # tazpkg unblock grub # tazpkg chblock grub
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 $ tazpkg check --full $ tazpkg check nano $ tazpkg check sakura --full
Generates a list of known bugs in the packages. You can specify a single package to show bugs.
$ tazpkg bugs $ tazpkg bugs my_package
Displays a dependency tree or reverse dependency tree for a package.
# tazpkg depends mpd # tazpkg rdepends mpd
Extract a package into a directory (extract or -e). 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
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).
# tazpkg pack package-version
The repack command allows you to recreate a package from the files on a system where it was previously installed.
$ tazpkg repack package
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.
# tazpkg repack-config
Recompress .tazpkg cpio archive with lzma.
$ tazpkg recompress package.tazpkg
Converts an "alien" package into a SliTaz package (.tazpkg) (convert or -c.
Supported packages formats:
- Debian packages (*.deb, *.udeb)
- RPM packages (*.rpm)
- Slax packages (*.sb)
- Puppy packages (*.sfs, *.pet)
- Slackware packages (*.tgz)
- NuTyX packages (*.cards.tar.xz)
- Arch Linux / Alpine Linux packages (*.apk, *.pkg.tar.gz, *.pkg.tar.xz)
- OpenWrt packages (*.ipk, *.opk)
- 0Linux packages (*.spack)
- paldo packages (*.tar.bz2)
- Void packages (*.xbps)
- Tinycore packages (*.tce, *.tcel, *.tcem, *.tcz)
# tazpkg convert alien-package-file
List suggested packages for each of your installed packages. With option --all it shows all suggested packages, and without option it shows only not installed suggested packages.
$ tazpkg list-suggested $ tazpkg list-suggested --all
Working with repositories
Recharge the list of available packages on the mirror. This command will
download the most recent packages database of installable packages on the mirror
and before starting will save the old database. Once the DB 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.
Command without options will recharge databases of all your repositories. You can specify repository to be recharged: "main" for main repo, or undigest repository name. Option --root= allow you to specify root of filesystem where you want to recharge DB.
# tazpkg recharge # tazpkg recharge main # tazpkg recharge My_Undigest # tazpkg recharge --root=/mnt/sda6
Upgrade allows you to update all installed packages available on the current mirror (upgrade or up). 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 Live CD mode will be lost on system shutdown.
Without options run in interactive mode and ask before install. You can specify one or more of the next options:
-c or --check to check only for available upgrades;
-r or --recharge to force recharge of packages list and check;
-i or --install to check for upgrades and install them all.
# tazpkg upgrade # tazpkg up --recharge --install # tazpkg up -r -i
Setup the URL for the mirror. The setup-mirror (or -sm) command will ask for the URL of the new mirror. Note that you can also modify the main /var/lib/tazpkg/mirror file. The URL must point to the directory containing the packages.info and packages.
# tazpkg setup-mirror
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.info.
# tazpkg add-undigest public-repository http://my.home.org/slitaz # tazpkg setup-undigest local-repository /home/slitaz/packages
Lists additional undigest mirrors. Option --box will output list in the table form.
# tazpkg list-undigest # tazpkg list-undigest --box
Removes the URL of an undigest mirror. You will be asked for confirmation.
# tazpkg remove-undigest my-repository
Christophe Lincoln <pankso at slitaz.org>