为什么捆绑安装是在供应商/捆绑安装gem?
每当我做bundle install
所有的gem得到安装
app_dir/vendor/bundle
path并消耗大量的磁盘空间。 我也尝试安装gem,它应该得到安装,即gemsets而开发这个:
bundle install --no-deployement
但是这不适合我和安装在vendor/bundle
gem。 我怎样才能使它在全球范围内安装所有应用程序或rubygemsets位置? 我也尝试删除.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
目录。
请帮助我在gemsets不是vendor/bundle
或默认的地方安装gem。
在您的项目文件夹中,您将拥有包含bundler
configuration的.bundle
目录。 尝试删除该文件夹。 它应该重置您的gem的安装path回到系统范围的设置。
如果你只是想编辑安装path,用你最喜欢的编辑器打开.bundle/config
应该显示你的vendor/bundle
的path。 删除该行将恢复到默认值,而不会删除其他可能的configuration。
此外,另一个不太常见的情况是您的系统范围设置混乱。 根据@NaoiseGolden:
我不得不从我的主文件夹(rm -rf〜/ .bundle)删除
.bundle
。 你可以检查你的configuration运行bundle env
尝试使用安装
bundle install --system
我想最初的bundle安装是用--path
标志运行的,bundler现在记住了configuration。
从打包商手册页
在捆绑安装调用和Bundler运行时间之间会记住一些选项。
随后的捆绑安装调用会将gem安装到最初传递给–path的目录中。 Bundler运行时将在该位置寻找gem。 你可以通过运行bundle install –system来恢复这个选项。
编辑 :如下面的评论中所述,否则,这将安装gem系统广泛。 如果你正在使用rvm等来pipe理你的环境,为不同的应用程序,请检查@ IuriG的上述答案 。
使用bundle env
查看path和捆绑configuration
在这个设置束path到~/.rvm/gems/ruby-2.0.0-p247
像这样:
bundle install --path ~/.rvm/gems/ruby-2.0.0-p247
这是全球性的,也可以使用自己的自定义path。
发布这个bundle install
将永远不会再需要path
,并将始终安装在该directory(~/.rvm/gems/ruby-2.0.0-p247 in my case
)的所有gem不在app_folder/vendor/bundle
尝试运行bundle env
。 这会告诉你pathconfiguration的设置。
首先,根据你的信息,似乎你已经安装了rvm和rbenv。 这是一个非常糟糕的主意 。 你必须删除其中一个(rbenv + bundler作品像我的魅力,没有尝试rvm)。
关于你的问题在你的项目中检查.bundle/config
,因为该项目的bundle的所有configuration都在那里(如果它仍然被删除,你可以创build一个新的)。 你很想添加这一行(或者改变它,如果它已经存在): BUNDLE_DISABLE_SHARED_GEMS: '0'
用于共享gem,他们去你的BUNDLE_PATH:
设置( BUNDLE_PATH: vendor
在我的情况)。
对于全局configuration文件,请在~/.bundle/config
查找
此外,这个手册页可能是有用的: 捆绑configuration
要在系统范围内安装Gem,避免path供应商/包,只需在项目目录中运行以下命令
bundle install --system