簡體   English   中英

捆綁安裝Windows Custom Gem

[英]Bundle install Windows Custom Gem

我是Ruby的新手,我正在一個在Linux上運行良好的項目中工作,但是我需要使用Windows。 我正在使用jruby,並且需要從自定義來源安裝gem。 (來自git源的activerecord-jdbc-adapter的修改)。 當我運行bundle install並嘗試安裝該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:的目錄,但是名稱C:不允許作為a的名稱。目錄,因為:是無效字符。 也許有一種方法可以避免創建該文件夾(或更改其名稱),但是我進行了搜索,但找不到關於此錯誤的任何信息。

感謝您的幫助。 先感謝您

我找到了尋找其他線索的解決方案。 也許不是解決它的正確方法,但是它使我能夠完成該寶石的安裝。 在C:\\ jruby9.0.1.1 \\ lib \\ ruby​​ \\ stdlib \\ jars \\ installer.rb中,我轉到方法do_install(vendor,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中的錯誤,也許不是,但是現在我解決了我的問題。 感謝您的幫助!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM