데비안 기반 배포판에 설치된 소프트웨어를 나열하는 가장 신뢰할 수 있는 방법은 무엇입니까?

데비안 기반 배포판에 설치된 소프트웨어를 나열하는 가장 신뢰할 수 있는 방법은 무엇입니까?

따라서 지금은 데비안 기반 시스템에서 작동하는 데만 필요하다고 가정하겠습니다(그러나 앞으로는 그렇게 할 수 있어야 합니다 yum).

지금 내가 가지고 있는 가장 좋은 것은 dpkg-query. 예를 들어, 다음 명령을 실행하면:

dpkg-query --show

다음과 같은 목록을 얻게 됩니다(수천 개의 항목 포함).

...  
sudo    1.8.17p1-2  
...  
vim     2:7.4.1829-1  
...

그러나 명명 규칙은 없습니다. 일부 패키지에는 버전 번호가 있고 일부에는 아키텍처가 있습니다. 응 gcc-4.9-base:amd64, 하지만 내가 원하는 건 그게 전부야 gcc 4.9. 이상적으로는 설치된 모든 소프트웨어에 대한 공급업체, 제품 및 버전 정보를 얻을 수 있기를 바랍니다. 이것을 할 수 있는 방법이 있나요?출신지, 아니면 일종의 "모호한" 일치여야 합니까?

저는 패키지 관리자에 쿼리하는 것 외에 다른 방법이나 제가 생각하지 못한 다른 방법에 대해 열려 있습니다. 이를 달성하기 위해 추가 패키지를 설치할 수는 없습니다(그러나 패키지가 존재하는 경우 어떻게 작동하는지 알아보고 싶습니다).

답변1

그러면 설치된 바이너리 패키지에 해당하는 소스 패키지와 버전이 나열됩니다.

dpkg-query --show -f '${source:Package} ${source:Version}\n' | sort -u

이는 자동으로 얻을 수 있는 단일 소프트웨어에 가장 가까운 일치입니다. gcc-4.9모든 해당 바이너리 패키지가 아니라 관련 버전을 한 번만 볼 수 있습니다. "공급업체" 정보를 쉽게 검색할 수 없으므로 패키지 세부 정보( apt-cache show ...) 또는 라이선스 정보( /usr/share/doc/<package>/copyright"업스트림" 프로젝트를 가리켜야 함)를 확인해야 합니다."vendor"); 기계가 읽을 수 있는 형식이 보장되지 않으므로 일부 수동 구문 분석이 필요합니다.

이름에 (주) 버전이 포함된 일부 소스 패키지를 찾을 수 있습니다.예를 들어 gcc-4.9, gcc-5등. ; 이는 GCC의 경우처럼 패키지가 주요 버전을 함께 설치하도록 설계된 경우 피할 수 없는 현상입니다.

동등한 RPM 명령은 다음과 같습니다.

rpm --qf "%{SOURCERPM}\n" -qa | sort -u

답변2

데비안에서는 다음 옵션을 사용할 수 있습니다.--showformat=형식~을 위한dpkg 쿼리.

예를 들어:

dpkg-query --show --showformat='${binary:Package}\t${Version}\t${Architecture}\t${binary:Summary}\n' gcc

답변3

데비안에서는 실행할 수 있습니다dpkg --list

특정 패키지 실행에 대한 자세한 정보를 얻으려면 다음을 수행하십시오.

dpkg -p <package_name>

또는

dpkg -s <package_name>

예를 들어:

# dpkg -s gcc 
Package: gcc
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 42
Maintainer: Debian GCC Maintainers <[email protected]>
Architecture: amd64
Source: gcc-defaults (1.136)
Version: 4:4.9.2-2
Provides: c-compiler
Depends: cpp (>= 4:4.9.2-2), gcc-4.9 (>= 4.9.2-1~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool,  flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Description: GNU C compiler
This is the GNU C compiler, a fairly portable optimizing compiler for C.
This is a dependency package providing the default GNU C compiler.

RHEL 기반 배포판에서는 다음을 실행할 수 있습니다.rpm -qa

관련 정보