74

每当我做bundle install所有的宝石都安装在

app_dir/vendor/bundle

路径并消耗大量磁盘空间。我还尝试在应该安装的地方安装gems,即在开发时通过以下方式安装gemsets:

bundle install --no-deployement

但这对我不起作用,并且在vendor/bundle. 如何让它为所有应用程序全局安装或安装在 ruby​​ gemsets 位置?我也尝试删除.bundle/config但没有任何改变。

我在用:

rvm version: 1.23.14
ruby version: 2.0.0-p247
rails 3.2.13

这是我的~/.bash_profile

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
eval "$(rbenv init -)"
alias pg='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log'

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

我的~/.bashrc

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

您可能需要的其他一些信息:

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which bundle
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/bundle

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which bundle
/Users/aman/.rbenv/versions/2.0.0-p247/bin/bundle

amandeep@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which ruby
/Users/aman/.rbenv/versions/2.0.0-p247/bin/ruby

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv gemset active
rbenv: NO such command `gemset'

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which rails
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/rails

我也试过这个但没有帮助:

bundle install --system

并删除.bundle目录。

请帮助我在 gemsetsvendor/bundle或默认位置安装 gems。

4

6 回答 6

114

在您的项目文件夹中,您将拥有.bundle包含bundler. 尝试删除该文件夹。它应该将您的 gem 的安装路径重置为系统范围的设置。

如果您只想编辑安装路径,.bundle/config使用您喜欢的编辑器打开应该会显示vendor/bundle. 删除该行会将其恢复为默认值,而不会删除您可能拥有的其他配置。

此外,另一个不太常见的情况是您的系统范围的设置被搞砸了。根据@NaoiseGolden:

我不得不.bundle从我的主文件夹(rm -rf ~/.bundle)中删除。您可以检查您的配置正在运行bundle env

于 2013-11-13T20:44:29.407 回答
32

尝试使用安装

bundle install --system

我认为最初捆绑安装是使用--path标志运行的,捆绑器现在记住了该配置。

从捆绑器手册页

在调用 bundle install 之间以及 Bundler 运行时会记住一些选项。

对 bundle install 的后续调用会将 gem 安装到最初传递给--path的目录中。Bundler 运行时将在该位置查找 gem。您可以通过运行bundle install --system来恢复此选项。

编辑:正如下面的评论中提到的,另外,这会在系统范围内安装 gems。如果您使用 rvm 等来管理不同应用程序的环境,请查看上面提到的@IuriG 的答案

于 2013-11-13T19:16:07.913 回答
13
  1. 用于bundle env查看路径和捆绑配置

  2. 在此设置捆绑路径之后, ~/.rvm/gems/ruby-2.0.0-p247如下所示:

    bundle install --path ~/.rvm/gems/ruby-2.0.0-p247
    

    这是全局的,您也可以使用自己的自定义路径。

  3. 发布这bundle install将永远不再需要path,并且将始终在其中安装您的所有宝石directory(~/.rvm/gems/ruby-2.0.0-p247 in my case)对于该应用程序不在app_folder/vendor/bundle

于 2013-11-15T05:53:38.113 回答
7

尝试运行bundle env。这将告诉您路径配置的设置位置。

于 2013-11-14T10:59:30.767 回答
2

首先,根据您的信息,您似乎已经安装了 rvm 和 rbenv。那是一个非常糟糕的主意。您必须删除其中一个(rbenv + bundler 对我来说就像一个魅力,没有尝试 rvm)。

关于您.bundle/config在项目中的问题检查,因为捆绑到该项目的所有配置都在那里(如果它仍然被删除,您可以创建一个新配置)。您可能想要添加此行(或更改它,如果它已经存在):BUNDLE_DISABLE_SHARED_GEMS: '0'为了共享宝石,它们会转到您BUNDLE_PATH:设置的位置(BUNDLE_PATH: vendor在我的情况下)。

对于全局配置文件,请查看~/.bundle/config

这个手册页也可以使用:bundle config

于 2014-03-17T06:05:33.470 回答
1

要在系统范围内安装 Gem,避免路径供应商/捆绑包,只需在项目目录中运行以下命令

bundle install --system
于 2015-04-01T11:59:45.127 回答