Shell-Script

Mac OS X 如何驗證特定軟體包是否已安裝

  • February 15, 2017

在 BASH 腳本中,我需要檢查gcc, g++, cpp, make, libpng devel, zlib devel, git, Java(包括開發文件)是否在 Mac OS Xantpkg-config可用,如果沒有,我需要提示使用者安裝它們。

這在 Linux 上很容易,因為它有包管理工具,但我不知道如何在 Mac OS X shell 中執行此操作。例如,在 openSUSE 上,我可以使用rpm -qand zypper in,以及基於 Debian 的發行版dpkg-queryapt-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 腳本安裝。沒有簡單的方法。

引用自:https://unix.stackexchange.com/questions/207053