繁体   English   中英

heroku上的第三方库

[英]Third party libraries on heroku

我已经通过https://github.com/echan00/wdiff将GNU库“ wdiff”添加到了我的Ruby on Rails应用程序中,并将可执行文件添加到了我的/vendor/usr/bin目录中。

通过heroku run bash我可以在~/vendor/usr/bin上执行wdiff库。

我已经将/app/vendor/usr/binLD_LIBRARY_PATH环境变量,但是我的Ruby on Rails应用程序找不到wdiff

我究竟做错了什么?

我已经将/app/vendor/usr/binLD_LIBRARY_PATH环境变量,但是我的Ruby on Rails应用程序找不到wdiff

LD_LIBRARY_PATH 告诉OS在哪里找到要在运行时动态链接的库 例如,如果您正在运行需要OpenSSL但本身不包含OpenSSL的应用程序,则操作系统可以通过LD_LIBRARY_PATH找到它。

OS应搜索二进制文件的目录在PATH变量中列出。 尝试改用它。

请注意,将其设置为单个值是非常不寻常的。 一种更常见的方法是将自定义位置添加到PATH已有的值之前或之后,例如通过类似

export PATH="$PATH:/app/vendor/usr/bin"

如果存在多个同名二进制文件,则在路径中较早发现的二进制文件将优先于较晚发现的二进制文件。

最后,一些特定于Heroku的东西:

并将可执行文件添加到我的/vendor/usr/bin目录中

你是怎么做的? 如果二进制文件是您存储库的一部分,则应该没问题,但是如果您手动添加了二进制文件(例如通过heroku run bash ),则会发现它在一定时间后消失了。 这是由于Heroku的临时文件系统

您需要在构建时包含wdiff 一种好的方法是添加第二个buildpack(例如heroku-buildpack-apt ,然后通过Aptfile安装常规的wdiff软件包。

我最终对rails gem进行了硬编码,以在目录中找到可执行文件,而不是通过库路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM