zerohero has asked for the wisdom of the Perl Monks concerning the following question:

I'm having some trouble getting this working. The basic idea is I want to build private perl modules, then put them into a local directory (mini cpan) and install them from there. An extra detail is that I'll mount this directory using FUSE (sshfs). So I'll have a ssh encrypted, mounted, mini CPAN to install to other servers. My thought was I'd mount the remote CPAN directory locally, and refer to it via a "file:///dir" type URL. Thus the cpan doing the installing would think it was installing from a local CPAN mirror, when in reality it was pulling packages over sshfs.

Thus in my mini cpan, I only want to have my private modules. I've setup the CPAN::Mini stuff and used mcpani to --add a single module. I can see the module in the directory along with the modulelist, and authors directory, so this all looks OK. Running cpan, I have added (via push) a URL to the urllist that looks like this => file:///mymodules. When I try to install, cpan says "Warning: Cannot install YourPackage, don't know what it is."

Note I did not do an update on my mini cpan (which pulls down the latest packages). I do not want to have a bunch of CPAN modules on the mini cpan, merely the private modules.

What am I doing wrong?

  • Comment on Local Mini CPAN Setup for private modules

Replies are listed 'Best First'.
Re: Local Mini CPAN Setup for private modules
by Anonymous Monk on Feb 27, 2009 at 09:42 UTC
Re: Local Mini CPAN Setup for private modules
by jasonk (Parson) on Feb 28, 2009 at 03:13 UTC

      I'm implicitly using inject when I run mcpani --inject. I've figured out almost everything except one nit: cpanp won't install the latest package with the simple package name. In fact, I don't think it can find the pacakge without a version for some reason. Specifying package-with-dashes-and-version installs the new package, e.g.:

      CPAN Terminal> install QWS-Util-Stat-v0.03

      Works, but would be nice if one could drop the version and have it do the right thing.