Listar pacotes instalados independentes da distro [closed]

0

Estou procurando uma maneira padrão de obter todos os pacotes instalados em minhas máquinas Linux, mas gostaria de alcançá-los independentemente da distribuição.

Encontrei alguns muito good respostas aqui para algumas distros específicas como o Debian / Ubuntu, Fedora / CentOS, etc., mas eu não tive sucesso em uma maneira independente de distribuição para obter essa informação.

Minha primeira opção foi: Listar todos os diretórios em alguns locais específicos, como /opt ou /usr/bin . Mas usando essa abordagem, não tenho as informações sobre a versão instalada. No melhor dos casos, posso obter os nomes dos pacotes instalados e apenas isso.

Alguns antecedentes :

Eu tenho uma lista de endereços IP e portas (em uma planilha) e preciso de SSH em cada sistema e obter os pacotes instalados e suas versões, mas as distribuições podem variar muito.

Será uma tarefa única, mas outras planilhas virão no futuro, então usarei a mesma solução mais de uma vez.

Como conheço algumas das máquinas na planilha e com base nas informações dos clientes, posso inferir que a lista é para servidores, com apenas alguns desktops. Como eu disse antes, as distros podem variar muito, mas é seguro dizer que tenho um grande número de máquinas Ubuntu, Debian e CentOS.

Para desktops, a maioria é Ubuntu com alguns macOS.

Eu posso usar algum script Bash, Python ou PHP se isso ajudar.

Para a primeira versão, decidi ignorar os gerenciadores de pacotes específicos de idiomas, como npm , rvm , composer , etc, mesmo se os pacotes estivessem instalados globalmente.

Resumindo: Existe alguma maneira padrão de obter todos os pacotes instalados independentemente da distribuição?

    
por James 23.04.2018 / 21:46

2 respostas

1

Não completamente, já que algumas distribuições até hoje usam tar como seu "gerenciador de pacotes". No entanto, você geralmente pode consultar /etc/issue para obter o nome da distribuição e release de um sistema em questão e fazer algumas inferências. Como alternativa, você pode simplesmente verificar a presença de binários como yum , up2date , apt , emerge , pacman , brew , port , choco , et cetera. No entanto, isso pode falhar de maneira interessante em (digamos) um sistema derivado do Debian em que alguém decidiu tentar e obter yum funcionando.

    
por 23.04.2018 / 22:00
1

Você pode definitivamente desenvolver um playbook ansible que irá verificar o sistema operacional da máquina / servidor / host e então usar o respectivo comando do gerenciador de pacotes para listar os nomes dos pacotes.

    
por 24.04.2018 / 12:15