JASMIN Installation
# 所用平台
系统:Fedora 33 Workstation Edition 64 位
GCC 10.3.1 (Red Hat)
此系统自带 GCC 版本过高,需安装低版本 GCC 4.8.5。
# GCC 4.8.5
下载地址
# 依赖安装
在源码文件夹中 ./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 | |
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 |
# 正常安装
为了防止出错在源码文件夹外编译安装。
cd .. | |
mkdir gccbuild | |
cd gccbuild | |
../gcc-4.8.5/configure --prefix=/usr/local/gcc-4.8.5 | |
make | |
make check | |
sudo make install |
参考
# 错误处理
用高版本 GCC 编译会出现很多不兼容问题。
# stubs-32.h
报错: Error "gnu/stubs-32.h: No such file or directory" while compiling Nachos source code
处理: sudo yum install glibc-devel.i686 libstdc++-devel.i686
不要加 --disable-multilib
编译选项绕过,会导致后面的软件编译失败。
参考
# Cannot find -lstdc++
处理: yum install libstdc++-static glibc-static
参考
# struct ucontext
报错: dereferencing pointer to incomplete type 'struct ucontext'
处理:找到错误源码文件,将 struct ucontext * uc_ = context->cfa
修改为 struct ucontext_t * uc_ = context->cfa
。
参考
# asan_linux.cc
处理:在 asan_linux.cc
中添加头文件 #include <signal.h>
参考
# libc_name_p
报错: cfns.gperf:101:1: error: ‘gnu_inline’ attribute present on ‘libc_name_p’
处理:修改 cfns.h
中的声明和定义
#ifdef __GNUC__ | |
__inline | |
#endif | |
const char * libc_name_p (const char *, unsigned int); |
为
#ifdef __GNUC__ | |
#ifdef __GNUC_STDC_INLINE__ | |
__attribute__ ((__gnu_inline__)) | |
#else | |
__inline | |
#endif | |
#endif | |
const char * libc_name_p (const char *, unsigned int); |
参考
# 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 |
# 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/ | |
make && make check | |
make install |
# netcdf 4.3.2
tar -zxvf netcdf-4.3.2.tar.gz | |
cd netcdf-4.3.2 | |
CPPFLAGS=-I/usr/local/netcdf/include LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf --disable-dap | |
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 LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf | |
make && make check | |
make install | |
make check |
第一次 check 可能因找不到库报错,install 后 check 通过。
参考
# JASMIN 4.5.2
官网:中物院高性能数值模拟软件中心 JASMIN,可申请安装包。
获得安装包后,执行 sh jasmin4-4.5.2-Linux-x86_64.sh
,按提示操作。
建议以版本名作为安装文件夹,如 /home/ning/jasmin4-4.5.2
,不选择自动更新环境变量,在下文中统一设置。
在使用 JASMIN 时需更新项目 CMakeLists.txt
的路径,可参考 OMARE 学习使用(一)。
# 环境变量配置
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/jasmin4-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
会导致这种情况。
# 其他
# 修改选择系统界面时间(root)
vim /etc/default/grub | |
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)" |
参考
# 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