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

I've got 1573 CPAN modules and perlbrew clone-modules to 5.42.0 fails to install 57. From 2021 github.com/gugod/App-perlbrew/issues/722 has some ideas on why this happens but I guess it's still broken. Here's the list of failures if someone wants to figure out what these distributions have in common that breaks perlbrew:
  1. Acme::Tools
  2. Alien::CFITSIO
  3. Alien::Plotly::Kaleido
  4. Alien::TALib
  5. App::cpanminus::reporter
  6. App::perlfind
  7. Astro::Catalog
  8. Astro::FITS::CFITSIO
  9. Astro::Montenbruck
  10. Astro::SpaceTrack
  11. CGI-Kwiki
  12. CGI::Ajax
  13. CGI::Application
  14. CGI::Carp
  15. CGI::Compress::Gzip
  16. CGI::PSGI
  17. CGI::Prototype
  18. Catalyst::Controller::POD
  19. Chart
  20. Chart::GGPlot
  21. Chart::Kaleido
  22. Chart::Plotly
  23. Color::RGB Not on CPAN?
  24. Devel::Chitin
  25. Devel::hdb
  26. Dist::Zilla
  27. EV
  28. File::Fingerprint Not on CPAN?
  29. Geo::Compass::Variation
  30. Geo::IPinfo
  31. Geo::WebService::Elevation::USGS
  32. GeoIP2
  33. HTML-TableExtract
  34. HTML::Template
  35. HTTP::Server::Simple
  36. HTTP::Server::Simple::PSGI
  37. IO::Socket::SSL
  38. Imager::File::GIF
  39. Imager::File::JPEG
  40. Imager::File::PNG
  41. Imager::File::TIFF
  42. LWP::Protocol::https
  43. Markup::Perl
  44. Module-Overview
  45. Module::XSOrPP
  46. Net::SSLeay
  47. Pod::Cpandoc
  48. SOAP::Lite
  49. Syntax
  50. Syntax::Feature::EachOnArray
  51. Syntax::Keyword::Dynamically
  52. Syntax::Keyword::Match
  53. Syntax::Keyword::Try
  54. Test::WWW::Mechanize
  55. Test::WWW::Mechanize::Catalyst
  56. URI::ws Not on CPAN?
  57. pod2pdf
  • Comment on perlbrew clone-modules fails to install lots of modules

Replies are listed 'Best First'.
Re: perlbrew clone-modules fails to install lots of modules
by Corion (Patriarch) on Jan 10, 2026 at 09:44 UTC

    How does perlbrew clone-modules fail for these modules?

    Also, if a module like File::Fingerprint does not exist, how did it end up in your Perl installation?

    You are the only person to investigate that.

    You also don't tell us from what Perl version you are trying to clone the modules.

    My guess is that some of the modules fail because their prerequisites cannot be cloned. This might be other Perl modules, recursively, or system libraries not being available, like for example the SSL library development headers (or in the case of Imager, the respective image library development headers).

      Since posting my question I tried using HTTP::Tiny under 5.42.0 and it said:
      IO::Socket::SSL 1.968 or later must be installed for https support
      Net::SSLeay 1.49 or later must be installed for https support
      
      When I tried to install IO::Socket::SSL it tried to install Net::SSLeay and that failed 3 tests but the way it failed and the MANY failures shown on fast2-matrix.cpantesters.org/?dist=Net-SSLeay+1.94 suggest to me that there are fatal bugs in the test suite for Net::SSLeay. Check this out:
      t/local/32_x509_get_cert_info.t ............. 1/746 # Failed test 'X509V3_EXT_print nid=103 extended-cert.cert.pem:4' # at t/local/32_x509_get_cert_info.t line 273. # got: 'Full Name: # URI:http://intermediate-ca.net-ssleay.example/crl1.crl # # Full Name: # URI:http://intermediate-ca.net-ssleay.example/crl2.crl # ' # expected: 'Full Name: # URI:http://intermediate-ca.net-ssleay.example/crl1.crl # Full Name: # URI:http://intermediate-ca.net-ssleay.example/crl2.crl' # Failed test 'X509V3_EXT_print nid=86 extended-cert.cert.pem:6' # at t/local/32_x509_get_cert_info.t line 273. # got: 'email:intermediate-ca@net-ssleay.example, URI:http:// +intermediate-ca.net-ssleay.example, DNS:intermediate-ca.net-ssleay.ex +ample, Registered ID:1.2.0.0, IP Address:192.168.0.1, IP Address:FD25 +:F814:AFB5:9873:0:0:0:1, othername: emailAddress:ica@net-ssleay.examp +le' # expected: 'email:intermediate-ca@net-ssleay.example, URI:http:// +intermediate-ca.net-ssleay.example, DNS:intermediate-ca.net-ssleay.ex +ample, Registered ID:1.2.0.0, IP Address:192.168.0.1, IP Address:FD25 +:F814:AFB5:9873:0:0:0:1, othername: emailAddress::ica@net-ssleay.exam +ple' # Failed test 'X509V3_EXT_print nid=85 extended-cert.cert.pem:8' # at t/local/32_x509_get_cert_info.t line 273. # got: 'email:john.doe@net-ssleay.example, URI:http://johndoe +.net-ssleay.example, DNS:johndoe.net-ssleay.example, Registered ID:1. +2.3.4, IP Address:192.168.0.2, IP Address:FD25:F814:AFB5:9873:0:0:0:2 +, othername: emailAddress:jd@net-ssleay.example' # expected: 'email:john.doe@net-ssleay.example, URI:http://johndoe +.net-ssleay.example, DNS:johndoe.net-ssleay.example, Registered ID:1. +2.3.4, IP Address:192.168.0.2, IP Address:FD25:F814:AFB5:9873:0:0:0:2 +, othername: emailAddress::jd@net-ssleay.example' # Looks like you failed 3 tests of 746.
      Notice the difference between "got" and "expected" are very subtle and minor.

      cpanm -v --force Net::SSLeay got the module installed so IO::Socket::SSL would install and now HTTP::Tiny works.

      Thank you Corion.

      > How does perlbrew clone-modules fail for these modules?

      I don't know cause after the first few modules succeeded I didn't monitor the output of clone-modules nor did I scroll back looking for errors. It was a long process that I assumed had worked. It probably failed the same way shown on that github page:

      ! Finding Acme::Tools on cpanmetadb failed.
      ! Finding Acme::Tools () on mirror http://www.cpan.org failed.
      ! Couldn't find module or a distribution Acme::Tools
      
      > Also, if a module like File::Fingerprint does not exist, how did it end up in your Perl installation?

      Because it used to exist on CPAN but now only lives on github.com/briandfoy/file-fingerprint

      > You are the only person to investigate that.

      I doubt that. The github page says it's broken since 2021! Maybe others don't complain? :)

      > You also don't tell us from what Perl version you are trying to clone the modules.

      Sorry I didn't think it was relevant: 5.38.2

      > My guess is that some of the modules fail because their prerequisites cannot be cloned...

      I don't think so because I have the prerequisites. For example Acme::Tools only has few common dependencies. Also Imager itself did get cloned it was only a few image format modules that failed. It's on the same box so I have the SSL stuff that works with 5.38.2.

        I don't know cause after the first few modules succeeded I didn't monitor the output of clone-modules nor did I scroll back looking for errors.

        Then go back and do it again, and this time keep the output for inspection.

        Maybe simply installing one of the "unclonable" modules already fails in a way that allows you to diagnose the problem.

        Other people likely solved their problem that way.

        My guess is that some of the modules fail because their prerequisites cannot be cloned...
        I don't think so because I have the prerequisites. For example Acme::Tools only has few common dependencies. Also Imager itself did get cloned it was only a few image format modules that failed. It's on the same box so I have the SSL stuff that works with 5.38.2.

        Imager has no external non-Perl libraries dependencies it needs for installation. Imager::File::PNG needs (for example) the libpng-dev or libpng-headers package installed.

        Similarly things hold for the SSL libraries.

        Now it's time for you to get your hands dirty and check if you can install those libraries using cpanm (for example), and see if/how they fail there.

        > I don't think so because I have the prerequisites.

        Despite your assertion to the contrary, in many cases your "unclonable" modules are missing prerequisites. I am the author of Astro-SpaccTrack, and I can guarantee you it will not install without LWP-Protocol-https, which is also among your "unclonable" modules. My experience is that installing Net-SSLeay tends to fail because of fragile tests against informational output. Once you have force-installed (yukk!) Net::SSLeay, you should be able to install Astro::SpaceTrack without forcing it. This probably also applies to the other SSL-using modules such as SOAP-Lite.

        In general, when any Perl module fails to install, the first thing to do is to check whether (or not) all its prerequisites installed. If they did not (as in this case), you need to work your way back along the dependency chain and see what module(s) started the failure cascade. When you get there, you will need to provide the actual failure to get useful help, whether you go to a public forum or contact the author of the module.

Re: perlbrew clone-modules fails to install lots of modules
by brian_d_foy (Abbot) on Jan 12, 2026 at 22:32 UTC

    Do you need File::Fingerprint? I was always a broken module. If you are usign it for something, please respond to the GitHub issue at https://github.com/briandfoy/file-fingerprint/issues/11 </p

    If you are not actually using File::Fingerprints for something, don't worry about it.

    For what it's worth, I simply install modules as I need them in a new perl installation, so I don't carry over all the cruft that I installed and forgot in some other installation.

    --
    brian d foy <brian.d.foy@gmail.com>
      I don't really need File::Fingerprint but it seems like a pretty cool concept to aggregate all the ways to identify a particular file. Why not fix and possibly expand it? Like get rid of that print from sub init and add an all method that dumps the results of every method and whatever else you think is wrong with it. Thanks for all your good work!
        There's only so much time in the day and there are more useful things to do. If you want to take over the module and do all that, I can transfer it to you.
Re: perlbrew clone-modules fails to install lots of modules SOLVED!
by Anonymous Monk on Jan 10, 2026 at 23:52 UTC
    > Despite your assertion to the contrary, in many cases your "unclonable" modules are missing prerequisites.

    Thank you monks! I see what you guys mean about the prerequisites by checking a bunch of the build.log files. Sorry for doubting you. Things like App::perlfind and Astro::Catalog and Astro::SpaceTrack require LWP::Protocol::https and did finally install once I forced Net::SSLeay. There are a couple of others that had these problems:

  • Acme::Tools - forced install
    #   Failed test at t/02_general.t line 188.
    #          got: 'server-3-163-125-2.lax54.r.cloudfront.net'
    #     expected: 'www.vg.no'
    
    #   Failed test at t/02_general.t line 189.
    #          got: 'server-3-163-125-2.lax54.r.cloudfront.net'
    #     expected: 'www.vg.no'
    
  • Alien::CFITSIO - can't figure this out
    -> FAIL Installing Alien::curl failed.
    
  • Alien::Plotly::Kaleido - needed an outbound firewall rule
  • Astro::FITS::CFITSIO - can't figure this out
    ! Installing Alien::curl failed.
    
  • CGI-Kwiki - had to install as CGI::Kwiki
  • Chart::GGPlot - needed an outbound firewall rule
  • Color::RGB - removed from CPAN
  • Devel::Chitin - can't figure this out
  • Devel::hdb - depends on Devel::Chitin
  • EV - fails many tests, install hangs
  • File::Fingerprint - removed from CPAN
  • Geo::Compass::Variation - Calculation model is expired: 2020-2024
  • HTML-TableExtract - had to install as HTML::TableExtract
  • Imager::File::GIF - GIF libraries or headers not found ***
  • Module-Overview - had to install as Module::Overview
  • Module::XSOrPP - failed tests
  • Syntax - Pod file describing syntax understood by Language::Basic module
  • URI::ws - removed from CPAN? unknown
  • pod2pdf - had to install as App::pod2pdf

    *** Imager::File::GIF installed by referencing my old node at Imager support for PNG, JPEG and GIF on macOS Sonoma:

    perl Makefile.PL -v --incpath=/opt/homebrew/include --libpath=/opt/hom +ebrew/var/homebrew/linked/giflib/lib
      URI::ws - removed from CPAN? unknown

      That is still on CPAN but note that it is part of the URI dist.


      🦛

        URI::ws ended up on my list because I used list-modules and diff to find out which modules were missing to make my list that was posted here. Something is not right with perlbrew (I guess it's perlbrew but who knows)! Check this out:
        % perlbrew use perl-5.38.2                    
        % perlbrew list-modules | grep 'URI'
        URI
        URI::Find
        URI::Find::Delimited
        URI::ws
        
        % perlbrew use perl-5.42.0                    
        % perlbrew list-modules | grep 'URI'
        URI
        URI::Find
        URI::Find::Delimited
        
      There is still Color::Rgb on CPAN (note the spelling).
        > There is still Color::Rgb on CPAN (note the spelling).

        When I noticed modules were missing from doing

        perlbrew clone-modules perl-5.38.2 perl-5.42.0                                                            
        
        I put the results of list-modules for both versions into respective text files and ran diff. Perlbrew listed the Color::Rgb in 5.38 as Color::RGB which caused clone-modules to fail for that module. I just tried to install Color::RGB manually on 5.42 and it failed of course. So I installed Color::Rgb into 5.42 and ran list-modules again and sure enough perlbrew reports that module as Color::RGB! When I went to CPAN and saw
        Color::Rgb - Simple rgb.txt parsing class
        Color::RGB::Util - Utilities related to RGB colors
        
        I didn't know what to think, maybe it got renamed? But I checked out the changes and it did not so I don't know what is going on with perlbrew. Try it yourself:
        % cpanm -v Color::Rgb
        % perlbrew list-modules | grep -i 'color::rgb'
        Color::RGB