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.