1. 准备Fortran源代码
确保你的Fortran项目包含完整的源代码文件(如.f90、.f格式),并整理好项目目录结构(例如将主程序、模块、子程序分类存放)。
2. 安装必要工具与依赖
在Debian系统上,需安装以下工具和库:
sudo apt update && sudo apt install gfortran build-essential安装gfortran(Fortran编译器)及gcc、make等基础构建工具;sudo apt install dpkg-dev debhelper安装dpkg-dev(Debian打包核心工具)和debhelper(辅助构建.deb包的工具);sudo apt install liblapack-dev libblas-dev安装系统提供的开发库。3. 构建项目(编译与链接)
根据项目复杂度选择构建方式:
gfortran main.f90 -o my_program;Makefile文件,定义编译规则(如指定编译器FC=gfortran、编译选项FFLAGS=-O2、源文件SRCS=main.f90 module1.f90、目标文件OBJS=$(SRCS:.f90=.o)、最终程序TARGET=my_program),然后执行make编译、make clean清理临时文件;wget https://github.com/fortran-lang/fpm/releases/download/v0.9.0/fpm-0.9.0-linux-x86_64 && chmod +x fpm-0.9.0-linux-x86_64 && sudo mv fpm-0.9.0-linux-x86_64 /usr/local/bin/fpm安装Fortran程序包管理器FPM,然后在项目根目录执行fpm build(编译)和fpm run(运行),FPM会自动处理依赖和构建流程。4. 创建Debian打包目录结构
在项目根目录下创建debian文件夹(用于存放打包元数据),并生成以下关键文件:
control文件:记录软件包元数据,示例如下:Source: my-fortran-program # 源码包名
Section: utils # 所属分类(如utils/tools/science)
Priority: optional # 优先级(optional/recommended/essential)
Maintainer: Your Name <your.email@example.com> # 维护者信息
Build-Depends: debhelper (>= 9), gfortran # 构建依赖(debhelper版本+Fortran编译器)
Standards-Version: 3.9.5 # 符合的Debian标准版本
Package: my-fortran-program # 二进制包名(与源码包名可不同)
Architecture: amd64 # 目标架构(amd64/arm64/all等)
Depends: ${misc:Depends}, ${shlibs:Depends} # 运行依赖(自动填充辅助工具和共享库)
Description: A simple Fortran program # 短描述(一行)
This is a longer description of the program's functionality. # 长描述(多行,可选)
install文件:定义安装路径,示例如下(将可执行文件安装到/usr/bin):mkdir -p ${DESTDIR}/usr/bin
install -m 755 my_program ${DESTDIR}/usr/bin/
执行chmod +x debian/install赋予可执行权限。5. 生成Debian包
在项目根目录(包含debian文件夹)下,执行以下命令生成.deb包:
dpkg-deb --build my-fortran-program debian
生成的包名为my-fortran-program_version_arch.deb(如my-fortran-program_1.0-1_amd64.deb),其中version为版本号(需在control文件中定义),arch为目标架构。
6. 测试与发布
sudo dpkg -i my-fortran-program_version_arch.deb安装生成的.deb包,验证程序是否能正常运行(如my_program是否在/usr/bin下且可执行);dput工具上传到对应的仓库服务器(需有仓库维护权限)。注意事项
.so文件),需将库文件安装到系统路径(如/usr/local/lib),并在install文件中添加安装步骤(如install -m 755 libmylib.so ${DESTDIR}/usr/local/lib/),同时在control文件的Depends字段中添加对应的依赖(如libmylib1 (>= 1.0));control、install等文件,并可直接生成.deb包(fpm --deb)。