下载 Ubuntu 源包

下载 Ubuntu 源包

我开发了一个脚本,需要下载一些已安装的 Ubuntu 软件包的源代码。为此,我执行以下操作:

  1. 提供dpkg --get-selections已安装软件包的列表;
  2. 对于每个包我都这样做dpkg -s <package name>以便 grep 版本。
  3. 一旦我有了包名称和版本,我只需执行以下操作: apt-get source <package name>=<package version> 下载代码

问题是,这个方法 95% 的时间都有效,因为有些情况下它不起作用。通常问题出在版本上。例如,如果我有:

apt-get source host=1:9.9.5.dfsg-3ubuntu0.5
apt-get source p7zip-full=9.20.1~dfsg.1-4+deb7u1build0.14.04.1

它不起作用。我需要做这样的事情:

apt-get source host=1:9.9.5.dfsg
apt-get source p7zip-full=9.20.1~dfsg.1-4+deb

还有其他的。一般来说,我无法找到一种方法来获取一个版本<version>,当我给出命令时:

apt-get source <package name>=<version>

它 100% 有效。有人知道如何解决这个问题吗?

答案1

如果没有更多数据,我怀疑自您收集列表以来,软件包已升级。档案库不保存所有已发布版本的完整来源。

大多数情况下(忽略一些时间问题),它们只保留最新版本(“trusty-updates”、“xenial-updates”等)和发布包中每个版本的原始版本(“trusty”、“xenial”等)。这就是apt-get source命令引用的内容。

现在,并不是所有的希望都破灭了。看看这个回答。例如,交流电源接口包并点击右上角的“查看完整发布历史记录”,您将看到 Launchpad 保留了它发布的所有内容。因此,您用这种方法可以找到旧版本,甚至可以查看启动板API查看是否可以以编程方式访问该数据。

相关内容