如何列出从 PPA 安装的所有软件包?

Avi*_*Raj 26 command-line apt ppa

我在我的系统上安装了来自许多 PPA 的许多软件包。我想列出从启动板 PPA 安装的所有已安装软件包,而不是存储库。

这可以通过命令行吗?

Syl*_*eau 27

以下命令返回包名称及其 ppa(如果从 ppa 安装):

apt-cache policy $(dpkg --get-selections | grep -v deinstall$ | awk '{ print $1 }') | perl -e '@a = <>; $a=join("", @a); $a =~ s/\n(\S)/\n\n$1/g;  @packages = split("\n\n", $a); foreach $p (@packages) {print "$1: $2\n" if $p =~ /^(.*?):.*?500 http:\/\/ppa\.launchpad\.net\/(.*?)\s/s}'
Run Code Online (Sandbox Code Playgroud)

细节:

  • dpkg --get-selections 之后只提供已安装的软件包 grep -v deinstall$
  • awk '{ print $1 }' 只返回包名
  • perl -e '@a = <>; $a=join("", @a)' 连接所有返回的行 apt-cache policy
  • $a =~ s/\n(\S)/\n\n$1/g; 在每个包部分之间添加一个换行符
  • @packages = split("\n\n", $a); 是一个包含所有包信息的 perl 数组,每个项目一个包。
  • foreach $p (@packages) {print "$1: $2\n" if $p =~ /^(.*?):.*?500 http:\/\/ppa\.launchpad\.net\/(.*?)\s/s} 是一个循环,如果在策略中找到具有 prio 500 的 ppa,则将打印包和 ppa。


use*_*.dz 9


sou*_* c. 4

apt-cache例如,可以使用检查已安装软件包的来源

$ apt-cache policy oracle-java7-installer

oracle-java7-installer:
  Installed: 7u51-0~webupd8~7
  Candidate: 7u51-0~webupd8~7
  Version table:
 *** 7u51-0~webupd8~7 0
        500 http://ppa.launchpad.net/webupd8team/java/ubuntu/ precise/main i386 Packages
        100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

的输出apt-cache policy <package_name>包含源。

可以使用以下脚本获取从 PPA 安装的软件包列表。

oracle-java7-installer:
  Installed: 7u51-0~webupd8~7
  Candidate: 7u51-0~webupd8~7
  Version table:
 *** 7u51-0~webupd8~7 0
        500 http://ppa.launchpad.net/webupd8team/java/ubuntu/ precise/main i386 Packages
        100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

7088 次

最近记录:

4 年,6 月 前