Lots of things have changed since cpt
was forked from kiss
in terms of
functionalities and ideals. This section aims to describe the similarities and
differences of both package managers as neutral as possible. Keep in mind that
this is the cpt
documentation, so it may be biased regardless.
While kiss
aims to be a simple single file package manager, cpt
aims to be
an extendable package manager library. kiss
has all of its features
built-in, while cpt
has all of its features separated into small tools.
These tools can be called from the main cpt
tool (in order to keep
kiss
-like usage) or with their names directly (e.g cpt-build
).
Neither kiss
nor cpt
use configuration files. Instead, they are configured
through environment variables. Additionally, all cpt
tools can receive flags
that alter their functionality. kiss
does not accept flags.
In addition to git repositories, cpt
also supports Rsync, Fossil, and
Mercurial repositories.
In addition to git repositories for sources, cpt
also supports Mercurial and
Fossil repositories.
kiss
and cpt
interact with ‘post-install’ messages differently. kiss
does not differentiate between post-installation scripts and post-installation
messages, and will save the output of all scripts named ‘post-install’ to be
printed after the installation of all packages are complete. cpt
on the
other hand, separates these with the ‘message’ file. cpt
runs ‘post-install’
without saving the output to be printed a second time. It instead prints all
‘message’ files after the installation is over.
kiss
aims to be as portable as possible. cpt
aims to be portable, but
favours performance. cpt
depends on rsync
for package installation, while
kiss
has removed the dependency in favour of portability.