M1 的兼容性可能没你想的那么好

2021-11-20 14:26:35 +08:00
 aec4d

看网上很多言论盛赞 M1 的兼容性,买之前我搜了下 B 站相关视频https://www.bilibili.com/video/BV1TK4y1L7DU (只是用作举例),觉得兼容性还不错

到手后用了一周发现是过于乐观了。

M1 对 X86 二进制文件的兼容性挺好,现在很多 App 甚至都有原生 ARM 版本。所以很多 app 和 x86 二进制文件都能完美运行。主要的问题出在涉及**C/C++**的编译流程上,老版本库尤其如此。在网上看到的很多人说 M1 兼容性好的操作是使用最新版。不得不说开发者社区很热情,很多开发工具 /库的最新版已经完美适配了 M1 。安装和使用都没有问题

老版本就是另外一种情况了。若干年前应该不会有人想到自己写的针对 X86 构建流程,有人会尝试在 arm 上去构建。所以涉及到**C/C++**编译的老版本软件很有可能会构建失败

我尝试安装 ARM 版的 python, 3.7 以下的版本还没有安装上。对老项目执行了pip install -r requirements.txt numpy,scipy,pandas,cryptography 等接近十个涉及到 C 的库全部不兼容,惊奇的是把这些库升级到最新版都能正常安装,只有一个库不支持, 但是也有人放出了支持的 wheel 包。最后要想使用这些库,我还得对升级后项目做一个大测试

设想一下,以前用 x86 ,很多 github 项目拷贝下来就能正常运行的,用了 M1 后可能就不行了~~

因此个人还是觉得 M1 适合视频工作者 /移动端,前端开发人员。他们的工具不太涉及到老版本工具的 C/C++构建流程

综上,我在办公室放了一台台式机,安装了 Exsi, 虚拟了 ubuntu 和 windows ,ARM 不支持的时候走远程开发流程

用了一下 jetbrains gateway ,可惜,体验并不好

希望各位开发大佬下单的时候考虑一下自己工作流的兼容性,尤其是老项目的兼容性

也希望远程开发工具能给力啊,毕竟谁不想拿个轻薄本连强大的服务器远程开发呢~~~

11871 次点击
所在节点    macOS
94 条回复
ngn999
2021-11-21 11:53:20 +08:00
现在最常用的软件还没支持 Apple Silicon 的有: Dropbox, Discord, Binance, Alacritty.
其他的都没问题了.
lucifer9
2021-11-21 11:59:31 +08:00
各位如果是用公司给配的电脑,公司允许换 M1 了,然后出现各种兼容性问题,那该骂 IT
hello2090
2021-11-21 12:09:05 +08:00
@lucifer9 对啊,我也很奇怪还有问出兼容性问题该骂谁的,谁拍板决定的骂谁呗
736531683
2021-11-21 12:09:08 +08:00
你列举的这些难道不是 arm 的问题? arm 的 pip 是有专门的源的,或者我推荐你安装 miniforge 之类的。arm 端确实很多坑,不过未来是趋势,移动设备都兼容 arm
devinww
2021-11-21 12:13:46 +08:00
每个人的情况不同,也不好说啥,目前个人 java 反正感觉没啥问题
felixcode
2021-11-21 12:21:57 +08:00
@lucifer9
所以作为公司 IT ,有点脑子的就应该只让公司里用 intel ,谁让用 m1 谁 SB ,或者谁要用 m1 就去签个免责声明。
janxin
2021-11-21 12:27:10 +08:00
其实主要是你不能假定开发者在开发的时候能预想到之后自己的程序最终要跑在 ARM 上...很多还有老版本不兼容 Windows 的呢...
oscargong
2021-11-21 13:31:50 +08:00
Python 试试 conda-forge
shadownet
2021-11-21 13:44:36 +08:00
@wangkun025 兼容性和跨平台,这是 2 个问题。还有你说的 windows xp 跑不了 win 10 的程序,这并不是一个问题,很少有系统能“向上”兼容,特别是这种版本跨越特别大的版本。

建议再看看书
bao3
2021-11-21 13:49:35 +08:00
@felixcode 没有人误导他,ARM 100% 会出现和 X86 的兼容问题,官方买 macbook 是 14 天退换的,谁也坑不了谁。
MrKrabs
2021-11-21 13:50:24 +08:00
那你直接用 rosetta 跑 x86 不就好了,说不定还比 arm 快呢
niubee1
2021-11-21 13:55:23 +08:00
也没有很多人想象的那么差,我试了试编译 python2.7 ,其实坑都不在 rosetta2 ,而是新版本的 MacOS 更换了 OpenSSL 和 zlib 的版本和安装地址,你需要自己去设置编译参数指向正确的地址即可。
wangkun025
2021-11-21 13:59:33 +08:00
@shadownet ……为什么你会认为我不知道你说的这些呢,唉。
felixcode
2021-11-21 14:01:30 +08:00
@bao3
要能 14 天里发现所有兼容性的坑就好了。
xuegy
2021-11-21 14:07:57 +08:00
我就说一个问题:sigfpe 到现在还没办法。而且不是 CPU 不支持,是 Clang 不支持,简单来说就是苹果把半成品直接拿出来卖了,外表光鲜亮丽,实际上根基还不牢。
Cu635
2021-11-21 14:15:40 +08:00
@Badlion
那恰恰说明水果的品控出了问题。
bao3
2021-11-21 16:27:14 +08:00
@felixcode 要是工作用的东西,生产力工具,自己就换了 CPU 架构,然后不用 rostta2 ,14 天的工作里没有兼容问题,那确实得想想问题到底在谁。
tanrenye
2021-11-21 20:43:10 +08:00
也不只是 Mac ,苹果的东西就这样,你必须在他的范围做事,就很爽,一旦你超出他的范围,就很难受,买苹果的东西,真的要调查清楚再下手
aec4d
2021-11-21 21:16:53 +08:00
@ruib 是拷贝一个 iTerm2 以 Rosetta 模式运行,然后 x86 的 homebrew 安装在另外一个目录? x86 和 arm 完全隔离两套?
lizytalk
2021-11-21 23:22:50 +08:00
你的需求说实话非常小众,很少有非得用旧版不可的。开发者积极适配新版本对大部分人已经够了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/816760

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX