我怎样才能创建私有的软件模块?

软件模块用于Linux系统管理软件环境,允许用户加载和卸载特定软件版本。加载一个软件模块,以使软件访问一段特定设置环境变量。软件的许多作品已安装并在MSI系统提供。以查看一个Linux系统上可用的软件模块,使用命令: 模块无济于事

用户可以创建私有的软件模块,这让他们加载和卸载已安装他们的家庭或群体目录中的软件。用于创建私有软件模块的过程描述如下。

  1. 首先,选择一个目录,将举行私人软件模块文件。如果模块将与其他组成员共享,将它们放置在该组成员已读访问的目录中。如果模块将由单个用户使用,该模块文件可以被放置在用户的主目录的子目录。例如,目录〜/ modulefiles可用于保存用户的私有软件模块文件。
  2. 前面加上模块文件目录使用下面的命令ModulePath进行环境变量:
    出口ModulePath进行=〜/ modulefiles:$ ModulePath进行
    如果你想私人模块自动提供每次登录后,该命令可以放在〜/ .bashrc文件。
  3. 在保持软件模块文件的目录中,创建软件包的名称的子目录。例如,创建目录〜/ modulefiles / myprogram。
  4. 软件命名的子目录中,创建软件版本命名的文本文件。例如,创建文本文件〜/ modulefiles / myprogram / 1.0。该文件将成为myprogram / 1.0的软件模块文件。
  5. 新创建的文本文件中,将适当的环境改变的命令制作软件访问。在指定这些命令中使用的语言是工具命令语言(TCL)。的软件模块文件的一个例子如下所示。

#%模块
模块加载英特尔/ 2016 / UPDATE3
设置BASEDIR〜/软件/ myprogram
前置路径路径$ BASEDIR /箱
前置路径LD_LIBRARY_PATH $ BASEDIR / lib目录
前置路径则将cpath $ BASEDIR /包括
SETENV OMP_NUM_THREADS 1

模块文件应该以#%模块开始,以使系统能识别其为模块文件。模块可装载的其它模块,并且在该示例中,模块文件加载英特尔/ 2016 / UPDATE3模块。的示例模​​块设置名为BASEDIR到存储包含myprogram安装的目录的位置的内部变量。在前置路径命令使模块的引用的目录添加到环境路径变量的开始。例如,该模块会在前面加上〜/软件/ myprogram / bin添加到PATH环境变量,这将导致该模块被加载后,系统搜索该目录中的程序文​​件。同样,模块增加了库,包括目录,以适当的环境变量,以使系统能够找到库和头文件。最后,模块将环境变量OMP_NUM_THREADS到1的值。

采取这些步骤之后,一个新的模块文件被创建,新的专用软件模块可以查看和下载。模块应使用命令是可见 模块无济于事myprogram ,并且可以使用该命令被装载 模块负载myprogram / 1.0 。该模块可以被装载和卸载,就像任何其他模块。卸载模块反转该加载时在模块执行的操作。查看的模块花费加载时的动作,使用命令: 模块显示myprogram / 1.0 .

一个模块需要做环境的变化是每一个软件不同。一些常见的改变是前面加上程序目录路径的环境变量,库目录到LD_LIBRARY_PATH环境变量。意编译通常时使用的模块还需要有报头包括前加到变量,如则将cpath,c_include_path,cplus_include_path,fpath,目录或包括,取决于编译器和语言。其它变量,如PYTHONPATH或R_LIBS可以改变分别为指向本地Python包或r库。可变OMP_NUM_THREADS是通常用于控制OpenMP程序将多少线程产卵。


警告: 

建议避免使用相同的名称已经存在的模块创建模块,因为这可能会导致系统混乱。

某些修改环境变量可能会导致不稳定。特别是,改变LD_LIBRARY_PATH为指向包含动态库的目录,其与操作系统动态库冲突可导致不稳定。一般地,不能没有系统不稳定可使用不同版本的核心库的诸如C库(glibc的)。


 

类别: 
软件