TLDR:Apple M1 下用 macports 能實現大部分 command line tools 的 native execution (不用 rosetta2 )。
剛從 Apple Store 拿到 MacBook Air 乞丐版,第一件事安裝 macports 。驚訝地發現 macports 已經是 arm64-native 了,而且 macports 下的大部分 packages 也都在 arm64 架構 pre-compiled 過了,直接可以安裝。那些尚未 pre-compiled 的可以在本地 compile 。結果就是,command line tools 基本都適配 Apple M1 。
結論:常見的 command line tools 對 Apple M1 的適配得不錯。
附錄:我用 macports 安裝 mutt 和 tmux 的日誌。我們會看到,除了 mutt 以外,其他 packages 都是直接安裝,而 mutt 需要本地 build 。
>> sudo port install tmux mutt
Password:
---> Computing dependencies for tmux
The following dependencies will be installed: libevent
Continue? [Y/n]: Y
---> Fetching archive for libevent
---> Attempting to fetch libevent-2.1.12_0.darwin_20.arm64.tbz2 from https://packages.macports.org/libevent
---> Attempting to fetch libevent-2.1.12_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/libevent
---> Installing libevent @2.1.12_0
---> Activating libevent @2.1.12_0
---> Cleaning libevent
---> Fetching archive for tmux
---> Attempting to fetch tmux-3.1c_0.darwin_20.arm64.tbz2 from https://packages.macports.org/tmux
---> Attempting to fetch tmux-3.1c_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/tmux
---> Installing tmux @3.1c_0
---> Activating tmux @3.1c_0
---> Cleaning tmux
---> Computing dependencies for mutt
The following dependencies will be installed:
curl-ca-bundle
gnutls
libidn2
libtasn1
libunistring
nettle
p11-kit
Continue? [Y/n]: Y
---> Fetching archive for curl-ca-bundle
---> Attempting to fetch curl-ca-bundle-7.73.0_0.darwin_20.noarch.tbz2 from https://packages.macports.org/curl-ca-bundle
---> Attempting to fetch curl-ca-bundle-7.73.0_0.darwin_20.noarch.tbz2.rmd160 from https://packages.macports.org/curl-ca-bundle
---> Installing curl-ca-bundle @7.73.0_0
---> Activating curl-ca-bundle @7.73.0_0
---> Cleaning curl-ca-bundle
---> Fetching archive for libunistring
---> Attempting to fetch libunistring-0.9.10_0.darwin_20.arm64.tbz2 from https://packages.macports.org/libunistring
---> Attempting to fetch libunistring-0.9.10_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/libunistring
---> Installing libunistring @0.9.10_0
---> Activating libunistring @0.9.10_0
---> Cleaning libunistring
---> Fetching archive for libidn2
---> Attempting to fetch libidn2-2.3.0_0.darwin_20.arm64.tbz2 from https://packages.macports.org/libidn2
---> Attempting to fetch libidn2-2.3.0_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/libidn2
---> Installing libidn2 @2.3.0_0
---> Activating libidn2 @2.3.0_0
---> Cleaning libidn2
---> Fetching archive for libtasn1
---> Attempting to fetch libtasn1-4.16.0_0.darwin_20.arm64.tbz2 from https://packages.macports.org/libtasn1
---> Attempting to fetch libtasn1-4.16.0_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/libtasn1
---> Installing libtasn1 @4.16.0_0
---> Activating libtasn1 @4.16.0_0
---> Cleaning libtasn1
---> Fetching archive for nettle
---> Attempting to fetch nettle-3.6_0.darwin_20.arm64.tbz2 from https://packages.macports.org/nettle
---> Attempting to fetch nettle-3.6_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/nettle
---> Installing nettle @3.6_0
---> Activating nettle @3.6_0
---> Cleaning nettle
---> Fetching archive for p11-kit
---> Attempting to fetch p11-kit-0.23.21_0.darwin_20.arm64.tbz2 from https://packages.macports.org/p11-kit
---> Attempting to fetch p11-kit-0.23.21_0.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/p11-kit
---> Installing p11-kit @0.23.21_0
---> Activating p11-kit @0.23.21_0
---> Cleaning p11-kit
---> Fetching archive for gnutls
---> Attempting to fetch gnutls-3.6.15_0+doc.darwin_20.arm64.tbz2 from https://packages.macports.org/gnutls
---> Attempting to fetch gnutls-3.6.15_0+doc.darwin_20.arm64.tbz2.rmd160 from https://packages.macports.org/gnutls
---> Installing gnutls @3.6.15_0+doc
---> Activating gnutls @3.6.15_0+doc
---> Cleaning gnutls
---> Fetching archive for mutt
---> Attempting to fetch mutt-2.0.0_0+gnutls+idn+imap+pop+smtp.darwin_20.arm64.tbz2 from https://packages.macports.org/mutt
---> Attempting to fetch mutt-2.0.0_0+gnutls+idn+imap+pop+smtp.darwin_20.arm64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/mutt/mutt
---> Attempting to fetch mutt-2.0.0_0+gnutls+idn+imap+pop+smtp.darwin_20.arm64.tbz2 from https://mse.uk.packages.macports.org/mutt
---> Fetching distfiles for mutt
---> Attempting to fetch mutt-2.0.0.tar.gz from https://bitbucket.org/mutt/mutt/downloads/
---> Verifying checksums for mutt
---> Extracting mutt
---> Configuring mutt
---> Building mutt
---> Staging mutt into destroot
---> Installing mutt @2.0.0_0+gnutls+idn+imap+pop+smtp
---> Activating mutt @2.0.0_0+gnutls+idn+imap+pop+smtp
---> Cleaning mutt
---> Updating database of binaries
---> Scanning binaries for linking errors
---> No broken files found.
---> No broken ports found.
---> Some of the ports you installed have notes:
tmux has the following notes:
If you want integration with system pasteboard consider installing port tmux-pasteboard as well
>>
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.