Perl 是一种功能丰富的计算机程序语言,运行在超过 100 种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。在生物信息分析领域,Perl 主要是做数据预处理、文本处理和格式转换、对算法效率要求不高的分析软件开发,系统管理和 pipeline 搭建等工作。这里对 Linux(主要是 CentOS)、Windows 下 Perl 的安装做一个备忘。
在官方网站下载新版本的源码包:http://www.perl.org/get.html,我下载的是 perl-5.26.1.tar.gz。
$ tar zvxf perl-5.26.1.tar.gz
$ cd perl-5.26.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 : ignored for backward compatibility
-S : perform variable substitutions on all .SH files (can mix with -f)
-U : undefine symbol:
-U symbol symbol gets the value 'undef'
-U symbol= 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/local/software/Perl-5.26 -Dusethreads -Uversiononly
$ make
......
make[1]: *** [IO.o] Error 1
make[1]: Leaving directory `/users/rmi1/build/perl-5.12.0/dist/IO'
Unsuccessful make(dist/IO): code=512 at make_ext.pl line 449.
make: *** [lib/auto/IO/IO.so] Error 2
如果在 make 编译过程中出现如上报错,请参考 Make error when compiling Perl 5.12.1 (RHEL 5.5) 执行下面操作:
$ make clean
$ unset C_INCLUDE_PATH
$ ./Configure -des -Dprefix=/usr/local/software/Perl-5.26 -Dusethreads -Uversiononly
$ make
继续验证编译,执行安装:
$ make test
$ make install # 命令完成后,基本安装就完成了
在 ~/.bashrc 中把 Perl 添加到 PATH 中,然后 source ~/.bashrc 刷新。
export PATH="/usr/local/software/Perl-5.26/bin:$PATH"
$ perl -version
This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-thread
Copyright 1987-2017, 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 配置汇总信息:
$ perl -V # 该命令会把对应 perl 配置、模块路径所有信息汇总打印出来
Summary of my perl5 (revision 5 version 26 subversion 0) configuration:
Platform:
osname=linux
osvers=2.6.32-696.10.1.el6.x86_64
......
Built under linux
Compiled at Sep 17 2017 16:35:49
@INC:
/usr/local/software/Perl-5.26/lib/perl5/site_perl/5.26.1/x86_64-linux
/usr/local/software/Perl-5.26/lib/perl5/site_perl/5.26.1
/usr/local/software/Perl-5.26/lib/perl5/5.26.1/x86_64-linux
/usr/local/software/Perl-5.26/lib/perl5/5.26.1
在 Windows 下的 Perl 安装,我们推荐使用 ActivePerl,安装步骤如下。
ActivePerl:https://www.activestate.com/products/activeperl/
在这里我们下载 64-bit 的 Perl-5.26.3。
ActivePerl-5.26.3.2603-MSWin32-x64-a95bce075.exe 安装包下载完后,我们直接点击进行安装。
选择 "Custom" 自定义安装:
自定义安装路径:
把 Perl 添加到系统环境变量:
Perl 安装完成后,我们在 DOC 命令行输入 perl -V,可以看到详细的相关信息:
如果我们在安装过程中没有勾选把 Perl 添加到系统环境变量,DOC 中直接执行 perl -V 会出现 "'perl' is not recognized as an internal or external command" 提示,这时候我们需要手动把 Perl 添加到 Windows 的系统环境变量中就可以了。
为了更好对 Perl 进行扩展,方便以后的模块安装,我们最好配置一下 cpan。ActivePerl 有个好处就是在初始化 cpan 的时候会自动把 dmake、gcc、g++、mingw32-make 等 windows 常用的编译工具一起安装到 "$Dprefix/site/bin" 目录下,免去了我们手动安装这些编译器的各种麻烦。
到这里,windows 下的 ActivePerl(perl-5.26)就安装完成了!