第一节:写在前面

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 版本是 macOS Sonoma 14.0 版!

第二节:安装配置

下载安装 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的环境变量为:

可见此时系统环境变量实际上并没有什么变化!而且此时可以直接使用/usr/bin目录下的命令,而不用配置环境变量!

2.4:个人思考

安装完命令行开发工具以后,我们在终端中就能使用这些命令了:

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

查看安装命令行工具前后 macOS 的 PATH 变量和指定文件,发现没有任何变化!最重要的是,查看命令行开发者工具目录中的这些命令,他们也没有指向/usr/bin/目录中的那些命令;同时/usr/bin中那些系统原本就存在但是无法使用的命令也没指向 CLT 中安装的命令!那就很奇怪了,为什么在/Library/Developer/CommandLineTools/中安装的这些命令可以被终端找到并使用呢???

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