Mac OS X 如何驗證特定軟體包是否已安裝
在 BASH 腳本中,我需要檢查
gcc, g++, cpp, make, libpng devel, zlib devel, git, Java
(包括開發文件)是否在 Mac OS Xant
上pkg-config
可用,如果沒有,我需要提示使用者安裝它們。這在 Linux 上很容易,因為它有包管理工具,但我不知道如何在 Mac OS X shell 中執行此操作。例如,在 openSUSE 上,我可以使用
rpm -q
andzypper in
,以及基於 Debian 的發行版dpkg-query
和apt-get install
. 但是如何在 Mac 上做到這一點?
蘋果的包裹管理系統經常受到批評。該實用程序
pkgutil
可用於列出和查詢包裹收據。列出所有使用 Apple 安裝程序安裝的軟體包
pkgutil --pkgs
包 id 的正則表達式
pkgutil --pkgs=.\+Xcode.\+
列出包 id 中的所有文件
pkgutil --only-files --files com.apple.pkg.update.devtools.3.2.6.XcodeUpdate
然後你可以再次使用
lsbom
和讀取 /var/db/receipts 中的 bom 文件使用者還可以安裝其他包管理系統,例如 MacPorts、fink 或 Homebrew。或者在任何前綴中編譯自己的。
pkgutil
不會列出通過這些方法安裝的軟體包。如果您的目標作業系統是 OS X10.9 或 OS X 10.10,那麼
gcc --version
該命令將輸出 gcc 版本,或者將提示您安裝 XCode 命令行工具。
gcc, g++, cpp, make, and git
將與其他工具一起安裝。Java 軟體包由 Oracle 提供。java --version
儘管您需要熟悉 Apple 的框架、外掛和捆綁包來搜尋標頭檔,但您可以進行測試。pkgutil
將是這個過程的一個很好的候選人。您提到的其他軟體包可能會在 shell 腳本中編譯或編譯並放入 Apple 安裝程序包中,然後通過 shell 腳本安裝。沒有簡單的方法。