【服务器管理】Ubuntu20.04安装包管理工具module配置并且使用

这篇具有很好参考价值的文章主要介绍了【服务器管理】Ubuntu20.04安装包管理工具module配置并且使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么Module

module是一个专门管理环境变量的工具,全称是module environment,一般应用于软件或运行库等设备有多个版本,且需要分别配置这些环境变量。其官网为:
https://modules.readthedocs.io/en/latest/index.html

通常,对于多版本的软件包,我们可以通过修改~/.bashrc文件,通过修改PATHLD_LIBRARY_PATH等全局环境变量来修改。这是最简单粗暴的方法,但是需要熟悉各个软件包的安装位置,在。当软件包数量多的时候,服务器的用户可能不清楚软件包的安装路径,也不清楚具体有那些版本的包可以使用,这就导致软件版本切换非常麻烦。而module则让我们摆脱了这种麻烦。

安装Module

Module 工具可以使用二进制编译安装(过程比较复杂,参考:Installing Modules on Unix),也可以使用 yum/apt 快速安装,如下所示:

  • Redhat/Centos 等使用yum的操作系统,命令如下:
sudo yum install environment-modules
  • Ubuntu 等apt的操作系统,命令如下:
sudo apt-get install environment-modules

注意:本文是在Ubuntu20.04下进行工具安装和管理的,使用的是sudo apt-get install environment-modules,所以安装路径是/usr/share/modules,如果是使用源码安装,则安装路径是由./configure --prefix=/usr/local/tools/modules ...命令的–prefix指定,这个时候,下文相应的路径也得修改为对应的安装位置!

安装 module 工具后,你会发现它并不是一个可执行的二进制文件,你需要对 module 工具进行一次初始化。在 /usr/share/modules/init (注意此处,可能是 module 也可能是 modules) 内部你可以找到针对各个脚本的二进制初始化文件,找到你当前的脚本,source 这个二进制文件,例如你是 bash 脚本,source /usr/share/modules/init/bash之后,你就可以使用 module 工具了。

cd /usr/share/modules/init
ls
source /usr/share/modules/init/bash

为了避免每次打开终端的时候都需要source /usr/share/modules/init/bash,你需要把该命令添加到/etc/profile文件当中,如下所示:

  • 打开/etc/profile文件:
sudo vim /etc/profile
  • 在文件末尾加入以下语句:
if [ -f /usr/share/modules/init/bash ]; then
   source /usr/share/modules/init/bash
fi

配置Module

Module 工具依托于 MODULEPATH 这个环境变量来查找配置信息目录,也就是说你在设置好目录结构,配置好环境变量后,只需要设置这一个 module 的环境变量,那么 module 工具就会自动去查找这个路径下的所有配置信息。

echo $MODULEPATH

返回如下结果:

/etc/environment-modules/modules:/usr/share/modules/versions:/usr/share/modules/$MODULE_VERSION/modulefiles:/usr/share/modules/modulefiles

**注意:**一般情况下,我们安装完module后,就会自动配置好 MODULEPATH 这个环境变量,不需要我们进行额外配置。

当我们希望某个软件包能通过module模块调用时,在安装完软件包之后,需要在/usr/share/modules/modulefiles路径下增加相应的Modulefile文件。因此,我们需要知道如何编写Modulefile文件。

我们可以看一个例子来理解Modulefile文件:
查看/usr/share/modules/modulefiles路径下当前有那些

cd /usr/share/modules/modulefiles
ls

返回如下结果:

dot  module-git  module-info  modules  null  use.own

我们使用module avail命令查看有那些包可以用

module avail

返回如下结果:

---------------------------------------- /usr/share/modules/modulefiles -----------------------------------------
dot  module-git  module-info  modules  null  use.own

我们查看其中的modules文件,

cd /usr/share/modules/modulefiles
vim modules

可以看到如下代码:

#%Module1.0#####################################################################
##
## modules modulefile
##
proc ModulesHelp { } {
        global version prefix

        puts stderr "\tmodules - loads the modules software & application environment"
        puts stderr "\n\tThis adds $prefix/* to several of the"
        puts stderr "\tenvironment variables."
        puts stderr "\n\tVersion $version\n"
}

module-whatis   "loads the modules environment"

# for Tcl script use only
set     version         4.4.1
set     prefix          /usr/share/modules


setenv          MODULESHOME     $prefix
prepend-path    PATH            /usr/bin
prepend-path    MANPATH         /usr/share/man

# enable module versioning modulepath
#module use /usr/share/modules/versions

这里简单解释一下常用的命令:

  • #%Module1.0:帮助识别这个文件为 modulefile 的,没有该语句这个文件不会被识别;
  • prepend-path:把工具路径添加到环境变量的前面;
  • setenv:把你需要的环境变量配置到系统中。

具体各个命令可以参考https://modules.readthedocs.io/en/latest/modulefile.html

特别地,如果一个软件有多个版本,我们可以在/usr/share/modules/modulefiles目录下为这个软件构建一个子目录,然后在子目录下构建多个版本的子目录,在

例如,我这里有两个版本的cuda,安装路径分别是/usr/local/cuda-11.6/usr/local/cuda-12.0,则需要进行以下操作:
1、在/usr/share/modules/modulefiles路径下创建cuda的专属文件夹

cd /usr/share/modules/modulefiles
sudo mkdir cuda
cd cuda

2、在cuda文件夹下撰写不同版本cuda对应的Modulefile文件:

(a) 撰写cuda-11.6的Modulefile文件:

sudo vim 11.6

(b) 添加以下代码并保存:

#%Module1.0#####################################################################

setenv CUDA_HOME /usr/local/cuda-11.6
prepend-path PATH /usr/local/cuda-11.6/bin
prepend-path LD_LIBRARY_PATH /usr/local/cuda-11.6/lib64

© 撰写cuda-12.0的Modulefile文件:

sudo vim 11.6

(b) 添加以下代码并保存:

#%Module1.0#####################################################################

setenv CUDA_HOME /usr/local/cuda-12.0
prepend-path PATH /usr/local/cuda-12.0/bin
prepend-path LD_LIBRARY_PATH /usr/local/cuda-12.0/lib64

3、新打开一个终端,测试可用的软件包:

module avail

返回如下结果:

---------------------------------------- /usr/share/modules/modulefiles -----------------------------------------
cuda/11.6  cuda/12.0  dot  module-git  module-info  modules  null  use.own

可以发现,module工具已经可以使用cuda/11.6cuda/12.0两个版本

其他多版本的软件的配置流程同上,这里总结一下:
1、安装多个版本的软件包;
2、在/usr/share/modules/modulefiles目录下为这个软件构建一个子目录;
3、在该子目录下为每个版本创建一个Modulefile文件,使用setenvprepend-path等命令配置相应的全局变量(这得参考软件本身的全局变量配置);
4、使用source /usr/share/modules/init/bash命令刷新module模块。

使用Module

这里列举一下常用命令:
1、显示可以使用的模块

module avail

2、加载模块

module load/add [模块名称]

3、卸载模块

module unload/rm [模块名称]

4、显示已经加载的模块

module list

本文简单测试一下CUDA的版本切换:

  • 切换到cuda-11.6
module load cuda/11.6
module list

返回如下结果:

Currently Loaded Modulefiles:
 1) cuda/11.6

查看设置是否生效:

nvcc -V

返回如下结果:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_Mar__8_18:18:20_PST_2022
Cuda compilation tools, release 11.6, V11.6.124
Build cuda_11.6.r11.6/compiler.31057947_0
  • 切换到cuda-12.0
module unload cuda/11.6
module load cuda/12.0
module list

返回如下结果:

Currently Loaded Modulefiles:
 1) cuda/12.0

查看设置是否生效:

nvcc -V

返回如下结果:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0

参考:
https://modules.readthedocs.io/en/latest/INSTALL.html
https://www.fasteda.cn/post/22.html
https://blog.csdn.net/Michael177/article/details/121152904文章来源地址https://www.toymoban.com/news/detail-487110.html

到了这里,关于【服务器管理】Ubuntu20.04安装包管理工具module配置并且使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu20.04部署ntp服务器ntpd(ntpdate )

    首先,在终端中更新你的包列表,然后安装NTP。输入下面的命令: 编辑NTP的配置文件,这里我们使用nano文本编辑器,但你也可以使用你喜欢的其他编辑器。 在此文件中,找到以\\\"pool\\\"开头的行,它们定义了NTP将与之同步的服务器。你可以保留默认值,或者根据需要添加/更改。

    2024年02月02日
    浏览(41)
  • 将本地Django项目部署到服务器上(Ubuntu20.04)

    最近因为项目的需求开始正在搭建一个个人网站。在本地完成了项目后端的内容后需要部署到服务器上以供用户访问。因为后端使用的是Django框架,就在网上找了很多有关将Django项目部署到网站上的教程。由于本人在网络这块属于小白,原理了解甚少,在一边参照各种教程一

    2024年02月03日
    浏览(44)
  • Ubuntu 更换IP (服务器)以Ubuntu-live-server20.04为例

    1.切换root登录(默认登录root) 2.输入下面代码,摁Tab键,系统会自动识别并且查找哪一个网卡或者网口的配置文件 多半是(00或者01) 注意:Linux操作系统下 注意空格 3.看到配置文件之后,摁  i  进入编辑模式 ens33:代表网卡名称                                       

    2024年01月22日
    浏览(46)
  • Ubuntu20.04服务器开启路由转发让局域网内其他电脑通过该服务器连接外网

    背景 今天想让一台装有 Ubuntu20.04 系统的服务器在局域网中起到路由器的功能。 目标: 让局域网中所有的电脑都通过这台服务器连接外网。 服务器网卡 服务器的两个网卡: eth0 : 192.168.1.xxx/24 连接局域网 eth1 : 117.22.22.xxx/24 连接外网 基本配置 1、在服务器上开启内核路由转

    2024年02月11日
    浏览(63)
  • Linux | Ubuntu20.04系统使用命令从移动硬盘/U盘拷贝文件到服务器上

    *确认自己移动硬盘、U盘的格式,本文为exfat格式 查看disk默认位置 查看最后的位置,我的显示为 Device, 位置为 /dev/sdb1 ,2048, (后面省略) *注意:此时无法直接查看硬盘内容 进入Linux系统主界面,如果是user的话,获取管理员权限 挂载移动硬盘/U盘 命令如下,其中/dev/sdb1为disk默

    2024年02月14日
    浏览(47)
  • 华为昇腾服务器 ubuntu20.04 Atlas中心推理卡 23.0.RC3 NPU驱动和固件安装指南 02(Atlas 300V pro)(Ascend 310P)(cann)安装流程记录

    参考文章:Atlas 中心推理卡 23.0.RC3 NPU驱动和固件安装指南 02 参考文章:https://www.hiascend.com/document/detail/zh/quick-installation/23.0.RC3/quickinstg/800_3000/quickinstg_800_3000_0013.html 首先看版本配套表,比如我们推理卡是Atlas 300V pro,要看系统是不是支持Atlas 300V pro?找到合适版本的系统(内

    2024年02月01日
    浏览(41)
  • nvidia驱动 && docker镜像cuda ,anaconda,pytorch下载ubuntu20.04&&pycharm远程连接远端服务器docker中的conda环境(完整操作)

    内含一整套操作,从设置容器到远程连接。 操作环境: 服务器:ubuntu 20.04 本机:win10 IDE:pycharm 专业版 下载驱动很容易的,下面我们来介绍一种最简单的方法。    插个小曲,删除驱动代码 参考网站里有很详细的解说,我们只再列出需要的代码。  当输入这个命令时 sudo d

    2024年02月04日
    浏览(51)
  • ubuntu20.04安装FTP服务

    安装 ftp用户 修改配置 以下是一些解释,基本不用改: listen=NO # 阻止 vsftpd 在独立模式下运行 listen_ipv6=YES # vsftpd 将监听 ipv6 而不是 IPv4,你可以根据你的网络情况设置 anonymous_enable=NO # 关闭匿名登录 local_enable=YES # 允许本地用户登录 write_enable=YES # 启用可以修改文件的 FTP 命令

    2024年02月07日
    浏览(28)
  • Ubuntu20.04安装配置gitlab及使用git管理代码超详细教程

    目录 简介 安装教程 安装gitlab 配置Gitlab  登录gitlab  gitlab内存优化  创建用户  创建群组 添加成员进群组 管理群组成员权限   创建项目 分支管理  使用git bash工具 下载git bash 上传代码 使用sourceTree工具创建分支 提交分支 gitlab服务器邮箱的配置(可选) 今日推荐  GitLab是

    2024年02月21日
    浏览(88)
  • ubuntu20.04.3配置DHCP服务器

    实验环境:virtualbox 两台虚拟机:一台ubuntu服务器,一台win7客户机。 虚拟机的网络设置:“内部网络”,在混杂模式中选全部允许。win7也照此设置。  此模式下,虚拟机之间可以互相通信,但宿主机与虚拟机之间不能互相通信,暂时没找到解决办法, 有知道解决办法的可以

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包