查找从存储库安装了哪些软件包


15

我试图找到使用终端命令从存储库安装的软件包。

我在某处找到一条帖子说可以使用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的东西,那就太好了。

Answers:


12

在方括号中,应仅使用存储库的名称,而不应使用URI或其他名称。例如,在您的情况下:

aptitude search "?origin (ubuntu-wine) ?installed"

运行apt-cache policy以查看存储库和这些存储库的名称(也称为origin 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

另请参阅:如何从命令行将所有存储库和PPA的列表添加到安装脚本中?


1
谢谢,这使命令起作用了,这给了我我想要的东西。
Enkouyami 2013年

这没有为我列出包裹:aptitude search "?origin (multiverse) ?installed"-不是吗?(已启用“ multiverse”)
Volker Siegel 2014年

@VolkerSiegel否aptitude search "?section (multiverse) ?installed",请改用。
jarno '18

5

这是我编写的Bash脚本,用于显示从不同来源(Ubuntu)以外安装的软件包。它使用通用的dpkg -l输出格式。它比aptitude解决方案更快地工作。

#!/bin/bash

# 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 dpkg -l 2>/dev/null | grep '^.i '
    echo
 done

请注意,也有可能是安装的软件包有可没有这样的出身,看到找到他们。


1

从命令行如果您愿意

awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*PPA-FIRST-PART*PPA-SECOND-PART*Packages

例如:所有的包都来自noobslab

 jai@frank-Jai:~$ awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*noobslab*Packages

python-logilab-common
synapse
ubuntuone-client
python-ubuntuone-storageprotocol
ubuntuone-client-gnome
python-ubuntuone-client
lives
libweed0
libweed-dev
lives-data
converseen
minitube
libsyncdaemon-1.0-1
libsyncdaemon-1.0-dev
ubuntu-sso-client
python-ubuntuone-devtools
ubuntuone-dev-tools
ubuntuone-control-panel
python-ubuntuone-control-panel
synapse-dbg
gir1.2-syncdaemon-1.0
libweed-dbg
lives-dbg
umplayer
umplayer-translations
libgranite-dev
deepin-software-center
ubuntuone-control-panel-qt
python-dirspec
rhythmbox-ubuntuone
python-ubuntu-sso-client
ubuntu-sso-client-qt
python-ubuntu-sso-client.tests
granite-demo
ubuntuone-client-proxy
python-oauthlib
slidewall
python3-dirspec
python3-oauthlib
ubuntuone-client-data
libgranite1
libgranite1-dbg
gir1.2-granite-1.0
libgranite-common
curlew
fbmessenger
open-as-administrator
indicator-synapse
indicator-synapse-dbg
wallpaper-manager
awoken-icon-theme
malys-uniblack
malys-uniblue
malys-ex
acyl-icons
nitrux-icons
piratunbu-icons
azenis-green-icons
nouvegnome-color
nouvegnome-gray
hi-lights-icons
matrilineare
zoncolor-icons
royal-linux-icons
elementary-icons
myhumanity
myelementary
glass-icons
osx-nostalgie
sky-blue-cinnamon
sky-blue-gnome
sky-blue-unity
wine-blue-remix
lubuntubox
windows7-icons
appleart-icons
magical-lights-icons
colored-plastic-icons
numix-utouch-icon-theme
ubudao-style
artnet-icons
high-delight-icons
snow-sabre-icons
trevilla-icons
aery-icons
ambiance-blue
zukitwo
gnomishbeige-theme
salience-theme
zukiwi
gnomishgray
delorean-dark
smoothly-theme
ambiance-ds-blue
ambiance-lime
gnomishdark
zukitwo-cupertino-gs
mediterranean-theme
elementaryish
borderline
boje
wow-2
zoncolor-themes
omg-suite
simplex
leopard-steel
dorian-theme
daylight
adwaita-elements
uncomplicated
trevilla-jmhzonedark
trevilla-dark
trevilla-white
trevilla-whiteblue
trevilla-whiteorange
trevilla-white2
ambiancep-set
ambiance-crunchy
trevilla-gray
siva-series-gtk
cobibird
elegant-brit
mac-ithemes-noobslab
mac-icons-noobslab
ubuntu-touch-themes
windows8-theme
bigfootblue-cinnamon
windows8-cinnamon
eliza1-cinnamon
bigfootred-cinnamon
plus1-theme
futura
blo-theme
darkair-theme
plane-gtk3
deepin-gtk-theme
nokto-theme
numix-theme
neptune-theme
trevilla-themes
jai@frank-Jai:~$ 

信誉在这里


我收到此错误:bash:awk:没有这样的文件或目录
Enkouyami 2013年

@Enkouyami是什么/ var / lib / apt / lists /的ls
2013年

这是我所获得的链接pastebin.com/AmiH9E9n
Enkouyami 2013年

@Enkouyami哎呀对不起,我的意思是你输入什么命令
rɑːdʒɑ

1
@Enkouyami好吧,这与命令,位置无关。如做 awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*haguichi*webupd8team*Packages
rɑːdʒɑ

1

然后,您可以使用Y-PPA管理器。打开您的终端并输入:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

然后打开Unity破折号并使用Y -PPA搜索,然后打开图标。

在此处输入图片说明

单击如图所示的管理PPA,然后选择一个PPA,它将为您提供PPA及其软件包的详细信息。


您能提供使用Y-PPA管理器的说明吗?
赛斯2013年

@Seth我的朋友。完成。
rɑːdʒɑ

我在寻找命令行解决方案。
Enkouyami

该解决方案既不是命令行也不是主要问题-如何列出从给定存储库安装的软件包?它仅显示可从PPA获得的所有软件包。
Viacheslav Rodionov

1

源不是存储库的URL。要查找存储库的来源,请查找/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"将向我展示从保管箱存储库安装的软件包。


这不是我想要的。
Enkouyami

如果正则表达式中有特殊字符,则可能需要在源名称中转义一些字符。
jarno

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.