在工作站上安装软件

一般情况下,用户不能通过获取 root 权限的方式安装软件。不过,一般的软件都可以通过一系列 设置安装到自己的个人目录下。通过这种方式安装的软件只能自己使用。

例子:从源码安装软件 FFTW

大部分源码安装的软件都需要进行以下三步

  • configure: 设置,用户需要根据需求选择软件中的安装选项以及功能

  • make: 编译,使用系统的编译工具将源码编译成可执行的文件或库文件

  • install: 安装,将编译好的文件安装到指定的位置

在安装之前,用户需要自行处理软件的依赖,这可能是个复杂的过程,不过 绝大多数数软件的依赖都已经满足。如果需要帮助可联系管理员。

在安装结束后,用户需要设定环境变量,以便可执行程序,库文件,帮助文档 可以被正常访问。通常需要改动的变量是 PATHLD_LIBRARY_PATH 等。

首先从官网下载 FFTW 的源码。在这里我们以 3.3.5 版本为例。假设下载的文件储存在 服务器个人目录下,文件名字为 fftw-3.3.5.tar.gz

首先,使用解压缩命令将源码文件解包。

$ tar -xzf fftw-3.3.5.tar.gz

解包完成后会得到一个名为 fftw-3.3.5 的文件夹,我们需要切换到这个文件夹内。

$ cd fftw-3.3.5

在这里我们新建一个名为 build 的文件夹,以储存所有编译的中间文件。不建议直接在 源文件的目录进行操作,因为在执行编译结束后无法分清哪些是编译生成的文件,会给清理 造成麻烦。

$ mkdir -p build && cd build

接下来,调用 configure 脚本进行设置

$ ../configure --prefix=$HOME

其中的 –prefix 参数一定要设置,它是指定了软件的安装位置。如果不指定,则实际安装的时候 会安装到系统目录中去,由于一般用户不具备操作系统目录的权限,所以安装过程会失败。其他的选项 根据需求安装即可,在这里我们均使用默认值。

如果软件的依赖全部满足,则 configure 会正常结束,并在当前的目录下生成 Makefileconfig.log 等文件,这时候就可以进行编译了。使用

$ make

即可进行软件的编译。

编译需要进行一段时间,对于有些软件的编译过程非常漫长。make 命令正常结束后,需要使用

$ make install

将软件安装到指定的目录下,在这里我们是把软件安装到 HOME 目录下。安装完成后,可以在 HOME 目录下 看到多出了 include lib 等文件夹,这就是我们软件的实际文件了。

如果有必要,需要在 .bashrc 中修改环境变量,以便在使用软件的时候系统可以在正确的路径找到 我们的库。

小提示

安装完毕后,原则上不再需要软件源码和产生的中间文件。但是建议保留这些安装文件,以便在软件出问题 的时候进行重新安装,或者是在不需要的时候将其删除(删除软件的命令写在了 configure 生成的 Makefile 中)。

安装 Python 包到个人目录

在运行 python 等程序时经常需要各种 python 的软件包,这些包有的已经安装在服务器中了,有些则没有安装。出现这种情况可以联系管理员进行安装,或者可以自行将所需要的包安装在自己的 HOME 目录下。

使用 pip 安装

使用 python 自带的 pip 包管理程序可以方便地进行安装,但是默认情况下 pip 将软件包安装到系统文件夹下,普通用户没有这个权限。因此需要指定 pip 将包安装在 个人的 HOME 目录下。

$ pip install <package name> --user

这里 package name 是所需包的命令,重要的是后面 --user 这个参数,它表示单独为当前用户安装这个 python 软件包。安装的位置是

~/.local/lib/python<ver>/site-packages

其中 ver 是对应 python 的版本。这样安装过后,对应的包就可以使用了,并且不会影响服务器上的其它用户。

使用 conda 安装

如果你在使用 anaconda,那么除了以上的 pip 管理器,你还可以使用 conda 命令进行安装。使用的方式为

$ conda install <package name> --prefix /path/to/install

这里重要的是 --prefix 参数,它指定了相应包的安装路径。在这里建议使用的路径依然是

~/.local/lib/python<ver>/site-packages

其中 ver 是 anaconda 内部嵌入的 python 版本,这样 python 可以在对应位置找到所需要的包。

使用 conda 创建环境后安装(推荐)

conda 除了可以直接安装包以外,还可以创建独立运行环境并且只将指定版本的包安装 到环境里。这和 virtualenv 功能相似。独立环境可以较好地解决 python 包之间版本 依赖问题,并且完全不需要管理员权限。推荐多数用户使用

conda 入门教程

安装 R 包到个人目录

在运行 R 软件时经常需要各种 R 的软件包,此时可以使用 R 自带的安装命令将所需软件包安装在自己的 HOME 目录下。

使用 install.packages() 命令

使用 R 自带的 install.packages() 命令可以进行最方便的安装。打开 R 的控制台,然后输入

> install.packages(<package name>, method="curl")

即可安装,其中 package name 是所需要的软件包的名字。其中,method=“curl” 这个参数不能省略,它表示了下载安装包的方式。当使用 HTTPS 镜像的时候,R 中默认的下载函数不支持 HTTPS 下载。

例如,想要安装 “tseries” 包,就可以输入

> install.packages("tseries", method="curl")

执行完毕后,R 会弹出一条警告

Warning in install.packages("tseries", method = "curl") :
  'lib = "/public/software/R/3.2.5/lib64/R/library"' is not writable
Would you like to use a personal library instead?  (y/n)

由于当前用户对默认安装目录没有写入权限,因此输入 y 来将包安装到个人的 HOME 目录下。

再次键入 y,将安装的目录设置为

$HOME/R/x86_64-pc-linux-gnu-library/3.2

之后选择下载的镜像源,在这里我们选择 4 号镜像源。

 1: 0-Cloud [https]                2: Austria [https]
 3: Chile [https]                  4: China (Beijing 4) [https]
 5: Colombia (Cali) [https]        6: France (Lyon 2) [https]
 7: France (Paris 2) [https]       8: Germany (Münster) [https]
 9: Iceland [https]               10: Mexico (Mexico City) [https]
11: Russia (Moscow) [https]       12: Spain (A Coruña) [https]
13: Switzerland [https]           14: UK (Bristol) [https]
15: UK (Cambridge) [https]        16: USA (CA 1) [https]
17: USA (KS) [https]              18: USA (MI 1) [https]
19: USA (TN) [https]              20: USA (TX) [https]
21: USA (WA) [https]              22: (HTTP mirrors)

经过一系列编译之后,R 会提示安装已完成。

注:如果编译过程中提示找不到 gfortran 的库,请在运行 R 之前载入 gcc 模块

module add gcc

使用 R CMD 命令

用户还可使用 R CMD 命令来在 Linux 命令行中安装所需要的 R 包。这个命令适用于非联网安装,或者是所需的包不在 CRAN 的镜像当中。

以 RCurl 包为例,假设我们的包的文件名是 RCurl_1.95-4.8.tar.gz。进入到包所在的目录下,输入

$ R CMD INSTALL RCurl_1.95-4.8.tar.gz

即可开始自动安装。

注意,从本地安装的方法不会自动处理包之间的依赖问题,因此在安装之前请确保依赖的软件包已经安装完毕