heroku 上的第三方库
Third party libraries on heroku
我已通过 https://github.com/echan00/wdiff 将 GNU 库 'wdiff' 添加到 Rails 应用程序的 Ruby 中,并将可执行文件添加到我的 /vendor/usr/bin
目录中。
通过 heroku run bash
我可以在 ~/vendor/usr/bin
执行 wdiff
库。
我已将 /app/vendor/usr/bin
添加为 LD_LIBRARY_PATH
环境变量,但我在 Rails 应用程序上的 Ruby 找不到 wdiff
。
我做错了什么?
我最终硬编码了我的 rails gem 以在目录中找到可执行文件,而不是通过 LIBRARY PATH
I have added /app/vendor/usr/bin
as a LD_LIBRARY_PATH
environment variable but my Ruby on Rails application cannot find wdiff
LD_LIBRARY_PATH
tells the OS where to find libraries to be dynamically linked at runtime。例如,如果您是 运行 需要 OpenSSL 但不包含 OpenSSL 本身的应用程序,则操作系统可以通过 LD_LIBRARY_PATH
.
找到它
OS 应该搜索 二进制文件 的目录列在 PATH
变量中。尝试改用它。
请注意,仅将其设置为单个值是非常不寻常的。一种更常见的方法是将您的自定义位置添加或附加到 PATH
已经具有的任何值,例如通过
之类的东西
export PATH="$PATH:/app/vendor/usr/bin"
如果存在多个具有相同名称的二进制文件,则在路径中较早找到的二进制文件优先于较晚找到的二进制文件。
最后,Heroku 特有的东西:
and added the executable to my /vendor/usr/bin
directory
你是怎么做到的?如果二进制文件是你存储库的一部分,你应该没问题,但如果你手动添加它(例如通过 heroku run bash
),你会发现它在一定时间后消失。这是由于 Heroku 的 ephemeral filesystem.
您需要在构建时包含 wdiff
。一个好的方法是 adding a second buildpack like heroku-buildpack-apt
然后通过 Aptfile
.
安装常规 wdiff
包
我已通过 https://github.com/echan00/wdiff 将 GNU 库 'wdiff' 添加到 Rails 应用程序的 Ruby 中,并将可执行文件添加到我的 /vendor/usr/bin
目录中。
通过 heroku run bash
我可以在 ~/vendor/usr/bin
执行 wdiff
库。
我已将 /app/vendor/usr/bin
添加为 LD_LIBRARY_PATH
环境变量,但我在 Rails 应用程序上的 Ruby 找不到 wdiff
。
我做错了什么?
我最终硬编码了我的 rails gem 以在目录中找到可执行文件,而不是通过 LIBRARY PATH
I have added
/app/vendor/usr/bin
as aLD_LIBRARY_PATH
environment variable but my Ruby on Rails application cannot findwdiff
LD_LIBRARY_PATH
tells the OS where to find libraries to be dynamically linked at runtime。例如,如果您是 运行 需要 OpenSSL 但不包含 OpenSSL 本身的应用程序,则操作系统可以通过 LD_LIBRARY_PATH
.
OS 应该搜索 二进制文件 的目录列在 PATH
变量中。尝试改用它。
请注意,仅将其设置为单个值是非常不寻常的。一种更常见的方法是将您的自定义位置添加或附加到 PATH
已经具有的任何值,例如通过
export PATH="$PATH:/app/vendor/usr/bin"
如果存在多个具有相同名称的二进制文件,则在路径中较早找到的二进制文件优先于较晚找到的二进制文件。
最后,Heroku 特有的东西:
and added the executable to my
/vendor/usr/bin
directory
你是怎么做到的?如果二进制文件是你存储库的一部分,你应该没问题,但如果你手动添加它(例如通过 heroku run bash
),你会发现它在一定时间后消失。这是由于 Heroku 的 ephemeral filesystem.
您需要在构建时包含 wdiff
。一个好的方法是 adding a second buildpack like heroku-buildpack-apt
然后通过 Aptfile
.
wdiff
包