6 Comparison Between CPT and KISS

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.

Package Manager

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).

Configuration

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.

Package Repositories

In addition to git repositories, cpt also supports Rsync, Fossil, and Mercurial repositories.

Package Sources

In addition to git repositories for sources, cpt also supports Mercurial and Fossil repositories.

Post-Installation Messages

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.

Portability

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.