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


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.