Skip to main content

FreeBSD: Perl updaten

Ab und zu kommt man in die Verlegenheit, bei einem FreeBSD-System das Perl aktualisieren zu müssen. Das ist nicht ganz so trivial, deshalb wirds hier gesondert beschrieben.

So eine Meldung beim Portupgrade kann einem zum Update der Perl-Version zwingen

[...]
** Port marked as IGNORE: textproc/p5-XML-SAX:        
   Invalid perl5 version 5.20
[...]

Als erstes setzen wir mal den Perl-Origin auf 5.22, von 5.20

root@amroth:/usr/ports # pkg set -o lang/perl5.20:lang/perl5.22
Change origin from lang/perl5.20 to lang/perl5.22 for perl5-5.20.3_16? [y/N]: y

root@rmroth:/usr/ports # portupgrade -o lang/perl5.22 -f lang/perl5.20\*

[Reading data from pkg(8) ... - 390 packages found - done]

Schlußendlich aktualisieren wir alles, was mit Perl zu tun hat:

root@amroth:/usr/ports # portupgrade -rf perl\*

Beim Upgraden kommt u. A. so ein Bildschirm, den wir bestätigen:

  +-------------------------- perl5.22-5.22.4 -----------------------------+
  | +--------------------------------------------------------------------+ |
  | |+[ ] DEBUG          Build with debugging support                    | |
  | |+[ ] GDBM           GDBM_File extension                             | |
  | |+[x] MULTIPLICITY   Use multiplicity                                | |
  | |+[x] PERL_64BITINT  Use 64 bit integers (on i386)                   | |
  | |+[x] PTHREAD        Build with -lpthread                            | |
  | |+[ ] SITECUSTOMIZE  Run-time customization of @INC                  | |
  | |------------------------- Exclusive OPTIONS ------------------------| |
  | |+(*) THREADS        Build threaded perl                             | |
  | |+( ) PERL_MALLOC    Use Perl malloc                                 | |
  | +--------------------------------------------------------------------+ |
  +------------------------------------------------------------------------+
  |                     <  OK  >           <Cancel>                        |
  +------------------------------------------------------------------------+

 

Sicherheitshalber kontrollieren wir noch die EInstellung von DEFAULT_VERSIONS in make.conf

If you want to use this version as the default,
stop the build now, add this line to your
/etc/make.conf, and then restart the build.

DEFAULT_VERSIONS+=perl5=5.22

Manchmal kann auch ein Grund, der nicht sofort ersichtlich ist, das upgrade verhindern:

Problem seems solved now.
I've found a leftover file in /usr/local/etc: perl5_version
Have no idea which program put it there, but it screwed up everything.
Deleting it fixed the issue.