Til*_*lia 8 command-line osx shell-script package-management
在bash脚本我需要检查gcc, g++, cpp, make, libpng devel, zlib devel, git, Java
(包括devel的文件),ant
并且pkg-config
还可以在Mac OS X,如果没有,我需要提示用户安装它们。
这在 Linux 上很容易,因为它具有包管理工具,但我不知道如何在 Mac OS X shell 中执行此操作。例如,在 openSUSE 上,我可以使用rpm -q
和zypper in
,od 基于 Debian 的发行版dpkg-query
和apt-get install
. 但是如何在 Mac 上做到这一点呢?
苹果的包管理系统经常受到批评。该实用程序pkgutil
可用于列出和查询包裹收据。
列出使用 Apple 安装程序安装的所有软件包
pkgutil --pkgs
Run Code Online (Sandbox Code Playgroud)
包 ID 的正则表达式
pkgutil --pkgs=.\+Xcode.\+
Run Code Online (Sandbox Code Playgroud)
列出包 id 中的所有文件
pkgutil --only-files --files com.apple.pkg.update.devtools.3.2.6.XcodeUpdate
Run Code Online (Sandbox Code Playgroud)
然后你可以再次使用lsbom
和读取 /var/db/receipts 中的 bom 文件
用户还安装其他包管理系统,例如 MacPorts、fink 或 Homebrew。或者在任何前缀中编译自己的。pkgutil
不会列出通过这些方法安装的软件包。
如果您的目标操作系统是 OS X10.9 或 OS X 10.10 那么
gcc --version
Run Code Online (Sandbox Code Playgroud)
该命令将输出 gcc 版本,或者系统会提示您安装 XCode 命令行工具。gcc, g++, cpp, make, and git
将与其他工具一起安装。Java 包由 Oracle 提供。您可以进行测试,java --version
但您需要熟悉 Apple 的框架、插件和包来搜索头文件。pkgutil
将是这个过程的一个很好的候选人。
您提到的其他软件包可能会在 shell 脚本中编译,或者编译并放入 Apple 安装程序包中,然后通过 shell 脚本安装。没有简单的方法。