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 ,可惜,体验并不好

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

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

11523 次点击
所在节点    macOS
94 条回复
Jooooooooo
2021-11-20 14:28:25 +08:00
我旧版本的 mac 升了个 monterey 还有好几个软件都失效了
qdwang
2021-11-20 14:28:28 +08:00
不兼容的东西是有很多。。。不搞视频的。。。还不如等 12 代酷睿笔记本。。。。而且 macbook 现在笔记本都沉的像石头。
wangkun025
2021-11-20 14:28:49 +08:00
想一下大家都有兼容性问题,就看开了。
ubuntu 也跑不了很多 Windows 程序。Windows XP 也跑不了一些 Windows10 的程序。
liprais
2021-11-20 14:33:38 +08:00
我都用了一年了,毫无问题
aec4d
2021-11-20 14:34:51 +08:00
@wangkun025 不是这样的,苹果开发 x86 生态经营了很多年,很多库都是完美兼容 x86 ,所以很多开发工作在苹果 x86 上没有阻碍,但是切换到 M1 部分老库可能就有问题了。此时个人是没办法解决的。选择合适自己当下工作流的生态,切莫单纯认为 M1 能完美兼容以前的 X86
wangkun025
2021-11-20 14:40:47 +08:00
@aec4d 有一些在 X86 上也有问题的。比如无法安装某个较老版本的软件,原因是 xcode 提供的库的版本太新了。

我使用过一段时间 M1 ,没遇到任何问题。
当然不是说 M1 没问题。
但我还是建议升级。对我来说,效率远远大于那点兼容性。
cheng6563
2021-11-20 14:46:33 +08:00
换个思路,Mac 本来就升个大版本一堆不兼容的,这样用 M1 不就是正好。
fireleaves
2021-11-20 14:47:41 +08:00
goalng 开发,用到了 cgo 以及一些 lib 库,有一些通过 brew 安装之后即可直接使用,也有一些偏门的需要自己编译,折腾了一天,现在所有的依赖都解决了。
结论:确实是做不到和 x86 一样的开箱即用,但是问题不大
Aviciii
2021-11-20 14:53:20 +08:00
低端码农,目前还没遇到兼容性问题,就是感觉系统有些不稳定
nieyujiang
2021-11-20 14:57:09 +08:00
我认为只要新版的能兼容就好了,你要求几年前甚至十几年前写的东西适配未来的东西不现实啊🧐
jfdnet
2021-11-20 15:06:34 +08:00
macos 的向后兼容性都差的一 p 不要说这都硬件换架构了。不适合自己的东西不要买。
yangzzzzzzzt1
2021-11-20 17:15:05 +08:00
兼容性感觉是个大坑,很多陈年老库不知道有多少暗坑等着踩,可能我下一个笔记本会投奔 windows 本
disk
2021-11-20 17:42:08 +08:00
能兼容最新的就不错了,我听人谈到过个别库 x86 版免费,arm 要收费,不知道是不是真的
aec4d
2021-11-20 17:58:20 +08:00
@nieyujiang 如果继续用 x86 ,那就是兼容几年前甚至十几年前写的东西啊
nieyujiang
2021-11-20 18:00:09 +08:00
@aec4d #14 就算不换 arm 处理器,苹果系统一个大版本升级,都一堆老的库编译出问题.
Biggoldfish
2021-11-20 18:12:29 +08:00
@nieyujiang 说得好,于是 Apple 的工厂里得用 Mac 装着 Windows 来制造 Apple 设备,那些辣鸡工业软件竟然不每年都更新来适配高贵的又带来 breaking change 的 Mac OS 成何体统
niubee1
2021-11-20 19:08:11 +08:00
python2.7 编译成功了的
tmux123
2021-11-20 19:13:58 +08:00
以稳定性为理由不升级依赖版本,就要有对应的觉悟,毕竟社区没有义务去做兼容 /移植。

见过有的前端项目为了保证一致性,整个 node_modules 提交到 git 仓库里,限制死 nodejs 版本,只能用 windows 开发。有条件的用远程服务器,虚拟机环境都是一模一样的。

不过话说回来,技术债迟早要还的,这是是 M1 ,下次肯定还会有别的东西。
changhai
2021-11-20 19:22:59 +08:00
好虚,python 哪个库,具体哪个应用不能用,或者慢,能清楚一点吗?
zhouwb
2021-11-20 19:26:56 +08:00
这是常识吧?毕竟平台换了,软件一定要适配,就算 x86 架构也有很多软件需要适配新系统,再说 windows 也有这个问题了,win11 就有很多兼容性问题啊,大家所谓的兼容大多数软件,当然指的是新版本适配后的,不会是旧版本,既然楼主还在用很多旧版本东西,就不该买 arm 架构,要么 win 本要么 intel 版本的 mac ,但是也大概率会遇到兼容性问题,时代在进步,不可能停滞不前,也不可能永远向后兼容,当初 windows 的向后兼容导致系统臃肿无比,各种无用东西充斥系统,是我当初抛弃 win 的原因之一,至于旧东西就该用旧设备来,比如我们单位还有 win2000 的系统,软件无法升级,只能找旧机器做 win2000 来运行,最后奉劝所有人,任何一个东西都不适用所有人,买之前考虑好自己的需求,防止后悔,装逼的当我没说

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

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

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

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

© 2021 V2EX