2.1 Dependencies

Before installing Scoop itself, you should make sure that all the dependencies are properly installed first. The programs below should be installed in roughly the order presented, but there are only a few critical notes on installation order.

2.1.1 Required Programs

Perl, or Practical Extraction and Report Language, is the underlying language Scoop is written in. Scoop requires at least perl 5.005_03 in order to run (note that the versioning system used for Perl changed between 5.005 and 5.6) but will work fine with later versions. Perl is available from and is available in both source and binary distributions. A standard Perl install is your best bet, so follow the instructions included with the distribution. If you're installing Scoop on any OS other than Windows or Solaris, you probably already have a suitable Perl installed. See the system-specific notes for details.

Expat is an XML parser. Strictly speaking, Scoop doesn't need it to run, but if you want to add RDF functionality later and you didn't put this in from the beginning, you'll basically have to recompile everything. So install it. Expat can be downloaded from and a default install is all that is needed. Follow the instructions that come with the distribution. When compiling Apache, you may need to explicitly tell it where expat is located, as sometimes it can't find it on its own.

Apache is a popular HTTP server, is available from the Apache website at and is the only one Scoop supports. Scoop with Apache 2.0 is not supported and not considered stable. Just about any version of Apache 1.3 should work, though the most recent is recommended as it will always include bug and security fixes. You should compile Apache by hand and not use a precompiled version, as many precompiled packages don't work properly with Scoop. When you compile Apache, you can include mod_perl (below) directly in the program or compile it separately as a DSO (module). See section 2.2 for detailed instructions.

Mod_perl, an Apache module, is also required. The stable tree is 1.x, and you can get it from the mod_perl website at Note that if you get, or already have, an older version of Apache, then you may need to get an older version of mod_perl to work with it. As with Apache, the most recent 1.x version is recommended as it has bug and security fixes, but the mod_perl version must correspond to the Apache version, as detailed on their website. Mod_perl 2.0 is not yet supported.

MySQL is a database management system (DBMS), and is currently the only one Scoop supports, though support for Postgres is in the works. The stable tree for MySQL is 4.0, and versions 4.x, 3.23.x and 3.22.x are known to work with Scoop. You must set the variable mysql_version in the Apache configuration file to a number corresponding to the first two parts of the version number (i.e., 3.22, 3.23, or 4.0). Version 3.22 uses a different date format, and version 4 has some extra features that Scoop can take advantage of, so you must set this variable correctly. All versions are available for download from The most recent 3.23.x or 4.x version is recommended, and a default install is your best bet. Follow the installation instructions on the MySQL website, then make sure that you can access the MySQL database from the webserver. If you are using a binary mysql package, such as the .rpm or .deb, you will also need the mysql development package, whatever it is named in your packaging system. If you are compiling from source, you will have everything necessary already.

2.1.2 Required Perl Modules

Scoop uses quite a few Perl modules, all of which are available from CPAN. Table 1 has a list of modules that are currently required by Scoop, as well as common problems encountered when installing them.

This is pretty consistently the hardest, most frustrating part of installing Scoop. Unfortunately, there is nothing we can do about it, since all the suckage is in CPAN and the quirky, fragile test scripts that come with some of the modules. There are some modules that simply will not pass their tests, even when compiled correctly. A ``force install'' is required to bypass the tests in those cases.

There are several ways to install them. You could go to CPAN, get each tarball, and install by hand, but that takes time and effort. You could also use the CPAN shell (more on this below) to install each one, but that still requires typing out each module.

For convenience, Scoop includes a Bundle::Scoop, which you can use with the CPAN shell to install all of them. The install script uses this to install modules, which is the easiest way. But if you'd like to manually use it, here's how (note that you'll probably want to be root for this):

% perl -MCPAN -e shell;
cpan> ! use lib qw( /path/to/scoop/lib/ );
cpan> install Bundle::Scoop
cpan> exit

There will be a lot of output between the install and exit commands; try to watch for errors.

Make sure that Follow Prerequisites is set to 'Ask', or CPAN may upgrade your perl install and several other modules whether you want it or not.

Table 1: Summary of required Perl modules
Module Min Version Notes
DBI 1.14  
DBD::mysql 2.0414 or try DBD::mSQL using CPAN, with MySQL only chosen. Either way, MySQL will need to be running with a non-root user created. You should give this user and password to either of the modules when it asks for it, or the module will not be able to log into the database and will fail all of its tests. You may need to install using CPAN instead of the bundle to get it to ask. This module can be forced if there are no compile errors and only test errors.
Digest::MD5 2.11 may need to install using CPAN; sometimes fails in the bundle
Apache::DBI 0.87  
Apache::Request 0.31 If you get Invalid command 'TransferLog' when building this module, go to the CPAN shell and force install it. It's just another broken test suite.
Apache::Test ? The newest versions of Apache::Request require Apache::Test, and if your /root directory has permissions 700 or 710, the tests will fail. Apache::Test starts up its own apache process, and tries to access a test html file inside /root/.cpan/, which it naturally doesn't have permission to... fix: either force install Apache::Test, or change your permissions on /root to 711 (rwx-x-x) for the duration of the install, then back to whatever it was before after finishing installing this module.
Class::Singleton 1.03  
Crypt::UnixCrypt 1.0  
Mail::Sendmail 0.77  
String::Random 0.198  
Time::CTime 99.062201  
Time::Timezone 99.062401  
Time::ParseDate 99.062401  
Date::Calc 5.4  
XML::Parser 2.30 must have expat installed
LWP 5.53  
Crypt::CBC 1.25  
Crypt::Blowfish 2.06  
XML::RSS 0.8 must have expat installed

If there are any errors, and with some modules there are bound to be, you can try to install them individually through the CPAN shell. Modules notorious for causing trouble are marked in the table above. At least one of the modules (DBD::mysql) asks for some information before it starts testing, so it's to your advantage to have the CPAN shell in interactive mode, even though that means you have to pay attention to it while it's installing things. You will need to provide the test script with a valid username and password for the database, and the database must be running when this module does its tests. I'd recommend against giving it the database root password, just because that's bad policy. If you want to skip the database tests for DBD::mysql, you can force install it through CPAN without any ill effects.

Instead of DBD::mysql, you may want to try installing the DBD::msql module, and selecting the MySQL drivers from it. These drivers are a bit older but more stable than the drivers in DBD::mysql, and you may have more success with them.

XML::Parser may need to be installed by hand, because often you need to tell it explicitly where expat is installed. If it can't find expat on its own, this module and all the ones that depend on it will fail; installing XML::Parser by hand (command line, not CPAN) then re-running the above bundle install will work.

If various modules are failing and saying that they depend on some other module, check your CPAN shell configuration, and make sure that it is set to ask before following dependencies. If it is set to never follow dependencies, there may be problems if you have an old Perl install and some of your modules are too old.

2.1.3 Recommended Programs

CVS is extremely useful if you want to keep your Scoop install up to date. Even the numbered releases are packaged as a CVS checkout, so updating to a newer numbered release or to the latest CVS version is quite easy if you have CVS installed.

Sendmail eliminates the hassle of trying to troubleshoot mail sending through somebody else's (ie, your ISP) mail server. You have to make sure you secure your mail server to not be an open relay, and it is another program to keep up on security updates with. It's your call.

Text::Aspell is a perl module used to provide spell-checking functionality in comments and stories. You will need Aspell 0.50.3 and the Aspell English dictionary 0.51.0, both available from Follow the installation instructions to install the two components in order. Aspell 0.50.3 must be properly installed before the dictionary will configure properly. The Text::Aspell perl module can then be installed using CPAN. To activate and configure Spellchecking, see section 4.10.