====== Packages ======
===== Tazpkg - Package manager =====
SliTaz provides a tiny package manager which can easily install more software on the system. Tazpkg is a lightweight package manager for .tazpkg files. Completely written in SHell script, it works well with Busybox ash shell and bash. Tazpkg lets you list, install, remove, download, extract, pack, search, or get information about available or installed packages. You can also repack an installed package and automatically upgrade all installed packages.
With
$ tazpkg usage
you get a list of all the commands with a short description in English.
=== List of packages ===
Tazpkg lets you list all installed packages, installed packages by category or it can display the list of all packages available in the repository.
To display a single list of all installed packages on the system:
$ tazpkg list
To display all categories or packages sorted by category, you must specify ''cat'' or ''category''.
Examples:
$ tazpkg list cat
$ tazpkg list base-system
Tazpkg can also generate a xHTML list (default: installed-packages.html) in the local directory of all installed packages on the system:
$ tazpkg xhtml-list
This function was removed 2015-05-24. **tazpanel** can be used for a GUI to **tazpkg**.
To get a single list of all packages available in the repository you can use the command ''list-mirror''.
You can then examine the list in your favorite editor or use the Web site interface.
=== Install packages ===
To install some new applications such as The Gimp, AbiWord, ePDFView, Perl or Python, you first need to recharge
the list of packages available in the repository and then install a package.
If the package dependencies are not installed, tazpkg will install them for you.
For example, the installation of Gparted (a GTK+ partition editor using GNU parted):
# tazpkg recharge
# tazpkg get-install gparted
== The 'get' Packages ==
There are a few packages that are prefixed with ''get-''. These are not packages per-se but contain only a script.
This script provides software by:
* downloading the software
* creating a package in tazpkg format from it
* installing the generated SliTaz package
This means that the actual software is not contained within the ''get'' package, but is repacked by it.
To manage this style of software:
* install the latest version using the ''get'' script in the ''get'' package;
* remove it by using tazpkg on the **generated** package.
Please note that after downloading the **get-package**, you need to run the script that has the same name:
# tazpkg get-install get-OpenOffice
# get-OpenOffice
Some of these get scripts support command line parameters that can be displayed, for example
# get-OpenOffice --help
=== Update installed packages ===
To keep your system up-to-date and secure after recharging the packages list, you can automatically install
all new versions and security updates from the repository with the command:
# tazpkg up
=== Tazpkg Manual ===
The Tazpkg [[http://hg.slitaz.org/tazpkg/raw-file/tip/doc/tazpkg.en.html|Manual]] contains a lot more useful information.
===== Cookutils and the wok =====
All SliTaz packages are built with a tool named Cookutils and a recipe (in a file named ''receipt'') found in the wok.
The recipe provides all the necessary information to build a suitable package for Tazpkg including variables to give
the package name, source tarball format, download URL, etc.
Given a recipe, the ''compile_rules'' function has all of the necessary commands to configure, make, and install the package
in a specific directory.
After compilation, Cookutils will execute the function ''genpkg_rules'' to pick up only the needed or wanted files and generate
a cpio archive //packagename//.tazpkg.
On SliTaz you will find receipt files of all installed packages in the directory ''/var/lib/tazpkg/installed''.
Feel free to examine them or even use one as an example.
Cookutils will search by default for a wok in ''/home/slitaz/wok'' and put generated packages in ''/home/slitaz/packages''.
These paths are set by a Cookutils configuration file which can be located in ''/etc/slitaz/cook.conf'' or in the current directory,
which is useful if you want to work with multiple woks.
Now, if the Cookutils are setup by
# cook setup
and the slitaz-toolchain is installed, you can start to create and build a package which doesn't need many dependencies.
Small example for a package named pkgname:
# cook new pkgname --interactive
When a new package tree and receipt file has been created in the wok, you can edit the receipt file with your favorite editor
(Geany provides nicely colored code), modify the rules, functions, add dependencies to the DEPENDS variable if needed and try a first cook:
# cook pkgname
Note that you can now browse the generated files, modify the cooking receipt file again or just rebuild the package.
When you are happy with your work you can install the package with ''tazpkg install'' and then test the application or library.