in reply to perlbrew clone-modules fails to install lots of modules

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).

Replies are listed 'Best First'.
Re^2: perlbrew clone-modules fails to install lots of modules
by Anonymous Monk on Jan 10, 2026 at 11:35 UTC
    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.

Re^2: perlbrew clone-modules fails to install lots of modules
by Anonymous Monk on Jan 10, 2026 at 10:50 UTC
    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.