如何修改单个配置选项重建Debian标准Linux库软件包?
规范修改单个configure选项重建Debian软件包的步骤
1. 准备构建环境
安装基础构建工具和目标库的构建依赖:
sudo apt-get install devscripts build-essential fakeroot sudo apt-get build-dep libusb-1.0-0 # 替换为你要修改的目标包名
2. 获取原始Debian源码包
拉取对应版本的源码并进入目录:
apt source libusb-1.0-0 cd libusb-1.0.* # 替换为实际拉取的版本目录
3. 确认原始configure参数
Debian维护者的配置参数通常通过debhelper的dh_auto_configure自动传递,无需手动提取。如果需要查看完整参数,可临时运行:
dh_auto_configure -- --help
或者查看包内的debian/config.site(如果存在),里面会记录额外的配置变量。
4. 规范添加自定义configure选项(适配新旧版本)
推荐方式:override debhelper目标(兼容debhelper 9+)
编辑debian/rules,在文件末尾添加以下内容,通过override_dh_auto_configure追加自定义选项,不会覆盖原始配置:
override_dh_auto_configure: dh_auto_configure -- --disable-udev # 替换为你需要的configure参数
这里的--是分隔符,后面的参数会直接追加到Debian维护者的原始configure命令后。
备选方式:使用config.site文件(更灵活)
如果需要修改底层配置变量(而非直接传命令行参数),可创建debian/config.site文件,写入对应变量:
ac_cv_enable_udev=no # 对应--disable-udev的内部变量,可通过./configure --help查看对应关系
大部分现代Debian包默认支持读取这个文件的配置。
5. 构建修改后的软件包
运行构建命令,跳过签名(适合内部测试):
debuild -us -uc
6. 验证结果
构建完成后,上级目录会生成修改后的.deb包,安装后验证效果:
sudo dpkg -i ../libusb-1.0-0_*.deb ldd /usr/lib/x86_64-linux-gnu/libusb-1.0.so.0 | grep udev # 无输出则说明udev依赖已移除
核心规范要点
- 必须使用
override_前缀修改debhelper目标,这是Debian官方推荐的兼容方式,避免破坏新旧版本的构建逻辑 - 不要直接修改
debian/rules中的原始规则,防止后续源码更新时冲突 - 可通过
dch -i命令在debian/changelog中添加自己的修改记录,便于追溯
内容的提问来源于stack exchange,提问作者Mark Morgan Lloyd
相关产品推荐
相关产品推荐

