在集群中使用虚拟化技术

四、在singularity安装举例:安装自己的R(一)

2022-12-05 15:26:38 admin 234

四、本节介绍如何构建自己的虚拟centos7.6,并运用root权限使用yum编译安装软件,这里以R为例

1、拉取并进入新的镜像,推荐使用北极星集群的docker服务器会快些

在login06(比较快):

singularitybuild --sandbox R-4.1.2  docker://bjxdockerfast:5000/centos7.6_bjx:latest

其他登陆节点

singularitybuild --sandbox R-4.1.2  docker://bjxdocker:5000/centos7.6_bjx:latest

或者使用docker自己服务器:

singularitybuild  --sandbox R-4.1.2  docker://centos:7.6.1810

注意:

1、上述命令的意思是从服务器中拉取centos7.6镜像到沙盒文件夹R-4.1.2中

2、其中的7.6.1810为所需centos版本的tag,可在https://hub.docker.com/搜索到二、

mkdir -p R-4.1.2/appsnew # 在镜像内部为宿主路径建立挂载点,方便将来挂载使用。

singularityshell -B /appsnew -w   R-4.1.2

注意:-B /appsnew:/appsnew ,B为挂载选项;第一个为系统的/appsnew ,第二个为镜像内部的/appsnew,如果内部和外部文件夹相同,只需要写一个 。

 -w 是将沙盒挂载为可写的意思。

安装好必要的软件包

Apptainer> yum install -y gcc gcc-c++ gcc-gfortran readline-devel bzip2-devel libXt-devel fonts-chinese tcl tcl-devel tclx tk tk-devel

Apptainer> yum install -y mesa-libGLU mesa-libGLU-devel libcurl libcurl-devel xz-devel.x86_64 pcre2-devel libicu wget make  which perl libgfortran5

2、获取、编译并安装R

在镜像沙盒下创建tar目录,这里养成一个良好的系统,不要让软件太乱

Apptainer>mkdir  -p /apps/tar   /apps/source

进入目录

Apptainer>cd  /apps/tar

获取源安装文件,并解压后进入解压后的目录

Apptainer>wget https://cran.r-project.org/src/base/R-4/R-4.1.2.tar.gz

Apptainer>tar -zxvf R-4.1.2.tar.gz    ##忽略警告

Apptainer>cd R-4.1.2/

Apptainer>chmod 777 configure  ##添加可执行

3、创建R的安装目录,

Apptainer>mkdir  -p /apps/R/R-4.1.2

4、配置环境并编译

Apptainer>./configure --prefix=/apps/R/R-4.1.2  --enable-R-shlib

Apptainer>make -j10 ;make install

5、创建Rsource文件

Apptainer>vi /apps/source/R-4.1.2.sh

输入以下红色字体的内容:

#!/bin/bash

export PATH=/apps/R/R-4.1.2/bin:$PATH 

也可以:

echo '#!/bin/bash '>/apps/source/R-4.1.2.sh  

echo 'export PATH=/apps/R/R-4.1.2/bin:$PATH' >>/apps/source/R-4.1.2.sh

更改权限 chmod 777 /apps/source/R-4.1.2.sh

6、测试是否可以运行:

Apptainer>source  /apps/source/R-4.1.2.sh

然后执行

Apptainer>R

7、更新并加到虚拟环境里,虚拟环境的加载文件为/environment,类似/etc/rc.local

#更新

Apptainer>echo 'export PATH=/apps/R/R-4.1.2/bin:$PATH' >>/environment

或者:

Apptainer>echo 'source  /apps/source/R-4.1.2.sh'>>/environment

8、输入并执行exit退出虚拟环境

Apptainer>exit

9、打包

singularitybuild R-4.1.2.sif R-4.1.2

##打包的时候出现:"Can't add file 的时候

chmod -R +r  R-4.2.0 就可以,或者删除提示中没有用的文件

10、执行

#这里不需要加载/appsnew

singularityrun R-4.1.2.sif R

 


首页
资源&收费
集群
成果
问答