如何检查命令行工具是否已安装

我有一台配备 OS X 10.8.2操作系统的 Macbook pro 笔记本电脑。 XCode 已经安装。我知道这一点,因为它出现在 Applications 目录中。 在/usr/bin 中还有 xcodebuild 和 xcode-select 文件 我需要知道是否安装了命令行工具。 有命令吗? 如果要查看是否安装了 XCodeCLT,如果要查找已安装的版本,我应该做些什么?

213066 次浏览

10.15 Catalina 更新:

参见优胜美地更新。

10.14 Mojave 更新:

参见优胜美地更新。

10.13塞拉利昂高峰更新:

参见优胜美地更新。

10.12 Sierra 更新:

参见优胜美地更新。

10.11 El Capitan 更新:

参见优胜美地更新。

10.10优胜美地更新:

只需在命令行中输入 gccmake!OSX 将知道您没有命令行工具,并提示您安装它们!

为了检查它们是否存在,xcode-select -p将打印目录。或者,如果它们不存在,返回值将是 2,如果它们存在,返回值将是 0。只打印返回值(谢谢@Andy) :

xcode-select -p 1>/dev/null;echo $?

10.9小牛更新:

使用 pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

10.8更新:

选项1: Rob Napier建议使用 pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI,这可能更清洁。

选项2: 检查 /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plist中对 com.apple.pkg.DeveloperToolsCLI的引用,它将列出版本 4.5.0

[Mar 12 17:04] [jnovack@yourmom ~]$ defaults read /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plist
{
InstallDate = "2012-12-26 22:45:54 +0000";
InstallPrefixPath = "/";
InstallProcessName = Xcode;
PackageFileName = "DeveloperToolsCLI.pkg";
PackageGroups =     (
"com.apple.FindSystemFiles.pkg-group",
"com.apple.DevToolsBoth.pkg-group",
"com.apple.DevToolsNonRelocatableShared.pkg-group"
);
PackageIdentifier = "com.apple.pkg.DeveloperToolsCLI";
PackageVersion = "4.5.0.0.1.1249367152";
PathACLs =     {
Library = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
System = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
};
}

约塞米蒂国家公园

下面是一些人可能需要的新 Mac 上的一些额外步骤。这为@jnovack 的出色回答增添了一些内容。

更新: 设置时的其他注意事项:

确保管理员用户有密码。在尝试启用 root 用户时,空白密码不起作用。

System Preferences > Users and Groups > (select user) > Change password

然后,为了启用 root,在一个终端中运行 dsenableroot:

$ dsenableroot
username = mac_admin_user
user password:
root password:
verify root password:


dsenableroot:: ***Successfully enabled root user.

输入管理员用户的密码,然后两次输入新启用的 root 密码。

下一种类型:

sudo gcc

或者

sudo make

它的反应如下:

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.


To proceed, enter your password, or type Ctrl-C to abort.


Password:




You have not agreed to the Xcode license agreements. You must agree to
both license agreements below in order to use Xcode.

当出现显示许可协议的提示时,按回车键。

Hit the Enter key to view the license agreements at
'/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'


IMPORTANT: BY USING THIS SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE
FOLLOWING APPLE TERMS:


//...

q退出许可协议视图。

By typing 'agree' you are agreeing to the terms of the software license
agreements. Type 'print' to print them or anything else to cancel,
[agree, print, cancel]

输入 agree,然后它会以:

clang: error: no input files

这基本上意味着您没有给 makegcc任何输入文件。

这张支票看起来是这样的:

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

小牛队

对于小牛队来说,现在有点不同了。

当找不到这些工具时,pkgutil命令返回的结果如下:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

要安装命令行工具,可以在终端上很好地工作,有一个很好的 GUI 和所有东西。

$ xcode-select --install

Http://macops.ca/installing-command-line-tools-automatically-on-mavericks/

当找到它们时,pkgutil命令返回的结果如下:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 5.0.1.0.1.1382131676
volume: /
location: /
install-time: 1384149984
groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group

该命令在安装之前和之后返回相同的结果。

$ pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

此外,我以前在 xcode 的下载部分中选择并安装了 CLT 的组件,但是它似乎没有到达终端..。

希望能帮上忙。

转到应用程序 > Xcode > 首选项 > 下载

您应该会看到要安装的命令行工具。

关于 macOS Sierra (10.12) :

  1. 运行以下命令查看是否安装了 CLT:

    xcode-select -p
    

    如果已经安装了 CLT,这将返回工具的路径

    /Applications/Xcode.app/Contents/Developer
    
  2. Run the following command to see the version of CLT:

    pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
    

    这将返回版本信息,输出将是这样的-

    package-id: com.apple.pkg.CLTools_Executables
    version: 8.2.0.0.1.1480973914
    volume: /
    location: /
    install-time: 1486372375
    

要检查命令行工具是否已安装,请运行:

xcode-select --version


// if installed you will see the below with the version found in your system
// xcode-select version 1234.

如果没有安装命令行工具,请运行:

xcode-select --install

从编程的角度来看,家酿人员检查是否存在各种文件,以确定是否安装了命令行工具。目前它总是检查 /Library/Developer/CommandLineTools/usr/bin/git,如果操作系统版本是10.13或更低,也会检查 /usr/include/iconv.h

因为 Xcode 包含了 CLI 工具(如果先安装的话) ,所以我使用了下面的混合工具,它已经在10.12和10.14上进行了验证。我希望它适用于许多其他版本:

installed=$(pkgutil --pkg-info=com.apple.pkg.CLTools_Executables 2>/dev/null || pkgutil --pkg-info=com.apple.pkg.Xcode)

盐与 awk的味道分支逻辑。

当然,xcode-select -p使用非常简短的命令来处理这些变化,但是没有提供详细的包、版本和安装日期元数据。

我认为对我来说最简单的方法是找到命令行工具是否安装,以及它的版本,而不管 MacOS 的版本是什么

$brew config

MacOS: 10.14.2-x86 _ 64
CLT: 10.1.0.1.1539992718
Xcode: 10.1

当您正确地安装了命令行工具并正确地设置了路径时,就可以这样做。

早些时候我得到了如下输出
MacOS: 10.14.2-x86 _ 64
不行
Xcode: 10.1

CLT 尽管具有 gcc,工作状态良好,输出低于正常值,但仍显示为 N/A

$xcode-select -p
/Applications/Xcode.app/Contents/Developer
$pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.
$brew doctor
Your system is ready to brew.

最后,通过 xcode-select —— install 解决了无法找到 CLT 来安装包的问题,如下所示。

Installing sphinx-doc dependency: python
Warning: Building python from source:
The bottle needs the Apple Command Line Tools to be installed.
You can install them, if desired, with:
xcode-select --install

在 macOS 卡特琳娜中,可能还有一些早期版本,您可以使用以下方法查找命令行工具的安装位置:

又名 xcode-select --print-path

如果安装了它,它会响应以下内容:

/Library/Developer/CommandLineTools

你可使用以下连结找出已安装的版本:

又名 xcode-select --version

它会返回类似这样的结果:

xcode-select version 2370.

但是 ,如果您试图将其升级到最新版本,假设已经安装,请使用以下命令:

xcode-select --install

你会收到回应:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

这会给你一个错误的印象,你需要使用 Spotlight 找到一些叫做“软件更新”的东西。实际上,您需要在终端中继续,并使用以下命令:

又名 softwareupdate --install --all

该公司试图更新一切可能的信息,并很可能做出如下回应:

Software Update Tool


Finding available software
No new software available.

要查明您的机器上安装了不同版本的 Apple SDK,请使用以下命令:

xcodebuild -showsdks

打开终端并检查是否已经安装了 Xcode:

xcode-select -p

作为回报,如果你得到这个:

/Library/Developer/CommandLineTools

这意味着已经安装了 Xcode。

另一种方法你可以检查你是否安装了“ HomeBrew”你可以使用以下命令来查看你是否有 Xcode 和版本:

brew config

最后,如果您没有 Xcode,请按照以下链接从 Appstore.应用程序商店中的 Xcode下载 Xcode。

祝你好运。

% xcode-select-h 用法: xcode-select [ options ]

打印或更改活动开发人员目录的路径。此目录 控制哪些工具用于 Xcode 命令行工具(例如, Xcodebuild)以及 BSD 开发命令(例如 cc 和 make)。

选择: - h-帮忙打印这条帮助信息然后退出 - p,—— print-path 打印活动开发人员目录的路径 - s,—— switch 设置活动开发人员目录的路径 —— install 打开一个用于安装命令行开发工具的对话框 - v,—— version 打印 xcode-select 版本 - r,——重置为默认命令行工具路径

用于 bash 脚本:

if ! command -v xcode-select &> /dev/null
then
echo "\t xcode was not found! You need to manually install it :/ "
else
echo "xcode is installed, checking other IOS build tools"
fi