进阶教程:如何将编译好的 Delft3D 迁移到另一台电脑(免编译版)
如果您已经在某台电脑(Ubuntu 22.04)上成功编译了 Delft3D,完全没有必要在第二台电脑上重复漫长的编译过程。通过以下“打包-解压”的方式,只需 5 分钟即可完成部署。
⚠️ 前置要求: 目标电脑必须安装与源电脑相同的系统版本(推荐 Ubuntu 22.04 LTS)。如果系统版本跨度大(如 20.04 vs 22.04),可能会因底层运行库(glibc)不兼容而失败。
第一阶段:源电脑操作(打包)
在已经编译好 Delft3D 的电脑上执行以下操作,制作“绿色版”压缩包。
1. 打包安装目录
打开终端,进入主目录并打包 delft3d_install 文件夹:
cd ~
# 将安装目录打包为 delft3d_portable.tar.gz
tar -czvf delft3d_portable.tar.gz delft3d_install
2. 导出文件
将生成的压缩包复制到 Windows 磁盘(例如 F 盘),以便通过 U 盘或网络传输:
cp delft3d_portable.tar.gz /mnt/f/
第二阶段:目标电脑操作(部署)
在新的电脑上,先安装好 WSL Ubuntu 22.04,然后执行以下步骤。
1. 安装必要的运行库
虽然不需要编译器(gcc/g++),但程序运行依然需要基础数学库和并行库。请运行:
sudo apt update && sudo apt install -y libnetcdf-dev libnetcdff-dev libopenmpi-dev openmpi-bin libgfortran5
2. 导入并解压
假设您已将压缩包传到了新电脑的 F 盘:
# 复制到 Linux 主目录
cp /mnt/f/delft3d_portable.tar.gz ~
# 解压
cd ~
tar -xzvf delft3d_portable.tar.gz
3. 配置环境变量(关键)
将以下配置写入 .bashrc 文件,让系统知道程序和库的位置:
echo '' >> ~/.bashrc
echo '# Delft3D Portable Config' >> ~/.bashrc
echo 'export PATH=$HOME/delft3d_install/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$HOME/delft3d_install/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
# 修复 MPI C++ 库链接问题
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libmpi_cxx.so' >> ~/.bashrc
# 立即生效
source ~/.bashrc
4. 验证
d_hydro -v
如果显示版本信息,即表示迁移成功。
常见问题与解决方案 (Troubleshooting)
如果运行 d_hydro 时报错,请对照下表解决:
| 错误现象 | 原因分析 | 解决方案 |
|---|---|---|
d_hydro: command not found |
环境变量未生效。 | 运行 source ~/.bashrc,或者检查解压后的目录是否真的在 ~/delft3d_install。 |
error while loading shared libraries: libnetcdf.so.xx... |
缺少依赖库,或者库版本不一致。 | 确保已执行“第二阶段-第1步”的 apt install 命令。 |
undefined symbol: _ZN3MPI3Win4FreeEv |
系统未加载 MPI C++ 接口库。 | 检查 LD_PRELOAD 路径是否正确。运行 find /usr/lib -name "libmpi_cxx.so*" 确认新电脑上的实际路径。 |
version `GLIBC_2.35' not found |
目标电脑系统版本太老(如 Ubuntu 20.04)。 | 无解。必须升级目标电脑系统至 Ubuntu 22.04,或者在旧系统上重新编译。 |
文章评论