我安装了一些自建的 deb 包(PAM)
sudo dpkg --force-all -i /opt/bzr/build-area/*.deb
tree
是:
/opt/bzr/build-area
.
├── libpam0g_1.1.8-3ubuntu1_amd64.deb
├── libpam0g-dev_1.1.8-3ubuntu1_amd64.deb
├── libpam-cracklib_1.1.8-3ubuntu1_amd64.deb
├── libpam-doc_1.1.8-3ubuntu1_all.deb
├── libpam-modules_1.1.8-3ubuntu1_amd64.deb
├── libpam-modules-bin_1.1.8-3ubuntu1_amd64.deb
├── libpam-runtime_1.1.8-3ubuntu1_all.deb
├── pam_1.1.8-3ubuntu1_amd64.build
├── pam_1.1.8-3ubuntu1_amd64.changes
├── pam_1.1.8-3ubuntu1.diff.gz
├── pam_1.1.8-3ubuntu1.dsc
└── pam_1.1.8.orig.tar.gz
重要提示:当新的官方 Ubuntu PAM 版本发布并且我运行时会发生什么
apt dist-upgrade -y
?它会覆盖我自己的包吗?可选:我需要
--force-all
在吗dpkg -i
?选修的:https://code.launchpad.net/~ubuntu-core-dev/pam/ubuntu对我来说看起来像一个“开发分支”?是否存在“稳定分支”?如何用bzr获取它?
答案1
是的,如果他们使用比您的软件包更高的版本号,他们会的,除非您适当地调整您的引脚优先级(或保留软件包,如CAS)。请注意,如果您使用相同的版本号,存储库的软件包可能会覆盖您的软件包,因此您应该在本地重建时真正增加版本(通常为“1.1.8-3ubuntu1.1”)。
不,除非绝对必要,否则您应该避免使用它。如果您认为有必要,那么您的软件包可能有问题,您应该修复它。
该代码存储库自 2014 年以来就没有更新过,所以我怀疑它是一个活跃的开发存储库。你可以看到各个
pam
分支发射台,并使用例如 来克隆它们bzr branch lp:ubuntu/vivid/pam
。
我处理此类情况的方法如下:
- 查看源代码(
debcheckout
或apt-get source
) - 如果它在存储库中,请使用我感兴趣的补丁创建一个新分支
- 如果不是,请手动应用补丁
- 在这两种情况下,使用适当的变更日志条目来增加版本
dch -n
(不提交,以避免合并问题) - 构建包并安装它(在我的例子中,通过本地包存储库)
当新版本的包发布时,我会重复上面的内容;对于源存储库,我会重新调整补丁的基础,而不是从头开始。