커맨드 라인에서 리포지토리 섹션의 모든 패키지 목록을 얻는 방법은 무엇입니까?


13

시냅틱에서는 섹션별로 패키지를 나열 할 수 있습니다. 예를 들어 아래 이미지에는 "아마추어 라디오 (우주)"섹션의 모든 패키지가 나열되어 있습니다.

명령 행에서 이러한 목록 (편집 : 패키지 설명)을 어떻게 얻을 수 있습니까?

원시 목록이 필요합니다. 같은 터미널 응용 프로그램 aptitude은하지 않습니다.

시냅스


apt-cache 검색 쉘
Panther

@ bodhi.zazen 그것은 좋은 제안이지만 섹션 만 검색하지는 않습니다
Steven Penny

답변:


5

출력으로 인해 적성을 사용하고 싶지 않다고 말하지만 원하는 것을 얻기 위해 수정 할 수 있다는 것을 알아야합니다.

aptitude -F'|%p|%d|' search '?section(hamradio)'

트릭은 -F출력 형식을 수정하는 스위치에 있습니다. %p패키지를 의미합니다. 패키지에 다양한 아키텍처 (예 : amd64 vs i386)가 있고 %d설명을 출력하는 경우에도 출력됩니다 . 설치되지 않은 패키지와 같이 검색 패턴을 더욱 개인화 할 수 있습니다.

aptitude -F'|%p|%d|' search '?section(hamradio) !~i'

where ~i는 installed 를 의미 !하고 not을 의미 하므로 "not (!) installed (~ i)"로 읽거나 아키텍처에서 사용할 수있는 것만 원하는 경우 :

aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'

~r존재 ?architecture()패키지와의 아키텍처와 일치 native하는 목록 시스템에 해당하는 동일한 아키텍처에만 사람을 dpkg --print-architecture.

따라서 이전 줄은 다음과 같이 더 간결하게 작성할 수 있습니다.

aptitude -F'|%p|%d|' search '~s hamradio ~r native'

특히 매우 우아 -F'|%p|%d|'합니다. 그러나 문자열에 -expression을 :i386추가 하여 패키지 를 나열하지 않을 수 있습니까? !search
Sroo Stroobandt

1
@GinGordon 예, ~r native검색어에 추가하십시오 . ~r존재 ?architecture패키지와의 아키텍처와 일치 native하는 목록 시스템보다 동일한 아키텍처에 동등에만 사람을 dpkg --print-architecture. BTW, 패키지 설명이 포함 된 목록을 원하십니까?
Braiam

큰! 그리고 예, 패키지 설명을 포함하도록 질문을 편집했습니다. 이에 따라 답변을 수정하면 가장 간결한 답변을 드리겠습니다.
Sroo Stroobandt를

@GinGordon 확인하십시오.
Braiam

1
@GinGordon aptitude-doc패키지 를 설치하고 /usr/share/doc/aptitude/html/en/index.html브라우저로 이동하면 file:///usr/share/doc/aptitude/html/en/ch02s04s05.html모든 불쾌한 특권을 찾을 수 있습니다.
Braiam

11

dctrl-toolsdctrl-tools 설치 패키지가 설치되어 있는지 확인하십시오 . apt 및 dpkg 패키지 목록을 검색하는 데 유용한 명령을 제공합니다. apt로 설치할 수있는 특정 섹션에서 모든 패키지에 대한 자세한 설명을 보려면 다음을 실행하십시오.

grep-aptavail -F Section hamradio

hamradio섹션의 모든 패키지에 대한 전체 패키지 메타 데이터가 표시됩니다 . 패키지 이름 만보고 싶다면 다음을 실행하십시오.

grep-aptavail -n -F Section -s Package hamradio

시스템이 다중 아키텍처로 설정된 경우 둘 이상의 아키텍처 용으로 구축 된 경우 동일한 패키지가이 목록에 두 번 이상 나타날 수 있습니다. 더 세밀하게 조정하려면

grep-aptavail -n -F Section -s Package hamradio | sort | uniq

또는

grep-aptavail -n -F Section -s Package hamradio | sort -u

패키지 목록을 정렬하고 동일한 이름의 중복 패키지를 제거합니다.

Synaptic이 GUI에 표시하는 "사람이 읽을 수있는"이름과는 다른 섹션의 실제 이름을 사용해야합니다. 예를 들어, 위 검색 hamradio에서는 Synaptic에 표시된 "Amateur Radio"문자열 대신 섹션 이름을 사용합니다 .

모든 옵션과 예제에 대한 자세한 설명은 grep-aptavail 매뉴얼 페이지를 참조하십시오 .


3

임의의 구분 기호를 사용하여 한 줄에 더 많은 필드

다음의 한 줄짜리는 저장소 섹션의 모든 고유 패키지 이름을 설명과 함께 각각 한 줄에 인쇄합니다. 모든 필드는 파이프 문자로 구분됩니다. 즉 마크 다운 파이프 테이블 로 변환 할 수 있습니다. 결과 테이블은 내 웹 사이트에서 찾을 수 있습니다.

grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u

2

다음 명령을 사용하여 지정된 섹션에 속하는 패키지 목록을 얻을 수 있습니다.

$ dpkg-query -W -f='${binary:Package} ${Section}\n' | awk '{if ($2 == "shells") {print $1}}'
bash
bash-completion
busybox-initramfs
busybox-static
dash
zsh
zsh-common
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.