Ricardo Signes’ marvelous module CPAN::Mini just got an update today, and it reminds me to tell you all how great it is to be able to have a small version of the CPAN on your local hard drive, especially on a laptop. The included minicpan program makes it trivial to update your local archive.

First, I make a little ~/.minicpanrc that looks like this:

local: ~/minicpan/
remote: http://cpan.pair.com/pub/CPAN/
also_mirror: indices/ls-lR.gz

And then I run minicpan every so often. This pulls in the latest version of each distribution, and deletes ones that are obsoleted by newer versions. When I run minicpan, it looks like this:

$ minicpan
authors/01mailrc.txt.gz ... updated
modules/02packages.details.txt.gz ... updated
modules/03modlist.data.gz ... updated
mkdir /tmp/Woq_DHsWsN/indices
indices/ls-lR.gz ... updated
indices/ls-lR.gz ... updated
mkdir /home/andy/minicpan/authors/id/G/GR/GROMMIER
authors/id/G/GR/GROMMIER/Text-Editor-Easy-0.01.tar.gz ... updated
authors/id/G/GR/GROMMIER/CHECKSUMS ... updated
mkdir /home/andy/minicpan/authors/id/Z/ZO/ZOFFIX
authors/id/Z/ZO/ZOFFIX/Acme-BabyEater-0.01.tar.gz ... updated
authors/id/Z/ZO/ZOFFIX/CHECKSUMS ... updated
...
cleaning /home/andy/minicpan/authors/id/L/LU/LUKEROSS/DBIx-StORM-0.04.tar.gz ...done
cleaning /home/andy/minicpan/authors/id/L/LU/LUKEC/Test-WWW-Selenium-1.13.tar.gz ...done
cleaning /home/andy/minicpan/authors/id/L/LU/LUKEC/mocked-0.07.tar.gz ...done
cleaning /home/andy/minicpan/authors/id/L/LO/LOCATION/Geo-IP2Location-2.00.tar.gz ...done
cleaning /home/andy/minicpan/authors/id/L/LO/LODIN/Regexp-Exhaustive-0.03.tar.gz ...done

Currently the repository is only 846M of disk space. Who doesn’t have an extra gig lying around these days?

uniqua:~/minicpan $ du -sh
846M	.

I also point my CPAN shell configuration to use the mini CPAN as its source of modules by prepending file:///home/andy/minicpan to the list of URLs it checks.

Thanks to Ricardo for putting out this great tool, and Randal Schwartz for the original column on which it was based.