如何从多架构deb生成.changes文件上传至Ubuntu PPA?
生成Debian .changes文件并上传PPA的解决办法
.changes文件是Debian/Ubuntu打包体系的核心元数据文件,PPA上传必须依赖它,以下是具体生成方法和工具:
工具选择与安装
优先使用Debian官方提供的工具链,先安装依赖包:
sudo apt install dpkg-dev devscripts gnupg
从现有deb包生成.changes文件(快速方法)
提取deb包的控制信息
把目标deb包放到一个空目录,提取它的control文件(包含包名、版本、依赖等关键信息):mkdir -p debian dpkg-deb -I your-package_1.0.0_amd64.deb control > debian/control注意替换命令里的包名、版本、架构为你实际的内容。
生成.changes文件
在包含debian子目录的父目录运行命令,生成二进制包对应的.changes文件:dpkg-genchanges -b > your-package_1.0.0_amd64.changes-b参数指定生成二进制包的变更记录,适配你已有的deb包场景。签名.changes文件
PPA要求.changes文件必须用你在Launchpad注册的GPG密钥签名,运行:debsign your-package_1.0.0_amd64.changes确保你的GPG密钥已上传到Launchpad,且本地密钥环有对应私钥。
多架构包处理
针对不同架构(如amd64、arm64)的deb包,重复上述步骤为每个架构单独生成并签名.changes文件,再分别上传:
dput ppa:p3x-onenote/ppa your-package_1.0.0_amd64.changes dput ppa:p3x-onenote/ppa your-package_1.0.0_arm64.changes
替代工具:debuild(自动化打包流程)
如果你的项目有符合规范的debian目录(electron-builder可配置生成基础结构),在项目根目录运行:
debuild -b -kYOUR_GPG_KEY_ID
该命令会自动完成deb包构建、.changes文件生成和签名的全流程。
内容的提问来源于stack exchange,提问作者Patrik Laszlo
相关产品推荐
相关产品推荐

