在CentOS系统中使用Yum包管理器安装Erlang是一项常见的系统管理任务,Erlang作为一种通用的并发编程语言,常用于构建分布式、高可用的系统,如即时通讯软件、电信系统等,本文将详细介绍在CentOS上通过Yum安装Erlang的完整流程,包括环境准备、安装步骤、配置验证及常见问题处理。

环境准备
在开始安装Erlang之前,需要确保系统满足基本要求并做好准备工作,推荐使用CentOS 7或更高版本,这些版本对Erlang的依赖支持更为完善,确保系统已更新至最新的软件包列表,以避免因版本不兼容导致的安装失败,执行以下命令更新系统:
sudo yum update -y
由于Erlang的某些依赖需要开发工具集,建议安装Development Tools包组,包含编译器、调试工具等必要组件:
sudo yum groupinstall "Development Tools" -y
添加Erlang仓库
CentOS默认的软件源中可能不包含最新版本的Erlang,因此需要添加第三方仓库,推荐使用Erlang Solutions提供的官方仓库,该仓库提供了稳定且维护良好的Erlang版本,安装Erlang Solutions的仓库配置文件:
sudo yum install -y https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
安装完成后,系统会自动添加Erlang Solutions的Yum源,如果需要验证仓库是否添加成功,可以执行:
sudo yum repolist
在输出中应包含erlang-solutions相关的仓库信息。
安装Erlang
仓库添加成功后,即可通过Yum命令安装Erlang,根据需求可以选择安装完整的Erlang环境或特定组件,以下是常见的安装方式:
安装完整Erlang环境
sudo yum install -y erlang
该命令会安装Erlang运行时环境(ERTS)以及核心组件,如编译器、调试工具等。

安装特定Erlang组件
如果只需要Erlang的部分功能(如开发工具或特定库),可以通过以下命令选择性安装:
sudo yum install -y erlang-devel # 开发工具 sudo yum install -y erlang-ssl # SSL支持 sudo yum install -y erlang-crypto # 加密库
安装指定版本的Erlang
某些场景下可能需要安装特定版本的Erlang,可以通过以下命令查看仓库中可用的版本:
sudo yum --showduplicates list erlang
假设需要安装24.3版本,执行:
sudo yum install -y erlang-24.3
配置环境变量
安装完成后,建议配置环境变量以便在命令行中直接使用Erlang命令,编辑~/.bashrc文件:
echo 'export PATH="/usr/local/lib/erlang/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
或者将路径添加到/etc/profile文件中,使所有用户均可使用。
验证安装
安装完成后,通过以下命令验证Erlang是否成功安装:
erl -version
如果显示Erlang的版本信息,则表示安装成功,还可以启动Erlang交互式shell:

erl
在shell中输入halt().即可退出。
常见问题处理
在安装过程中可能会遇到一些问题,以下是常见问题及解决方案:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| Yum安装时报错“未找到匹配的参数” | 仓库未正确添加或网络问题 | 检查网络连接,重新添加仓库 |
| Erlang启动时报错“无法加载动态库” | 依赖库缺失 | 安装libncurses5、libssl等依赖 |
| 版本冲突导致安装失败 | 系统已存在旧版本Erlang | 使用sudo yum remove erlang卸载旧版本 |
相关问答FAQs
Q1: 如何卸载已安装的Erlang?
A1: 使用以下命令完全卸载Erlang及其相关组件:
sudo yum remove erlang sudo autoremove
Q2: Erlang安装后如何切换版本?
A2: 如果仓库中存在多个版本,可以通过yum的--setopt选项指定版本:
sudo yum install --setopt=erlang-24.3.install=true erlang-24.3
若需切换回默认版本,可重新安装不带版本号的erlang包。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复