GoPAN provides a full end-to-end toolchain to mirror, index, host and install from a CPAN, BackPAN or DarkPAN repository.
Mirrors hosted by SmartPAN are fully Carton/cpanm compatible,
but also support the SmartPAN
interface used by GetPAN.
GetPAN is also Carton/cpanm compatible and works with CPAN, BackPAN, and DarkPAN mirrors using Pinto and Orepan.
When used with SmartPAN,
the SmartPAN
interface fixes dependency resolution issues which exist with typical CPAN
indexes.
Application | Description |
---|---|
SmartPAN | Host a DarkPAN, BackPAN or CPAN mirror |
GetPAN | Carton/cpanfile compatible dependency installer |
MirroPAN | CPAN/BackPAN brute-force mirroring |
PANdex | CPAN module indexer |
You need Perl (preferably >=5.18.2) and the following modules for indexing (used by PANDex and SmartPAN).
- Parse::LocalDistribution
- JSON::XS
Use getpan to simplify installation:
getpan Parse::LocalDistribution JSON::XS
getpan exec smartpan
All other GoPAN tools are entirely self-contained.
Use GetPAN in place of Carton or cpanm.
Note GetPAN uses cpanm internally, but dependency resolution is handled by GetPAN to avoid versioning issues with CPAN indexes.
Use SmartPAN from any empty directory.
Make sure you have Perl, Parse::LocalDistribution and JSON::XS installed.
Use MirroPAN from any empty directory.
You'll need around 40GB of free space to mirror CPAN and BackPAN.
Use PANdex to index any local CPAN, DarkPAN or BackPAN mirror.
This can be used to generate an index file for a mirror created with MirroPAN.
It's faster. And it gets dependencies right.
It's also written in Go - so its highly portable with no installation!
See the Developing GoPAN guide.
Copyright © 2014, Ian Kent (http://www.iankent.eu).
Released under MIT license, see LICENSE for details.