发现
入手Mac后使用的第一个命令行工具就是Git,没想到出师不利,连安装Git都能变得这么麻烦
当准备去git官网下载Git时,会看到如下安装方式
emmm,感觉这次安装并不会像Windows一样简单愉快(Git给Windows提供了一个exe安装程序)
这四个选择中,首先排除Building from Source
(太麻烦了)
从剩下的三个选择中得到的信息是
- 有一个叫brew的命令/工具,可以用来安装git,以及git-gui
- XCode提供了Git
通过进一步探索,最终将这两个信息定位到了HomeBrew
和Command line tools
brew
是HomeBrew的
命令名- XCode的
Command line tools
提供了Git
一、HomeBrew
Homebrew是一款Mac OS平台下的软件包管理工具,是一个开源的 Ruby 脚本,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,不用关心各种依赖和文件路径的情况,十分方便快捷。
更通俗地讲,Homebrew 类似于一个软件中心,可以理解成 App Store 或者 Google Play 那样的软件商店
HomeBrew官网 贴出了安装命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
但是通过官方命令安装一般会报错,如下
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
这是因为国内受GFW的限制访问不到https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
这个脚本
解决办法有
- 如果有梯子的话,通过浏览器访问这个
sh
下载到本地,把安装命令中的网络地址换为本地下载下来的文件地址;也可以找到raw.githubusercontent.com
通过替换hosts的方式安装 - 如果有梯子的话,终端设置代理,再执行安装命令
- 使用国内源
(2022-09-28:尽量还是别用国内源,我brew install node@16
失败,切换成官方源才行。brew切换为国内源以及恢复)
这里只说一下使用https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh
这个国内源的过程
国内源有很多,其中这个脚本推荐的比较多,安装过程简洁,提示比较详细
命令如下
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
这个脚本安装时给的提示非常全面。安装完成后在终端输入 brew -v
可以看到当前版本,则说明安装成功
附 卸载脚本
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
坑来了。安装过程到最后一步时,可能会报错
这个脚本依赖于Git,需要先安装Git才能使用这个脚本。也就是说,如果你是为了安装Git而使用这个脚本来安装HomeBrew
的话,恭喜你碰到"死循环"了
实际上,这个截图包含的过程是这样的:
- 此脚本依赖于Git (在开头绿字就提到了)
- 安装到最后一步,脚本要使用Git命令。如果电脑没有安装Git的话,就会给出提示错误
- MacOS可以识别到刚刚触发了一次Git命令,因为此命令包含在自家的"命令行开发者工具"中,所以友善得给出了弹窗提示和一键安装。
这个"命令行开发者工具"就是接下来要说的Command line tools
二、Command line tools
简单来讲Command Line Tools
就是一个开发工具包,为mac终端用户提供了许多常用的实用程序、编译器等开发工具。包括git、make、gcc、clang、perl、size、strip、strings、libtool、cpp、what
以及其他很多能够在Linux默认安装中找到的有用的命令 (以前还提供有svn
,后来在某次更新后就不提供了)
有意思的是,在没有安装
Command Line Tools
之前,就可以在/usr/bin
下找到很多Command Line Tools
中的命令(如git、cpp、gcc等
)。(我认为)它们其实不是真正的命令,其存在意义是当用户在调用这些命令时,去其它目录寻找该命令,如果找不到,就弹窗提示用户安装Command Line Tools
从MacOS High Sierra,Sierra,OS X El Capitan,Yosemite,Mavericks
开始,Command Line Tools
不再依赖于Xcode,可以单独安装
安装方式
-
终端运行
xcode-select --install
,默认安装最新版本运行命令后,会有提示安装的弹窗。实际上执行大部分该包提供的命令都会有这个弹窗
-
直接在官网下载安装包:https://developer.apple.com/download/all/
(原来这个工具包有3.4G,怪不得没有包含在系统里)
安装完成后,可以通过输入git
等命令检查是否安装成功 (不再弹窗提示安装即表示安装成功)
查看Command Line Tools
的实际安装位置是
> xcode-select --print-path
/Library/Developer/CommandLineTools/
卸载
Command Line Tools
的方式是直接删除该目录:sudo rm -rf /Library/Developer/CommandLineTools
拓:通过Xcode安装Git
现在已经知道,在没有安装Git之前,直接使用Git命令报错并弹窗提示下载Command Line Tools
xcode-select: note: no developer tools were found at '/applications/xcode.app',
requesting install. choose an option in the dialog to download the command line developer tools.
仔细发现报错的第一句话描述其实和xcode.app
有关,而第二句话和弹窗是让下载Command line tools
。但刚刚说了,Command line tools
已经不再依赖于Xcode了,为什么这里又把两者关联起来了呢
为了一探究竟,我没有安装Command line tools
(也没有单独安装git、gcc、cpp
等),而是直接安装了Xcode
安装成功后,发现竟然可以成功调用git、gcc、cpp
等命令
命令显示出他们的安装位置是在Xcode包内
调用xcode-select --print-path
,发现也是在Xcode包内
后来在官网的Command line tools
中看到了详细描述。原来如此(见红线处)