【问题标题】:Bundler installing Git dependencies to wrong directoryBundler 将 Git 依赖项安装到错误的目录
【发布时间】:2015-04-02 12:16:52
【问题描述】:

我在使用 Bundler 安装 Git 依赖项时遇到问题。 bundle install 似乎已成功完成:

Using gemname version from git://github.com/username/repo.git (at master)
Your bundle is complete!

但是,运行任何后续命令,bundle exec 等都会失败:

git://github.com/username/repo.git (at master) is not yet checked out. Run `bundle install` first.

我注意到 Bundler 获取 gem 没有问题,但它被安装到本地 /home/rails/.bundler/ruby/2.1.0/ 目录(以及为什么“Ruby 2.1.0”我不知道......)而不是它应该安装到的位置与所有其他宝石一起在/usr/local/rvm/gems/ruby-2.1.3/

我已尝试清除本地 Bundler 缓存和配置,然后再次运行 bundle install,以防出现简单问题但没有帮助。

宝石环境:

- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.3 (2014-09-19 patchlevel 242) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.1.3
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.1.3/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.1.3/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- RUBYGEMS PLATFORMS:
  - ruby
  - x86_64-linux
- GEM PATHS:
   - /usr/local/rvm/gems/ruby-2.1.3
   - /usr/local/rvm/gems/ruby-2.1.3@global
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :backtrace => false
   - :bulk_threshold => 1000
- REMOTE SOURCES:
   - https://rubygems.org/

【问题讨论】:

  • 你在用 sudo 运行bundle install 吗?您是否使用相同的用户帐户执行bundle installbundle exec
  • 同一个用户,并且可以使用 sudo 运行安装。我最终使用--deployment 标志解决了这个问题,但我从未弄清楚问题的根源。
  • 使用 sudo 运行意味着它不是同一个用户 :-) 通常不应运行 sudo bundle install,因为 Bundler 会在必要时在内部调用 sudo 以提升其权限。

标签: ruby gem rubygems rvm bundler


【解决方案1】:

不要运行sudo bundle install — 这会导致 git gem 安装到错误的位置。

当以无法写入正常 gem 安装位置 (GEM_HOME) 的用户身份运行时,Bundler 期望在 $HOME/.bundler 中找到 git gem。使用 sudo 安装会绕过此行为(因为您可以以 root 身份写入任何位置),并且还要求您以 root 身份使用 bundle exec

改为在不使用 sudo 的情况下运行 bundle install,作为将运行 bundle exec 的同一用户。

如果安装其他 gems 需要 root 权限,Bundler 会在内部调用 sudo。详情请见http://bundler.io/man/bundle-install.1.html#SUDO-USAGE

使用--deployment 标志可以避免这个问题,因为在部署模式下,所有gem(git-sourced 和其他)都安装到项目中的vendor/bundle 目录中。

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多