安装rosetta需要提前安装许多依赖。由于笔者第一次用子系统安装rosetta,本来就没怎么用过ubuntu,这次就更抓瞎了。下面把踩过的坑记录一下。
其实安装rosetta的过程不是很复杂。需要以下装备:
1. rosettacommons官网注册并下载rosetta稳定版本。可以找网友提供的账号密码。
License and Download | RosettaCommons
2. 安装依赖,python2.7等
sudo apt-get install essential
sudo apt-get install libboost-dev
sudo apt-get install python
sudo apt-get install zlib1g zlib1g-dev
sudo apt-get install libsqlite3-dev
3.安装OPENMPI
openmpi官网下载安装包,我放在了/mnt/d/home。openmpi的安装路径最好与解压后的源码目录路径不相同,指定安装目录。安装后,以安装路径内有bin文件夹为准。
cd /mnt/d/home
tar -zxvf openmpi-4.0.1.tar.gz
cd openmpi-4.0.1
./configure --prefix="/usr/local/openmpi"
sudo make -j 4
sudo make install
./configure以及后续两步很多报错。make时报错就make clean,make install报错就make uninstall,调整后再重新make和make install。
因为是新安装的wsl子系统,很空。为了安装OPENMPI,还安装其他依赖,印象里还安装了hwloc,jasson,autoconfig,等等。俄罗斯套娃一样。根据报错信息,缺啥装啥。
可以mpirun --version,测试是否安装成功。
4.安装编译器gcc-7,g++-7,有版本要求,太高了不行,比如gcc-9不行。
sudo apt-get install gcc-7 g++-7
如果同时安装了gcc-7和gcc-9,会优先调用gcc-9,也会导致失败,因此需要修改优先调用级别,优先使用gcc-7。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 70 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 90 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7
5.配置环境
将openmpi的路径写入bash。然后source让环境变量和动态库生效,需要权限时加上sudo。
vi ~/.bashrc
#键入i,开始写入
export PATH="usr/local/openmpi/bin:$PATH" #根据自己的安装路径调整
#退出Esc,键入冒号,wq,退出
source ~/.bashrc
sudo ldconfig
将rosetta的路径写入bash。
vi ~/.bashrc
# 添加以下内容
export ROSETTA="/mnt/d/home/rosetta" #根据自己的实际路径和文件夹名称填写
export ROSETTA3_DB="$ROSETTA/main/database"
export ROSETTA_BIN="$ROSETTA/main/source/bin"
export PATH="$PATH:$ROSETTA_BIN"
export LD_LIBRARY_PATH="$ROSETTA/main/source/bin:$LD_LIBRARY_PATH"
如果出现修改bash之后,不能调用/bin,/usr/bin等目录下的命令的问题,就修改PATH,将这些路径都加进去。
6.编译和安装rosetta
解压安装包,cd进$ROSEETA/main/source/,开始编译。报错时,有网友表示可以去掉nover。编译过程挺久的。-j用了4个核,可以写更多点,会编译得更快。
cd $ROSETTA/main/source/
# 使用gcc编译:
./scons.py --nover -j 4 mode=release bin extras=mpi
7.安装完成后测试
antibody.mpi.linuxgccrelease