前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Mac】Mac(M1芯片)下软件包管理器——Homebrew

【Mac】Mac(M1芯片)下软件包管理器——Homebrew

作者头像
DDGarfield
发布2022-06-23 19:49:17
1.4K0
发布2022-06-23 19:49:17
举报
文章被收录于专栏:加菲的博客加菲的博客

CentOs下有yumUbuntu下有aptwindows下有?chocolatey,除此之外微软在 Build 2021 开发者大会上宣布,Windows 软件包管理器 winget 1.0 版本正式发布,当然博主还未使用。不过由于公司开发使用的是MacOS,所以本篇就介绍Mac下的包管理器——Homebrew

1.安装

https://brew.sh/index_zh-cn 执行如下命令:

代码语言:javascript
复制
/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

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

代码语言:javascript
复制
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  • 选择-中科大下载源1
  • 选择-y执行脚本

2.使用

先用起来吧。

2.1 安装redis

代码语言:javascript
复制
brew install redis

2.2 安装tree

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

代码语言:javascript
复制
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 安装软件包,用 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

------------------- End -------------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.安装
  • 2.使用
    • 2.1 安装redis
      • 2.2 安装tree
      • 3.路径问题
      • 参考链接
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档