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

Ubuntu系统下移除或降级Erlang:Phoenix框架兼容故障求助

解决Erlang/OTP 20升级后Phoenix异常及Erlang降级问题

我之前也踩过Erlang大版本升级导致Phoenix罢工的坑,这种兼容性问题确实挺闹心的,给你几个实用的解决方向:

一、先排查Phoenix与Erlang 20的兼容性

首先得确认你的Phoenix版本是否适配Erlang/OTP 20——不少旧版Phoenix(比如1.3之前的版本)对Erlang 20的支持不太好。你可以先这么操作:

  • 打开项目根目录的mix.exs文件,查看:phoenix的版本号。如果版本低于1.3.0,优先尝试升级Phoenix到兼容版本:
    mix deps.update phoenix
    
  • 重新拉取并编译依赖:
    mix deps.get && mix deps.compile
    
  • 再尝试启动项目:
    mix phx.server
    

如果能正常启动,那就是版本兼容的问题,不用降级Erlang了。

二、彻底卸载Erlang 20并降级到19

如果必须回到Erlang 19,系统不让直接替换的话,得先把Erlang 20彻底清理干净:

1. 完全卸载Erlang 20(以Debian/Ubuntu为例)

  • 先列出所有已安装的Erlang相关包:
    dpkg --list | grep erlang
    
  • 批量卸载所有Erlang包,包括配置文件:
    sudo apt-get purge erlang*
    
  • 清理残留的依赖和无用文件:
    sudo apt-get autoremove && sudo apt-get autoclean
    

2. 手动安装Erlang 19

  • 找到对应系统的Erlang 19安装包(比如.deb或.rpm格式),然后强制覆盖安装:
    sudo dpkg -i --force-overwrite erlang_19.x.x-1_amd64.deb
    
    记得把命令里的包名替换成你下载的具体文件名。

3. 用版本管理工具规避冲突(强烈推荐)

其实最省心的方式是用Erlang版本管理工具,比如asdf或kerl,能同时管理多个Erlang版本,切换起来毫无压力:

  • 安装asdf:通过git克隆其仓库到本地~/.asdf目录,选择稳定分支,然后按照指引配置shell环境(比如在~/.bashrc或~/.zshrc中添加初始化脚本)。
  • 添加Erlang插件:
    asdf plugin add erlang
    
  • 安装Erlang 19:
    asdf install erlang 19.3
    
  • 设置版本:可以全局设置Erlang 19,也可以仅给当前Phoenix项目单独设置:
    # 全局生效
    asdf global erlang 19.3
    # 仅当前项目生效
    asdf local erlang 19.3
    

三、验证环境是否正常

不管是升级Phoenix还是降级Erlang,最后都要确认环境没问题:

  • 检查Erlang版本:
    erl -version
    
  • 进入Phoenix项目目录,执行编译和启动命令:
    mix deps.compile && mix phx.server
    

如果服务器能正常启动,就说明问题解决啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:21:48