2

我目前正在尝试将我的 java web 应用程序部署到 Openshift 上。我的 Web 应用程序导入了 Gurobi 库,该库需要 Gurobi 许可环境才能运行我的线性规划模型。因此,我一直在尽我所能将许可证安装到 openshift linux 服务器等

我设法让一些事情顺利进行。

  1. 我已将 SSH 连接到我的应用程序,并将 openshift linux 平台的主机名注册到许可证中。
  2. 我设法更改了.bash_profile设置自定义环境的文件。下面是我放入文件的输入。

    export GUROBI_HOME="/var/lib/openshift/54d4e281e0b8cd3a1400015c/jbossews/gurobi600/linux64"
    export PATH="${PATH}:${GUROBI_HOME}/bin"
    export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"
    export GRB_LICENSE_FILE="/var/lib/openshift/54d4e281e0b8cd3a1400015c/jbossews/gurobi.lic"
    

上面输入的问题是我相信PATH& LD_LIBRARY_PATH,每次我通过 shell 访问我的应用程序时,openshift 都会自动恢复它们。

我认为这导致我的应用程序无法实例化一个GRBENV对象,该对象是一个 Gurobi Environment 对象,它检查gurobi.lic文件并使用LD_LIBRARY_FILE.

以前有没有人做过类似的事情?在这方面真的需要帮助。

布兰登

4

1 回答 1

0

openshift 实例化您的应用程序和 ssh shell 的方式似乎有所不同。设置环境变量的正确位置是启动 action_hooks 之一。例如,如果您编辑 .openshift/action_hooks/start 文件并添加:

导出 PATH="${PATH}:${GUROBI_HOME}/bin"

这将适用于运行您的 APP 的实例,但不适用于 SSH Shell。我做了以下测试: echo $PATH > $OPENSHIFT_DATA_DIR/PATH

确认启动钩子可以设置APP运行的路径。

我不确定这是否解决了您的问题(因为您提到了 SSH shell,但我仍然不知道如何为此设置 PATH)。

于 2016-04-25T13:08:21.090 回答