패키지의 출처를 어떻게 알 수 있습니까?


147

패키지가 어느 저장소에서 제공되는지 알 수있는 방법이나 명령이 있습니까?


1
모호합니다. 현재 활성화 된 리포지토리에서 지정된 이름의 패키지를 제공하거나 현재 설치된 해당 이름의 패키지를 설치하는 데 사용 된 리포지토리는 무엇입니까? (둘 다 유용하다. 나는 전자가 아니라 후자를 찾고있다.)
Reinier Post

답변:


112

필요한 명령 :

  • dpkg -s <package>-설치 한 버전을 찾을 수 있습니다. ( 소스 )
  • apt-cache showpkg <package>-사용 가능한 패키지 버전 목록이 표시됩니다. 각 버전에 대해 색인 파일 이름의 형태로 패키지 소스가 제공됩니다.

현재 설치된 패키지의 소스를 찾으려면의 출력이 필요합니다 dpkg -s <package>. 그렇지 않으면에 의해 최신 버전 출력을 볼 수 있습니다 apt-cache showpkg <package>.

예:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26

1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

첫 번째 명령에서 Liferea 버전 1.6.2-1ubuntu6이 설치되어 있음을 알 수 있습니다. 두 번째 명령에서 해당 버전이에 나열되어 있음을 알 수 있습니다 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.

너무 많은 노력없이, 나는 소스 라인에 포함 된 추론 할 수 archive.ubuntu.com, ubuntu, lucid,와 main.

그리고 충분히, 내 /etc/apt/sources.list다음 줄이 포함되어 있습니다.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse

mac, 자세한 답변 감사합니다! 불행히도 그것은 충족되지 않은 종속성 문제의 초기 문제를 해결하는 데 도움이되지 않습니다. 4.6.2-0ubuntu5.1)이지만 4 : 4.7.0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624를 설치해야합니다. libqtgui4 (= 4 : 4.6.2-0ubuntu5.1)이지만 4 : 4.7입니다. 0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 설치 예정
dfme

그 문제가 무엇인지 이해하기는 어렵습니다. 자세한 내용을 제공 할 수 있도록 새 질문을 열어야합니다. 그렇다면 댓글에 링크를 남겨주세요. :-)
Michael Crenshaw

4
apt-cache policy <package name>(보낸 사람 : superuser.com/a/236605/37279 )
franzlorenzon

apt-cache {showpkg, policy}는 실제로 설치된 패키지 가 설치된 위치 또는 쿼리 할 때 설치된 위치를 실제로 표시 합니까?
Croad Langshan

1
후자의. 나는 일반적으로 우분투를 사용하는 경우 trusty패키지 소스를 일시적 추가 utopic내에 sources.list버전 1.20ubuntu3를 설치하기 위해 init-system-helpers다음 내에서 다시 REPO를 제거 sources.list, apt-cache showpkg init-system-helpers그냥 원래 패키지 목록에 대해 거짓말하고 apt-cache policy init-system-helpers단지 명백한을 명시합니다.
blubberdiblub 1

103

다음 명령을 사용하십시오. 더 나은 출력이 있습니다.

apt-cache policy <Package Name>

Ubuntu 16.04 이상에는 더 짧은 방법이 있습니다.

apt policy <Package Name>

11
이것이 정답입니다! mac9416의 대답에 나오는 명령에는 출력을 기반으로 지루한 해석 + 추측이 필요합니다. 에 대한 자세한 내용은 apt-cache policy참조 superuser.com/a/236605/61370
pabouk

3
apt-cache policy좋지만 때로는 apt-cache showpkg패키지의 MD5 합계를 비교 해야 합니다. 참조debsums --changed
gavenkoa

policy옵션은sources.list
infinite-etcetera

이것이 정답입니다! @pabouk이 맞습니다. 이 답변은 현재 승인 된 것보다 질문과 관련이 있습니다.
HEXcube

@ pablo-bianchi가 그의 대답 에서 지적한 것처럼 apt policy <package-name>16.04LTS부터 더 간단한 것을 사용할 수 있습니다. 2018 년 14.04LTS가 EOL이되면이 명령은 새로운 명령을 사용하도록 편집 될 수 있습니다.
HEXcube

9

apt 우분투 16.04 이상

apt-cache policy, showpkg및 옆 에 show, 이제 우리는 기억하기 쉬운 하위 명령과 함께 더 간단합니다 : apt(classic과 혼동하지 마십시오 apt-*) :

apt policy <package> 

또는 "APT-Sources :"로apt show <package> 시작 하는 자세한 정보가있는 대안입니다 .

설명 : 이 패키지는 libapt-pkg 라이브러리의 모든 기능에 대한 저수준 액세스로 패키지에 대한 정보를 검색하고 관리 할 수있는 명령 줄 도구를 제공합니다. : 다음을 포함 apt-get, apt-cache, apt-cdrom, apt-config, apt-key.

의 기본 명령 apt --help

기억하기 쉬운 다른 하위 명령들 :

  • apt list – 패키지 이름을 기준으로 패키지를 나열합니다.
  • apt search – 패키지 설명에서 검색
  • apt show – 패키지 세부 사항 표시
  • apt update – 사용 가능한 패키지 목록 업데이트
  • apt install – 패키지 설치
  • apt remove – 패키지 제거
  • apt purge– 패키지 및 구성 파일을 제거 하십시오 .

    패키지를 제거하면 패키지화 된 모든 데이터가 제거되지만 사고가 발생한 경우를 대비하여 일반적으로 작은 (수정 된) 사용자 구성 파일을 남겨 둡니다. 실수로 제거 된 패키지에 대한 설치 요청을 발행하면 그 경우 이전과 같이 기능이 복원됩니다. 반면에 이미 제거 된 패키지에서도 purge를 호출하여 이러한 남은 음식을 제거 할 수 있습니다. 홈 디렉토리에 저장된 데이터 나 구성에는 영향을 미치지 않습니다.

  • apt upgrade – 패키지 설치 / 업그레이드로 시스템 업그레이드

  • apt full-upgrade – 패키지 제거 / 설치 / 업그레이드로 시스템 업그레이드
  • apt edit-sources – 소스 정보 파일 편집

apt policy xxx이 (가) 대신 동일하게 표시 apt-cache policy xxx되었을 수 있습니다. 또는 다른 출처에서 "추가 기록"을 보려면 스위치 apt show가 필요한 것으로 언급 -a하십시오.
Xen2050

6

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

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

시냅틱조차도 리포지토리와 업데이트를 비활성화했는지 알 수 없습니다.



1

이것은 조금 더 정확합니다.

apt-cache show <packagename> | grep "Version:"

적절한 버전을 설정하거나 특정 버전을 명시 적으로 설치하지 않은 경우 일반적으로 최신 버전이 설치됩니다.

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