Cupt
What is it?
Cupt is a partial re-implementation of APT suite from scratch.
FAQ
Why?
- to finally avoid some bugs in APT design;
- to introduce some useful features;
- to make an extensible and readable codebase;
The first announcement is here. Also, on debian-devel-announce.
What infrastructure does Cupt use?
It uses the same APT infrastructure, e.g. index files, deb cache archive files, configuration files. It understands some of widely used APT options.
What features Cupt has?
- full-case strict dependency problem resolver;
- command-line and APT-like option name checker;
- case-sensitive search;
- pinning by source package name;
- pinning by package groups using shell-like patterns;
- configurable 'depends' and 'rdepends' subcommands;
- support of LZMA-compressed indexes;
- 'satisfy' subcommand;
- synchronization by source versions;
- 'shell' subcommand;
- debdelta integration;
- and more.
What important features Cupt doesn't have?
- handling of cdrom:// URIs (noone with CDROM available has written the code);
- proposed multiarch handling (there is no official documentation yet (30.08.2012)).
Can I use Cupt along with libapt-based package managers?
Yes, you can mix apt-get/apt-cache/aptitude/etc. with cupt without bad consequences.
How to feedback?
- file bugs against the package 'cupt' in Debian
- write to the mailing list cupt-user[]lists.alioth.debian.org
- join #cupt on irc.debian.org
Why Cupt can't parse the configuration file /etc/apt/apt.conf.d/00CDMountPoint?
If you see the error like
E: syntax error: line 4, character 1: expected: semicolon (';') E: unable to parse the config file '//etc/apt/apt.conf.d/00CDMountPoint' W: skipped the configuration file '//etc/apt/apt.conf.d/00CDMountPoint'
then you have a buggy configuration file which doesn't follow the syntax rules from apt.conf(5). It misses the ';'. Here's how this file should be corrected:
Acquire::cdrom { mount "/media/cdrom"; }; Dir::Media::MountPath "/media/cdrom";
Notice the semicolon in the end of the third line.
Why 'cupt update' fails with 'no download handlers available'?
If you have http/ftp mirrors in your sources.list(5) and see the error like
Fail:1 no download handlers available
from cupt update command, you have to install one of the packages libcupt2-0-downloadmethod-curl or libcupt2-0-downloadmethod-wget. One of these packages should have been installed by default unless you switched off installing Recommends or modified the configuration in some another way which prevented libcupt download methods from being automatically installed.
For more explanations, see bts#672804.
Development
Repository
Cupt uses Git. URIs: browse, clone: git://github.com/jackyf/cupt.git.
Current/stable branch
The stable branch is 2.x (master in the Git repository). Implemented in C++11, consists of a runtime library, download method plugins and a console front-end to them. Debian Wheezy contains 2.5.x.
The HTML version of the latest tutorial may be found, apart from the binary packages, here.
Old stable branch
The 1.x branch was written in Perl. This is the branch which went to Debian Squeeze.