でldiffにアクセスすることはできませんルビーオンレール(3.2)以下の環境でアプリケーション:diffyは、私が持っているvendored差分-LCS
- 展開:
capistrano
、標準のフォルダ構造(my_app/current, /shared, /releases
) - ルビー:
v2.3
は、/usr/local/bin/ruby
のソースからインストールされています。 RVMを使用するか、または - バンドラーをrbenvない:私は宝石diffyを使用していた:
systemctl
号で管理スタートアップ、passenger-phusion with nginxを使用して:カピストラーノ標準階層my_app/shared/bundler
my_app
レベルでインストール、capistrano-bundlerを使用してdiff-lcsが提供するldiff
実行可能ファイルを使用します。この実行可能ファイルは実際にバンドラによって生成されたスタブである/home/my_user/my_app/shared/bundle/ruby/2.3.0/bin/ldiff
にあります。今、私はこのようなコードを入れたときに、:Diffy::Diff.new('abcd', 'abcde').to_s
、スタブが実行され、次のエラーがスローされます。 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem diff-lcs (>= 0.a) with executable ldiff (Gem::GemNotFoundException)
from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems.rb:263:in `bin_path'
from /home/my_user/my_app/shared/bundle/ruby/2.3.0/bin/ldiff:24:in `<main>'
注これは、レールコンソールではなく、サーバーで動作していること。 diffy.rbを見ると、私は実際のコマンドがdiffyによって実行されていることを制御できません(どこにbundle exec diffy ...
を置くことができます)。
これを修正するにはどうすればよいですか?唯一の方法は、販売された宝石を取り除き、システムレベルですべての宝石をインストールするようです。
PS:[wkhtmltopdf][6]
を使用しているときに同じ問題が発生しましたが、I wkhtmltopdf
ではネイティブパッケージを使用するように設定されています。 /home/my_user/my_app/shared/bundle/ruby/2.3.0/bin
: