Dungeon & Fighter가 속한 그룹 패키지를 찾는 방법은 무엇입니까?

Dungeon & Fighter가 속한 그룹 패키지를 찾는 방법은 무엇입니까?

저는 페도라 22와 dnf-1.1.2-4.fc22.noarch를 사용하고 있습니다.

사용 사례 시나리오: strace 패키지가 설치되지 않은 것을 발견했습니다. 비슷한 작업을 수행하는 데 필요할 수 있는 소프트웨어를 설치하기 위해 이 패키지가 다른 그룹에 속하는지 확인하고 싶습니다.

나는 다음과 같은 무차별적인 방법을 찾았습니다(그룹 이름이 이 들여쓰기로 시작하므로 3개의 공백을 가져옴).

dnf grouplist | grep '   ' | while read line; do dnf groupinfo "$line"; done

그런 다음 이 출력을 파일로 리디렉션하고 패키지 이름을 검색한 후 거기에서 그룹 이름을 찾으십시오.

답변1

Fedora 26부터 다음이 유효합니다.

dnf repoquery --groupmember <pkg-name>

보다오류 보고서이 기능이 구현되는 곳입니다.

답변2

다음은 내 Fedora 21에서 작동하는 것으로 보이는 예이지만 dnf는 여전히 변경 중이므로 시도해 보고 확인하세요.

$ pkg=fvwm
$ dnf groupinfo '*' | sed -n '/Group:/h;/'"$pkg"'/{x;p;x;p}'
Group: Window Managers
   fvwm

각 그룹 헤더를 저장 sed(h)한 다음 패키지가 일치하면 저장과 패턴을 교환하고(x) 헤더를 인쇄하고(p) 다시 교환하여 패키지를 인쇄합니다.

답변3

그것을 사용하는 또 다른 방법 awk:

strace

pkg="strace"; dnf groupinfo '*' | awk -F": " '/^Group/ {group=$2} /'"$pkg"'/ {print group}'  

출력에는 다음이 표시됩니다.

Security Lab
C Development Tools and Libraries

fvwm

pkg="fvwm"; dnf groupinfo '*' | awk -F": " '/^Group/ {group=$2} /'"$pkg"'/ {print group}'  

출력에는 다음이 표시됩니다.

Window Managers

답변4

대안으로 모든 그룹과 해당 패키지를 나열할 수 있습니다.

# save the result to /tmp/all-group-packages
dnf group list | sed -n 's/   //p' | sed -E "s/(.*)/'\0'/" | xargs dnf group info >/tmp/all-group-packages

관련 정보