我正在尝试使用终端命令从存储库中查找我安装了哪些软件包。
我在某处找到一篇帖子说我可以使用aptitude search "?origin (<repository>) ?installed"
,但我无法让它工作。我尝试搜索来自 ppa:ubuntu-wine/ppa 的软件包,但没有找到这些:
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/) ?installed"
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/) ?installed"
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ raring/main) ?installed"
如果我能得到一些可以与 PPA 兼容的东西那就太好了。
答案1
这是我编写的 shell 脚本,用于显示从不同来源(不包括 Ubuntu)安装的软件包。它使用通用dpkg -l
输出格式。它比aptitude
解决方案运行得更快。
#!/bin/sh
# Print packages installed from different origins.
# Exclude standard Ubuntu repositories.
grep -H '^Origin:' /var/lib/apt/lists/*Release | grep -v ' Ubuntu$' | sort -u \
| while read -r line; do
origin=${line#* }
echo $origin:
list=${line%%:*}
sed -rn 's/^Package: (.*)$/\1/p' ${list%_*Release}*Packages | sort -u \
| xargs -r dpkg -l 2>/dev/null | grep '^.i '
echo
done
某些软件包可能来自多个存储库。运行apt policy [pkgname]
以检查当前软件包实际上是从哪个存储库安装的。
请注意,可能还安装了没有可用来源的软件包,请参阅这找到它们。
答案2
在括号中,您应仅使用存储库的名称,而不是 URI 或其他内容。例如,在您的案例中:
aptitude search "?origin (ubuntu-wine) ?installed"
运行apt-cache policy
以查看存储库及其名称(又名来源o
):
$ apt-cache policy | grep wine
500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial/main i386 Packages
release v=16.04,o=LP-PPA-ubuntu-wine,a=xenial,n=xenial,l=Wine Team PPA,c=main,b=i386
500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial/main amd64 Packages
release v=16.04,o=LP-PPA-ubuntu-wine,a=xenial,n=xenial,l=Wine Team PPA,c=main,b=amd64
由于搜索字符串是与字符串中任何位置匹配的正则表达式模式,因此您可以使用方便的子字符串,如ubuntu-wine
,甚至只是wine
。
答案3
Origin 不是存储库的 URL。要查找存储库的 Origin,请查找/var/lib/apt/lists/
以 Release 结尾的文件。
例如
grep "Origin" /var/lib/apt/lists/linux.dropbox.com_debian_dists_wheezy_Release
将会呈现:
Origin: Dropbox.com
因此aptitude search "?origin(dropbox.com) ?installed"
将显示来自 dropbox 存储库的已安装包。
答案4
然后你就可以使用 Y-PPA 管理器了。打开你的终端并输入:
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager
然后打开你的 Unity dash 并使用 Y -PPA 搜索,然后打开图标。
单击如图所示的管理 PPA,然后选择一个 PPA,它将为您提供该 PPA 及其软件包的详细信息。