Install Erlang and Elixir in CentOS 7
In this tutorial, we will be discussing about how to install Erlang and Elixir in CentOS 7 minimal server. Before installing them, let us see a brief explanation of each.
About Erlang
Erlang is an open source programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance. It is designed at the Ericsson Computer Science Laboratory.
About Elixir
Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
Now, let us start to install Erlang and Elixir in CentOS 7 64bit minimal server.
Prerequisites
Before installing Erlang and Elixir, we need to install the following prerequisites.
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
Install Erlang
The Erlang version in the official repositories might be older. So, let us download and install the latest Erlang version.
Add Erlang official repository to install the latest Erlang.
To do so, head over to the Erlang repository page, and download the repository depending upon the distribution you use:
Since, we are installing Erlang in CentOS 7, I am going to add the following repository.
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
Update the repository lists with command:
yum update
Install Erlang using command:
yum install erlang (安装erlang从github上下载速度比较慢,最好centos 服务器上安装shadowsocks客户端 参考文章:http://www.cnblogs.com/weifeng1463/p/8931254.html)
That’s it. The latest Erlang version has been installed.
Verify Erlang
Run the following command to verify whether Erlang is installed or not.
erl
Sample output:
Erlang/OTP 18 [erts-7.3] [source-d2a6d81] [64-bit] [async-threads:10] [hipe] [kernel-poll:false] Eshell V7.3 (abort with ^G)
1>
If you see the Erlang command prompt, it’s working! To close the shell, just press Ctrl-Ctwice.
Test a sample “hello_world” program in Erlang
Create a new file called “hello.erl”.
vi hello.erl
Add the following lines:
-module(hello).
-export([hello_world/0]).
hello_world() -> io:fwrite("hello, world\n").
Save and close the file.
Enter to Erlang shell with command:
erl
Run the following commands one by one. Don’t forget to add dot (.) at the end of each command:
c(hello).
hello:hello_world().
Sample output:
Install Elixir
Elixir is available in EPEL repository, but it is very outdated. So, in order to install latest version, we will compile and install it from source file.
Please be mindful that before installing Elixir, you must install Erlang first.
Git clone to the Elixir repository:
git clone https://github.com/elixir-lang/elixir.git
The above command will clone the latest version to a folder called elixir in the current working directory. I have
Go to the elixir directory:
cd elixir/
Run the following command to start compiling elixir:
make clean test
Sample output:
[...]
Compiled lib/iex/app.ex
Compiled lib/iex.ex
Compiled lib/iex/autocomplete.ex
Compiled lib/iex/cli.ex
Compiled lib/iex/config.ex
Compiled lib/iex/history.ex
Compiled lib/iex/helpers.ex
Compiled lib/iex/introspection.ex
Compiled lib/iex/remsh.ex
Compiled lib/iex/server.ex
Compiled lib/iex/evaluator.ex
Compiled lib/iex/info.ex
Generated iex app
==> elixir (eunit)
All 194 tests passed. ==> elixir (exunit)
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. Finished in 126.1 seconds (81.7s on load, 44.3s on tests)
2909 tests, 0 failures Randomized with seed 29478
==> ex_unit (exunit)
.......................................................................................................................................................................................... Finished in 8.0 seconds (6.5s on load, 1.5s on tests)
186 tests, 0 failures Randomized with seed 540622
==> logger (exunit)
........................................................................................ Finished in 4.4 seconds (3.9s on load, 0.4s on tests)
88 tests, 0 failures Randomized with seed 662540
==> mix (exunit)
.................................................................................................................................................................................................................................................................................................................. Finished in 91.0 seconds (14.1s on load, 76.8s on tests)
306 tests, 0 failures Randomized with seed 988584
==> eex (exunit)
....................................................................... Finished in 0.9 seconds (0.8s on load, 0.07s on tests)
71 tests, 0 failures Randomized with seed 955314
==> iex (exunit)
........................................................................................................... Finished in 5.7 seconds (3.3s on load, 2.3s on tests)
107 tests, 0 failures Randomized with seed 128154
If the tests pass, you are done.
Now, It is highly recommended to add Elixir’s bin path to your PATH environment variable. Otherwise, Elixir will not work.
To do so, run the following command:
export PATH="$PATH:/root/elixir/bin"
Here, I have installed elixir on /root/elixir/ location. You must replace this path with your actual Elixir installation path.
Verify Elixir
To verify whether Elixir is installed or not, run:
iex
Sample output:
Erlang/OTP 18 [erts-7.3] [source-d2a6d81] [64-bit] [async-threads:10] [hipe] [kernel-poll:false] Interactive Elixir (1.3.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
If you see the Elixir’s shell prompt, congratulations!
Again, to close the Elixir’s shell, just press Ctrl-C twice.
To check Elixir’s version:
elixir --version
Sample output:
Elixir 1.3.0-dev (bbf7a23)
That’s it. We have now successfully setup working Erlang and Elixir development environment in CentOS 7 server.
Cheers!
参考文章:https://www.unixmen.com/install-erlang-elixir-centos-7/
Install Erlang and Elixir in CentOS 7的更多相关文章
- CentOS 7.7安装Erlang和Elixir
安装之前,先看一下它们的简要说明 Erlang Erlang是一种开源编程语言,用于构建对高可用性有要求的大规模可扩展的软实时系统.它通常用于电信,银行,电子商务,计算机电话和即时消息中.Erlang ...
- rabbitmq install erlang faild
我安装的时候莫名的出现这2个错误 No Presto metadata available for rabbitmq-erlangwarning: /var/cache/yum/x86_64/7/ra ...
- Install FFMPEG and FFMPEG-PHP in CentOS 6 with Virtualmin
Install FFMPEG and FFMPEG-PHP in CentOS 6 with Virtualmin 1 year ago - by Daniel - howto centos v ...
- Erlang 和 Elixir 互相调用 (转)
lixr设计目标之一就是要确保兼容性,可以兼容Erlang和其生态系统.Elixir和Erlang 都是运行同样的虚拟机平台(Erlang Virtual Machine).不管是在Erlang使用E ...
- Erlang 和 Elixir的差异
原文: http://elixir-lang.org/crash-course.html 函数调用 Elixir允许你调用函数的时候省略括号, Erlang不行. Erlang Elixir some ...
- install erlang environment on centos
#(erlide in linux can't detect the runtime if build from source, but erlang shell works correctly)su ...
- [Erlang 0108] Elixir 入门
Erlang Resources里面关于Elixir的资料越来越多,加上Joe Armstrong的这篇文章,对Elixir的兴趣也越来越浓厚,投入零散时间学习了一下.零零散散,测试代码写了一些,Ev ...
- [Erlang 0113] Elixir 编译流程梳理
注意:目前Elixir版本还不稳定,代码调整较大,本文随时失效 之前简单演示过如何从elixir ex代码生成并运行Erlang代码,下面仔细梳理一遍elixir文件的编译过程,书接上文,从 ...
- [Erlang 0112] Elixir Protocols
Why Elixir 为什么要学习Elixir?答案很简单,为了更好的学习Erlang.这么无厘头的理由? Erlang语法设计几乎没有考虑过取悦开发者,所以学习之初的门槛略高.对于已经克服了最初 ...
随机推荐
- 手一抖误删了根目录 /usr 之后的挽救过程
一切悲剧来源于写的Shell没有好好检查,执行后把开发机的根目录 /usr 目录给删除了,而且是root执行,众所周知,/usr目录里有大量的应用层程序,删除之后导致大量命令无法使用,如 ssh / ...
- jdbc连接警告不安全
Mon Jun 11 10:46:26 CST 2018 WARN: Establishing SSL connection without server's identity verificatio ...
- [loj#101] 最大流 网络流模板
#101. 最大流 内存限制:512 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 这是一道模板题. 给定 ...
- 性能优化之基础资源cpu&内存(JVM)
本章主要介绍计算机的一些基础资源以及操作系统处理后的一些基础资源. 主要包括 cpu 内存 磁盘 网络 线程 本章会介绍这些资源的一些原理,介绍如何查看资源的数量,使用情况,对性能和整体计算机执行的一 ...
- MySQL-python install
Redhat 7.6 yum install python-devel mysql-devel gcc -y pip install MySQL-python==1.2.5
- jenkins新手入门教程
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 虽然jenkins提供了Window.Lin ...
- 10.28 HTML DOM
- CodeForces - 985F Isomorphic Strings
假如两个区间的26的字母出现的位置集合分别是 A1,B1,A2,B2,....., 我们再能找到一个排列p[] 使得 A[i] = B[p[i]] ,那么就可以成功映射了. 显然集合可以直接hash, ...
- String中的方法
1.string s1 = "abcdefghij"; string s2 = "kuo"; Console.WriteLine(s1.Clone()) ...
- ResourceBundle (读取properties文件及中文乱码解决方法)
原文:http://blog.csdn.net/joecheungdishuiya/article/details/6304993 public class test { static Resourc ...