Linux下软件安装方法

解增言

2020-04-06 16:48

在Linux下安装软件有多种方法,不同的发行版安装方法有些区别,但大都可分为四类:利用软件管理器安装、从二进制包安装、直接下载编译好的二进制文件及从源代码安装。

下面我们以生物信息学常用的序列搜库工具BLAST+为例,说明Linux下软件的安装方法。NCBIftp服务器提供该软件不同版本的下载,目前最新的版本是2.10.0

1. 利用软件管理器安装

Linux的软件管理器也叫包管理器,可以自动下载和安装软件及其依赖的包,用起来非常方便,是优先推荐使用的Linux软件安装方式。不同Linux发行版的软件管理器有所不同,如Redhat、CentOS和Fedora的YUM,Debian、Ubuntu和LinuxMint的APT,Arch Linux的Pacman,openSUSE的Zypper,Gentoo的Portage等。

软件管理器使用前可以自己配置软件源,国内很多大学和机构都提供不同版本的Linux软件源,选取速度较快的软件源在安装软件时可以加快下载速度,节省安装时间。关于软件源的配置,网络上有很多资料,可以自己查阅,这里不再赘述。

下面,我们以Ubuntu的APT工具为例,演示使用软件管理器安装BLAST+工具。使用软件管理器安装并不需要知道软件的具体下载地址,但需要先查找软件管理器的源中是否有需要安装的软件:

$ apt-cache search blast

在结果中可以找到一个ncbi-blast+的软件,接下来就可以用apt-get安装了。

$ sudo apt-get install ncbi-blast+

稍等片刻就可以安装好了,非常方便。需要注意的是,使用软件管理器安装软件需要有root权限,如果没有root权限,就得考虑用其他方式安装了。

如果是CentOS或Fedora,上面的命令分别改成sudo yum search blast和sudo yum install ncbi-blast+就可以了。

2. 从二进制包安装

尽管利用软件管理器安装软件很方便,但我们有时在软件管理器的源中找不到需要安装的软件。如果软件下载网站提供了编译好的二进制包,可以下载该软件包后安装,或直接从网络上安装该软件包。如在CentOS中用rpm命令从二进制包安装软件:

$ rpm -prefix=/home/peter/bin -ivh ftp://ftp.ncbi.nlm.nih.gov/blast/executables/\
blast+/LATEST/ncbi-blast-2.9.0+-1.x86_64.rpm

其中选项prefix=/home/peter/bin表示软件安装到/home/peter/bin下,如果用户有root权限,可以不用该选项,软件会安装到rpm默认的目录下(一般是/usr/bin目录),选项i表示安装,v表示显示安装过程,h表示显示进度。如果以前安装过该软件,只是需要升级的话可以用选项-Uvh。

在安装的过程中,如果系统提示缺少软件所依赖的某些包,先将这些包安装好后再运行rpm即可。

3. 直接下载编译好的二进制文件

有些软件已经为不同的操作系统提前编译好了可执行的二进制文件,这时就可以直接下载与自己系统对应的二进制文件,并将该文件所在的目录添加到环境变量PATH即可使用。

首先用wget(或curl)下载系统对应的版本,因为我们的系统是64位的Linux系统,所以下载对应的ncbi-blast-2.9.0+-x64-linux.tar.gz文件。我们先在自己的主目录下创建software目录,以后下载的软件都放到该目录中。

$ mkdir software
$ cd software
$ wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/\
ncbi-blast+-2.9.0-src.tar.gz

然后利用tar命令将压缩包解压:

$ tar xzf ncbi-blast+-2.9.0-src.tar.gz

这时,当前目录下就多了一个ncbi-blast-2.9.0+目录,该目录中就是BLAST+的可执行文件及有关的说明和使用手册等,二进制的可执行文件在其中的bin目录中:

$ cd ncbi-blast-2.9.0+
$ ll
总用量 60
drwxr-xr-x. 2 xiezy xiezy  4096 3月  12 04:18 bin
-rw-r--r--. 1 xiezy xiezy    85 3月  12 04:18 ChangeLog
drwxrwxr-x. 2 xiezy xiezy  4096 3月  12 08:04 doc
-rw-r--r--. 1 xiezy xiezy  1055 3月  12 04:18 LICENSE
-rw-r--r--. 1 xiezy xiezy 15520 3月  12 04:18 ncbi_package_info
-rw-r--r--. 1 xiezy xiezy   465 3月  12 04:18 README
$ ll bin
总用量 729692
-rwxr-xr-x. 1 xiezy xiezy 26952256 3月  12 04:18 blastdb_aliastool
-rwxr-xr-x. 1 xiezy xiezy 30853440 3月  12 04:18 blastdbcheck
-rwxr-xr-x. 1 xiezy xiezy 38820160 3月  12 04:18 blastdbcmd
-rwxr-xr-x. 1 xiezy xiezy 43456320 3月  12 04:18 blast_formatter
-rwxr-xr-x. 1 xiezy xiezy 43444288 3月  12 04:18 blastn
-rwxr-xr-x. 1 xiezy xiezy 43444288 3月  12 04:18 blastp
-rwxr-xr-x. 1 xiezy xiezy 43444288 3月  12 04:18 blastx
......

将该bin目录的路径添加到环境变量PATH中,即可使用BLAST+的命令如makeblastdb、blastp等。

$ export PATH=$PATH:/home/peter/software/ncbi-blast-2.9.0+/bin

上面的更改只是在当前会话中有效,如果将上面修改环境变量PATH的命令添加到环境配置文件.bashrc或.bash_profile中,可使更改永久有效,避免每次登录后都需要更改。

4. 从源代码安装

如果软件管理器找不到需要安装的软件,软件下载网站又没有提供编译好的可执行文件或二进制包,只提供软件的源代码下载,或者我们对软件有一些特殊编译要求,这时我们就得从源代码开始自己编译安装。这种安装方式比前面的几种要繁琐一些,但如果掌握了规律,在Linux下从源代码安装软件并不难。

Linux下从源代码安装软件一般包括四个步骤:环境配置、编译、测试和安装,其中的安装步骤如果需要安装在系统目录如/usr/local/bin下,则需要有root权限;如果是普通用户,可以在环境配置一步设定安装目录到自己的目录下,如~/bin目录。

安装前首先从NCBI的ftp服务器上下载BLAST+的源代码压缩包并解压:

$ wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/\
ncbi-blast+-2.9.0-src.tar.gz
$ tar xzf ncbi-blast+-2.9.0-src.tar.gz

解压后,当前目录下多了一个ncbi-blast-2.9.0+-src目录,其中只有一个目录c++,进入该目录,其中有一个可执行文件configure:

$ cd ncbi-blast-2.9.0+-src/c++
$ ls
compilers  configure  include  ReleaseMT  scripts  src

下面就可以执行该configure文件检查并配置安装环境:

$ ./configure --prefix=/usr/local

其中的--prefix=/usr/local是将软件安装到/usr/local目录下。若果系统缺少某些该软件依赖的软件或包,就先安装对应的软件或包。如果安装环境检查和配置没有问题,执行完上面的命令后,当前目录下就生成了几个文件,其中的Makefile文件是Linux下编译工具make的指令文件。

下一步就是用make编译:

$ make -j all

其中的-j选项是指定编译所用的线程数,all是用系统所有可用的CPU线程资源。编译是从源代码安装的几个步骤中最慢的一步,使用make的-j选项可多线程并行编译,节省编译时间,加快安装速度。

然后是测试编译好的文件有无问题:

$ make test

最后是将编译好的软件安装到指定的目录下:

$ sudo make install

总结一下,Linux从源代码安装最常用的步骤是:(1)安装环境检查与配置(configure);(2)编译(make);(3)测试(make test);(4)安装(make install)。

Linux为我们提供了许多命令,但针对特定任务,我们经常还需要安装一些系统中没有的工具和软件。掌握Linux下软件的安装方法,是顺利进行生物信息学数据分析和处理的基础和必要技能。