Perl – How to set up a local CPAN mirror


What do I need to set up and maintain a local CPAN mirror? What scripts and best practices should I be aware of?

Best Solution

CPAN::Mini is the way to go. Once you've mirrored CPAN locally, you'll want to set your mirror URL in or CPANPLUS to the local directory using a "file:" URL like this:


If you'd like your mirror to have copies of development versions of CPAN distribution, you can use CPAN::Mini::Devel.


The "What do I need to mirror CPAN?" FAQ given in another answer is for mirroring all of CPAN, usually to provide another public mirror. That includes old, outdated versions of distributions. CPAN::Mini just mirrors the latest versions. This is much smaller and for most users is generally what people would use for local or disconnected (laptop) access to CPAN.