CentOs下有yumUbuntu下有aptwindows下有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

image-20210619210755196

更换命令,感谢前人栽树:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

image-20210619211057233

  • 选择-中科大下载源1
  • 选择-y执行脚本

2.使用

先用起来吧。

2.1 安装redis

brew install redis

image-20210619212030004

2.2 安装tree

tree命令可以显示文件夹下的文件结构,是非常好用的一个命令工具。

brew install tree

image-20210619214507806

3.路径问题

细心的童鞋可能已经发现上面安装的软件路径与其他博客不一样:

Homebrew安装的软件会默认在usr/local/Cellar路径下。

而博主的目录是:/opt/homebrew/Cellar/软件名称/版本号,这是为什么?

经过一番资料查阅,公司分配给博主的本本是搭载M1芯片的最新款MacBook Pro

img

M1采用了ARM架构,这也是ARM芯片首次进入个人电脑领域,博主不是很懂硬件,这背后的故事可丰富了,反正到故事结局:苹果”不讲武德“,Intel 处理器出局;从而实现全系列硬件生态的统一闭环,最终在 iPhone、iPad 和 Mac 系列上全部用上自研的芯片,感兴趣的童鞋可以搜搜。而Homebrew 也正是在这种背景下,积极适配新架构,就有了如下做法:

  • 在不同路径分别安装针对 X86 和 ARM 架构的两个 Homebrew 版本;
    • 根据官方规划,ARM 版 Homebrew 必须安装在 /opt/homebrew 路径下,而非此前的 /usr/local/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 版相互区隔的考虑。

参考链接

https://sspai.com/post/63935