![](/img/trans.png)
[英]Is there a unified way to install JS third party libraries (like QuillJS) in Rails 6?
[英]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/bin
为LD_LIBRARY_PATH
环境变量,但是我的Ruby on Rails应用程序找不到wdiff
。
我究竟做错了什么?
我已经将
/app/vendor/usr/bin
为LD_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.