游乐游手机版
首页/系统平台/文章详情

Linux系统下从零安装Elixir运行环境的详细步骤指南

时间:2026-06-22 11:03
Linux安装Elixir需先通过ErlangSolutions官方源安装匹配的Erlang OTP,再解压Elixir预编译包并创建软链。需确认版本:Elixir1 17以上要求OTP≥25 3。移除系统自带Erlang避免冲突。初始化hex和rebar后测试项目。注意编译时OTP版本必须不低于运行时版本。
# Linux下怎么安装Elixir运行环境

Linux下怎么安装Elixir运行环境

直接装`elixir`包?这事儿,基本行不通。系统包管理器里自带的`erlang`版本往往跟不上,或者干脆跟Elixir要求的版本不匹配,结果就是——`iex`启动失败、`mix`报莫名其妙的错、编译阶段直接崩溃。所以,正确姿势是:先把Erlang/OTP装到位,再配Elixir,顺序不能乱。 先确认下手里用的Elixir版本——Elixir 1.17以上的,需要Erlang/OTP不低于25.3;如果是1.16系列,OTP至少得是24开头。低于OTP 22的那些旧版本,基本跟现代Elixir工程无缘了。 **重中之重:别信包管理器默认的那个erlang。** CentOS上`yum install erlang`、Ubuntu上`apt install erlang`,很大概率给你装个OTP 20或21——然后`mix compile`直接报`** (ArgumentError) argument error`,或者干脆静默退出,查都无从查。 怎么确认当前版本?跑`erl -version`或者`erl -s erlang halt`,看输出首行。这里注意,别只看`erlang --version`,那个输出有时不准。 如果版本不够,就得先把系统的erlang卸干净:Ubuntu用`sudo apt remove erlang*`,CentOS用`sudo yum remove erlang*`。不清干净的话,新旧版本冲突会干扰PATH查找,后患无穷。 官方推荐的源是Erlang Solutions(不是EPEL也不是Debian默认源),它同步更新主线版本的预编译包,比源码编译稳得多。 ## 用官方源装Erlang 源码编译Emake?对于生产环境或者CI,能省就省——编译容易因为缺`ja va-devel`、`wxWidgets`、`odbc-devel`这些依赖中途挂掉。官方预编译包把这些坑都填平了,装完直接用。 Ubuntu/Debian上,先下载并安装源配置deb包: ``` wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb ``` 然后更新源并安装: ``` sudo apt update && sudo apt install esl-erlang ``` CentOS/RHEL则是加rpm源: ``` sudo rpm -Uvh https://packages.erlang-solutions.com/erlang-solutions_2.0-1.noarch.rpm sudo yum install erlang ``` 装完之后,用下面这个命令精准确认OTP版本——它会输出类似`"27"`这样的结果: ``` erl -eval 'io:format("~p~n", [erlang:system_info(otp_release)]).' -noshell -s init stop ``` ## 安装Elixir 除非你要改Elixir编译器本身的源代码,否则官方预编译包够用了——无依赖、启动快、路径干净。源码`make`一遍完全是浪费时间。 下载对应平台的最新稳定版zip(以1.17.2为例,实际使用时替换为当前latest release的版本号): ``` wget https://www.php.cn/link/392ede8a57f26b1ddfccd8a0356577aa/download/v1.17.2/Precompiled.zip ``` 解压到`/opt/elixir`,再软链到`/usr/local/bin`——这样路径干净,不会污染`~/.local/bin`或用户级PATH: ``` sudo unzip Precompiled.zip -d /opt/elixir sudo ln -sf /opt/elixir/bin/elixir /usr/local/bin/elixir sudo ln -sf /opt/elixir/bin/iex /usr/local/bin/iex ``` 验证一下:`elixir --version`应该输出类似`Elixir 1.17.2 (compiled with Erlang/OTP 27)`。注意括号里写的是“compiled with”,这是编译时用的OTP版本;运行时真正用的是哪个版本,由`erl`决定,别弄混了。 ## 验证mix和hex `mix`是Elixir的构建工具,但它默认不带Hex包管理器。首次运行`mix hex.info`会提示安装,不过在国内企业网络或者老旧OpenSSL环境下,这一步可能卡在SSL证书上。 稳妥的做法是手动初始化: ``` mix local.hex --force && mix local.rebar --force ``` 如果遇到SSL错误(最常见于企业袋里或老旧系统),临时加点环境变量可以绕过去: ``` export HEX_HTTP_CONCURRENCY=1 export MIX_ENV=prod ``` 然后重试刚才的命令。 再测试下新建项目能不能正常运行: ``` mix new hello && cd hello && mix test ``` 如果报`** (RuntimeError) could not find the "test" environment`,那就是`MIX_ENV`没生效。可以检查一下`config/config.exs`里有没有多余的`use Mix.Config`——新版Elixir已经弃用这个了,把它删掉就行。 ## 版本耦合问题:最容易翻车的地方 很多人觉得“Erlang和Elixir版本差不多能跑就行”,但实际上有个很坑的规则:**编译时OTP版本必须 ≥ 运行时OTP版本。** 听起来绕?举个例子:你用OTP 27编译出来的Elixir二进制,不能降级到OTP 25的环境下跑。即便`erl`自己能在shell里正常进,`iex`也可能在加载Kernel模块时静默退出,完全没任何错误信息。这个问题一旦碰上,排查起来相当耗时。 所以说到底,安装Elixir之前,先把Erlang/OTP版本精确确认好——这才是整个流程的关键一环。
来源:https://www.php.cn/faq/2682014.html
上一篇银河麒麟桌面快捷方式创建详细方法步骤 下一篇统信UOS安装与使用Docker Compose教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送