安装erlang/otp和rebar3时遇到的一些问题和自己的见解
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时遇到的一些问题和自己的见解相关推荐
- CentOS 6 5安装Erlang/OTP 17 0
CentOS 6.5安装Erlang/OTP 17.0 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Erlang目前已经是Fedora和Debian/ ...
- centos 6.8 源码安装 erlang/otp 19.0.2
2019独角兽企业重金招聘Python工程师标准>>> 最近一直都是在debian jessie下开发erlang代码,但部署环境一直都是在centos 6上面,发现centos 6 ...
- 解决escript: exception error: undefined function rabbitmqctl_escript:main/1问题以及如何安装Erlang和RabbitMq
文章目录 1. 复现问题 2. 分析问题 3. 解决问题 4.如何安装Erlang和RabbitMq 1. 复现问题 今天在安装Erlang和RabbitMq完成后,在cmd窗口中输入如下命令: ra ...
- 安装Erlang和RabbitMQ详细教程
安装Erlang OTP和RabbitMQ 1.RabbitMQ简介 2.基本概念 2.1.RabbitMQ服务支持下列操作系统: 2.2.RabbitMQ支持下列编程语言: 2.3.主要特性 2.4 ...
- 2021-07-13 安装ERLANG 以及 RabbitMQ时遇到的版本不兼容异常
今天安装ERLANG 以及 RabbitMQ时,遇到了一些问题. 在命令行执行安装插件的命令:rabbitmq-plugins enable rabbitmq_management 出现了错误如下: ...
- 安装升级Erlang/OTP的方法
安装升级Erlang/OTP的方法 步骤:下载kerl,添加执行权限,构建,安装,激活. 详细步骤如下: 1.下载kerl script [root@localhost kerl]# curl -O ...
- 【Erlang/OTP入门】基于进程的并发编程和分布式
引言 在参加区统考的前一天开始写这篇文章,开学后时间真的紧迫了很多. 我最近玩Erlang只是一个偶然(?).这一切的开始是我某天看到一本名为<Erlang and OTP in Actio ...
- Erlang/OTP设计原则(文档翻译)
http://erlang.org/doc/design_principles/des_princ.html 图和代码皆源自以上链接中Erlang官方文档,翻译时的版本为20.1. 这个设计原则,其实 ...
- Windows 下安装 Erlang
1.用 RabbitMQ 时需要下载安装 Erlang 环境,因为 RabbitMQ 是用 Erlang 语言编写的 2.下载地址:Downloads - Erlang/OTP 但是官网下载的特别慢 ...
最新文章
- JavaScript onerror事件
- muduo之EventLoopThread
- ucla研究生计算机科学,详解UCLA研究生录取数据,达到什么标准才能稳被录?
- java链表变成字符串,leetcode算法题解(Java版)-6-链表,字符串
- 大数据集群搭建之hadoop、tomcat、jdk等工具的安装(三)
- 关联的两个字段度需要建立索引吗_索引那些事儿
- 英伟达用GAN生成脑瘤图像,训练出的AI医生,准确率提高16%
- Atitit 高等教育 中产教育 普通教育的异同 目录 1. 顶层精英教育	1 1.1. 领导力 影响力	1 1.2. 国王规范	1 1.3. 宗教领袖	1 1.4. 决策能力	1 1.5. 国际视
- mysql workbench首页_MySQL Workbench是干什么的?
- JavaWeb9大内置对象的作用与作用域
- (23)Java学习笔记——常用对象API / StringBuffer类
- 太牛了,2万字用Python深度探索金庸小说世界!
- java opencv 摄像头,OpenCV使用摄像头
- ms17010利用失败_利用产品管理中的失败
- diskpart建立新卷
- hadoop快速自我学习--hadoop平台管理与维护
- 打造Android万能下拉刷新上拉加载控件
- 系统移植(系统移植环境搭建及简单概念)
- Low-complexity Point Cloud Filtering for LiDAR by PCA-based Dimension Reduction
- Java 海康SDK透明通道建立(485透传)