JASMIN & NEMO Installation (new)

# 所用平台

系统:Fedora 38 Workstation Edition 64 位
GCC 13.2.1 (Red Hat)

# GCC 4.8.5

下载地址

参考

# 依赖安装

sudo yum install glibc-devel.i686 libstdc++-devel.i686 libstdc++-devel.x86_64 
sudo yum install libstdc++-static glibc-static gcc-c++

在源码文件夹中 ./contrib/download_prerequisites 可下载好 mpfr-2.4.2,mpc-0.8.1,gmp-4.3.2,此外还需下载 isl-0.11.1,cloog-0.18.0 并解压到源码文件夹。

cd gcc-4.8.5
./contrib/download_prerequisites
wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.11.1.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
tar -jxvf isl-0.11.1.tar.bz2
tar -zxvf cloog-0.18.1.tar.gz
mv isl-0.11.1 isl
mv cloog-0.18.1 cloog

# 正常安装

为了防止出错在源码文件夹外编译安装。不指定 enable-language 时默认安装所有语言,但会有库缺失,可能编译不通过。

```bash
cd ..
mkdir gccbuild
cd gccbuild
../gcc-4.8.5/configure --prefix=/usr/local/gcc-4.8.5 --enable-languages=c,c++,fortran 
make
make check
sudo make install

参考

# 错误处理

用高版本 GCC 编译会出现很多不兼容问题。此版本已修复大部分问题。

# bool spill_indirect_levels 类型错误

修改 x_spill_indirect_levels 类型为 unsigned char .

参考

# GDB 9.2

由于使用旧版 gcc 时系统 gdb 不可用,需重新编译安装旧版 gdb。

下载地址

sudo install texinfo !编译gdb手册用
tar zxvf  gdb-9.2.tar.gz
cd gdb-9.2
mkdir build
cd build
../configure --disable-host-shared --prefix=/usr/local/gdb-9.2
make
sudo make install

# 错误处理

# #error “Please include config.h first.”

nat/amd64-linux-siginfo.c: Include “gdbsupport/common-defs.h” (which in turn includes <gnulib/config.h>) before include of <signal.h>.

参考

# JASMIN 4.5.2

官网:中物院高性能数值模拟软件中心 JASMIN,可申请安装包。
获得安装包后,执行 sh jasmin4-4.5.2-Linux-x86_64.sh ,按提示操作。
建议以版本名作为安装文件夹,如 /home/ning/jasmin-4.5.2 ,不选择自动更新环境变量,在下文中统一设置。
在使用 JASMIN 时需更新项目 CMakeLists.txt 的路径,可参考 OMARE 学习使用(一)

# Netcdf 4.4

下载地址
root 登录,启用 GCC 4.8.5 后 →参考本页环境变量配置

# zlib 1.2.8

tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/netcdf
make && make check
make install

# hdf5 1.8.13

tar -zxvf hdf5-1.8.13.tar.gz
cd hdf5-1.8.13
./configure --prefix=/usr/local/netcdf --with-zlib=/usr/local/netcdf/ --enable-shared --enable-parallel 
make && make check
make install

# netcdf 4.3.2

修改 libsrc4/nc4file.c ,参考这里

tar -zxvf netcdf-4.3.2.tar.gz
cd netcdf-4.3.2
CPPFLAGS=-I'/usr/local/netcdf/include -I/home/ning/jasmin-4.5.2/include' LDFLAGS=-L/usr/local/netcdf/lib   ./configure --prefix=/usr/local/netcdf --disable-dap --enable-parallel-tests 
make && make check
make install

# netcdf-fortran 4.4.0

export LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH
tar -zxvf netcdf-fortran-4.4.0.tar.gz
cd netcdf-fortran-4.4.0
CPPFLAGS='-I/usr/local/netcdf/include -I/home/ning/jasmin-4.5.2/include' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf --enable-parallel-tests
make && make check
make install
make check

第一次 check 可能因找不到库报错,install 后 check 通过。

参考

# Nemo

# xios

svn checkout  http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-2.0 xios-2.0

Then modify files arch-GCC_LINUX.* in arch , add the -ldl flag to HDF5_LIB in arch-GCC_local.path if build hdf5 library as a not shareable. Remove -lcurl flag. Check the used hdf5 version.

The boost_dir and OASIS_dir are not necessary, just leave them.

Finally, run

./make_xios --arch GCC_local

# Nemo

svn checkout https://forge.ipsl.jussieu.fr/nemo/svn/NEMO/releases/release-4.0 nemo4.0

Copy and rename an configuration file as arch-gfortran_local.fcm from an architecture similar to our own. Set the following variables:

%NCDF_HOME    /usr/local/path/to/netcdf
%HDF5_HOME    /usr/local/path/to/hdf5
%XIOS_HOME    /home/$( whoami )/path/to/xios-trunk

Compile a reference configuration:

./makenemo -m 'gfortran_local' -n 'NW2' -r 'ORCA2_ICE_PISCES' del_key 'key_top key_nosignedzero' -j20

# 环境变量配置

.workenv
export PATH="/usr/local/gcc-4.8.5/bin:$PATH"
export LD_LIBRARY_PATH=/usr/local/gcc-4.8.5/lib64:$LD_LIBRARY_PATH
export PATH="/usr/local/gdb-9.2/bin:$PATH"
export LD_LIBRARY_PATH=/usr/local/gdb-9.2/lib:$LD_LIBRARY_PATH
export NETCDF=/usr/local/netcdf
export PATH=$NETCDF/bin:$PATH
export LD_LIBRARY_PATH=$NETCDF/lib:$LD_LIBRARY_PATH
CPPFLAGS='-I/usr/local/netcdf/include'
export LDFLAGS='-L/usr/local/netcdf/lib'
export PATH="/home/ning/jasmin-4.5.2/bin:$PATH"
echo 'Env var loaded.'

使用 Jasmin 前执行 source .workenv

若在 .bashrc 中设置 gcc 变量会导致系统启动失败无法进入登录界面( F2 可看到系统加载失败信息),此时需要用 Linux 系统安装 U 盘启动新系统(不安装!可在 Fedora 官网下载 U 盘写入工具)后挂载本机磁盘文件系统,修改 GCC-4.8.5 文件夹路径,删除 .bashrc 中新增的路径及 /etc/ld.so.conf 新增的路径,这时可以进入登录界面。移走 /etc/ld.so.cache 重置 ldconfig

若反复卡死在登录界面可按 ctrl+alt+F2 命令行登入,删除追加的环境变量。在 .bashrc 中设置 Netcdf 的 LD_LIBRARY_PATH 会导致这种情况。

# 其他

# samba 文件共享服务 (root)

官方手册: How to create a Samba share

ifconfig 查看 samba 服务 ip
比如 180.170.100.21
在 mac 访达中访问服务器 smb://180.170.100.21
在 Windows 运行中访问服务器 \\180.170.100.21

其他参考: Samba 服务器超详细安装、配置

  • 服务管理 service smb stop/start/restart
  • 状态查看 sudo smbstatus

# matlab

安装时图形化窗口打不开,需查看 ./bin/glnxa64/MATLABWindow 缺失的库
sudo rm /bin/glnx64/libfreetype.so*

参考

# zsh

参考

p10k 需要安装对应字体。

更新于 阅读次数