![apt-get upgrade 不考虑手动构建和安装的软件包](https://linux22.com/image/1047801/apt-get%20upgrade%20%E4%B8%8D%E8%80%83%E8%99%91%E6%89%8B%E5%8A%A8%E6%9E%84%E5%BB%BA%E5%92%8C%E5%AE%89%E8%A3%85%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
由于我对某些软件包应用了自定义补丁,因此我尝试了以下操作:
当apt-get upgrade
显示要升级的软件包时,我使用 apt-get source 下载源,应用我的补丁,重建,安装(使用dpkg -i
)。然后安装最新版本。但即使在 apt-get update 之后,我手动构建并使用 dpkg 安装的软件包仍会显示在升级中,因此会再次被覆盖。
我该如何修复它?
答案1
对于遇到同样问题的其他人来说,这更像是一个临时通知,直到有更聪明的人可以帮助解决问题。
在我的构建脚本中我输入
VERSION=$(grep -R "Version: " | grep .dsc | head -1 | awk '{print $2}')
NEW_NUMBER=$((${VERSION: -1} + 1))
NEW_VERSION=$(echo $VERSION | sed "s/ubuntu${VERSION: -1}/ubuntu$NEW_NUMBER/")
grep -rl $VERSION | xargs sed -i "s/$VERSION/$NEW_VERSION/g"
紧接着apt-get source <package-name>
这会将软件包版本的最后一个数字更改为下一个更高的数字(例如ubuntu2
将变为ubuntu3
)。
此解决方法在这里有效。
快速复制方法: 确保你尝试使用的软件包已完全升级。现在,当你执行以下操作时:
cd /tmp
apt-get -b source <package>
sudo dpkg -i *.deb
并检查您是否会看到 apt-get 显示您的软件包已升级。