Mac OS X como verificar pacotes específicos instalados

6

Em um script BASH, preciso verificar se gcc, g++, cpp, make, libpng devel, zlib devel, git, Java (incluindo arquivos de devel), ant e pkg-config estão disponíveis no Mac OS X e se não, preciso solicitar que o usuário os instale.

Esta é uma tarefa fácil no Linux, pois possui ferramentas de gerenciamento de pacotes, mas não tenho idéia de como fazer isso no shell do Mac OS X. Por exemplo. no openSUSE eu posso usar rpm -q e zypper in , das distribuições baseadas no Debian dpkg-query e apt-get install . Mas como fazer isso em um Mac?

    
por Tilia 02.06.2015 / 14:42

3 respostas

6

O sistema de gerenciamento de pacotes da Apple é frequentemente sujeito a críticas. O utilitário pkgutil pode ser usado para listar e consultar os recibos de pacotes.

Listar todos os pacotes instalados com o instalador da Apple

     pkgutil --pkgs

Regex para um ID de pacote

    pkgutil --pkgs=.\+Xcode.\+

Listar todos os arquivos em um ID de pacote

    pkgutil --only-files --files com.apple.pkg.update.devtools.3.2.6.XcodeUpdate

Então, novamente, você poderia usar lsbom e ler os arquivos bons em / var / db / receipt

Os usuários também instalam outros sistemas de gerenciamento de pacotes, como MacPorts, fink ou Homebrew. Ou compile seus próprios em qualquer prefixo. pkgutil não listará os pacotes instalados por esses métodos.

Se o seu sistema operacional de destino for o OS X10.9 ou OS X 10.10, então

    gcc --version

Ou o comando irá mostrar a versão do gcc ou você será solicitado a instalar as ferramentas de linha de comando do XCode. gcc, g++, cpp, make, and git será instalado junto com outras ferramentas. O pacote Java é oferecido pela Oracle. Você pode testar com java --version , mas precisará se familiarizar com os frameworks, plugins e pacotes da Apple para procurar por arquivos de cabeçalho. pkgutil seria um bom candidato para este processo.

Os outros pacotes que você mencionou podem ser compilados em um script de shell ou compilados e colocados em um pacote de instalação da Apple então instalado através de um script de shell. Não existe um método fácil.

    
por 02.06.2015 / 16:23
0

A primeira coisa que vem à mente é system_profiler :

system_profiler SPSoftwareDataType

A saída do comando acima será semelhante a um yum info Existem muitas outras opções para lançar neste utilitário. man system_profiler deve colocar você no caminho certo. Esta entrada de blog fornecerá um pouco mais de informações.

    
por 02.06.2015 / 14:54
0

se este pacote tem um binário que pode ser encontrado, você pode fazer -

package_name=<packge-name>
t='which $package_name'
[ -z "$t" ] && echo "the $package_name isn't installed!"
    
por 15.02.2017 / 22:44