检查特定 Debian 软件包列表的更新

检查特定 Debian 软件包列表的更新

设置

我运行 Debian Squeeze 主机,用它来构建多语言项目(python、java、php……)并自动生成自定义包(debian 和 RPM)(通过 jenkins)

问题

这些 Debian 软件包的目标发行版是 Etch、Lenny 和 Squeeze。但我们的项目有一些本机依赖项,​​只能通过DebianRelease + 1存储库(即Lenny + 1 == Squeeze)获得Squeeze + 1 == Wheezy。例如,我们需要jettyLenny 中的 Squeeze 软件包,以及cyrus-imapd-2.4Squeeze 中的 Wheezy 软件包。一些其他信息:

  • 我们可以通过将 DebianRelease + 1 软件包镜像到我们自己的存储库来简单地“手动反向移植”某些软件包。例如,jetty来自 Squeeze 的软件包可以在 Lenny 上正常运行,因为它不需要大量额外的依赖项

  • 但是我们确实需要重建一些软件包。例如,Wheezy 的 cyrus-imapd-2.4 对 Squeeze 有很多未满足的依赖关系。因此我们需要在 Squeeze 中重建它,然后将其上传到我们的存储库。

问题

我需要一种简单的方法来了解这些额外软件包是否有任何更新(“常规”和“安全”更新)。我可以编写一个每周运行一次的简单脚本,从文件中获取一些参数,并生成更新报告。假设文件如下所示:

jetty:squeeze
cyrus-imapd-2.4:wheezy

该脚本应以普通用户身份运行,以免弄乱系统 apt 配置并发出适当的命令来生成该报告。

Debian 是否有一些内置apt-*命令/选项专门用于解决此类问题,我可以使用它们来编写此脚本?如果没有,有人能想出另一个干净的解决方案来实现我的需要吗?

答案1

是的。我使用 apt-show-versions 来实现这一点。安装非常简单:

# apt-get install apt-show-versions

在我的 /etc/apt/apt.conf 中我有:

APT::Default-Release "unstable";

在 /e/a/sources.list 中我有一些不稳定、实验性的以及有时其他临时存储库(例如旧的 emacs-snapshot 档案)的条目。

下面是一个带有实验性最新包的 asv 示例:

# apt-show-versions -a xmonad
xmonad 0.10.1~darcs20120707-1 install ok installed
xmonad 0.10-4+b2              unstable     192.168.10.1:3142
xmonad 0.10.1~darcs20120707-1 experimental 192.168.10.1:3142
xmonad/experimental uptodate 0.10.1~darcs20120707-1

下面是一个不稳定且实验性的软件包的例子,但我只有不稳定的版本:

# apt-show-versions -a zsh
zsh 4.3.17-1 install ok installed
zsh 4.3.17-1 unstable     192.168.10.1:3142
zsh 5.0.0-2  experimental 192.168.10.1:3142
zsh/unstable uptodate 4.3.17-1

我可以使用 apt-show-versions 来查看实验中是否有升级:

# apt-show-versions |grep manually| head
autogen/experimental *manually* upgradeable from 1:5.16-2 to 1:5.16.2-2
iproute/experimental *manually* upgradeable from 20121001-1 to 20121001-2
iproute-doc/experimental *manually* upgradeable from 20121001-1 to 20121001-2

它也很好,因为它会向你显示任何存储库中不再可用的软件包:

#apt-show-versions |grep -v uptodate |grep "No available"
brscan2 0.2.5-1 installed: No available version in archive
dfc-depends 1.0 installed: No available version in archive
google-chrome-unstable 24.0.1297.0-r162078 installed: No available version in archive

相关内容