以在虚拟机中安装lubuntu24.04和使用lubuntu编译WRFV4和WPS

封面

写在前面

1.为什么要以lubuntu为基础linux系统编译wrf和wps?

  当然是有趣首要的目的是基于mpi编译而言,lubuntu相较于其他的linux系统而言最为合适。相比于Centos系,Centos7已经失去了支持,Centos8太新,且gcc最低版本仅可以选择11,通过本人的测试其无法完成对mpich编译(经过本人测试gcc13又可以编译了,估计是bug给修好了)。对于Ubuntu系来说,其最大的一个优点就是可以自由选择gcc和g++的版本(最低支持到gcc-9),但Ubuntu太过臃肿,对于新入门的初学者而言配置要求较高(特别是在虚拟机环境中运行)。

简而言之,使用lubuntu有以下几个优点:

  • 轻量化
  • 依托于apt包管理器,构建较为简单(如果有root权限,大多包可以直接安装而不用编译安装)
  • gcc版本可自由选择
  • 拥有教程(本教程)

2. 本教程使用的编译器

  本教程使用mpich编译器对相关的库和wps、wrf进行编译。当然,各位读者也可以使用别的编译器(如Intel的ifort或者英伟达的HPC等),但相关的参数可能因为编译器不同而需要额外调节,本教程能力有限,请有相关需要的读者参考对应的资料。

3. 编译wrf和wps的步骤

  1. 下载安装必要的依赖库和编译软件(gcc、g++、make等等)
  2. 下载指定版本的zlib、mpich、HDF5、netCDF(C & Fortran)和JASPER以及LIBPNG包,并分别进行编译安装。
  3. 分别下载WRFV4和WPS并进行编译
  4. 下载GEOG数据,并在namelist.wps中启用

教程正文

说明

  1. 本教程的除了zlib、mpich、HDF5、netCDF以及最终的WPS和WRFV4外,其他库和依赖均采用lubuntu自带的或conda包管理器进行安装,如果读者采用的是大型机,没有管理员权限且缺失相应的包,请自行搜索相应的包的编译安装方法代替使用包管理器进行安装,本教程不再赘述。
  2. 本教程不涉及虚拟机的安装等步骤,如有需要,请自行搜索相应的教程,且本教程仅使用于虚拟机的安装,未测试使用实体机安装的效果,如果采用实体机,请自行测试教程安装效果。

如何开始

关于虚拟机软件的安装这里就不再赘述,不过请务必留至少50G的存储空间供给虚拟机使用,因为就地形数据而言就需要占29G的空间,太少可能后期不够用。推荐80G及以上,才不用担心后期的储存不够用而扩容的问题。且虚拟机设置的内存推荐大于8G,处理器核心数量推荐大于8核。
推荐配置
1. 安装lubuntu和设置安装虚拟机工具
1.1. 安装lubuntu
将下载好的lubuntu镜像文件地址输入到VM虚拟机中的虚拟光驱中。
配置虚拟光驱
配置好后启动虚拟机,进入安装引导界面,此时之间敲回车即可
安装引导
此时耐心等待进入安装界面即可。
选择语言为中文并点击”Install Lubuntu“以进行下一步
点击Install选项
此时耐心等待,即可进入正式安装步骤。
进入安装界面后,点击下一步,地点和键盘布局设置也不需要更改,接着点击下一步。进入Customize选项后勾选如下的选项并点击下一步。
选择虚拟机管理器并下一步
如果你目前是Linux初学者,请直接选择第一项,将硬盘分为一个区并初始化挂载点,如果你已经有了一定的Linux使用经验的化可以自己手动分区并设置挂载点(不过老手应该早就跳过这个Linux 的安装步骤了)
自动分区并下一步
下一步为设置用户信息和密码,这里根据你自己的喜好设置即可,但请一定要记住你设置的密码,之后登陆和使用sudo获取管理员权限均使用的是这个密码,设置完后点击下一步。
设置用户名和密码
然后点击安装,等待安装完成即可。
完成后按照提示点击重启,重启过程中可能会提示按enter键继续,按照提示操作即可。
1.2. 虚拟机vmtool配置
进入系统后输入之前设置的密码登陆系统(所以设置的密码一定要记住)。成功进入系统后即可开始虚拟机工具的配置。
点击Vmware顶部的窗口的“虚拟机-安装VMware Tools工具”并点击弹出窗口的“是”加载安装虚拟光驱。
此时打开lubuntu自带的文件管理器即可发现多出了一个虚拟光驱,将光驱中的VMwareTools-10.3.23-16594550.tar.gz(可能名字有所不同,就是第一层目录里的.tar.gz文件)复制到工作文件夹中(/home/用户名/ 文件夹)中,并在该目录中打开终端。
在该文件夹中打开终端
运行下列命令解压并安装VMTools:

$ tar -xzvf VMwareTools-10.3.23-16594550.tar.gz # 换成你复制的文件的名字  
$ cd vmware-tools-distrib/  
$ sudo ./vmware-install.pl # 需要输入密码    

建议重启虚拟机再进行下一步。
安装open-vm-tools-desktop最终完成对虚拟机的配置。

$ sudo apt-get install open-vm-tools-desktop  

安装过程中会提示是否替换原配置文件,均选择y。配置完成后重启,此时在虚拟机上复制的内容可以直接粘贴到物理机上,文件也可以直接拖拽,反之亦然。
自此完成了lubuntu的安装和虚拟机的配置。

2. 编译前准备
在进行编译前,可以先安装相应的gcc和g++并启用,以及make等编译必须的依赖,同时创建wrf的构建文件夹等初始工作以便后续步骤可以顺利进行。
2.1 安装依赖
首先安装必要依赖

$ sudo apt-get install gcc g++ # 安装gcc和g++
$ sudo apt-get install make # 安装make
$ sudo apt-get install gfortran # 安装gfortran
$ sudo apt-get install csh ksh m4 # 安装csh、ksh、和m4
$ sudo apt-get install libxml2
$ sudo apt-get install libxml2-dev #安装libxml2

若安装成功,执行gcc --version 则会有如下的打印内容:
成功切换gcc和g++版本
官方版本的WRF安装手册此时将会有个对gcc等编译工具的测试步骤,但经由apt包管理器安装的gcc和gfortran一般不会出现错误,因此该步骤可以忽略。

2.2 创建目录和下载依赖源文件
回到工作目录,创建WRF_BUILDWRF_LIBS以及Source三个目录,其中WRF_BUILD是最后构建的WRF、WPS所在的目录。WRF_LIBS存放编译安装好的依赖文件。Source存放下载来的源文件。

$ cd ~
$ mkdir WRF_BUILD WRF_LIBS Source
$ cd ./Source

进入到Source目录后,使用wget下载所需要的所有依赖,这里建议下载和教程中一致的版本,否则很有可能在编译时出现问题。

$ wget https://www.zlib.net/zlib-1.3.1.tar.gz # 下载zlib
$ wget https://www.mpich.org/static/downloads/3.4/mpich-3.4.tar.gz # 下载mpich
$ wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.5/src/hdf5-1.10.5.tar.gz # 下载hdf
$ wget https://downloads.unidata.ucar.edu/netcdf-c/4.9.2/netcdf-c-4.9.2.tar.gz # 下载netCDF-c
$ wget https://downloads.unidata.ucar.edu/netcdf-fortran/4.5.3/netcdf-fortran-4.5.3.tar.gz # 下载netCDF-Fortran
$ wget http://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz # 下载jasper
$ wget http://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz #下载libpng
$ for item in *.tar.gz;do tar -xzvf $item;done # 解压所有压缩包

2.3 加载必要的环境变量
在所有编译工作进行前,需要先加载一些环境变量,以便编译可以顺利进行。

$ vim ~/.bashrc # 打开当前用户的依赖配置文件

# 不会使用vim的也可以使用更简单的nano代替,或是学习一下vim的使用
# 接着在打开的文件最下面加入如下的命令

export LIBBASE=$HOME/WRF_LIBS
export NETCDF=$LIBBASE
export ZLIB=$LIBBASE
export HDF5=$LIBBASE
export JASPER=$LIBBASE
export PHDF5=$LIBBASE
#退出vim后执行下列命令来立刻应用环境变量
$ source ~/.bashrc

自此,便完成了编译之前的所有准备
3.编译和安装依赖
3.1 编译mpich
mpich 并不是WRF运行的必须库文件,也有例如HPC和ifor等竞品,甚至WRF可以直接使用gfortran进行编译安装(但是这样编译就不能计算多层嵌套了),但由于其开源、免费以及便于编译安装,能够使用WRF全功能等原因,本教程使用mpich进行对其他依赖以及WRF和WPS的编译安装。下面将开始安装此并行计算库。

$ cd mpich-3.4/ #进入目录
$ ./configure \-prefix=$LIBBASE/mipch --with-device=ch4:ofi --with-device=ch3 FFLAGS=-fallow-argument-mismatch --with-included-apr  #进行编译前的配置
$ make # 编译
$ make install # 编译安装

在编译安装好后还需要导入mpich的环境变量,以便在下面的编译中使用。

$ vim ~/.bashrc 
# 打开文件,在最后加入下列命令
export PATH=$LIBBASE/mpich/bin:$PATH
export FC=mpifort
export CC=mpicc
export CXX=mpicc
export F77=mpif77
# 退出vim
$ source ~/.bashrc #记得在当前终端生效

若构建和安装顺利,则此时执行mpicc --version会显示下面的信息:
成功显示
zlib的编译安装较为简单,不需要额外的参数即可编译安装成功。

$ cd ../zlib-1.3.1/
$ ./configure --prefix=${LIBBASE}
$ make
$ make install

编译安装hdf5需要在make后单独做一步检查,以确定编译正确。

$ cd ../hdf5-1.10.5/
$ ./configure --prefix=${HDF5} --enable-parallel --with-zlib=${ZLIB} --enable-fortran --enable-shared 
$ make
$ make check #编译后检查,如果出现问题,可以试试重新编译
$ make install #安装

然后开始安装netCDF-C和netCDF-Fortran,从某个版本开始,netCDF分为了这两个版本,该教程将从netCDF-C先开始安装。
在编译之前,需要先通过apt安装curl-dev依赖,不然netCDF不能正确编译。

$ sudo apt-get install libcurl4-openssl-dev # 安装依赖

接着开始正式编译安装。

$ cd ../netcdf-c-4.9.2/
$ ./configure --enable-shared --enable-parallel-tests --enable-netcdf4 --disable-filter-testing --disable-dap --prefix=${NETCDF} CC=mpicc CPPFLAGS="-I${HDF5}/include" LDFLAGS="-L${HDF5}/lib" # 配置编译内容,请不需要在可以编译的情况下随意修改,不然在编译构建WRF时很可能出错
$ make
$ make install

若安装成功,会显示下面的提示:
成功提示
接着编译netCDF-Fortran

$ cd ../netcdf-fortran-4.5.3/
$ ./configure --enable-parallel-tests --enable-shared --prefix=${NETCDF} CPPFLAGS="-I${NETCDF}/include" LDFLAGS="-L${NETCDF}/lib" LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${NETCDF}/lib LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lz"  # 同样非必要别乱改
$ make #注意如果make check则会测试失败,进而导致编译失败,但正常make可以通过,且对后续安装没有影响
$ make install

同样安装成功会有如下信息:
成功提示

Jasper和Libpng的安装较为简单,与上面一致。

$ cd ../jasper-1.900.1/ # 编译安装jasper
$ ./configure --prefix=$LIBBASE
$ make
$ make install
$ vim ~/.bashrc #这时需要添加环境变量,同上

export JASPERLIB=$LIBBASE/lib
export JASPERINC=$LIBBASE/include

$ source ~/.bashrc # 同上

$ cd ../libpng-1.2.50/ #开始安装libpng
$ ./configure --prefix=$LIBBASE
$ make 
$ make install

全部安装完毕后需要先对netCDF和HDF5进行测试,确认功能正常后再正式进入WRF和WPS的安装。

3.2 测试依赖可用性
由于netCDF和mpi在WPS和WRF的构建中至关重要,因此需要有一定的方法测试这两个依赖编译安装的正确性,好在WRF给我们提供了相关的测试文件,仅需下载运行即可进行测试

$ cd ~ # 回到工作目录
$ mkdir TEST # 创建测试文件夹
$ wget http://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_NETCDF_MPI_tests.tar # 下载提供的测试样例
$ tar xvf Fortran_C_NETCDF_MPI_tests.tar # 解包测试文件
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${LIBBASE}/lib #临时导入环境变量
$ cp ${NETCDF}/include/netcdf.inc . # 复制依赖到当前目录
$ gfortran -c 01_fortran+c+netcdf_f.f
$ gcc -c 01_fortran+c+netcdf_c.c
$ gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -L${NETCDF}/lib -lnetcdff -lnetcdf
$ ./a.out #测试

若执行完后出现如下的信息,则表示netCDF编译安装正确:
安装正确
接着进行对mpi的测试

$ mpif90 -c 02_fortran+c+netcdf+mpi_f.f
$ mpicc -c 02_fortran+c+netcdf+mpi_c.c
$ mpif90 02_fortran+c+netcdf+mpi_f.o 02_fortran+c+netcdf+mpi_c.o -L${NETCDF}/lib -lnetcdff -lnetcdf
$ mpirun ./a.out #同样输入命令进行测试

同样如果编译安装成功会有如下显示:
mpi编译安装成功
若netCDF和mpi均测试成功,则可以进入最重要的WPS和WRF的编译安装步骤。

4. 编译和安装WPS和WRF
4.1 下载WPS和WRFV4
本教程将编译安装WPS4.4和WRF4.4.2,其他版本由于作者本人并未测试过,但若大版本不变步骤应该是一致的

$ cd ~/WRF_BUILD/ #进入之前创建的WRF构建目录
$ wget https://github.com/wrf-model/WRF/releases/download/v4.4.2/v4.4.2.tar.gz # 下载 WRF4.4.2
$ wget https://codeload.github.com/wrf-model/WPS/tar.gz/refs/tags/v4.4 # 下载 WPS4.4

首先进行WRF的编译安装,在编译前,需要一些前期准备,否则将会编译失败

$ sudo apt-get install libtirpc-dev # 安装WRF所需依赖
$ tar xzvf v4.4.2.tar.gz #解压WRF

然后编译安装WRF

cd WRF
./configure #配置编译方式

此时会出现如下界面:
WRF选择界面
鉴于本教程以mpich为编译器,因此选择34作为编译方式,然后选择1(基础设置)。配置完成后,输入命令./compile em_real >& compile.log即可开始编译,此时编译可能需要一定的时间,时间视给虚拟机的配置而定,若编译不成功,可以去compile.log中寻找出错原因,若编译正确完成,则cat compile.log后有如下信息:
成功编译WRF
或者也可以使用ls查看是否有生成相应的exe文件
生成文件
最后编译WPS,在此之前,需要导入WRF的环境变量。自此,本教程的主要部分就完成了:

$ vim ~/.bashrc #末尾加上环境变量
export WRF_DIR=$HOME/WRF_BUILD/WRF #导入环境变量
#退出vim
$ source ~/.bashrc

$ cd .. # 从wrf目录中出来
$ tar xzvf v4.4 #解压下载好的WPS
$ cd WPS-4.4/ # 进入WPS目录
$ ./configure

和WRF编译一样,会出现选择界面让你选择,这时候需要选择第3项
WPS选择
最后进行WPS编译

$ ./compile >& compile.log

该编译较快,若编译成功,ls -l | grep .exe查看生成的exe文件会出现如下信息:
WPS成功特征
即生成了geogrid、ungrib和metgrid三个WPS预处理数据的程序。
若你能够做到这里,恭喜你,对于WRF和WPS的安装已经完成,后文的下载地形数据以及安装ncl均为非必须项,你可以使用自己的地形数据,也可以使用wrf-python等进行后处理。

5.(附) 下载地形数据
首先进入WRF和WPS同级目录,即为WRF_BUILD目录之中

$ cd ~/WRF_BUILD/
$ wget http://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory.tar.gz # 下载地形数据,该数据比较大(29G),需要耐心等待
$ tar xzvf geog_high_res_mandatory.tar.gz #解压文件

解压完成后配置WPS的namelist.wps文件,找到geog_data_path项,将其改成geog_high_res_mandatory解压后的WPS_GEOG目录的位置即可。

6. (附)使用MiniConda安装ncl

ncl是对WRF输出数据进行后处理较为好用的程序,在linux中,可以使用MiniConda安装该程序

$ cd ~ # 进入工作目录
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 下载miniconda
$ sh Miniconda3-latest-Linux-x86_64.sh # 运行安装程序

此时叫你按Enter键继续,然后还需要看完所有条款才能继续,可以使用PgDn键翻页到最下方,输入yes回车继续,然后回车安装到默认位置即可。
在使用之前,需要先配置环境变量

vim ~/.bashrc #把下面的内容粘在最末尾
export PATH=$HOME/miniconda3/bin:$PATH
# 退出vim
$ source ~/.bashrc
$ conda init # 初始化conda

此时输入conda -V即可显示出其版本号。
最后开始安装ncl

$ conda update -n root --all #更新包
$ conda create -n ncl_stable -c conda-forge ncl # 创建名为ncl_stable 环境并安装ncl

自此ncl就安装完成了,如果以后需要运行ncl绘图代码,则需要先进入ncl_stable环境,具体进入方法为:

source activate ncl_stable #激活环境

此时在命令行最左侧会有显示环境名的括号存在,如下图所示:
ncl配置成功
自此全部安装均已完成,WPS和WRF均可使用。恭喜!

参考文章

https://github.com/agumartina/WRFv-4.1.2-Configure-on-CentOS8

https://beltxman.com/3874.html

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在VMware安装Lubuntu虚拟机,您需要按照以下步骤进行操作: 1. 首先,您需要下载并安装VMware软件。您可以从VMware官网下载,并按照下载页面上的说明进行安装。 2. 安装完成后,您需要下载Lubuntu的官方镜像。您可以从Lubuntu官网下载,并选择与您的VMware版本兼容的镜像文件进行下载。 3. 打开VMware软件,点击「新建虚拟机」按钮。按照向导的提示,选择「典型(推荐)」安装类型,并在后续步骤选择Lubuntu镜像文件作为虚拟机的操作系统。 4. 在虚拟机设置过程,您可以根据需要对虚拟机的硬件配置进行调整,例如分配的内存、处理器数量、硬盘容量等。按照向导的提示完成虚拟机设置。 5. 完成虚拟机设置后,您可以点击「启动虚拟机」按钮,开始Lubuntu虚拟机安装过程。按照Lubuntu安装程序的指引,选择安装语言、键盘布局和目标硬盘等,并完成Lubuntu安装。 6. 安装完成后,您可以按照Lubuntu的初始化和基本配置步骤,对系统进行初始化设置和基本配置,以满足您的需求。 总结起来,您需要下载并安装VMware软件,下载Lubuntu的官方镜像,创建一个新的虚拟机,并按照向导的提示进行设置和安装Lubuntu系统。完成安装后,可以根据需要对Lubuntu系统进行初始化和基本配置。希望这些步骤能够帮助您成功在VMware安装Lubuntu虚拟机
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值