天天看点

升级系统自带的perl

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 21  2009 /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=none  do 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=value  prepend 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

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

This is perl 5, version 14, subversion 1 (v5.14.1) built for x86_64-linux 

Copyright 1987-2011, Larry Wall 

看看安装的位置

-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下安装过的模块需要重新再安装一下,嘿嘿

本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/610052,如需转载请自行联系原作者