패키지가 제공되는 Ubuntu 또는 Debian 저장소를 알려주는 방법은 무엇입니까?


168

우분투를 포함한 데비안 기반 시스템에서 실제로 다운로드를 시작하지 않고 패키지를 다운로드 할 저장소를 어떻게 알 수 있습니까? aptitude showapt-cache info표시 할 섹션 (예를 들어, 메타 패키지, 기본, 그래픽)가 아니라 저장소 패키지가 속해있는 (예, http://ppa.launchpad.net/mactel-support/ppa/ubuntu 또는 HTTP : 우리를 // .archive.ubuntu.com / ubuntu / ).

패키지를 설치할 때 실제 리포지토리는 다운로드하는 동안 나타납니다 (Apt 및 유사한 프로그램의 "Downloading from ..."출력에 인쇄 됨). 패키지를 포함하는 리포지토리에 대한 정보를 얻는 방법은 무엇입니까? 패키지의 버전) 먼저 다운로드하고 설치 하지 않고 ?

또한 이미 설치된 패키지의 소스 리포지토리를 어떻게 확인할 수 있습니까?


1
나는 이것이 Apt의 결함 중 하나를 발견한다. 패키지 설치 프로그램 도구 내에서 어떤 저장소가 특정 패키지를 제공하는지 쉽게 알 수 없습니다.
quack quixote

답변:


203

나는 달린다 apt-cache policy <package name>:

$ apt-cache policy wajig
wajig:
  Installed: 2.1
  Candidate: 2.1
  Version table:
 *** 2.1 0
        100 /var/lib/dpkg/status
     2.0.47 0
        500 file:/home/wena/.repo_bin/ squeeze/main i386 Packages
        500 ftp://ftp.is.co.za/debian/ squeeze/main i386 Packages

이는 세 가지 wajig패키지 가 있음을 의미 합니다.

  • 설치된 것 ( /var/lib/dpkg/status)

  • 로컬 저장소에서 사용 가능한 것 ( file:/home/wena/.repo_bin/)

  • 원격 저장소 ( ftp://ftp.is.co.za/debian) 에서 사용 가능하며 로컬 저장소의 버전과 동일한 버전 ( 2.0.47 )도 있습니다.


또한 apt-cache madison <package name>유사한 정보를 표 형식으로 표시합니다.

 wajig |        2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe amd64 Packages
 wajig |        2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe Sources

그러나 설치된 패키지의 출처가 표시되지 않습니까?
Adobe

2
@Adobe 제 경우에는 2.1어떤 리포지토리에서도 버전을 사용할 수 없습니다. 로컬로 구축되었습니다.
tshepang

2
설치된 패키지의 표시는 무엇입니까? ***또는 /var/lib/dpkg/status?
SuB

둘 다요? 확실하지 않다.
tshepang

패키지가 설치되어 있지 않으면 다음과 apt-cache policy같이 말합니다 Installed: (none).
John McGehee

28

아하! 분명히 올바른 apt명령은 apt-cache info이고 대신에 apt-cache showpkg.

$ apt-cache showpkg linux-generic
Package: linux-generic
Versions: 
2.6.31.19.32 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_karmic-security_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages
                  MD5: 5d722da329763b9342d322f5a140005c

2.6.31.14.27 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages
                  MD5: 5d722da329763b9342d322f5a140005c


Reverse Depends: 
Dependencies: 
2.6.31.19.32 - linux-image-generic (5 2.6.31.19.32) 
2.6.31.14.27 - linux-image-generic (5 2.6.31.14.27) 
Provides: 
2.6.31.19.32 - 
2.6.31.14.27 - 
Reverse Provides: 

File:줄은 다음에 리포지토리 정보를 제공합니다 /var/lib/apt/lists/.

버그 리포트 aptitude소스 저장소를 표시 할 수는 있지만 기능은 위시리스트에 여전히 현재 보인다.


그 적성 기능은 8 년이 지난 지금도 여전히 기발하고 있으며 왜이 답변 ( apt-cache showpkg)이 올바른 것으로 표시 되지 않는지 모르겠습니다 .
Csaba Toth

8

이것은 나를 위해 작동합니다 (2vcard 패키지가 어디에 있는지 보여줍니다).

$ grep 2vcard /var/lib/apt/lists/* | grep "Filename:"

/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-i386_Packages:Filename: pool/universe/2/2vcard/2vcard_0.5-3_all.deb

여러 버전을 사용할 수있는 경우 추가 필터링을 적용하여 버전 등을 확인할 수 있습니다.


바쁜. 하지만이 정보에 대한 프런트 엔드를 통해 액세스 할 수없는 것이 놀랍습니다 dpkg.
gotgenes

@got 그것은 사용할 수 있습니다 : superuser.com/questions/106794/…
tshepang

8

왜 아무도 언급하지 않았는지 궁금 aptitude합니다. 나는 항상 그것을 사용합니다.

적성은

  • 많은 데비안 기반 배포판과 함께 기본적으로 제공됩니다. 다음을 통해 다른 (예 : 우분투)에 설치할 수 있습니다sudo apt install aptitude
  • 관리 권한이 필요하지 않습니다 (적어도 아래 명령의 경우).
  • 좋은 ncursesGUI를 가지고 있지만 (대부분의 경우없이 사용됩니다)
  • 정말 예쁜 출력을 제공합니다. 패키지 버전을 표시하려면 aptitude versions다음 명령을 사용하십시오 .

    me@wheezy:~$ aptitude versions kde-standard
    Package kde-standard:                        
    i A 5:77+deb7u1     stable              500
    p A 5:84            testing,unstable    130
    
  • 슈퍼 카우 파워가 없습니다

각 문자열 앞에있는 문자는 패키지의 상태를 나타냅니다. i 가 설치되었으며 p 가 제거 (또는 설치되지 않음), 안정 , 테스트불안정한 리포지토리 정의이며 끝의 숫자는 핀 우선 순위 입니다.

여기서 언급 할 가치가있는 최신 버전의 적성에 대한 한 가지주의 사항 : 기본적으로 검색 한 이름을 포함한 모든 패키지가 표시되므로 정규식 마술을 조금 사용 하여 엄격한 이름으로 검색하십시오 (예 :) aptitude versions ^kde-workspace$.


1
좋은 명령이지만 요청 한대로 저장소를 나열하지 않습니다.
bjhend


당신은 이해하지 못합니다. 추가 PPA를 설치할 수 있습니다. 패키지가 그러한 PPA의 패키지인지 여부를 아는 것이 중요합니다. 사실, 그것은 내가 지금 알아 내려고하는 것입니다. 그렇다면 PPA를 제거하여 문제의 위험을 줄일 수 있습니다.
reinierpost 17 년

예, 맞습니다 versions. 관련 리포지토리가 아닌 지정된 패키지의 적절한 고정 값을 간단히 확인할 수 있습니다. 모든 저장소와 고정 방법을 알고 있으면 여전히 유용합니다.
TranslucentCloud

6

안타깝게도이 정보는 패키지 설치 중에 기록되지 않습니다. 저장소가 여전히 소스 목록에 있고 저장소에 여전히 패키지가 있는지 적절한 추측을 할 수 있습니다.

grep -l PKG /var/lib/apt/lists/*

apt-cache showpkg 리포지토리 데이터베이스의 데이터 (설치된 것이 아닌)를 표시하므로 grep과 동일한 정보의 다른 형태입니다.

리포지토리와 업데이트를 비활성화하면 시냅스조차도 (Origin 화면에서) 알 수 없습니다.


2

또는 Sunny에서 영감을 얻어 다음을 시도 할 수 있습니다.

# list installed restricted packages
for i in `dpkg --get-selections | awk '{ print $1 }'`; do egrep -lRI "^Filename: .*/${i}_[^/]+.deb" /var/lib/apt/lists/ | grep -q 'restricted' && echo $i; done

# list installed multiverse packages
for i in `dpkg --get-selections | awk '{ print $1 }'`; do egrep -lRI "^Filename: .*/${i}_[^/]+.deb" /var/lib/apt/lists/ | grep -q 'multiverse' && echo $i; done

추신. 100 % 정확하지 않습니다.

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