Perlbrew fails to install new perl version

853 views Asked by At

I'm attempting to install a new perl version with perlbrew:

perlbrew install perl-5.34.1

but this produces the error:

Fetching perl 5.34.1 as /home/703404669/perl5/perlbrew/dists/perl-5.34.1.tar.gz
Download https://cpan.metacpan.org/authors/id/S/SH/SHAY/perl-5.34.1.tar.gz to /home/703404669/perl5/perlbrew/dists/perl-5.34.1.tar.gz
ERROR: Failed to download https://cpan.metacpan.org/authors/id/S/SH/SHAY/perl-5.34.1.tar.gz
ERROR: Failed to execute the command

    curl --silent --location --fail -o /home/703404669/perl5/perlbrew/dists/perl-5.34.1.tar.gz https://cpan.metacpan.org/authors/id/S/SH/SHAY/perl-5.34.1.tar.gz

Reason:

    5888

which I'm unable to find on Google searches.

I know that there isn't any typo, because when I intentionally write something wrong, I get a different error.

I have no idea why this is happening, nor to fix it.

EDIT:

the command

curl --location https://cpan.metacpan.org/authors/id/S/SH/SHAY/perl-5.34.1.tar.gz > /dev/null

outputs

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17.3M  100 17.3M    0     0  68.5M      0 --:--:-- --:--:-- --:--:-- 68.5M

How can I install a perl version with perlbrew?

2

There are 2 answers

3
ikegami On

5888 is 0x1700. This could be $? for a program that used exit(0x17), which is to say exit(23). curl uses that exit code when

23 Write error. Curl couldn't write data to a local filesystem or similar.

Sounds like it can't write to /home/703404669/perl5/perlbrew/dists/perl-5.34.1.tar.gz.


If the directory doesn't exist, maybe you didn't properly install perlbrew.

Ways to install perlbrew:

\curl -L https://install.perlbrew.pl | bash
\wget -O - https://install.perlbrew.pl | bash
\fetch -o- https://install.perlbrew.pl | sh
sudo cpan App::perlbrew
perlbrew init

You also need to place a command in your shell's interactive startup script as instructed.


Or maybe you don't have enough disk space. Did you mean to install perlbrew somewhere other than /home/703404669/perl5/perlbrew?

The default perlbrew root directory is ~/perl5/perlbrew, which can be changed by setting PERLBREW_ROOT environment variable before the installation and initialization.

0
David Ellenberger On

In my case the problem was that it would not create the destination folder for that download. So what fixed it for me was:
mkdir $HOME/perl5/perlbrew/dists -p

In the above case just:
mkdir -p /home/703404669/perl5/perlbrew/dists