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的更多相关文章

  1. CentOS 7.7安装Erlang和Elixir

    安装之前,先看一下它们的简要说明 Erlang Erlang是一种开源编程语言,用于构建对高可用性有要求的大规模可扩展的软实时系统.它通常用于电信,银行,电子商务,计算机电话和即时消息中.Erlang ...

  2. rabbitmq install erlang faild

    我安装的时候莫名的出现这2个错误 No Presto metadata available for rabbitmq-erlangwarning: /var/cache/yum/x86_64/7/ra ...

  3. 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 ...

  4. Erlang 和 Elixir 互相调用 (转)

    lixr设计目标之一就是要确保兼容性,可以兼容Erlang和其生态系统.Elixir和Erlang 都是运行同样的虚拟机平台(Erlang Virtual Machine).不管是在Erlang使用E ...

  5. Erlang 和 Elixir的差异

    原文: http://elixir-lang.org/crash-course.html 函数调用 Elixir允许你调用函数的时候省略括号, Erlang不行. Erlang Elixir some ...

  6. install erlang environment on centos

    #(erlide in linux can't detect the runtime if build from source, but erlang shell works correctly)su ...

  7. [Erlang 0108] Elixir 入门

    Erlang Resources里面关于Elixir的资料越来越多,加上Joe Armstrong的这篇文章,对Elixir的兴趣也越来越浓厚,投入零散时间学习了一下.零零散散,测试代码写了一些,Ev ...

  8. [Erlang 0113] Elixir 编译流程梳理

    注意:目前Elixir版本还不稳定,代码调整较大,本文随时失效      之前简单演示过如何从elixir ex代码生成并运行Erlang代码,下面仔细梳理一遍elixir文件的编译过程,书接上文,从 ...

  9. [Erlang 0112] Elixir Protocols

    Why Elixir   为什么要学习Elixir?答案很简单,为了更好的学习Erlang.这么无厘头的理由? Erlang语法设计几乎没有考虑过取悦开发者,所以学习之初的门槛略高.对于已经克服了最初 ...

随机推荐

  1. protobuf 中的嵌套消息的使用 主要对set_allocated_和mutable_的使用

    protobuf的简单的使用,不过还留下了一个问题,那就是之前主要介绍的都是对简单数据的赋值,简单数据直接采用set_xx()即可,但是如果不是简单变量而是自定义的复合类型变量,就没有简单的set函数 ...

  2. pymongo.errors.BulkWriteError错误排解

    在mongodb进行数据库操作的时候触发异常   pymongo Error: pymongo.errors.BulkWriteError: batch op errors occurred 这种问题 ...

  3. itatis中的数据库配置

    <!--com.microsoft.sqlserver.jdbc.SQLServerDriver --> <property name="JDBC.Driver" ...

  4. springBoot 微服务

    微服务,是OO (面向对象,Object Oriented) 专家 Martin Fowler 于2014年在他一篇文章<Microservice>提出的.在 Mattin 的头脑中,兴奋 ...

  5. Sql Jions 的简易理解

    Sql Jions 的简易理解 Select  * from TableA A  left jion TableB  B on  A.key = B.key Select  * from TableA ...

  6. Number of Connected Components in an Undirected Graph -- LeetCode

    Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...

  7. Oracle PL/SQL DBA 编程实践基础

    [附:一文一图]

  8. SQL语句原理与高效SQL语句(转)

    做软件开发的programers,大部分都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么还能保证下一段时间系统还能流畅的运行 ...

  9. MySQL Cluster导入数据表时报错:Got error 708 'No more attribute metadata records (increase MaxNoOfAttributes)' from NDBCLUSTER

    准备把以前的非集群版MySQL数据导入到MySQL Cluster中,出现 'No more attribute metadata records (increase MaxNoOfAttribute ...

  10. MathType requires a newer version of MT Extra等MathType问题的不兼容性解决方案

    常见问题解决方法: 1.MathType 6.0与office 2007兼容问题 由于Office软件安装时默认是不安装公式编辑器的,在安装完MathType 6.0之后,需要将\MathType 6 ...