REQUIRMENTS:

Don't get intimidated, this is just to cover all bases, most computer systems meet the requirements.

PERL: Yes, preferably Perl 5.004.04 or greater.

FTP CAPABILITIES (optional): You may need to get Net::FTP (Debian libnet-perl package) which depends on Data::Dumper (Debian data-dumper package). You also need gcc if you do not have a Debian system so that swim can figure out what architecture your machine is. You can also find these modules at the CPAN mirrors or the PACKAGES below.

READLINE CAPABILITIES (optional): For nice readline cpabilities get Term::ReadLine::Gnu or alternatively Term::ReadLine::Perl which depends on Term::ReadKey . Term::ReadLine::Gnu may be tricky to set-up on non Debian systems because it depends on ncurses3.4 and the GNU Readline Library version 2.1 or later, but Term::ReadLine::Perl is much easier to set-up and allows a huge amount of package names to be present on the command line without a segmentation fault. You could get swim's ftp capabilities working first, and then just fetch the Debian ReadLine package(s) and then use swim's --extract option to set the package(s) up, but, it is sure fun doing a 'make test' when setting up the ReadLine modules! You can also find these modules at the CPAN mirrors or the PACKAGES below.

DATABASE CAPABILITIES: DB_File comes standard with Perl. But, this doesn't mean it is compiled for the newer Berkeley Database Libraries. DB 1.85 has known bugs which effect SWIM. SWIM can work with 1.85, but --rebuildflatdb and --rebuildflatndb will not work properly. You can run a test to find out whether or not you need to make the change if you have db_dump available on your system (which db_dump). Enter this:

perl -e 'use DB_File; tie %testdb,'DB_File',"testdb";';
db_dump testdb

If 'db_dump testdb' produces an error you need to make the change by installing the newest DB_File. If you have a version of libc6 less than 2.1, first, install a new version ( 2.3.4 or greater) of the Berkeley DB if you don't already have it installed. If you get DB_File from CPAN you will need to edit config.in to point to the location of where libdb2 installed db.h, where libdb2 is installed on your system, and the name of the library. For Debian this would be:

INCLUDE = /usr/include/db2
LIB = /usr/lib
DBNAME = -ldb2

PACKAGES: You can get the CPAN modules in some package formats. Debian 2.1 and Red Hat 5.0 have been tested with these packages:

Debian
libnet-perl and
data-dumper and
libterm-readline-gnu-perl (plus a lot more) or
libterm-readline-perl-perl and
libterm-readkey-perl
libdb2 (dump_db utility is now part of libc6 2.1)

Red Hat
perl-libnet and
perl-Data-Dumper
db-?

USER: root. Some of swim's most important functions will not work properly unless you are running the program as root.

HARD DRIVE SPACE: Make sure you have enough hard drive space. 1500 installed packages produces a 10MB fileindex.deb, and the virtual not-installed filesystem database for the unstable distribution is now over 40MB. 100MB of free space on your hard drive is probably a good safety margin, if you run out of hard drive space the program will just hang or quit.

MEMORY: Databases made for an installed Debian system require memory in proportion to the amount of packages actually installed; the --lowmem option is an excellent alternative for making the databases if the computer system is either overloaded or low on memory. If you get "out of memory" warnings try to free up some memory first then make the databases. You can also avoid making the virtual filesystem by not using the --Contents option or using the FDB argument for that option. Updating the databases uses very little memory.

OTHER SWIM FUNCTIONS: Most free operating systems have these packages installed: On a non Debian system, ar from binutils is used to query Debian binary packages. These next packages are essential in a free operating system (Linux) - textutils, fileutils, grep, tar, gzip, and mount.