我开发了一个脚本,需要下载一些已安装的 Ubuntu 软件包的源代码。为此,我执行以下操作:
- 提供
dpkg --get-selections
已安装软件包的列表; - 对于每个包我都这样做
dpkg -s <package name>
以便 grep 版本。 - 一旦我有了包名称和版本,我只需执行以下操作:
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% 有效。有人知道如何解决这个问题吗?