Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Perlbrew list and wrong version number

Tags:

perl

perlbrew

I installed two version of Perl using --as (naming the version with the major number only)

  • 5.20.0 installed as 5.20 and
  • 5.20.0 with threading installed as 5.20t

This is the output of perlbrew list

* 5.20 (5.20.0)
  5.20t (5.20.0)

I then upgraded Perl to 5.20.1 using

$ perlbrew upgrade-perl
Upgrading 5.20 to 5.20.1
Installing /Users/corti/perl5/perlbrew/build/perl-5.20.1 into ~/perl5/perlbrew/perls/5.20

This could take a while. You can run the following command on another shell to track the status:

  tail -f ~/perl5/perlbrew/build.perl-5.20.1.log

5.20 is successfully installed.

Perl seems to be correctly upgraded (v5.20.1):

$ perl -version

This is perl 5, version 20, subversion 1 (v5.20.1) built for darwin-2level

Copyright 1987-2014, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

But perlbrew list does not recognise the new version and calling perlbrew upgrade-perl does the upgrade again

$ perlbrew list
* 5.20 (5.20.0)
  5.20t (5.20.0)

Why does perlbrew not recognise the update?

like image 354
Matteo Avatar asked Oct 31 '22 17:10

Matteo


1 Answers

Because perlbrew checks for the existence of a file called

perls/*/.version

and uses its contents to determine which version of Perl is installed. If it doesn't find the file, it falls back to running the perl executable

perls/*/bin/perl

to determine the installed version and the creates the .version file.

The upgrade-perl command fails to update the file, so subsequent runs don't properly detect the installed version. I have filed a bug report

like image 111
Jonathan Avatar answered Nov 15 '22 13:11

Jonathan