多台计算机间同步~/.asdf/installs文件夹是否会产生问题?
结论
不建议直接同步 ~/.asdf/installs 目录,该操作存在极高的兼容性风险。
~/.asdf/installs存储的是各个语言/工具版本安装后的二进制文件、关联依赖与配置,这类文件和当前设备的 CPU 架构、操作系统版本、系统级动态库版本强绑定:比如从 x86 架构的设备同步文件到 ARM 架构的设备,或者从低版本 glibc 的 Linux 同步到高版本 Linux 设备,同步过去的二进制文件大概率无法正常运行,还可能触发各类难以排查的运行时错误。- 即使所有设备的硬件、系统版本完全一致,只要其中一台设备修改了系统依赖、或者对应插件的编译配置有差异,同步后的文件依然会出现适配问题。
符合需求的优化方案
你要实现局域网内一次下载、多设备复用的需求,用 ~/.asdf/downloads 目录同步就可以完全满足,操作逻辑和你之前同步 Homebrew 下载缓存完全一致:
- 先在所有设备的
~/.asdfrc配置文件中添加如下配置,开启下载包永久保留功能:
always_keep_download = yes
- 局域网内同步所有设备的
~/.asdf/downloads目录即可,后续任意设备执行asdf install命令时,会优先检查本地downloads目录是否存在对应版本的原始安装包,存在的话会直接复用本地包编译安装,不会重复下载,既节省了下载带宽和时间,又完全避免了二进制文件的兼容性问题。
你之前同步 Homebrew 的
~/Library/Caches/Homebrew/downloads目录没有问题,本质也是同步原始下载包而非安装后的可执行文件,和上面的逻辑一致;如果直接同步 Homebrew 安装后的/usr/local/Cellar目录,也会遇到和同步asdf installs目录相同的兼容性问题。
内容的提问来源于stack exchange,提问作者Katrin Leinweber
相关产品推荐
相关产品推荐

