如何安装特定版本的erlang?

Bri*_*man 8 erlang ubuntu rabbitmq vagrant

我继承了一个带有puppet/vagrant/Virtual box设置的项目.流浪汉提供了围绕rabbitmq-server的erlangs.

错误:

==> default: err: /Stage[main]/Rabbitmq::Install/Package[rabbitmq-server]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install rabbitmq-server' returned 100: Reading package lists...
==> default: Building dependency tree...
==> default: Reading state information...
==> default: Some packages could not be installed. This may mean that you have
==> default: requested an impossible situation or if you are using the unstable
==> default: distribution that some required packages have not yet been created
==> default: or been moved out of Incoming.
==> default: The following information may help to resolve the situation:
==> default:
==> default: The following packages have unmet dependencies:
==> default:  rabbitmq-server : Depends: erlang-nox (>= 1:16.b.3) but it is not going to be installed or
==> default:                             esl-erlang but it is not installable
==> default:                    Depends: init-system-helpers (>= 1.13~) but it is not installable
==> default: E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

我已经完成了列出的步骤http://www.scotthelm.com/2013/11/27/rabbit-mq-and-erlang-and-ubuntu-oh-my.html.我安装了erlang和erlagn-nox,但是当我运行erl我的版本显示为R14B04时,我想要兔子mm播放的r16.如何安装特定版本的erlang?

目前我已经尝试sudo apt-get install erlang=1:16.b.3-dfsg-1ubuntu2但无法找到.尝试了几种变化,但没有运气.我的另一个想法是下载tar本身并构建它,但这似乎过度,似乎我错过了一些更明显的东西.

Gab*_*ele 29

你小心使用Erlang-Solutions存储库:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install esl-erlang=1:19.3.6
Run Code Online (Sandbox Code Playgroud)

  • 对于与上述问题相同的任何人,“ ...找不到esl-erlang”。请使用以下命令检查可用的软件包apt-cache policy esl-erlang。目前只有1:19.3.6.8或1:19.3.6.12-1是您应该使用的。TL; DR:sudo apt-get install esl-erlang = 1:19.3.6.8 (2认同)

Ukr*_*Ukr 5

1. 删除以前的 Erlang 版本/包:

$ sudo apt-get purge erlang esl-erlang erlang-base erlang-crypto erlang-eldap erlang-inets erlang-mnesia erlang-os-mon
$ sudo apt-get 自动删除
$ sudo apt-get install -f

$ sudo rm -rf /usr/lib/erlang
$ cd /usr/local/bin
$ sudo rm -f erl
$ sudo rm -f erlc
$ 须藤 rm -f epmd
$ sudo rm -f run_erl
$ sudo rm -f to_erl
$ sudo rm -f 透析器
$ sudo rm -f 打字机
$ sudo rm -f 脚本
$ sudo rm -f ct_run

2. 手动添加存储库条目:

  • 要获取 Ubuntu 代号,请输入$ lsb_release -c. 就我而言,它是xenial

  • $ sudo nano /etc/apt/sources.list并在文件末尾添加以下文本:

# Erlang Solutions
deb https://packages.erlang-solutions.com/ubuntu xenial contrib
Run Code Online (Sandbox Code Playgroud)
  • 创建文件/etc/apt/preferences.d/erlang
$ sudo touch /etc/apt/preferences.d/erlang
$ sudo nano /etc/apt/preferences.d/erlang
Run Code Online (Sandbox Code Playgroud)

包含以下内容:

Package: erlang* esl-erlang
Pin: version 1:21.3*
Pin-Priority: 501
Run Code Online (Sandbox Code Playgroud)

其中21.3是 Erlang/OTP 的版本。

3.安装Erlang:

$ sudo apt-get 更新
$ sudo apt-get install esl-erlang
$ sudo ln -s /usr/lib/erlang/bin/erl /usr/local/bin/erl

4.检查安装的Erlang版本:

$ erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell
Run Code Online (Sandbox Code Playgroud)

相关链接: https: //www.erlang-solutions.com/resources/download.html


Pou*_*iya 4

您可以使用kerl在同一台机器上安装不同的 Erlang/OTP。