在BASH脚本中,我需要检查gcc, g++, cpp, make, libpng devel, zlib devel, git, Java (包括devel文件)、ant和pkg-config在Mac上是否可用,如果没有,我需要提示用户安装它们。
这在Linux上是很简单的任务,因为它有包管理工具,但是我不知道如何在management中做到这一点。例如,在openSUSE上,我可以使用rpm -q和zypper in,基于Debian的发行版dpkg-query和apt-get install。但是在Mac上怎么做呢?
发布于 2015-06-02 14:23:44
苹果的软件包管理系统经常受到批评。实用程序pkgutil可用于列出和查询包收据。
列出与Apple安装程序一起安装的所有软件包
pkgutil --pkgs包id的Regex
pkgutil --pkgs=.\+Xcode.\+列出包id中的所有文件
pkgutil --only-files --files com.apple.pkg.update.devtools.3.2.6.XcodeUpdate然后,您可以再次使用lsbom并读取/var/db/收益表中的bom文件。
用户还安装其他包管理系统,如MacPorts、fink或Homebrew。或者用任何前缀编译自己的。pkgutil不会列出这些方法安装的包。
如果您的目标操作系统是OSX10.9或OSX10.10,那么
gcc --version要么命令输出gcc版本,要么提示您安装XCode命令行工具。gcc, g++, cpp, make, and git将与其他工具一起安装。Java包是从Oracle提供的。您可以使用java --version进行测试,但是您需要熟悉苹果的框架、插件和包,以搜索头文件。pkgutil将是这个过程的一个很好的候选者。
您提到的其他包可以在shell脚本中编译,也可以编译到Apple安装程序包中,然后通过shell脚本安装。没有一种简单的方法。
发布于 2015-06-02 12:54:16
首先想到的是system_profiler:
system_profiler SPSoftwareDataType上面命令的输出将类似于一个yum info,在这个实用程序中还有很多其他选项要抛出。man system_profiler应该能让你走上正确的轨道。这个博客条目将为您提供一些更多的信息。
https://unix.stackexchange.com/questions/207053
复制相似问题