http://www.perlmonks.org?node_id=583774


in reply to help managing modules using CPAN.pm

Take a look at dh-make-perl, which allows you to easily created Debian .deb packages from CPAN modules. You can then install these normally with dpkg and uninstall with apt-get remove. You'll have to manage dependencies and upgrades yourself, but this is still the best way I've found to manage those perl modules not available in the Debian distribution.


All dogma is stupid.

Replies are listed 'Best First'.
Re^2: help managing modules using CPAN.pm
by j3 (Friar) on Nov 13, 2006 at 20:10 UTC
    {snip} but this is still the best way I've found to manage those perl modules not available in the Debian distribution.

    Can CPAN.pm tell when dependencies are already met by modules previously installed via apt-get?

    I'm guessing that, of course, apt-get cannot tell when dependencies are already met by modules previously installed via CPAN.pm.

      That's exactly right - CPAN.pm checks for deps by looking at what's installed, regardless of how it got there. apt-get, on the other hand, looks at what dpkg packages are installed
      Can CPAN.pm tell when dependencies are already met by modules previously installed via apt-get?

      Of course! CPAN is a Perl program. If apt-get didn't install the Perl modules correctly, other Perl code couldn't see them.

      I'm guessing that, of course, apt-get cannot tell when dependencies are already met by modules previously installed via CPAN.pm.

      I believe that's correct as well.

        Of course! CPAN is a Perl program.

        Eeek. Of course. Of course. Thank you. I guess I'm just used to apt where: if you didn't use apt/dpkg to install it, it's not installed. ;)

      I'm guessing that, of course, apt-get cannot tell when dependencies are already met by modules previously installed via CPAN.pm.

      This is correct, unless you create .deb packages from your CPAN modules before installing them, as I recommended above.

      An example, you'd like to install Frobnicator::Simple from CPAN, which is not available from any apt repository. So you run dh-make-perl which creates the package libfrobnicator-simple-perl-<version>.deb and you install that package. Any supsequent packages which you install via apt-get will know that libfrobnicator-simple-perl has been installed, and should you install an additional package that depends on (or conflicts with) this module, apt will be able to do the right thing.

      Mind you, the situation won't come up too often, since generally packages in the apt repositories will only depend on other packages if they are also available via apt. And there is the additional possible corner case that a package you want to install depends on a different version of libfrobnicator-simple-perl than the one you've installed by hand, and the maintainer of that package forgot to specify that when rolling it. But that should be even rarer.


      All dogma is stupid.