저는 페도라 22와 dnf-1.1.2-4.fc22.noarch를 사용하고 있습니다.
사용 사례 시나리오: strace 패키지가 설치되지 않은 것을 발견했습니다. 비슷한 작업을 수행하는 데 필요할 수 있는 소프트웨어를 설치하기 위해 이 패키지가 다른 그룹에 속하는지 확인하고 싶습니다.
나는 다음과 같은 무차별적인 방법을 찾았습니다(그룹 이름이 이 들여쓰기로 시작하므로 3개의 공백을 가져옴).
dnf grouplist | grep ' ' | while read line; do dnf groupinfo "$line"; done
그런 다음 이 출력을 파일로 리디렉션하고 패키지 이름을 검색한 후 거기에서 그룹 이름을 찾으십시오.
답변1
답변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