我目前正在尝试将我的 Java Web 应用程序部署到 Openshift 上。我的 Web 应用程序导入了 Gurobi 库,它需要 Gurobi 许可环境才能运行我的线性规划模型。因此,我一直在尽一切努力将许可证安装到 openshift linux 服务器等
我已经成功完成了一些事情。
- 我已通过 SSH 连接到我的应用程序并将 openshift linux 平台的主机名注册到许可证。
我已经设法更改了设置自定义环境的
.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.lic
文件并使用 的 Gurobi 环境对象>LD_LIBRARY_FILE
。
有没有人做过类似的事情?在这方面确实需要帮助。
布兰登
最佳答案
openshift 实例化您的应用程序和 ssh shell 的方式似乎有所不同。设置环境变量的正确位置是启动 action_hooks 之一。例如,如果您编辑 .openshift/action_hooks/start 文件并添加:
export PATH="${PATH}:${GUROBI_HOME}/bin"
这适用于运行您的 APP 的实例,但不适用于 SSH Shell。我做了以下测试: 回显 $PATH > $OPENSHIFT_DATA_DIR/PATH
确认启动钩子(Hook)可以设置运行APP的路径。
我不确定这是否能解决您的问题(因为您提到了 SSH shell,但我仍然不知道如何为此设置 PATH)。
关于java - OPENSHIFT 编辑 LD_LIBRARY_PATH & PATH 进行环境设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28720935/