Ubuntu에 설치된 소프트웨어 패키지 및 버전을 스캔하고 가져옵니다.

Ubuntu에 설치된 소프트웨어 패키지 및 버전을 스캔하고 가져옵니다.

Ubuntu에 설치된 패키지 목록과 패키지 버전을 가져오는 Python 코드가 있습니까? 나는 Python 코드를 보았습니다.수동으로 설치된 패키지 목록 생성 및 각 패키지 쿼리. 그러나 버전 ID 목록이 없습니다. 설치된 패키지의 버전을 얻는 방법을 아는 사람이 있습니까?

답변1

이에 대한 기존 코드가 있는지 확실하지 않습니다. 하지만 문서를 보면 알 수 있습니다 /var/lib/dpkg/status. 설치된 패키지에 대한 모든 정보는 이 파일에 저장됩니다.

Python에 능숙하지 않더라도 이 파일을 구문 분석하는 코드를 작성하는 것은 매우 쉽습니다.

답변2

이것이 askubuntu로 마이그레이션되어서는 안되는지 확실하지 않지만 위 스레드에서와 동일한 방법을 사용하십시오. dpkg/dpkg-query를 실행하여 모든 데이터의 덤프를 가져오고 표준 Python 구문 분석 메커니즘을 사용하여 관련 정보를 추출합니다.

물론 이미 분기했으므로 bash 자체에서 모든 텍스트 수정을 수행할 수 있습니다.

또는 버전이 포함된 상태 파일("Dir::Etc::Status"?)이 있는 경우 이를 찾습니다. 이 방법이 가장 깨끗합니다.

답변3

-F( --format) 옵션을 aptitude에 전달합니다 .표시되는 필드 지정.

aptitude --disable-columns -F '%p %v' search '~A'

Python에서는 packages apt_pkg의 모듈을 사용합니다 python-apt.

관련 정보