Ubuntu安装早期版本的erlang解决方案包

Ubuntu安装早期版本的erlang解决方案包,ubuntu,erlang,fabric,apt,Ubuntu,Erlang,Fabric,Apt,我正在尝试创建一个结构脚本来安装erlang solutions 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"') sud

我正在尝试创建一个结构脚本来安装erlang solutions 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软件包?当我运行aptcache showpkg erlang时,我只看到16B和14B的包。

如果你能找到文件“esl-erlang_15.b.2-1~ubuntu~precise_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\u PRELOAD=/usr/old/path/to/old/version/of/erlang/oldErlangLib.so程序运行


我希望这就是你的意思。每次使用旧的依赖项运行程序时,都必须设置此变量。还可以在要覆盖的库之间设置多个预加载,并留有空间。请确保使用双引号或
\(空格字符在这里)

转义这些空格,如果您可以找到文件“esl-erlang\u 15.b.2-1~ubuntu~precise\u 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\u PRELOAD=/usr/old/path/to/old/version/of/erlang/oldErlangLib.so程序运行


我希望这就是你的意思。每次使用旧的依赖项运行程序时,都必须设置此变量。还可以在要覆盖的库之间设置多个预加载,并留有空间。请确保使用双引号或
\(空格字符在这里)

转义这些空格。您也可以使用其中一个项目在同一台计算机上安装和管理不同版本的Erlang:


您也可以使用以下项目之一在同一台计算机上安装和管理不同版本的Erlang: