Linux Mint 18.3安装Phoenix遇OpenSSL加载失败问题求助
解决Linux Mint 18.3安装Phoenix框架时的Crypto库加载失败问题
别着急,这个问题我在旧版Linux发行版上碰到过好几次,核心原因是Erlang的crypto模块找不到匹配的系统OpenSSL库。下面给你一步步解决的方案:
1. 先安装系统层面的OpenSSL依赖
Linux Mint 18.3基于Ubuntu 16.04,默认的OpenSSL版本是1.0.2,而Erlang 20需要对应的开发库才能正常编译和运行。先执行以下命令安装必要的包:
sudo apt-get update sudo apt-get install libssl-dev libssl1.0.0
2. 重新编译Erlang(推荐用kerl管理版本)
如果之前你是通过系统包管理器安装的Erlang,很可能它没有正确链接到系统的OpenSSL库。用kerl来管理Erlang版本会更灵活,能确保依赖匹配:
- 首先安装kerl工具:
从kerl的官方仓库下载最新的kerl脚本,保存到本地后执行以下命令:chmod +x kerl sudo mv kerl /usr/local/bin/ - 更新Erlang版本列表:
kerl update releases - 编译并安装Erlang 20(选一个稳定的子版本,比如20.3.8.26):
kerl build 20.3.8.26 erlang-20.3.8.26 kerl install erlang-20.3.8.26 ~/kerl/erlang-20.3.8.26 - 激活这个Erlang版本(每次打开新终端都需要执行,或者加到bashrc里):
source ~/kerl/erlang-20.3.8.26/activate
3. 确保Elixir和当前Erlang版本兼容
重新安装Elixir 1.6.3,确保它和激活的Erlang 20版本匹配。如果之前是用包管理器装的,先卸载再通过kiex管理安装:
- 安装kiex:
从kiex的官方仓库获取安装脚本完成安装后,执行以下命令激活并安装Elixir:source ~/.kiex/scripts/kiex kiex install 1.6.3 kiex use 1.6.3
4. 再次尝试安装Phoenix的archive
现在环境配置正确了,执行安装命令:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
备选方案:修复库链接(如果不想重新编译Erlang)
如果重新编译太麻烦,你可以尝试给Erlang的crypto模块创建软链接,让它找到系统的libcrypto库:
- 先找到系统中libcrypto的位置:
find /usr/lib -name libcrypto.so* - 假设找到的路径是
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0,创建软链接到Erlang的crypto库目录(注意替换成你实际找到的路径和Erlang的crypto版本目录):sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/erlang/lib/crypto-4.2.1/priv/lib/libcrypto.so
不过这个方法不如重新编译可靠,因为不同版本的库可能存在隐性兼容性问题。
最后提一句:Linux Mint 18.3已经停止官方支持了,长期使用的话建议升级到新版本,能避免很多类似的依赖问题。
内容的提问来源于stack exchange,提问作者Cit
相关产品推荐
相关产品推荐

