【问题标题】:Bundler doesn't get installed properlyBundler 未正确安装
【发布时间】:2019-06-01 23:30:48
【问题描述】:

我只是迷路了。我在 Windows 上设置了 Ubuntu,并使用 curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash 安装了 rbenv。在我的 .zshrc 文件中添加了相关行,安装了必要的 ruby​​ 版本,所以现在 ruby -v 命令显示 ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux] 应该如此。我跑了sudo gem install bundler,它打印得很好Successfully installed bundler-2.0.1。但是当我运行bundler 命令时,我得到:

Traceback (most recent call last):
        2: from /home/michal-sadowski/.rbenv/versions/2.5.3/bin/bundler:23:in `<main>'
        1: from /home/michal-sadowski/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/home/michal-sadowski/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)

我该怎么做才能让它运行?

which bundler/home/michal-sadowski/.rbenv/shims/bundler which ruby/home/michal-sadowski/.rbenv/shims/ruby

【问题讨论】:

  • 你永远不应该在 gem install 命令中使用sudo,你可能会破坏你所有的 rbenv 脚本。
  • 在此之前我也尝试过不使用sudo。让我重新安装 rbenv 再试一次。
  • @Зелёный 似乎是部分原因,部分原因是 ubuntu 捆绑的 ruby​​ 版本锁定了文件夹的权限 - 问题的尖端是我项目的 gemlock 文件中的版本不匹配。

标签: ruby ubuntu bundler rbenv windows-subsystem-for-linux


【解决方案1】:

这是一个混合的问题。

  1. 我不应该使用sudo,它破坏了一些路径非常合理
  2. 首先我不应该使用sudo - 但直接通过sudo apt install ruby-full 安装ruby 很可能会限制对必要文件夹的访问
  3. 卸载系统默认 ruby​​ 版本并重新安装 rbenv 后,我可以调用 bundler 而不会出现错误 - 只是不在正确的文件夹中。原来问题是一个 gemlock 文件,它的 bundled with 字段设置为 1.x,由一个旧的 gemfile 引起。删除 gemlock 文件和该依赖项后,它或多或少地顺利进行。

【讨论】:

  • 啊,谢谢!红宝石升级后我遇到了类似的问题。结果是带有bundler (&gt;= 1.3.0) 的gemlock 文件删除了gemlock 并重新尝试了bundle install 都开始工作了。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2020-07-28
  • 2016-07-21
  • 2021-05-30
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多