我在 Ubuntu 16.04 LTS 服务器上,需要修复https://launchpad.net/ubuntu/+source/vagrant在为 Yakkety 发布的版本中1.8.1+dfsg-2
,但不适用于 Xenial。
那么如何1.8.1+dfsg-2
为 Xenial 安装它以便在其发布后用官方软件包替换它?
更新:请注意,我不想要pin
这个包。我希望它在稳定版本发布后更新到后续稳定版本。
答案1
如果您只是想要这一次更新的软件包,并且您还希望在为您当前的 Ubuntu 版本发布正确的版本后替换它,您可以:
安装构建工具和依赖项:
sudo apt-get install build-essential devscripts sudo apt-get build-dep vagrant
下载包源并解压:
dget -u https://launchpad.net/ubuntu/+archive/primary/+files/vagrant_1.8.1+dfsg-2.dsc cd vagrant-1.8.1
添加带有精心制作的本地版本后缀的变更日志条目(
anatoly
用您想要的任何内容替换日志消息):debchange --local=~anatoly 'Backport to Xenial'
这会将软件包版本升级为
1.8.1+dfsg-2~anatoly1
。波浪符号后缀具有以下属性:它实际上被视为低于 的版本1.8.1+dfsg-2
:$ dpkg --compare-versions 1.8.1+dfsg-2~anatoly1 '<' 1.8.1+dfsg-2; echo $? 0
1.8.1+dfsg-2
这意味着一旦配置的存储库中有新版本(或更新版本)可用,包管理器就会建议“升级”本地包。构建二进制包:
debuild -b -j"`getconf _NPROCESSORS_ONLN`"
使用 安装构建的包
sudo dpkg -i <DEBFILE>...
。
PS:我没有尝试自己构建包,因此您可能会遇到问题。例如,Yakkety 的源包可能依赖于 Xenial 中没有的包(版本)(目前可能性较小,因为它是相同的上游版本)。在这种情况下,我们可以寻找解决方法。