저장소에서 설치된 패키지 찾기


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와 호환되는 것을 얻을 수 있다면 좋을 것입니다.

답변:


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

이것은 나를 위해 패키지를 나열하지 않았습니다 : aptitude search "?origin (multiverse) ?installed"-안합니까? ( "다중 우주"가 활성화 됨)
Volker Siegel

@VolkerSiegel 아니요, aptitude search "?section (multiverse) ?installed"대신을 사용하십시오.
jarno

5

우분투를 제외한 다른 출처에서 설치된 패키지를 표시하기 위해 작성한 Bash 스크립트는 다음과 같습니다. 일반적인 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

@Enkouyami / var / lib / apt / lists /의 ls는
무엇입니까


@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 관리자 사용에 대한 지침을 제공 할 수 있습니까?
세스

@ 내 친구를 @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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.