2016-11-01 6 views
0

私はRubyにはかなり新しく、私はLinux上でうまく動作するプロジェクトに取り組んでいますが、Windows用にそれを使用する必要があります。私はjrubyを使用しているので、カスタムソースから宝石をインストールする必要があります。 (gitソースからのactiverecord-jdbc-adapterの変更)私はバンドルをインストールし、それがコンパイルした後、それは私にこのエラーが発生しますので、それは、この宝石をインストールしようと実行したときに問題が来る:バンドルインストールWindows Custom Gem

SystemCallError: Unknown error - Unknown Error (20047) - 
C:\jruby-9.0.1.0\lib\ruby\gems\shared\bundler\gems\activerecord-rails-adapter-90bbc7afe6eb\C: 
An error occurred while installing activerecord-jdbc-adapter (1.4.0.dev), and 

バンドラーは続行できません。

linuxではhome/admin/....というフォルダが作成されますが、WindowsではC: という名前のディレクトリが作成されているようですが、名前C:はそうではありません:は無効な文字なので、ディレクトリの名前として許可されています。たぶん、そのフォルダの作成を避ける(またはその名前を変更する)方法がありますが、検索があり、このエラーについて何も見つかりません。

私はあなたの助けに感謝します。事前にありがとう

+0

':git'ソースからAR-JDBCを使用する可能性はあまりテストされていません - この時点では公式の祝福はほとんどありません。 'javac'を使ってネイティブ拡張をコンパイルしようとします。 Windowsで最新のJRuby(9.1.5.0)を使用してこれを試してみることをお勧めします。 – kares

+0

助けてくれてありがとう! –

答えて

0

私は他の手がかりを探して解決策を見つける。多分それを解決する正しい方法ではないかもしれませんが、私はそのGemのインストールを完了することができました。 Cで:\ jruby9.0.1.1 \ libに\ルビー\ STDLIB \瓶\ installer.rb、私は、メソッドdo_install(ベンダー、write_require_file)にライン168に行き、この変更:これに

def do_install(vendor, write_require_file) 
    vendor_dir = File.join(@mvn.basedir, spec.require_path) 
    jars_file = File.join(vendor_dir, "#{spec.name}_jars.rb") 

    # write out new jars_file it write_require_file is true or 

を:

def do_install(vendor, write_require_file) 
    vendor_dir = File.join(@mvn.basedir, spec.require_path.gsub(':','')) 
    jars_file = File.join(vendor_dir, "#{spec.name}_jars.rb") 

    # write out new jars_file it write_require_file is true or 

したがって、インストール時に作成するフォルダからコロン(:)を削除します。これにより、バンドラは宝石のインストールを完了することができました。たぶんそれは本当の解決策であり、Windows用のjrubyのバグを解決するかどうかは分かりませんが、今は問題を解決しました。お手伝いありがとう!!

関連する問題