繁体   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