CentOS7

安装erlang环境:
一般选择otp22版本

安装前先安装wxWidgets作为erlang/otp的依赖,以及在网上查询所有erlang所需的依赖(22版本没有此依赖会导致crypto插件无法安装,后期安装rebar3时会报错,24版本没有此问题)

像什么gcc-c++,openssl,odbc什么的,都需要安装,或者在下面的configure完之后可以看到缺少的依赖项,安装完这些依赖之后再编译安装

之后用wget获取otp22安装包,解压至 /usr/local 下,进入安装包,./configure(好像是检查配置)
需注意configure完成后是否报错,缺少的依赖会在末尾的一堆星号中提示application disabled或者application information什么的,一定要安装完这些依赖之后再编译安装otp(不然后面各种谜之报错有你受的!),这些依赖项一般都查得到安装方法,就往里面怼就完事了,依赖越多越好,不用担心依赖重复的问题,yum很智能,会识别安装好的文件,不会重复安装

但configure完成后直接可以编译和安装,不管之前是否报错,所以之后的make失败什么的都很难发现,configure报的错一定要重视!

make && make install,编译和安装

安装完成之后需要在 /etc 目录下的profile文件中配置环境变量
在最后一行(真的最后,最最后一行,后面没有任何内容的最后一行)
写上 export PATH=$PATH: 后面跟需要用到的环境,以 “ : ” 作为分隔,所有安装的环境变量都放在这个文件里
像git,rebar3一类的自己安装的需要到特定目录下运行的命令,只要将特定目录加到环境变量中,就可以在任何目录下运行

然后随便找个路径(一般用 cd ~)终端输入erl,如果出现:
Erlang/OTP 22 [erts-10.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Eshell V10.7  (abort with ^G)
1> 
说明otp安装完成,crtl+z退出
------------------------------------------------------------------------------------------
这里可以进行otp环境自检:在 1> 后输入以下内容
1> system_information:sanity_check(). 回车
如果返回ok,说明没有发现问题

如果有MissingRuntimeDependencies =
        {missing_runtime_dependencies, 应用程序文件名和版本号,
        [对应启动需要的应用程序文件名和版本号]}(我就是在这报错的,crypto插件出问题了,后来发现是make的时候crypto的源文件没安装成功,缺少wxWidgets环境)

或者InvalidApplicationVersion =
        {invalid_application_version, 应用程序文件名和版本号}
        InvalidAppFile = {invalid_app_file, 应用程序文件名}(应用无效)

又或者Failure =
        MissingRuntimeDependencies | 应用程序文件名和版本号 |
        应用程序文件名(应用启动失败,缺少依赖)
Failures = [Failure]

都属于erlang/otp安装不完全,需要安装正确的依赖项后重新安装(或者如果真的熟悉erlang/otp源文件的话可以自己打补丁,不过我估计相当有难度)

请注意,此检查使用已加载或将在使用时加载的应用程序版本。您可能在系统中安装了满足所有依赖项的应用程序版本,但如果未加载这些依赖项,则此检查依旧会失败。当您在系统中安装了同一应用程序的多个分支版本时,也可能会发生这种情况 ,因为您没有使用 -引导脚本- 来识别正确的应用程序版本。(来自:https://www.erlang.org/doc/)
--------------------------------------------------------------------------------------------
如果确实出现erlang安装有问题,需要卸载重新安装,直接删除 erlang 目录(一般是 /usr/local/lib/erlang,如果你 ./configure的时候用了 “ --prefix=目录 ” 这个指令,那就在你指定的那个目录下)和你解压到 local 中的 otp_src_版本号 文件夹就行,别的不用碰。
然后重新解压,重新configure,重新make和install

安装rebar3:
网上有安装方法,用git克隆rebar3源文件到你要安装的目录,然后进入源文件目录,用 ./bootstrap 自检(大概类似于安装otp时的 ./configure)自检完成后安装

如果bootstrap出问题了,只能说明你otp安装不完全,倒回去重来一遍吧孩子,不听话,白费了一个小时(别问我怎么知道的,我在bootstrap上卡了一天)

安装完成后会出现这三行:
===> Extracting rebar3 libs to /home/pengyong/.cache/rebar3/vsns/3.16.0+build.5031.refe44c884/lib...
===> Writing rebar3 run script /home/pengyong/.cache/rebar3/bin/rebar3...
===> Add to $PATH for use: export PATH=/home/pengyong/.cache/rebar3/bin:$PATH
看最后一句,use:后面那句可以直接加到profile文件最后一行,用来配置环境变量

然后随便找个目录 rebar3 --version 一下,能显示版本号,说明安装成功

rebar3在编译emqx源码的时候会用到

安装erlang/otp和rebar3时遇到的一些问题和自己的见解相关推荐

  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. centos 6.8 源码安装 erlang/otp 19.0.2

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

  3. 解决escript: exception error: undefined function rabbitmqctl_escript:main/1问题以及如何安装Erlang和RabbitMq

    文章目录 1. 复现问题 2. 分析问题 3. 解决问题 4.如何安装Erlang和RabbitMq 1. 复现问题 今天在安装Erlang和RabbitMq完成后,在cmd窗口中输入如下命令: ra ...

  4. 安装Erlang和RabbitMQ详细教程

    安装Erlang OTP和RabbitMQ 1.RabbitMQ简介 2.基本概念 2.1.RabbitMQ服务支持下列操作系统: 2.2.RabbitMQ支持下列编程语言: 2.3.主要特性 2.4 ...

  5. 2021-07-13 安装ERLANG 以及 RabbitMQ时遇到的版本不兼容异常

    今天安装ERLANG 以及 RabbitMQ时,遇到了一些问题. 在命令行执行安装插件的命令:rabbitmq-plugins enable rabbitmq_management 出现了错误如下: ...

  6. 安装升级Erlang/OTP的方法

    安装升级Erlang/OTP的方法 步骤:下载kerl,添加执行权限,构建,安装,激活. 详细步骤如下: 1.下载kerl script [root@localhost kerl]# curl -O ...

  7. 【Erlang/OTP入门】基于进程的并发编程和分布式

    引言 在参加区统考的前一天开始写这篇文章,开学后时间真的紧迫了很多.   我最近玩Erlang只是一个偶然(?).这一切的开始是我某天看到一本名为<Erlang and OTP in Actio ...

  8. Erlang/OTP设计原则(文档翻译)

    http://erlang.org/doc/design_principles/des_princ.html 图和代码皆源自以上链接中Erlang官方文档,翻译时的版本为20.1. 这个设计原则,其实 ...

  9. Windows 下安装 Erlang

    1.用 RabbitMQ 时需要下载安装 Erlang 环境,因为 RabbitMQ 是用 Erlang 语言编写的 2.下载地址:Downloads - Erlang/OTP  但是官网下载的特别慢 ...

最新文章

  1. JavaScript onerror事件
  2. muduo之EventLoopThread
  3. ucla研究生计算机科学,详解UCLA研究生录取数据,达到什么标准才能稳被录?
  4. java链表变成字符串,leetcode算法题解(Java版)-6-链表,字符串
  5. 大数据集群搭建之hadoop、tomcat、jdk等工具的安装(三)
  6. 关联的两个字段度需要建立索引吗_索引那些事儿
  7. 英伟达用GAN生成脑瘤图像,训练出的AI医生,准确率提高16%
  8. Atitit 高等教育 中产教育 普通教育的异同 目录 1. 顶层精英教育 1 1.1. 领导力 影响力 1 1.2. 国王规范 1 1.3. 宗教领袖 1 1.4. 决策能力 1 1.5. 国际视
  9. mysql workbench首页_MySQL Workbench是干什么的?
  10. JavaWeb9大内置对象的作用与作用域
  11. (23)Java学习笔记——常用对象API / StringBuffer类
  12. 太牛了,2万字用Python深度探索金庸小说世界!
  13. java opencv 摄像头,OpenCV使用摄像头
  14. ms17010利用失败_利用产品管理中的失败
  15. diskpart建立新卷
  16. hadoop快速自我学习--hadoop平台管理与维护
  17. 打造Android万能下拉刷新上拉加载控件
  18. 系统移植(系统移植环境搭建及简单概念)
  19. Low-complexity Point Cloud Filtering for LiDAR by PCA-based Dimension Reduction
  20. Java 海康SDK透明通道建立(485透传)

热门文章

  1. WiFi辅助的地磁匹配室内定位方法
  2. 计算机摄影比赛,计算机与信息学院影动我心摄影大赛策划.ppt
  3. MNN推理引擎框架简介
  4. String to jpg
  5. 5G单灯控制网关 智能照明
  6. java 下载图片流_java下载图片(通用)httpClient,io流
  7. 【编译matlab函数生成dll】
  8. java基础面试题题库一(传智专修学院2017级Java4班)
  9. VHDL——4位移位寄存器
  10. 边缘计算与开放源代码的完美结合