【Mac】Mac(M1芯片)下软件包管理器——Homebrew
CentOs
下有yum
,Ubuntu
下有apt
,windows
下有chocolatey
,除此之外微软在 Build 2021 开发者大会上宣布,Windows
软件包管理器 winget 1.0
版本正式发布,当然博主还未使用。不过由于公司开发使用的是MacOS
,所以本篇就介绍Mac
下的包管理器——Homebrew。
1.安装
https://brew.sh/index_zh-cn 执行如下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
由于众所周知的原因,一般情况是会报错的:Failed to connect to raw.githubusercontent.com port 443: Connection refused
更换命令,感谢前人栽树:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
- 选择-中科大下载源
1
- 选择-
y
执行脚本
2.使用
先用起来吧。
2.1 安装redis
brew install redis
2.2 安装tree
tree命令可以显示文件夹下的文件结构,是非常好用的一个命令工具。
brew install tree
3.路径问题
细心的童鞋可能已经发现上面安装的软件路径与其他博客不一样:
Homebrew安装的软件会默认在
usr/local/Cellar
路径下。
而博主的目录是:/opt/homebrew/Cellar/软件名称/版本号
,这是为什么?
经过一番资料查阅,公司分配给博主的本本是搭载M1
芯片的最新款MacBook Pro
;
而M1
采用了ARM架构,这也是ARM芯片首次进入个人电脑领域,博主不是很懂硬件,这背后的故事可丰富了,反正到故事结局:苹果”不讲武德“,Intel 处理器出局;从而实现全系列硬件生态的统一闭环,最终在 iPhone、iPad 和 Mac 系列上全部用上自研的芯片,感兴趣的童鞋可以搜搜。而Homebrew 也正是在这种背景下,积极适配新架构,就有了如下做法:
- 在不同路径分别安装针对 X86 和 ARM 架构的两个 Homebrew 版本;
- 根据官方规划,ARM 版 Homebrew 必须安装在
/opt/homebrew
路径下,而非此前的/usr/local/Homebrew
- 根据官方规划,ARM 版 Homebrew 必须安装在
- 优先使用 ARM 版 Homebrew 安装软件包,用 X86 版 Homebrew 安装尚未支持新平台的命令行软件;
- 使用
Homebrew Bundle
功能从旧 Mac 或 X86 版 Homebrew 迁移软件包。
那么,为什么 ARM 版 Mac 要使用 /opt
路径?
根据《文件系统层次结构标准》(Filesystem Hierarchy Standard,主要为 Linux 系统制定,但对具有共同 UNIX 基因的 macOS 也有参考价值):
/usr/local
目录用于系统管理员在本地安装软件。系统软件更新时,该目录应免于被覆盖。/opt
目录留作附加应用程序(add-on application)软件包的安装。安装在该目录下的软件包必须将其静态文件放置在单独的/opt/<package>
或/opt/<provider>
路径下。
历史上,/usr/local
主要用于放置在本地编译并另行安装的程序,避免和 /usr
下的系统自带版本冲突;而 /opt
则用于安装非系统自带的、第三方预先编译并发行的独立软件包。
显然,在如今的 macOS 使用场景下,用户很少会需要自行编译软件包,/usr/local
和 /opt
的区分一定程度上已经成为名义上的了。Homebrew 启用 /opt
作为 ARM 版的安装路径,可能更多是出于确保与 X86 版相互区隔的考虑。
参考链接
- 原文作者:Garfield
- 原文链接:http://www.randyfield.cn/post/2021-06-19-mac-homebrew/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。