【问题标题】:Ruby: bundle not working with rbenv (path name contains null byte (ArgumentError)Ruby:捆绑不与 rbenv 一起使用(路径名包含空字节(ArgumentError)
【发布时间】:2019-03-23 17:31:58
【问题描述】:

我创建了一个 RubyGem,今天我打算更新依赖项,但现在我进入 gem 的目录并输入 bundle install 后,我收到 this 错误,其最后一行是:

/Users/myuser/.rbenv/versions/2.6.2/lib/ruby/2.6.0/rubygems/specification.rb:2663:in `directory?': path name contains null byte (ArgumentError)

我已经重新安装了 bundler,更新了系统 gem 等,但似乎没有任何效果。我怎样才能避免这种情况?

提前非常感谢!

【问题讨论】:

  • 您确定您在 gem 的根路径中使用了正确的 ruby​​ 版本吗?你能显示gem env的输出吗?
  • 我有- RUBY VERSION: 2.6.2 (2019-03-13 patchlevel 47) [x86_64-darwin18] - INSTALLATION DIRECTORY: /Users/myuser/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0 - USER INSTALLATION DIRECTORY: /Users/myuser/.gem/ruby/2.6.0 这可能是问题所在吗?怎么改?

标签: ruby rubygems bundler rbenv


【解决方案1】:

检查您的gemspec 文件,在我的情况下,我错误地将空字符周围的双引号替换为单引号。

-    `git ls-files -z`.split('\x0').reject { |f| f.match(%r{^(test|spec|features)/}) }
+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }

【讨论】:

    【解决方案2】:

    转到项目的根目录并运行这些命令

    rbenv global 2.6.2
    gem install bundler
    rbenv rehash
    bundle install
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2011-03-12
      相关资源
      最近更新 更多