文档章节

【原创】在CentOS 5.7上通过YUM安装Erlang的坑爹经历(更新)

摩云飞
 摩云飞
发布于 2012/12/07 17:00
字数 1539
阅读 14283
收藏 11

      想要在虚拟机上的 Linux 环境下,重新搞一下 RabbitMQ 的相关实验,所以重新折腾了下如何操作:

Since RabbitMQ is written in Erlang, we need to have installed the language libraries to run the broker.
      首先还是要把 Erlang 的安装搞定,最简单的方式是直接重 官网 上下载源码包或rpm包再安装,但是我是个喜欢折腾的人,所以我选择了另外一种“比较笨拙”的方式 - 即通过 Linux 系统自带的包管理工具进行安装。


按照 www.erlang-solutions.com 上的说明:

RPM-based Linux distributions RPM packages are signed. To add Erlang Solutions key to execute command: 
# rpm --import http://binaries.erlang-solutions.com/debian/erlang_solutions.asc
Users of Fedora can add this file to /etc/yum.repos.d/ Users of Centos can add this file to /etc/yum.repos.d/ ( RPM Forge must be also added to repos)

其中 erlang_solutions.asc 内容如下:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)

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
ctmKvzuuerI6mVQjg/80PJ4fEV0=
=VAR1
-----END PGP PUBLIC KEY BLOCK-----


其中用于 Centos 的 repo 文件内容如下:

[erlang-solutions]
name=Centos $releasever - $basearch - Erlang Solutions
baseurl=http://binaries.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=http://binaries.erlang-solutions.com/debian/erlang_solutions.asc
enabled=1
按照上面的意思,需要先安装 RepoForge , RPM Forge 上看到的内容如下:


=====================================================

RPMforge for CentOS 5

The default RPMforge repository does not replace any CentOS base packages. In the past it used to, but those packages are now in a separate repository (rpmforge-extras) which is disabled by default.

You can find a complete listing of the RPMforge package packages at http://packages.sw.be/

Download the rpmforge-release package. Choose one of the two links below, selecting to match your host's architecture. If you are unsure of which one to use you can check your architecture with the command uname -i

The preferred rpmforge-release package to retrieve and to install in order to enable that repository is one of the two listed above.

Install DAG's GPG key

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

Verify the package you have downloaded

rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm

<!> Security warning: The rpmforge-release package imports GPG keys into your RPM database. As long as you have verified the md5sum of the key injection package, and trust Dag, et al., then it should be as safe as your trust of them extends.

Install the package

rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

This will add a yum repository config file and import the appropriate GPG keys.

Then try to install something like this

yum install htop
========================================================


      首先通过 uname -i 确认了我的系统是 i386 ;通过 wget 现在对应的 rpm 包后安装,此时会在 /etc/yum.repos.d 下多出 4 个 repo :mirrors-rpmforge、mirrors-rpmforge-extras、mirrors-rpmforge-testing 和 rpmforge.repo 。

      接下来为了验证上述 repo 中确实可以找到我想安装的正确的 Erlang 版本,执行了命令 yum list|grep erlang ,结果如下:

[root@slave2 ~]# yum list|grep erlang
http://binaries.erlang-solutions.com/rpm/centos/5/i386/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: erlang-solutions. Please verify its path and try again
      按照错误信息的意思,应该是路径不对了,故直接在浏览器中打开上面的 http 地址,发现在只有路径 http://binaries.erlang-solutions.com/rpm/centos/6/i386/ 是存在的,而没有对应 5 的路径,坑爹啊!!可是朕不死心,重新回到 https://www.erlang-solutions.com/downloads/download-erlang-otp 上检查所有可用的 Centos 上的 Erlang 版本,结果除了一个 R14B02 32bit 版本 Erlang 是用的 Centos 5.5 的,其余全是用于 6.0 的。尼玛,难道非要我装 Centos 6.0 才行?!思来想去,直接改 repo 信息欺骗网站说自己是 6.0 版本然后安装似乎不是啥好注意,日后恐怕会惹上不必要的麻烦;重新装个 6.0 的系统太烦,毕竟已有系统中有很多东西已经配置好了;直接认栽使用 R14B02 又不甘心。唉~~华山一条路,只能源码安装了~~~(此处省略N万字)


      另外,将 erlang-solutions 的 repo 去掉之后,执行 yum list|grep erlang 得到如下结果:

[root@slave2 ~]# yum list|grep erlang
ftp://ftp.oss.eznetsols.org/linux/centos/5.8/updates/i386/repodata/repomd.xml: [Errno 4] IOError: <urlopen error >
Trying other mirror.
erlang.i386                             R12B-5.12.el5.rf        rpmforge        
erlang-doc.i386                         R12B-5.12.el5.rf        rpmforge

repoforge 上的 Erlang 更老,朕是与时俱进的人,果断放弃!

=================== 2012-12-10 更新 =======================

鉴于有网友说使用 EPEL 比较好,所有自己也搞了下试试:

具体操作请参考网页:

  1. http://www.rabbitmq.com/install-rpm.html
  2. http://fedoraproject.org/wiki/EPEL
  3. http://fedoraproject.org/wiki/EPEL/FAQ#howtouse


最后说一下结论:

      就 Erlang 的包安装而言,EPEL 确实要比 repoforge 新,目前提供的最新版本为 R14B-04。这一点无论是从 repo 文件中还是直接从 http://repos.fedorapeople.org/repos/peter/erlang/epel-5/i386/ 上都可以看出。

      上面都弄好后,执行 yum 命令显示,可以找到 Erlang 安装包。

[root@slave2 yum.repos.d]# yum list|grep erlang
ftp://ftp.oss.eznetsols.org/linux/centos/5.8/updates/i386/repodata/repomd.xml: [Errno 4] IOError: <urlopen error >
Trying other mirror.
erlang.i386                             R14B-04.1.el5           epel-erlang     
erlang-appmon.i386                      R14B-04.1.el5           epel-erlang     
erlang-asn1.i386                        R14B-04.1.el5           epel-erlang     
erlang-common_test.i386                 R14B-04.1.el5           epel-erlang     
erlang-compiler.i386                    R14B-04.1.el5           epel-erlang     
erlang-cosEvent.i386                    R14B-04.1.el5           epel-erlang     
erlang-cosEventDomain.i386              R14B-04.1.el5           epel-erlang     
erlang-cosFileTransfer.i386             R14B-04.1.el5           epel-erlang     
erlang-cosNotification.i386             R14B-04.1.el5           epel-erlang     
erlang-cosProperty.i386                 R14B-04.1.el5           epel-erlang     
erlang-cosTime.i386                     R14B-04.1.el5           epel-erlang     
erlang-cosTransactions.i386             R14B-04.1.el5           epel-erlang     
erlang-crypto.i386                      R14B-04.1.el5           epel-erlang     
erlang-debugger.i386                    R14B-04.1.el5           epel-erlang     
erlang-debuginfo.i386                   R14B-04.1.el5           epel-erlang     
erlang-dialyzer.i386                    R14B-04.1.el5           epel-erlang     
erlang-diameter.i386                    R14B-04.1.el5           epel-erlang     
erlang-doc.i386                         R14B-04.1.el5           epel-erlang     
erlang-docbuilder.i386                  R14B-04.1.el5           epel-erlang     
erlang-edoc.i386                        R14B-04.1.el5           epel-erlang     
erlang-erl_docgen.i386                  R14B-04.1.el5           epel-erlang     
erlang-erl_interface.i386               R14B-04.1.el5           epel-erlang     
erlang-erts.i386                        R14B-04.1.el5           epel-erlang     
erlang-et.i386                          R14B-04.1.el5           epel-erlang     
erlang-eunit.i386                       R14B-04.1.el5           epel-erlang     
erlang-examples.i386                    R14B-04.1.el5           epel-erlang     
erlang-gs.i386                          R14B-04.1.el5           epel-erlang     
erlang-hipe.i386                        R14B-04.1.el5           epel-erlang     
erlang-ic.i386                          R14B-04.1.el5           epel-erlang     
erlang-inets.i386                       R14B-04.1.el5           epel-erlang     
erlang-inviso.i386                      R14B-04.1.el5           epel-erlang     
erlang-jinterface.i386                  R14B-04.1.el5           epel-erlang     
erlang-kernel.i386                      R14B-04.1.el5           epel-erlang     
erlang-megaco.i386                      R14B-04.1.el5           epel-erlang     
erlang-mnesia.i386                      R14B-04.1.el5           epel-erlang     
erlang-observer.i386                    R14B-04.1.el5           epel-erlang     
erlang-odbc.i386                        R14B-04.1.el5           epel-erlang     
erlang-orber.i386                       R14B-04.1.el5           epel-erlang     
erlang-os_mon.i386                      R14B-04.1.el5           epel-erlang     
erlang-otp_mibs.i386                    R14B-04.1.el5           epel-erlang     
erlang-parsetools.i386                  R14B-04.1.el5           epel-erlang     
erlang-percept.i386                     R14B-04.1.el5           epel-erlang     
erlang-pman.i386                        R14B-04.1.el5           epel-erlang     
erlang-public_key.i386                  R14B-04.1.el5           epel-erlang     
erlang-reltool.i386                     R14B-04.1.el5           epel-erlang     
erlang-runtime_tools.i386               R14B-04.1.el5           epel-erlang     
erlang-sasl.i386                        R14B-04.1.el5           epel-erlang     
erlang-snmp.i386                        R14B-04.1.el5           epel-erlang     
erlang-ssh.i386                         R14B-04.1.el5           epel-erlang     
erlang-ssl.i386                         R14B-04.1.el5           epel-erlang     
erlang-stdlib.i386                      R14B-04.1.el5           epel-erlang     
erlang-syntax_tools.i386                R14B-04.1.el5           epel-erlang     
erlang-test_server.i386                 R14B-04.1.el5           epel-erlang     
erlang-toolbar.i386                     R14B-04.1.el5           epel-erlang     
erlang-tools.i386                       R14B-04.1.el5           epel-erlang     
erlang-tv.i386                          R14B-04.1.el5           epel-erlang     
erlang-typer.i386                       R14B-04.1.el5           epel-erlang     
erlang-webtool.i386                     R14B-04.1.el5           epel-erlang     
erlang-wx.i386                          R14B-04.1.el5           epel-erlang     
erlang-xmerl.i386                       R14B-04.1.el5           epel-erlang


© 著作权归作者所有

摩云飞
粉丝 375
博文 534
码字总数 952694
作品 0
徐汇
程序员
私信 提问
加载中

评论(14)

摩云飞
摩云飞 博主

引用来自“topwqp”的评论

我遇见了给你一样的问题:
yum安装包中,最新的 erlang是16B
安装rabbitmq3.7.5最好的适配版本是 erlang17.5
于是重新下载 erlang17.5源码,重新编译,安装。
然后再安装rabbitmq3.7.5
悲催。
中间还加上更新EPEL库,以为更新了以后会有erlang17.5,但是更新以后依然没有最新的,所以还是重新下载erlang源码编译后安装的 。哈哈
topwqp
topwqp
我遇见了给你一样的问题:
yum安装包中,最新的 erlang是16B
安装rabbitmq3.7.5最好的适配版本是 erlang17.5
于是重新下载 erlang17.5源码,重新编译,安装。
然后再安装rabbitmq3.7.5
悲催。
中间还加上更新EPEL库,以为更新了以后会有erlang17.5,但是更新以后依然没有最新的,所以还是重新下载erlang源码编译后安装的 。哈哈
吕智钊
吕智钊
试试Golang吧...哈哈...
壮哉我大东北
壮哉我大东北

引用来自“摩云飞”的评论

引用来自“妖魔舞”的评论

白折腾,还没任何价值

呵呵,人生就在于折腾~~

我应该请教您才对,我不懂erlang,没接触过
壮哉我大东北
壮哉我大东北

引用来自“摩云飞”的评论

引用来自“Solae”的评论

repoforge越来越非主流

敢问现在主流是用啥?望不吝赐教

主流?都是相对的。我用epel。
摩云飞
摩云飞 博主

引用来自“妖魔舞”的评论

白折腾,还没任何价值

呵呵,人生就在于折腾~~
摩云飞
摩云飞 博主

引用来自“LinkerLin”的评论

erlang本来就是一个折腾的东西。

最近看了一些牛人的关于Erlang的文章,并且公司有需求,感觉不学一下就out了~~
摩云飞
摩云飞 博主

引用来自“Solae”的评论

repoforge越来越非主流

敢问现在主流是用啥?望不吝赐教
摩云飞
摩云飞 博主

引用来自“教父独白”的评论

我肿么没你这么纠结,源码编译安装,分分钟的事情。

教父说的没错,是我太过纠结了,呵呵
LinkerLin
LinkerLin
erlang本来就是一个折腾的东西。
【整理】各种 RabbitMQ 安装方式汇总

【Linux下源码安装】 【Generic Unix下binary包安装】 - 另外可以参考《RabbitMQ in Action》第一章内容。 【RPM-based Linux下rpm包安装】- 另外可以参考我的另一篇博文《在CentOS 5.7上通过...

摩云飞
2013/01/11
540
0
centos下安装Erlang

centos下安装Erlang 尘埃2016-02-271749 阅读 Erlang centos 6.2下安装Erlang 安装erlang依赖的基本环境 Erlang安装方式一:源码编译 访问 官网下载页 配置erlang环境 Erlang安装方式二:YUM安...

尘埃
2016/02/27
0
0
CentOS6.x升级MySQL版本5.1到5.6

CentOS6.x升级MySQL版本5.1到5.6 版权声明:本文为博主原创文章,未经博主允许不得转载。 有一些虚拟机、云主机提供商仍然使用的是老版本的安装套件。预装的应用软件版本很低。 比如 techbr...

Bob_Zheng
2015/11/23
480
0
CentOS 6.4下Rabbitmq安装

在 CentOS 6.4上安装python* 注意啊,自己手动安装python2.7.5,不要动系统上面其他的版本 yum install zlib yum install zlib-devel 下载python-2.7.6.tar.gz文件 tar -xzvf python-2.7.6.t...

mac_zhao
2014/09/26
69
0
centos 常用命令,持续更新。

1:查看centos版本 # cat /etc/redhat-release CentOS release 5.7 (Final) 2:更新软件 #yum update //更新全部 #yum update 包名//更新指定包,可以通过*来匹配 如果报错停止,可以加--ski...

SeaJones
2012/03/06
123
0

没有更多内容

加载失败,请刷新页面

加载更多

spring源码分析6: ApplicationContext的初始化与BeanDefinition的搜集入库

先前几篇都是概念的讲解:回顾下 BeanDefinition 是物料 Bean是成品 BeanFactory是仓库,存储物料与成品 ApplicationContext初始化搜集物料入库,触发生产线,取出物料生产Bean 本文研究spr...

星星之焱
29分钟前
5
0
彻底解决tomcat乱码问题

本地项目请求访问,浏览器中文输出没问题。 部署到服务器上面之后,返回到浏览器的中文就乱码了。 尝试办法: 1.修改tomcat下的conf中的service.xml中的配置信息: 重新启动后,没有效果还是...

诗书易经
45分钟前
5
0
Java开发需要掌握的IDEA插件大全

1、Lombok 解释:这是最基本的插件,2017年就火了,还没用的百度一下吧。 博客链接:Intellij IDEA 安装lombok及使用详解 2、PlantUML integration 解释:各种类之间的关联图,高级开发必备。...

木九天
46分钟前
6
0
python学习10.05:Python range()快速初始化数字列表

实际场景中,经常需要存储一组数字。例如在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度...

太空堡垒185
53分钟前
4
0
java单元测试,PowerMockito模拟方法内new对象

在做单元测试中有时候需要对方法内new出来的对象进行隔离,这是我们需要使用PowerMockito。 添加依赖 <dependency> <groupId>org.powermock</groupId> <artifactId>......

如梦之猿
55分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部