M1 Mac Notes

1 Homebrew

1.1 安装

目前 (2020-12-12) 官方推荐的安装方法是 Rosetta 2 转译的 Homebrew 安装在 /usr/local/ 下面作为日常使用,Apple Silicon 的原生 Homebrew 安装在 /opt/homebrew/ 下面按需使用。

安装到指定目录下的方法可以参见这一条笔记

日常使用的话,可以给 brew 别名一下

if [[ "$(uname -m)" = "arm64" ]]; then
  alias brew='arch -x86_64 /usr/local/bin/brew'
fi

需要用到 arm brew 的时候带着完整路径就行 /opt/homebrew/bin/brew=,或者 export PATH 之后用 =\brew 跑 unalias 的命令。

我还没搞明白的地方在于,到 homebrew 完全支持 Apple Silicon 之后,默认的安装目录到底会移回 /usr/local/ 还是依然保持在 =/opt/homebrew/=。看 GitHub 上的 issue 感觉他们是打算后者,但这样的话,等于是放弃了 homebrew 一直宣传的一大卖点,顺带连不用 sudo 这个优势也变得可有可无了。

1.2 可用程度

1.2.1 Rosetta 2

Rosetta 2 转译的 Homebrew 我目前没有遇到过任何问题。

1.2.2 Apple Silicon

进度跟踪 Homebrew issue

到目前 (2020-12-12) 为止,M1 Mac 上的 Homebrew 处于一个部分可用的状态。常用的包里面,基于几个脚本语言的没什么问题,C/C++ 的从源代码编译的话基本也都能编译通过了,我目前还没遇到问题。很多包目前已经有了预编译的 bottle,小部分需要自己编译。

目前主要的 blocker 在 go 和 rust,都在等下一个支持 Apple M1 的版本发布。预计发布之后比如 fzf 和 ripgrep 这些应该就可以有 M1 原生的了。

2 Macports

我是真打算试试看用回 macports 了,Homebrew 实在是太闹心。

3 Apps

感慨一下 Rosetta 2 确实做的很完美,无缝转译,几乎不可察觉的性能损失。

3.1 Emacs mac port

Apple Silicon 下目前所有依赖的包都可以通过编译(或者 bottled),+但 Emacs 本身会遇到编译错误。我还没尝试官方的 master branch。总之这是个需要等上游解决的问题。+

Update 2020-12-13: 上游已经有了 fix,=brew install emacs-mac –head= 可以成功。 Update 2020-12-15: 目前没有什么好的方法可以给 M1 构建 cask build,只能等等看 AWS 的 M1 实例了。

Cask 版本通过 Rosetta 2 转译的没有问题,这篇笔记就是在转译的 Emacs-mac 上写出来的。

我不是很确定 modules 是什么状态,比如 emacs-rime 这种需要自己编译一下的。

3.2 Sublime text

Sublime text 官方的说法是 3 不会支持 Apple Silicon,4 有支持的计划,但目前还没有编译好的包放出来。4 目前算是半 alpha 阶段,虽然网站上没有公开,但他们 Discord 频道上有下载链接。我试了试…唔,觉得离日常使用还远。

3.3 Rime/鼠须管

作者说可以,依赖的 frameworks 也都有了 Apple Silicon 支持。只不过谁知道下一个 release 会是什么时候…上一次发布都是一年多之前了。

先用系统自带的输入法,唯一的问题是需要输入繁体字的时候麻烦了点。为偶尔几行字多加一个繁体拼音输入法我还不如直接用系统的简繁转换功能。

目前的版本 Rosetta 2 之后用没问题。

3.4 Launchbar

Rosetta 2 的版本没什么大问题。索引会忽略 iPad 和纯 Apple Silicon app,官方确认了这个问题表示下一个版本会修复,但不知道什么时候才有下一个版本。先用用 Alfred 看看,等有新版本再说了。

刚注意到 Launchbar 已经是 Universal 了,如果是上一个版本加上的升级的话,那动作还是挺快的。

3.5 Alfred

跟 Launchbar 相比 Alfred 的开发就活跃多了,官方表示下一个大版本会是 Universal 的,目前的版本有一个单独放出来的 Universal 编译可以下载。试了试没遇到什么问题。

上一次用 Alfred 还是四五年前,花了十几分钟把常用的几个 Launchbar Actions 移植了过来。我常用的大部分 Action 都是关键词过滤一下然后跑 Applescript,移植毫无难度。

不过讲顺手还是 Launchbar 顺手,一半因为肌肉记忆一半因为开发者和时间的细心打磨。

Author: sinxccc

Created: 2021-01-19 Tue 11:56