第一节:写在前面

1.1:什么是命令行工具

命令行工具(Command Line Tools)是 macOS 上至关重要的插件,苹果官方是这么介绍它的:下载 macOS SDK、标题和构建工具(如 Apple LLVM 编译器和 Make),能助您轻松安装开源软件或在终端内的 UNIX 上进行开发。macOS 可以在您首次尝试构建软件时自动下载这些工具,您也可以随时在下载页面找到它们。

简单地说,命令行工具有两个用处:

  • 使用Mac电脑终端开发软件
  • 让开源软件能够顺利安装

简单来说,Command Line Tools 就是一个小型独立包,为 macOS 终端用户提供了很多常用的工具、实用程序和一些编译器,包括但不限于 svn、git、make、gcc、clang、perl、size、strip、cpp、python3…

在使用 Mac 终端进行开发的时候,需要用到比如 Git 之类的工具!在 macOS 系统中原本就存在一些命令,也就是可执行文件,在/usr/bin目录下的那些常用命令,如 git 和 python3 等,这些命令虽然原本就存在,但是并不能使用!如:

再比如:

这些命令本身就存在,但是在使用的时候,Mac 终端会给出如下提示:

这些工具会在我们安装完命令行开发者工具以后,就能正常使用了!

1.2:我的电脑系统版本

我这里安装命令行工具的 macOS 版本是 macOS Tahoe 26.5.2 版。

第二节:安装配置

下载安装 Command Line Tools 有两种方式:

  • 第一种是去 Apple 开发者网站上去下载,下载之前需要先免费注册成为 Apple 开发者,然后再登陆下载;
  • 第二种方式比较简单,可以通过 Mac 自带的终端,执行命令来安装(国内可能会因为网络问题而失败);

2.1:下载安装

这里我选择使用第二种方式。打开终端,执行如下命令:

1
xcode-select --install

按下回车键的时候,终端会给出提示:

点击安装,会弹出安装字体的提示,点击下载:

接着会弹出协议,点击“同意”:

然后会自动查找并下载软件(刚开始展示的下载时间很长):

但是网络好的话,很快就展示真实的下载时长了:

下载完成后会自动安装:

待安装完成后,点击“完成”即可:

2.2:安装位置

安装命令行工具之前,在/Library目录下,以D开头的目录只有DirectoryServicesDocumentationDriverExtensions这三个:

安装完以后,就会在/Library下生成Developer/CommandLineTools的新目录,目录中的内容如下:

  • Library:安装的依赖库,我这里只能看到 python 的依赖库;
  • SDKs:Apple APP 开发依赖的开发环境;
  • usr:这个文件夹的内容是很多的,在它里面有很多的命令和依赖等,主要是 gcc、pip3、git 等等;

注意:在这里的/CommandLineTools/Library/Frameworks/Python3.framework/Versions中安装了 python3 !

2.3:环境变量

在没安装命令行工具之前,macOS 的环境变量为:

而安装完以后,macOS的环境变量为:

可见此时系统环境变量和PATH变量没有任何变化!那么看起来我们需要配置环境变量才能使用安装的工具了。但是不配置环境变量的情况下,我们直接使用:

可见,此时可以直接使用命令行工具中的工具了,根本就不需要配置环境变量!

2.4:个人思考

首先,我们先来看一下在终端中使用的这些命令来自哪里:

可见,原本在/usr/bin中就存在的命令变得可用了,查看一下这俩命令:

可见原本在/usr/bin目录中的命令没有任何变化,即/usr/bin中那些系统原本就存在但是无法使用的命令并没有指向 CLT 中安装的命令。更为重要的是,查看 CLT 目录中的这些命令,它们也没有指向/usr/bin/目录中的那些命令!这就很奇怪了,为什么在/Library/Developer/CommandLineTools/中安装的这些命令可以被终端找到并使用呢???

其实这里就没必要关注这个问题了,即然 Mac 在/usr/bin目录中预留了python3pip3等命令(虽然不能默认是不能使用的),而且命令行开发者工具又是为 macOS 量身定做,那么他们肯定在我们不得知的地方进行了特殊的处理,把/usr/bin目录中的,命令“重定向”到/Library/Developer/CommandLineTools/中安装的这些命令了!