Ubuntu安装以前版本的erlang解决方案包

时间:2014-03-18 17:20:22

标签: ubuntu erlang fabric apt

我正在尝试创建一个结构脚本,它将安装erlang解决方案R15B02包并且遇到一些困难。我的结构脚本中有以下代码:

sudo("apt-get update")
    sudo("apt-get -qy install python-software-properties")
    sudo('add-apt-repository "deb http://packages.erlang-solutions.com/debian quantal contrib"')
    sudo('add-apt-repository "deb http://packages.erlang-solutions.com/debian precise contrib"')
    sudo('add-apt-repository "deb http://packages.erlang-solutions.com/debian oneiric contrib"')
    sudo('add-apt-repository "deb http://packages.erlang-solutions.com/debian lucid contrib"')
    sudo("wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc")
    sudo("sudo apt-key add erlang_solutions.asc")
    sudo("apt-get update")
    sudo("apt-get -qy install ca-certificates-java default-jre-headless fontconfig fontconfig-config hicolor-icon-theme icedtea-6-jre-cacao icedtea-6-jre-jamvm java-common libatk1.0-0 libatk1.0-data libavahi-client3 libavahi-common-data libavahi-common3 libcairo2 libcups2 libdatrie1 libfontconfig1 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libice6 libjasper1 libjpeg-turbo8 libjpeg8 libllvm3.0 libnspr4 libnss3 libnss3-1d liborc-0.4-0 libpango1.0-0 libpixman-1-0 libsm6 libthai-data libthai0 libtiff4 libwxbase2.8-0 libwxgtk2.8-0 libx11-xcb1 libxcb-glx0 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxxf86vm1 openjdk-6-jre-headless openjdk-6-jre-lib shared-mime-info ttf-dejavu-core tzdata-java x11-common tzdata")
    sudo("apt-get -qy install erlang")

这对于安装16B非常有用,但是,我需要在这些服务器上安装的其中一个应用程序与16B目前存在一些不兼容的问题。有没有办法可以指定R15B02包?当我运行apt-cache showpkg erlang时,我只看到16B和14B的包。

2 个答案:

答案 0 :(得分:3)

您还可以使用其中一个项目在同一台计算机上安装和管理不同版本的Erlang:

答案 1 :(得分:1)

如果你能找到'esl-erlang_15.b.2-1~ubuntu~precision_i386.deb'或64位版本的文件,可以用dpkg安装。如果找到这些,要同时安装它们,请使用dpkg -x esl-erlang_15.b.2-1~ubuntu~precise_i386.deb解压缩.deb并将二进制文件移到其他位置。如果找不到.deb文件,可以下载源代码并对其进行编译,将其配置为安装在与./configure --prefix=/path/to/old/lib/install/path不同的地方。

您可以将旧版本放在不同的目录中,并将变量LD_PRELOAD设置为/usr/old/path/to/old/version/of/erlang/SharedObjectFile.so来调用它。

因此要运行采用旧版本的程序,请执行以下操作:

~$ LD_PRELOAD=/usr/old/path/to/old/version/of/erlang/oldErlangLib.so ProgramToRun

我希望这就是你的意思。每次使用旧的依赖项运行程序时,都必须设置此变量。您还可以设置多个预加载,并在库之间留出空格以覆盖。请务必使用双引号或\(space character goes here)来转义这些空格。