You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改Erlang源码编译后,如何让asdf正常识别该版本?

解决asdf无法识别手动编译的Erlang 12.3.4.11版本问题

问题原因

你通过修改pkey.c解决了OpenSSL 3.0缺失FIPS_mode导致的编译失败,但直接执行make install不会让asdf识别到这个版本——因为asdf依赖kerl在专属目录管理Erlang版本,而非系统全局安装。

分步解决方案

  1. 进入kerl编译目录
    因为你设置了KERL_AUTOCLEAN=0,编译后的源码存放在~/.kerl/builds/12.3.4.11目录下。进入这个文件夹(找不到的话可以用find ~/.kerl -name "12.3.4.11"搜索定位)。

  2. 通过kerl将编译产物安装到asdf的Erlang目录
    不要用通用的make install,而是用kerl命令把编译好的版本直接安装到asdf的管理路径中:

    kerl install 12.3.4.11 ~/.asdf/installs/erlang/12.3.4.11
    

    这个命令会把你修复好的Erlang编译产物移动到asdf检测版本的目录下。

  3. 执行reshim刷新asdf的版本注册表
    更新asdf的链接,让它识别到新安装的版本:

    asdf reshim erlang 12.3.4.11
    

    之后你就可以正常使用asdf global erlang 12.3.4.11或asdf local erlang 12.3.4.11来切换到这个版本了。

额外提示

  • 如果你之前已经执行过make install把版本装到了系统全局,建议先清理掉避免冲突:
    sudo make uninstall  # 在kerl编译目录下执行此命令
    
  • 确保你的kerl和asdf是较新的稳定版本,避免出现兼容性问题。

内容的提问来源于stack exchange,提问作者Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:15:05