Centos 7
modules
官网
document
tcl语言快速入门
tcl语言快速入门2
使用modules切换不同的环境,但配置这个你要去学一门语言tcl!不过不用害怕,tcl十分简单,只要学过其他语言,1~2个小时完全搞定。其实也不用学那么多,只要看基本的tcl变量赋值和modulfile的说明文档也是可以!
安装
#centos
sudo yum install -y environment-modules
#ubuntu
sudo apt-get install environment-modules
配置 这里可以交给管理员
创建module命令(实际执行modulecmd应用)
sudo vim /etc/profile
或者 vim ~/.bashrc
module ()
{
eval `/usr/bin/modulecmd bash $*`
}
# 告诉系统,多了一个存放modulefiles的路径
export MODULEPATH=$MODULEPATH:/public0/software/modulefiles
编写modulefiles
用tophat试一试,下载tophat的二进制文件,解压直接可以用的。
建立一个tophat modulfile 存放目录
mkdir -p tophat
cd tophat
编辑 tophat 版本信息
vim 2.1.1
#%Module1.0
proc ModulesHelp { } {
global dotversion
puts stderr "\ttophat 2.1.1"
}
module-whatis "tophat 2.1.1"
set version 2.1.1
conflict tophat
prepend-path PATH /public0/software/exe/tophat-2.1.1.Linux_x86_64
vim 2.1.0
#%Module1.0
proc ModulesHelp { } {
global dotversion
puts stderr "\ttophat 2.1.0"
}
module-whatis "tophat 2.1.0"
set version 2.1.0
conflict tophat
prepend-path PATH /public0/software/exe/tophat-2.1.0.Linux_x86_64
参数说明:
#%Module1.0 #必须要
proc ModulesHelp { } { #这里有几个空格是必须
global dotversion
puts stderr "\ttophat 2.1.0" #puts 就是print的意思
}
module-whatis "tophat 2.1.0" #
set version 2.1.0 #set是赋值,将 2.1.0 赋值给变量 version
conflict tophat #冲突
prepend-path PATH /public0/software/exe/tophat-2.1.0.Linux_x86_64
# prepend-path 顾名思义加入到PATH 前面,整句话就是把/public0/software/exe/tophat-2.1.0.Linux_x86_64 添加给环境变量PATH,并放在前面。
#实际使用时可能要添加很多,比如 LD_LIBRARY_PATH
复制到modulefiles 目录
cd ..
sudo cp -r tophat/ /etc/modulefiles/
#或者
cp -r tophat/ /public0/software/modulefiles/
#设置目录权限为777,方便共同维护,这样其他用户可以在tophat这个文件夹加入他的文件
chmod 777 /public0/software/modulefiles/tophat/
大功告成!试一试吧!
# 查看有哪些版本
module avail
module load tophat/2.1.1
tophat --version
#结果:TopHat v2.1.1
module unload tophat/2.1.1
module load tophat/2.1.0
tophat --version
# 结果是:TopHat v2.1.0
不用再担心版本冲突了。
小结:可以在/etc/profile添加系统默认版本到PATH,登录就可以用!想切换就用module!
我想登录就用某一版本,而不是系统默认版本怎么办?
vim ~/.bashrc
#for bash shell
vim ~/.zshrc
#for zsh shell
module load tophat/2.1.1
这样,你登录的时候的tophat版本就是 2.1.1,而不是系统的2.1.0
conda
待研究....
安装minicoda就好,minicoda相对anaconda就是没有安装其他任何包,这样挺好的,以免后面又有包冲突,选择python2.7的miniconda,目前很多基础包还是python2.7。假如你使用python3,不用担心,python2.7或者python3的conda都是有两个版本的python,唯一区别是一些默认参数的使用,详见官网。
安装
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
bash Miniconda2-latest-Linux-x86_64.sh #一路默认就行,装在你的home目录里面
使用
link
bioconda
待研究....
conda config --add channels conda-forge
conda config --add channels defaults
conda config --add channels r
conda config --add channels bioconda
virtualenv
参考
配置服务器运行环境
使用Environment Module设置运行环境
心得
管理实验室的服务器有一年多,服务器配置是个麻烦的事情,还是蛮有挑战的。实验室常用的人才有6~7个人,加一些本科生用户在十多个,三台服务器。没有做集群,想机子多了再做集群,由于历史的原因,先前的两台机用Ubuntu的系统,而我最求系统稳定,在最新的机子上装的Centos7,有些硬件厂商可能没有支持到Ubuntu的新版本呢,对于我又要做科研又要管理这些,精力实在是十分有限的,所以Centos 7是我的选择。还有使用的过程也发现很多软件,不仅仅是旧软件,在Centos 7是装起来还是轻松太多,Ubuntu 经常出现包依赖问题,耗费我很多时间,把我搞得精疲力竭,都没时间做重要的事。爱折腾的人可以考虑Ubuntu,说有很多新的features!
最大的问题是软件包版本问题,一开始我都是统一安装在系统环境里面,这样只要装一次,所有用户都可以使用,出于这种考虑是因为很多用户是新手,刚花费大量时间看了生物信息学的文章,想实现,安装软件是个很大的门槛,统一安装软件会方便他们。以为很好,后面人多了问题就大了,不同的同学有不同的需求,就说samtools 有0.19以前的,1.3以后的,而且命令不兼容,升级后有些用户的pipeline就跑不动了,或者跑到一半没结果,不知道什么问题,花很多时间去找!最后是这个问题,实在是很痛苦!
实验室也有天河二号的账号,天河二号对软件版本的管理使用module,所以借鉴他们我也在自己的服务器上装上这个开源的管理软件!