blueice 发表于 2018-8-31 13:35:50

升级系统自带的perl-BSDerの

  CentOS 系统自带的Perl版本是5.8.8,已经很老了,哥今天折腾一下,把它升级到最新版本。
  系统初始状态下的Perl版本
  


[*]# perl -v
[*]
[*]This is perl, v5.8.8 built for x86_64-linux-thread-multi
[*]
[*]Copyright 1987-2006, 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.
  

  看一下perl安装在哪
  


[*]# which perl
[*]/usr/bin/perl
[*]# ll /usr/bin/perl
[*]-rwxr-xr-x 2 root root 19200 Jan 212009 /usr/bin/perl
  

  接下来,准备升级操作,下载最新的perl源码包到本地来
  


[*]http://www.cpan.org/src/5.0/perl-5.14.1.tar.gz
  

  安装
  


[*]# tar perl-5.14.1.tar.gz
[*]# cd perl-5.14.1
[*]# ./Configure --help
[*]Usage: Configure [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
[*]               [-U symbol] [-U symbol=] [-A command:symbol...]
[*]-d : use defaults for all answers.
[*]-e : go on without questioning past the production of config.sh.
[*]-f : specify an alternate default configuration file.
[*]-h : print this help message and exit (with an error status).
[*]-r : reuse C symbols value if possible (skips costly nm extraction).
[*]-s : silent mode, only echoes questions and essential information.
[*]-D : define symbol to have some value:
[*]         -D symbol         symbol gets the value 'define'
[*]         -D symbol=value   symbol gets the value 'value'
[*]       common used examples (see INSTALL for more info):
[*]         -Duse64bitint            use 64bit integers
[*]         -Duse64bitall            use 64bit integers and pointers
[*]         -Dusethreads             use thread support
[*]         -Dinc_version_list=nonedo not include older perl trees in @INC
[*]         -DEBUGGING=none          DEBUGGING options
[*]         -Dcc=gcc               choose your compiler
[*]         -Dprefix=/opt/perl5      choose your destination
[*]-E : stop at the end of questions, after having produced config.sh.
[*]-K : do not use unless you know what you are doing.
[*]-O : let -D and -U override definitions from loaded configuration file.
[*]-S : perform variable substitutions on all .SH files (can mix with -f)
[*]-U : undefine symbol:
[*]         -U symbol    symbol gets the value 'undef'
[*]         -U symbolsymbol=   symbol gets completely empty
[*]       e.g.:-Uversiononly
[*]-A : manipulate symbol after the platform specific hints have been applied:
[*]         -A append:symbol=value   append value to symbol
[*]         -A symbol=value          like append:, but with a separating space
[*]         -A define:symbol=value   define symbol to have value
[*]         -A clear:symbol          define symbol to be ''
[*]         -A define:symbol         define symbol to be 'define'
[*]         -A eval:symbol=value   define symbol to be eval of value
[*]         -A prepend:symbol=valueprepend value to symbol
[*]         -A undef:symbol          define symbol to be 'undef'
[*]         -A undef:symbol=         define symbol to be ''
[*]       e.g.:-A prepend:libswanted='cl pthread '
[*]            -A ccflags=-DSOME_MACRO
[*]-V : print version number and exit (with a zero status).
  

  找到安装编译参数
  


[*]# ./Configure -des -Dprefix=/usr
[*]各参数的含义上面已有
[*]# make && make install
  

  如没有意外,安装成功,看看现在的版本
  


[*]# perl -v
[*]
[*]This is perl 5, version 14, subversion 1 (v5.14.1) built for x86_64-linux
[*]
[*]Copyright 1987-2011, 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.
  

  看看安装的位置
  


[*]# ll /usr/bin/perl
[*]-rwxr-xr-x 2 root root 1427485 Jul 13 14:06 /usr/bin/perl
  

  我们这是覆盖安装,替换了原先系统中的原始版本。
  新的版本中增加了say函数,让我们写一个简单的脚本来测试一下,看有没有问题
  


[*]#!/usr/bin/perl -w
[*]
[*]use strict;
[*]use 5.14.1;
[*]
[*]say "hello,world";
  

  output:
  


[*]perl henry.pl
[*]hello,world
  

  正确,大功告成,还不赶紧去了解Perl 5.14.1的新特性。哈哈,^__^
  注:这样,似乎有一个问题,之前在Perl 5.8.8下安装过的模块需要重新再安装一下,嘿嘿


页: [1]
查看完整版本: 升级系统自带的perl-BSDerの