Installing Catalyst on Debian, the easy way

A few notes I collected after searching online for information about installing Catalyst, the MVC Web framework for Perl. This approach uses pre-built Debian packages which install a lot quicker than compiling things yourself using CPAN — plus, this way you don’t have to tinker with the modules that somehow fail tests, which inevitably happens with such a large dependency base.

First, set up the unstable repository and pin it so that most packages don’t get installed from unstable — just the Perl ones.

/etc/apt/sources.list:

# the main Debian packages.
deb http://mirror.cc.columbia.edu/pub/linux/debian/debian/ lenny main contrib

# Unstable
deb http://http.us.debian.org/debian unstable main non-free contrib

/etc/apt/preferences:

Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=lenny
Pin-Priority: 700

Package: *
Pin: release a=unstable
Pin-Priority: 600

Next, install a sampling of useful modules from Task::Kensho:

aptitude -t unstable install liblocal-lib-perl libtest-simple-perl \
    libtest-most-perl libtest-exception-perl libtest-pod-perl \
    libtest-pod-coverage-perl libtest-memory-cycle-perl \
    libdevel-cover-perl libmoose-perl libpoe-perl \
    libmodule-install-perl libperl-critic-perl libcarp-always-perl \
    libdatetime-perl

Install modules recommended by Catalyst docs:

aptitude -t unstable install sqlite3 libdbd-sqlite3-perl \
    libcatalyst-perl \
    libcatalyst-modules-perl libdbix-class-timestamp-perl \
    libdatetime-format-sqlite-perl libconfig-general-perl \
    libhtml-formfu-model-dbic-perl libterm-readline-perl-perl \
    libdbix-class-encodedcolumn-perl libperl6-junction-perl \
    libtest-pod-perl