利用spack包管理器一键安装WRF及WRF-Chem

前言:许多人在手动安装WRF时,常常会被其复杂的依赖关系和编译过程中的诸多问题所困扰。然而,通过使用Spack包管理器来安装WRF,可以显著提升安装过程的速度和效率。Spack作为一种先进的包管理工具,它自动化了依赖管理,简化了编译过程,对初学者来说非常友好,使得安装变得快速、简便且高效。

1.下载并复制spack包到linux中

把packet包拷贝到home目录下,注:以下操作均在普通用户下的终端完成

tar -zxvf spack-0.20.2.tar.gz -C ~/ #(解压spack包到home目录下)

 2.安装所需库

sudo apt update #(更新软件包列表)
sudo apt install vim -y #(安装文本编辑)
sudo apt install gcc -y  #(安装gcc编译器)
sudo apt install g++ -y 
sudo apt install gfortran -y #(安装gfortran编译器)
sudo apt-get install build-essential -y #(安装构建工具)
sudo apt-get install git -y
sudo apt-get install gettext -y
sudo apt-get install m4
sudo apt install python3 -y #(安装python语言,要求大于3.6.8版本,可以使用python3 –version查看版本信息)
python3 -c "import ctypes" #(在Python 3中执行一个短小的Python脚本,该脚本导入了Python标准库中的ctypes模块)

 3.安装前预操作

添加目录位置变量,以简化指令的输入

export DIR=/home/用户名/spack
echo $DIR #返回结果应该为/home/xxx/spack

4.spack包操作

执行环境变量,完成spack的配置

source $DIR/share/spack/setup-env.sh 

输入vi ~/.bashrc设置环境变量,,在最后一行加入以下代码,保存后输入:source ~/.bashrc使环境生效。

source /home/用户名/spack/share/spack/setup-env.sh #在最下面一行加入,你setup-env.sh所在路径

 spack激活

mkdir $DIR/../apps_spack #(创建文件)
cp $DIR/../spack/spack.yaml apps_spack/ #(把spack.yaml文件复制)
spack env activate -d $DIR/../apps_spack #(激活spack.yaml环境)

5.软件安装

spack add zlib #(把zlib软件加入spack环境中)
spack install #(安装该软件)
spack add wps@4.3.1 ^netcdf-c+parallel-netcdf+hdf4^hdf5+cxx+fortran^netcdf-fortran@4.6.0 ^wrf@4.3.3 #(把wrf软件及相关包加入spack环境中,相关版本可以输入spack info wps查看)
spack install #(安装该软件,如果出现c++问题,检查spack.yaml,把路径改为/usr/bin/g++)
spack load wps #(加载wps)

如果需要安装WRF-Chem,把wrf改为wrf-chem就行

如果由于网络安装失败,请魔法上网输入以下代码后再次安装

export http_proxy=魔法地址(电脑IP地址):魔法端口 
export https_proxy=魔法地址(电脑IP地址):魔法端口 
#电脑IP地址可以按住windows+R键,输入cmd,回车后再输入ipconfig就可以看到了
#魔法端口取决于你的软件,通过Clash,打开允许局域网连接和系统代理,可以看到默认端口
spack install
spack load wps 

6.设置环境变量

注意:只是安装需求的话这部分可以不操作,但是如果有重新编译WRF需求需要这部分操作(存在部分问题,还需要解决)

新建env.sh脚本

vi $DIR/share/spack/run-env.sh #创建run-env.sh脚本

将以下环境变量设置写入run-env.sh中,保存并退出

#!/bin/bash
# 设置编译器环境变量
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export FC=/usr/bin/gfortran
export F77=/usr/bin/gfortran
export F90=/usr/bin/gfortran

# 设置软件安装路径
export SOFTWARE_HOME=/home/wrf/spack/opt/spack/linux-ubuntu22.04-zen2/gcc-11.4.0/
export HDF5=$SOFTWARE_HOME/hdf5
export NETCDF=$SOFTWARE_HOME/netcdf
export WRF_HOME=$SOFTWARE_HOME/WRF-4.3.3
export GRIB2_HOME=$SOFTWARE_HOME/WRF/lib/grib2

# 更新PATH和LD_LIBRARY_PATH环境变量
export PATH=$WRF_HOME/main:$SOFTWARE_HOME/WPS-4.3.1:$PATH
export LD_LIBRARY_PATH=$HDF5/lib:$NETCDF/lib:$WRF_HOME/lib:$GRIB2_HOME/lib:$LD_LIBRARY_PATH

# 设置其他环境变量
export LDFLAGS="-L$GRIB2_HOME/lib"
export CPPFLAGS="-I$GRIB2_HOME/include"
export JASPERLIB=$GRIB2_HOME/lib
export JASPERINC=$GRIB2_HOME/include

 授予run-env.sh权限

vi $DIR/share/spack/run-env.sh

将run-env.sh写入环境变量,最后保存退出后,source ~/.bashrc使环境变量生效

source /home/用户名/spack/share/spack/setup-env.sh #在最下面一行加入,你setup-env.sh所在路径

7.将软件备份

在所有的步骤完成后,把WRF和WPS文件夹复制一下,在其它地方存一个备份。
spack find -p wps(查找到wps的路径)
cp -rpa wps路径/wrf路径 指定文件夹路径

8.地理信息数据准备


(1)在https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html网站上下载必要的静态数据 
(2)将静态地理数据复制拷贝到Linux中,后续WPS处理需要指向这些数据
(3)批量解压数据

for tar in *.tar.bz2; do tar xvf $tar; done #(批量解压)

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值