Centos用Kerl安装及管理Erlang的方法

发布时间:2021-09-08 16:29:00 作者:chen
来源:亿速云 阅读:326
# CentOS用Kerl安装及管理Erlang的方法

## 目录
- [前言](#前言)
- [Kerl简介](#kerl简介)
- [环境准备](#环境准备)
- [安装Kerl](#安装kerl)
- [使用Kerl安装Erlang](#使用kerl安装erlang)
- [管理多个Erlang版本](#管理多个erlang版本)
- [切换Erlang版本](#切换erlang版本)
- [卸载Erlang](#卸载erlang)
- [常见问题与解决方案](#常见问题与解决方案)
- [总结](#总结)

## 前言

Erlang是一种通用的并发编程语言,广泛应用于高并发、分布式系统的开发,尤其在电信、即时通讯等领域有着重要地位。在CentOS系统上安装和管理Erlang版本可能会遇到依赖复杂、版本冲突等问题。Kerl轻量级的Erlang版本管理工具,能够有效地解决这些问题。本文将详细介绍如何在CentOS系统上使用Kerl安装和管理Erlang。

## Kerl简介

Kerl是一个用于编译和安装Erlang/OTP的脚本工具,具有以下特点:

1. **轻量级**:纯Shell脚本实现,无需额外依赖
2. **灵活**:支持安装任意版本的Erlang/OTP
3. **隔离性**:不同版本的Erlang相互独立,互不干扰
4. **可移植性**:支持多种Unix-like系统

相比直接使用系统包管理器安装Erlang,Kerl提供了更好的版本控制和环境隔离能力。

## 环境准备

在开始之前,请确保您的CentOS系统满足以下要求:

1. 已安装基础开发工具
2. 具备sudo权限或root账户
3. 网络连接正常

### 安装必要依赖

```bash
sudo yum groupinstall -y "Development Tools"
sudo yum install -y wget curl git openssl-devel ncurses-devel autoconf

这些依赖包括: - 编译器工具链(gcc, make等) - OpenSSL开发库(Erlang加密功能需要) - ncurses库(Erlang shell需要) - autoconf(构建工具)

安装Kerl

Kerl的安装非常简单,可以通过以下步骤完成:

下载Kerl脚本

curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl

设置可执行权限

chmod +x kerl

移动到系统路径

sudo mv kerl /usr/local/bin/

验证安装

kerl version

如果安装成功,将显示Kerl的版本信息。

使用Kerl安装Erlang

1. 查看可用的Erlang版本

kerl list releases

这将显示所有可用的Erlang/OTP版本。

2. 选择并安装特定版本

以安装Erlang/OTP 25.0为例:

kerl build 25.0 25.0

命令格式为:

kerl build <版本号> <构建名称>

构建过程可能需要15-30分钟,具体取决于系统性能。

3. 安装到指定目录

构建完成后,将Erlang安装到指定位置:

kerl install 25.0 ~/erlangs/25.0

4. 激活Erlang环境

. ~/erlangs/25.0/activate

激活后,可以通过以下命令验证:

erl -version

5. 配置环境变量(可选)

为了永久生效,可以将激活命令添加到shell配置文件中:

echo ". ~/erlangs/25.0/activate" >> ~/.bashrc

管理多个Erlang版本

Kerl的强大之处在于可以轻松管理多个Erlang版本。

安装另一个版本

例如安装24.3版本:

kerl build 24.3 24.3
kerl install 24.3 ~/erlangs/24.3

列出已安装版本

kerl list installations

输出示例:

24.3 /home/user/erlangs/24.3
25.0 /home/user/erlangs/25.0

切换Erlang版本

临时切换

. ~/erlangs/24.3/activate  # 切换到24.3
. ~/erlangs/25.0/activate  # 切换回25.0

创建版本切换脚本

~/bin/目录下创建切换脚本:

#!/bin/bash
# 文件: ~/bin/switch_erlang

if [ -z "$1" ]; then
    echo "Usage: switch_erlang <version>"
    kerl list installations
    return 1
fi

VERSION=$1
INSTALL_PATH=~/erlangs/$VERSION

if [ ! -d "$INSTALL_PATH" ]; then
    echo "Erlang $VERSION not found at $INSTALL_PATH"
    kerl list installations
    return 1
fi

. $INSTALL_PATH/activate
echo "Switched to Erlang $VERSION"

设置可执行权限:

chmod +x ~/bin/switch_erlang

使用示例:

switch_erlang 24.3
switch_erlang 25.0

卸载Erlang

卸载特定版本

  1. 首先停用当前版本:
kerl_deactivate
  1. 删除安装目录:
rm -rf ~/erlangs/25.0
  1. 删除构建缓存(可选):
kerl delete build 25.0

完全移除Kerl和所有Erlang安装

  1. 删除所有安装的版本:
rm -rf ~/erlangs
  1. 删除Kerl脚本:
sudo rm /usr/local/bin/kerl
  1. 清理shell配置文件中的相关行

常见问题与解决方案

1. 构建过程中出现依赖错误

错误示例:

configure: error: No curses library functions found

解决方案:

sudo yum install -y ncurses-devel

2. SSL相关错误

错误示例:

crypto : No usable OpenSSL found

解决方案:

sudo yum install -y openssl-devel

然后重新构建Erlang。

3. 内存不足导致构建失败

在内存较小的服务器上,可能遇到:

gcc: internal compiler error: Killed (program cc1)

解决方案: 1. 创建swap空间:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo mkswap /swapfile
sudo swapon /swapfile
  1. 重新尝试构建

4. 激活脚本无效

确保使用source或.来执行激活脚本:

. ~/erlangs/25.0/activate

而不是直接执行:

~/erlangs/25.0/activate  # 这样不会改变当前shell环境

5. 版本切换后路径问题

如果遇到路径混乱,可以先完全停用:

kerl_deactivate

然后再激活需要的版本。

高级用法

自定义构建选项

Kerl允许通过配置文件自定义构建选项:

  1. 创建配置文件:
cat > ~/.kerlrc <<EOF
KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=/usr/local/ssl"
EOF

常用选项包括: - --disable-hipe 禁用HIPE - --enable-smp-support 启用SMP支持 - --without-javac 不编译Java相关部分

并行构建加速

对于多核CPU,可以使用并行编译:

export MAKEFLAGS="-j$(nproc)"
kerl build 25.0 25.0

构建文档

默认情况下Kerl不会构建文档,如需文档:

export KERL_BUILD_DOCS=yes
kerl build 25.0 25.0

与asdf的比较

Kerl是专门为Erlang设计的版本管理工具,而asdf是支持多种语言的通用工具。主要区别:

特性 Kerl asdf
专注Erlang
安装速度 中等
多语言支持
社区插件 丰富

如果只需要管理Erlang,Kerl是更轻量简单的选择。

总结

通过本文,您应该已经掌握了:

  1. 在CentOS上安装Kerl的方法
  2. 使用Kerl安装和管理多个Erlang版本
  3. 版本切换和环境配置技巧
  4. 常见问题的解决方案

Kerl为Erlang开发者提供了简单可靠的版本管理方案,特别适合需要同时维护多个项目的开发环境。它的轻量级设计和隔离特性使得不同版本的Erlang可以和平共处,大大简化了开发和测试工作流程。

附录

有用的Kerl命令速查

命令 描述
kerl list releases 列出可用版本
kerl build <ver> <name> 构建指定版本
kerl install <name> <path> 安装到指定路径
kerl list installations 列出已安装版本
kerl delete build <name> 删除构建缓存
. <path>/activate 激活指定版本
kerl_deactivate 停用当前版本

推荐阅读

  1. Erlang/OTP官方文档
  2. Kerl项目GitHub
  3. CentOS系统管理指南

希望本文能帮助您高效地在CentOS系统上管理Erlang开发环境! “`

推荐阅读:
  1. Erlang OTP安装步骤
  2. ubuntu12.04安装mongodb+eclipse erlang plugin+erlang runtime的操作方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

centos kerl

上一篇:python的语句优化和技巧

下一篇:python线程通信Condition的实例用法介绍

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》