安装之前,先看一下它们的简要说明

Erlang

Erlang是一种开源编程语言,用于构建对高可用性有要求的大规模可扩展的软实时系统。它通常用于电信,银行,电子商务,计算机电话和即时消息中。Erlang的runtime系统具有对并发,分发和容错的内置支持。它是在爱立信计算机科学实验室设计的。

Elixir

Elixir是一种动态的功能语言,旨在用于构建可伸缩和可维护的应用程序。Elixir利用了以运行低延迟,分布式和容错系统而著称的Erlang VM,同时也成功地用于Web开发和嵌入式软件领域。

现在开始在CentOS 7.7 64位服务器中安装Erlang和Elixir。

安装前的准备

安装Erlang和Elixir之前,需要安装以下依赖。

yum update

yum install epel-release

yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64

沉默是金 https://blog.markhoo.com

安装Erlang

由于官方存储库中的Erlang版本可能比较旧,这里我将下载并安装最新的Erlang版本。

添加Erlang官方存储库以安装最新的Erlang。

首先到**Erlang存储库页面**,根据你使用的发行版下载存储库:

由于现在在CentOS 7.7中安装Erlang,因此我将添加以下存储库。

wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

使用以下命令更新存储库列表:

yum update

使用以下命令安装erlang

yum install erlang

现在最新版本的Erlang已安装完成。

验证Erlang

运行以下命令以验证是否已安装Erlang。

erl

输出示例:

Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]Eshell V10.6  (abort with ^G)
1>

如果看到如上的Erlang shell,表示安装成功!要关闭shell,只需按两次 Ctrl-C

在Erlang中测试示例“ hello_world”程序

创建一个名为“ hello.erl”的新文件。

vi hello.erl

添加以下代码:

-module(hello).
-export([hello_world/0]).
hello_world() -> io:fwrite("hello, world\n").

:wq保存并关闭文件。

使用以下命令打开Erlang shell:

erl

运行以下命令,切记在每个命令的末尾添加英文点:

c(hello).

hello:hello_world().

输出示例:

[root@localhost ~]# erl
Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]Eshell V10.6  (abort with ^G)
1> c(hello).
{ok,hello}
2> hello:hello_world().
hello, world
ok
3>

沉默是金 https://blog.markhoo.com

安装Elixir

安装Elixir之前必须要先安装Erlang!

Elixir在EPEL存储库中可用,但已经过时了。为了安装最新版本,这里使用源码编译安装。

现在将Elixir从GitHub拉取到本地:

git clone -b v1.9.4 https://github.com/elixir-lang/elixir.git

上面的命令会将最新版本拉取到当前工作目录中名为 elixir的文件夹中。
注意:最好指定版本,不然的话你安装完查看版本,可能就是如下所示一样,源码和版本号不匹配

Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]Elixir 1.10.0-dev (ee758f9) (compiled with Erlang/OTP 22)

接下来进到 elixir目录:

cd elixir/

运行以下命令开始编译Elixir:

make clean test

输出示例:

[root@localhost elixir]# make clean test
rm -rf ebin
rm -rf lib/*/ebin
rm -rf lib/elixir/src/elixir_parser.erl
make[1]: 进入目录“/root/elixir”
rm -rf lib/*/_build/
rm -rf lib/*/tmp/
rm -rf lib/elixir/test/ebin/
rm -rf lib/mix/test/fixtures/deps_on_git_repo/
rm -rf lib/mix/test/fixtures/git_rebar/
rm -rf lib/mix/test/fixtures/git_repo/
rm -rf lib/mix/test/fixtures/git_sparse_repo/
rm -f erl_crash.dump
make[2]: 进入目录“/root/elixir”
rm -f man/elixir.1
rm -f man/elixir.1.bak
rm -f man/iex.1
rm -f man/iex.1.bak
make[2]: 离开目录“/root/elixir”
make[1]: 离开目录“/root/elixir”
Recompile: src/elixir_utils
Recompile: src/elixir_tokenizer
Recompile: src/elixir_sup
Recompile: src/elixir_rewrite
Recompile: src/elixir_quote
Recompile: src/elixir_parser
Recompile: src/elixir_overridable
Recompile: src/elixir_module
Recompile: src/elixir_map
Recompile: src/elixir_locals
Recompile: src/elixir_lexical
Recompile: src/elixir_interpolation
Recompile: src/elixir_import
Recompile: src/elixir_fn
Recompile: src/elixir_expand
Recompile: src/elixir_errors
Recompile: src/elixir_erl_var
Recompile: src/elixir_erl_try
Recompile: src/elixir_erl_pass
Recompile: src/elixir_erl_for
Recompile: src/elixir_erl_compiler
Recompile: src/elixir_erl_clauses
Recompile: src/elixir_erl
Recompile: src/elixir_env
Recompile: src/elixir_dispatch
Recompile: src/elixir_def
Recompile: src/elixir_config
Recompile: src/elixir_compiler
Recompile: src/elixir_code_server
Recompile: src/elixir_clauses
Recompile: src/elixir_bootstrap
Recompile: src/elixir_bitstring
Recompile: src/elixir_aliases
Recompile: src/elixir
Generated elixir app
==> bootstrap (compile)
Compiled lib/elixir/lib/kernel.ex
Compiled lib/elixir/lib/macro/env.ex
Compiled lib/elixir/lib/keyword.ex
Compiled lib/elixir/lib/module.ex
Compiled lib/elixir/lib/list.ex
Compiled lib/elixir/lib/macro.ex
Compiled lib/elixir/lib/kernel/typespec.ex
Compiled lib/elixir/lib/code.ex
Compiled lib/elixir/lib/code/identifier.ex
Compiled lib/elixir/lib/module/checker.ex
Compiled lib/elixir/lib/module/locals_tracker.ex
Compiled lib/elixir/lib/module/parallel_checker.ex
Compiled lib/elixir/lib/module/types/helpers.ex
Compiled lib/elixir/lib/module/types/infer.ex
Compiled lib/elixir/lib/module/types/expr.ex
Compiled lib/elixir/lib/module/types/pattern.ex
Compiled lib/elixir/lib/module/types.ex
Compiled lib/elixir/lib/kernel/utils.ex
Compiled lib/elixir/lib/exception.ex
Compiled lib/elixir/lib/protocol.ex
Compiled lib/elixir/lib/stream/reducers.ex
Compiled lib/elixir/lib/enum.ex
Compiled lib/elixir/lib/map.ex
Compiled lib/elixir/lib/inspect/algebra.ex
Compiled lib/elixir/lib/inspect.ex
Compiled lib/elixir/lib/access.ex
Compiled lib/elixir/lib/range.ex
Compiled lib/elixir/lib/regex.ex
Compiled lib/elixir/lib/string.ex
Compiled lib/elixir/lib/string/chars.ex
Compiled lib/elixir/lib/io.ex
Compiled lib/elixir/lib/path.ex
Compiled lib/elixir/lib/file.ex
Compiled lib/elixir/lib/system.ex
Compiled lib/elixir/lib/kernel/cli.ex
Compiled lib/elixir/lib/kernel/error_handler.ex
Compiled lib/elixir/lib/kernel/parallel_compiler.ex
Compiled lib/elixir/lib/kernel/lexical_tracker.ex
make[1]: 进入目录“/root/elixir”
==> unicode (compile)
Compiling /root/elixir/lib/elixir/unicode/unicode.ex (it's taking more than 15s)
make[1]: 离开目录“/root/elixir”
==> elixir (compile)
Compiling /root/elixir/lib/elixir/lib/base.ex (it's taking more than 15s)
make[1]: 进入目录“/root/elixir”
Generated elixir app
make[1]: 离开目录“/root/elixir”
==> eex (compile)
==> mix (compile)
Generated mix app
==> ex_unit (compile)
Generated ex_unit app
==> logger (compile)
Generated logger app
Generated eex app
==> iex (compile)
Generated iex app
==> elixir (eunit)All 190 tests passed.==> elixir (ex_unit)
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Finished in 81.6 seconds (47.2s on load, 34.4s on tests)
1569 doctests, 3374 tests, 0 failures, 7 excludedRandomized with seed 847643
==> ex_unit (ex_unit)
...............................................................................................................................................................................................................................................................................................................................................................Finished in 6.2 seconds (3.9s on load, 2.3s on tests)
42 doctests, 309 tests, 0 failuresRandomized with seed 541463
==> logger (ex_unit)
............................................................................................................................Finished in 2.4 seconds (1.9s on load, 0.4s on tests)
3 doctests, 121 tests, 0 failuresRandomized with seed 211604
==> mix (ex_unit)
Excluding tags: [windows: true]............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Finished in 158.5 seconds (12.1s on load, 146.4s on tests)
9 doctests, 611 tests, 0 failuresRandomized with seed 334499
==> eex (ex_unit)
...........................................................................................Finished in 0.5 seconds (0.4s on load, 0.06s on tests)
5 doctests, 86 tests, 0 failuresRandomized with seed 599118
==> iex (ex_unit)
.......................................................................................................................................................................................................................................Finished in 8.5 seconds (2.1s on load, 6.3s on tests)
231 tests, 0 failuresRandomized with seed 207545
[root@localhost elixir]#

如果测试通过,则表示编译安装完成。

接下来将Elixir的bin路径添加到PATH环境变量中,否则Elixir将无法正常工作。

方法一(暂时生效)
现在运行以下命令:

export PATH=“$PATH:/root/elixir/bin”

在这里,我把Elixir安装在了 /root/elixir/。你必须将此路径替换为你实际的Elixir安装路径。

方法二(只对当前登陆用户生效,永久生效)

vi ~/.bash_profile

默认如下:

PATH=$PATH:$HOME/bin

添加后:

PATH=$PATH:$HOME/bin:$PATH:/root/elixir/bin

接下来执行 source ~/.bash_profile使其立即生效或者 reboot重启生效

方法三(对所有系统用户生效,永久生效)

vi /etc/profile

在文件最后添加以下两行:

PATH="$PATH:/root/elixir/bin"
export PATH

接下来执行 source /etc/profile使其立即生效或者 reboot重启生效

验证Elixir

要验证是否已安装Elixir,请运行:

iex

输出示例:

Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]Interactive Elixir (1.9.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

如果你看到Elixir shell,则表示安装成功!

同样,要关闭Elixir shell,只需按两次Ctrl-C

查看Elixir版本:

elixir --version

输出示例:

Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]Elixir 1.10.0-dev (ee758f9) (compiled with Erlang/OTP 22)

现在CentOS 7.7服务器中已成功安装并设置可工作的Erlang和Elixir开发环境,所有安装已完成!

沉默是金 https://blog.markhoo.com

参考链接:

  • Unixmen
  • Erlang网站
  • Erlang文档
  • Elixir网站
  • Elixir文档
  • 安装Erlang

CentOS 7.7安装Erlang和Elixir相关推荐

  1. CentOS 6 5安装Erlang/OTP 17 0

    CentOS 6.5安装Erlang/OTP 17.0 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Erlang目前已经是Fedora和Debian/ ...

  2. [Erlang 0004] Centos 源代码编译 安装 Erlang

    由于最终部署的生产环境是Centos,所以我需要在Centos中安装Erlang B13R04 ,第一次做这件事情破费周折,主要是对Erlang依赖的库不熟悉,总是编译不过:这里梳理一下安装过程中的细 ...

  3. centos 6.8 源码安装 erlang/otp 19.0.2

    2019独角兽企业重金招聘Python工程师标准>>> 最近一直都是在debian jessie下开发erlang代码,但部署环境一直都是在centos 6上面,发现centos 6 ...

  4. CentOS 7 离线安装配置 erlang

    环境准备 java 环境安装配置 请参照 CentOS 7 离线安装 JDK 安装 unixODBC 下载unixODBC源码包 unixODBC-2.3.7, 网站地址:http://www.uni ...

  5. centos 安装erlang

    1.安装erlang依赖环境 yum install -y gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel 方法一: 2.下载erlang ...

  6. centos安装erlang

    方法一:自动安装最新版本erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm ...

  7. 64位CentOS6.2安装erlang及rabbitmqServer

    CentOS 6.2 64bit 安装erlang及RabbitMQ Server 1.操作系统环境(CentOS 6.2 64bit) 1 [root@HAproxy ~]# cat /etc/is ...

  8. linux下安装erlang,以及cowboy的初步接触的一些环境安装

    总结一些博客的安装方法的汇总吧,网上的层次不齐,对于初学者来说很容易限于死循环. 安装虚拟机,再在虚拟上安装centos(linux)这个不再赘述,软件版本都推荐使用最新的,这样因为软件冲突会减小. ...

  9. Erlang和Elixir,第5部分:Phoenix框架

    到目前为止,我们已经看到了如何通过Elixir语言使用Erlang VM的基本数据类型和编码原理. 现在,我们将全面介绍并使用Phoenix Web Framework创建一个可运行的Web应用程序. ...

最新文章

  1. Java计算数学表达式(字符串形式)
  2. 怎么给电脑设密码_怎么给电脑中重要的文件夹设置密码?
  3. js你真的了解offsetWidth吗
  4. html缓存特效代码,HTML特效代码
  5. easyui validatebox验证
  6. 垃圾收集器Serial 、Parallel、CMS、G1
  7. tmadmin: command not found和tmadmin: error while loading shared libraries: libgpnet.so
  8. 拓端tecdat|把握出租车行驶的数据脉搏 :出租车轨迹数据给你答案!
  9. IDEA 常用快捷键 常用插件 1
  10. 关于饿了么ui框架的使用之select的应用
  11. 计算机对写字教学的冲淡,不断改进评价方法努力促进写字教学
  12. linux解密shadow_Linux系统中的/etc/shadow文件超详细内容解析
  13. 我在Facebook工作的十大经验分享
  14. 使用腾讯云托管部署前端项目
  15. 网易免费企业邮箱服务器地址
  16. 技嘉显卡性能测试软件,技嘉RTX 3080 GAMING OC魔鹰显卡评测:全方位压倒前辈的新秀...
  17. CAD图纸电子签名应用
  18. lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾
  19. 归因分析_归因分析:如何衡量影响? (第2部分,共2部分)
  20. 遍历二叉树的递归算法与非递归算法

热门文章

  1. 福慧双修探险 BZOJ4398BZOJ2407
  2. java学习第109天,p665-676(05/07),12集干的漂亮
  3. C语言数组讲解(1)一维数组的创建和初始化。
  4. 英语语法长难句——简单句
  5. 官方也无力回天?“SharedPreferences 存在什么问题?”
  6. 纯c语言打造的雷霆战机,飞机大战。可吃道具加强。
  7. 【BYM】Android模块化实践复盘
  8. 对象的序列化存储:Serializable 和 Parceable
  9. 贵金属实时行情看盘软件排行榜(top 10)
  10. 2016年8月15日 星期一 --出埃及记 Exodus 16:16