Announcing swim - a new Debian package manager
Download at http://the.netpedia.net/the-download.html
or use apt by entering this line into the sources.list:
deb http://the.netpedia.net/swim unstable main
Please read QUICKSTART.
swim is a command line package manager with powerful features. The
command line syntax, look and feel is borrowed from the RPM package
manager, but swim is a very different beast. The best way to explain this
is to describe how it works.
swim produces binary databases for an installed Debian system using the
status database as well as information found in /var/lib/dpkg/info. These
databases can later be updated by comparing the changes in the status
database to information stored in the binary databases along with backups
made of the *list files found in info/.
swim also produces binary databases for a not-installed Debian system
using the Packages and the Contents databases available at Debian archive
sites. It is this aspect of swim which makes it so unusual.
People who are familiar with RPM know that they can go up to a file and
find out what package it belongs to like this 'rpm -qf filename'. But
with swim you can go up to a file and do this 'swim -qf filename' or this
swim -qfn filename', the '-n' allows you do find out which package this
file would belong to in a future installation! Just as intriguing, swim
will show all packages which exist below a directory, so if you 'cd' over
to "/usr/lib/perl5" and do 'swim -qfn .' you would get a listing of all
the packages that could potentially exist under this directory.
Obviously, not all these packages could actually exist together, but you
can find out all the package relationships by entering 'swim -qfnT .'.
Binary databases mean that this program swims circles around the
traditional dpkg '-S' option. Two major search modes are presently
available, a search of all descriptions which can also be section (group)
specific, or a search of all descriptions and files/directories. The
results of both searches can be narrowed down, as well as provided as an
argument to a query like this - 'swim -qSi'. The speed of the search can
be increased even more with a ramdisk option.
swim can feed the results of a search or query to apt-get to allow a
simulated or actual package installation; there is an option called
'--stdin' which allows the results to be manipulated using a simple shell
with ReadLine capabilities before being submitted to apt. On the other
hand, maybe you just want to download the source package, this can be
accomplished with the '--ftp --source_only' options using information from
the databases created for the not-installed system. Downloaded packages'
MD5 checksum are verified (if applicable) and are placed in directories
mirroring where they came from.
As you can see, swim is as much a research tool, as it is a package
manager, this also makes it a valuable tool for people who do not have
Debian installed. Because it is written in Perl and can use 'ar' instead
of 'dpkg' it is quite portable. Right now, one of the major development
focuses is to implement tools allowing people and organizations to easily
create customized distributions out of the gigantic Debian archives.
I would like to go into greater detail, but then this letter would become
way too long, you can find out more by reading the documentation in the
swim package or at http://the.netpedia.net/the-documentation.html.
Jonathan Rosenbaum <email@example.com>