Debian下Fortran程序如何部署
小樊
34
2026-01-03 11:56:50
Debian下Fortran程序部署指南
一 环境准备与编译
- 安装编译工具与编译器:sudo apt update && sudo apt install -y gfortran build-essential。验证安装:gfortran --version。
- 单文件编译:gfortran hello.f90 -o hello;建议开启警告与调试信息:gfortran -O2 -Wall -g hello.f90 -o hello。
- 多文件/模块:gfortran -o app main.f90 mod1.f90 mod2.f90。
- 第三方库(示例):sudo apt install libblas-dev liblapack-dev;链接:gfortran main.f90 -o main -llapack -lblas。
二 依赖管理与构建方式
- 使用系统库:通过 apt 安装开发包(如 libopenmpi-dev 等),编译时用 -l库名 链接;库文件通常位于 /usr/lib /usr/local/lib,必要时执行 ldconfig 更新缓存。
- Makefile 自动化示例:
FC=gfortran; FFLAGS=-O2; SRCS=main.f90 mod1.f90; OBJS=$(SRCS:.f90=.o); TARGET=app
$(TARGET): $(OBJS); $(FC) $(FFLAGS) -o $@ $^
clean:; rm -f $(OBJS) $(TARGET)
- Fortran 包管理器 FPM(现代化方式):
- 安装:curl -fsSL https://github.com/fortran-lang/fpm/releases/download/v0.9.0/fpm-0.9.0-linux-x86_64.tar.gz | tar xzf - && sudo cp fpm /usr/local/bin
- 使用:fpm new my_app && cd my_app && fpm run(构建并运行);发布可用 fpm install --profile release。
三 并行与高性能部署
- OpenMP(线程并行):编译加 -fopenmp,运行:./app;可通过环境变量控制线程数(如 OMP_NUM_THREADS)。
- MPI(进程并行):安装 Open MPI(sudo apt install openmpi-bin openmpi-common libopenmpi-dev),编译用 mpif90,运行:mpirun -np 4 ./app。
四 本地运行与交付
- 运行与权限:确保可执行权限(chmod +x app),执行:./app。
- 动态库运行时路径:若使用自定义 .so,编译加 -Wl,-rpath=‘$ORIGIN’ 将库随程序打包,避免部署时设置 LD_LIBRARY_PATH。
- 交付物建议:可执行文件、依赖的 .so/.a、配置/数据文件、README(说明编译与运行方式、依赖版本、线程/MPI 使用)。
五 打包为 Debian 安装包
- 安装打包工具:sudo apt install dpkg-dev。
- 基本流程:在项目根目录创建 debian/,编写 debian/control(示例字段:Package、Version、Architecture、Maintainer、Description、Depends 等),编写 debian/install 指定安装路径(如将可执行文件安装到 /usr/bin),最后打包:dpkg-deb --build your-fortran-app .(生成 .deb)。
- 提示:复杂工程可结合 CMake/FPM 生成构建产物,再按上述步骤打包,便于在多台机器上一致部署。