![설치된 dnfs 목록에서 구문 분석 가능한 출력을 얻으려면 어떻게 해야 합니까?](https://linux55.com/image/196190/%EC%84%A4%EC%B9%98%EB%90%9C%20dnfs%20%EB%AA%A9%EB%A1%9D%EC%97%90%EC%84%9C%20%EA%B5%AC%EB%AC%B8%20%EB%B6%84%EC%84%9D%20%EA%B0%80%EB%8A%A5%ED%95%9C%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EC%96%BB%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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 .
감사해요
기타 질문과 답변