배포판과 관계없이 설치된 패키지 나열 [닫기]

배포판과 관계없이 설치된 패키지 나열 [닫기]

Linux 시스템에 설치된 모든 패키지를 가져오는 표준 방법을 찾고 있지만 배포 독립적으로 수행하고 싶습니다.

내가 좀 찾았어매우 좋아요 답변다음은 Debian/Ubuntu, Fedora/CentOS 등과 같은 일부 특정 배포판이지만 배포판과 독립적인 방식으로 이 정보를 얻는 데는 성공하지 못했습니다.

/opt내 첫 번째 옵션은 다음과 같습니다. 또는 와 같은 특정 위치에 있는 모든 디렉터리를 나열합니다 /usr/bin. 하지만 이 방법을 사용하면 설치된 버전에 대한 정보가 없습니다. 가장 좋은 경우에는 설치된 패키지의 이름 등을 얻을 수 있습니다.

일부 배경:

IP 주소 및 포트 목록(스프레드시트)이 있고 각 시스템에 SSH를 통해 설치된 패키지와 해당 버전을 가져와야 하지만 배포는 크게 다를 수 있습니다.

이는 일회성 작업이지만 향후 다른 스프레드시트가 나올 예정이므로 동일한 솔루션을 여러 번 사용할 것입니다.

스프레드시트에 있는 컴퓨터 중 일부를 알고 있고 고객의 정보를 기반으로 하여 목록이 서버용이고 일부 데스크톱에만 해당된다는 것을 추론할 수 있습니다. 이전에 말했듯이 배포판은 크게 다를 수 있지만 저는 Ubuntu, Debian 및 CentOS 시스템을 많이 소유하고 있다고 해도 무방합니다.

데스크탑의 경우 대부분 Ubuntu와 일부 macOS입니다.

도움이 된다면 Bash, Python 또는 PHP 스크립트를 사용할 수 있습니다.

첫 번째 버전에서는 , , 등과 npm같은 언어별 패키지 관리자를 무시하기로 결정했습니다 . 이러한 패키지는 전역적으로 설치됩니다.rvmcomposer

간단히 말해서, 설치된 모든 패키지 배포를 독립적으로 만드는 표준 방법이 있습니까?

답변1

오늘날 일부 배포판에서는 tar"패키지 관리자"를 사용하기 때문에 완전히 그런 것은 아닙니다. 그러나 일반적 /etc/issue으로 문제가 되는 시스템의 릴리스 이름과 버전을 보고 몇 가지 추론을 할 수 있습니다. 또는 yum, up2date, apt, emerge, , 등과 같은 바이너리가 있는지 간단히 확인할 수도 있습니다 pacman. 그러나 흥미롭게도 데비안 파생 시스템에서는 이것이 실패할 수 있으므로 누군가가 그것을 시도하기로 결정하고 작업을 시작했습니다.brewportchocoyum

답변2

머신/서버/호스트의 운영 체제를 확인한 다음 해당 패키지 관리자 명령을 사용하여 패키지 이름을 나열하는 Ansible 플레이북을 확실히 개발할 수 있습니다.

관련 정보