설치된 dnfs 목록에서 구문 분석 가능한 출력을 얻으려면 어떻게 해야 합니까?

설치된 dnfs 목록에서 구문 분석 가능한 출력을 얻으려면 어떻게 해야 합니까?

dnf list installed출력은 사람이 읽을 수 있지만 기계 파서에게는 그다지 친숙하지 않습니다. json, csv 또는 기타 파서 친화적인 형식으로 설치된 패키지를 가져올 수 있는 명령이 있습니까? 더 나은 인터페이스를 제공하는 dnf용 Python 바인딩이 있습니까?

답변1

rpm명령은 결과 인쇄를 위한 좀 더 유연한 옵션을 제공합니다. 설치된 패키지를 나열하려면 rpm --query --all형식화된 출력을 사용하면 됩니다 --queryformat.

예를 들어 사용할 수 있는 패키지 이름만 인쇄합니다 rpm -qa --queryformat "%{NAME}\n". 유사한 구문을 사용하여 출력을 추가로 지정할 수 printf있으며 rpm --querytags사용 가능한 모든 "변수"를 인쇄하여 rpm패키지에 대한 정보를 인쇄할 수 있습니다. 확인하다rpm 매뉴얼 페이지더 많은 정보를 알고 싶습니다.

예, DNF에는 Python 바인딩도 있으며 문서도 제공됩니다.여기설치된 패키지를 얻으려면 다음을 수행하십시오.

import dnf

base = dnf.Base()
base.fill_sack() 
q = base.sack.query() 
list(q.installed())

답변2

JSON, CSV 또는 기타 파서 친화적인 형식으로 설치된 패키지를 가져올 수 있는 명령이 있습니까?

이는 예제에서 후처리를 사용하여 달성할 수도 있습니다.

dnf list installed | tail -n +2 | awk -F '[.]' '{ print $1 }'

설치된 모든 패키지의 이름 목록만 제공합니다.

다음을 추가하여 JSON 형식으로 변환할 수 있습니다.

| jq --raw-input . | jq --slurp .

감사해요

기타 질문과 답변

관련 정보