Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 红宝石,版本,宝石,版本和更多,哦,我的天_Ruby_Gem_Rvm_Bundler_Rbenv - Fatal编程技术网

Ruby 红宝石,版本,宝石,版本和更多,哦,我的天

Ruby 红宝石,版本,宝石,版本和更多,哦,我的天,ruby,gem,rvm,bundler,rbenv,Ruby,Gem,Rvm,Bundler,Rbenv,为题目道歉,无法抗拒 基本上,除了尝试不同的东西,没有任何理由。我想内爆RVM并尝试rbenv。不反对RVM,只是想尝试不同的人的软件和尝试不同的东西 我可以摆脱RVM和安装rbenv没有问题。你们能帮我确认几件事吗 首先,如果我执行上述操作,然后安装几个不同的ruby版本。我知道我可以在projects根目录中放置一个.ruby版本文件来指定一个特定的ruby版本,但当我说gem install时,我认为它是为该ruby版本全局安装的 如果我在每个项目中使用bundler来管理使用了哪些gem

为题目道歉,无法抗拒

基本上,除了尝试不同的东西,没有任何理由。我想内爆RVM并尝试rbenv。不反对RVM,只是想尝试不同的人的软件和尝试不同的东西

我可以摆脱RVM和安装rbenv没有问题。你们能帮我确认几件事吗

首先,如果我执行上述操作,然后安装几个不同的ruby版本。我知道我可以在projects根目录中放置一个.ruby版本文件来指定一个特定的ruby版本,但当我说
gem install
时,我认为它是为该ruby版本全局安装的

如果我在每个项目中使用bundler来管理使用了哪些gem,并指定了gem版本,那么如果锁文件中指定的版本与当前安装的版本不同,会发生什么情况,反之亦然

我只需要澄清一下ruby、版本、gems及其版本的作用。

关于
rbenv
的一个(许多)有趣的事情是,您可以很容易地直接查看ruby安装,看看发生了什么。例如,在我的机器上,我可以打开~/.rbenv,有些版本包含我的ruby安装,比如1.9.3-p327。打开它,我可以继续深入查看为该版本的ruby安装的gems(在~/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems中)。然后运行
gem list
gem安装somegem
并确认受影响的正是这些gem的集合——如果这是当前的ruby(在
rbenv global
中设置,并在
rbenv versions
中加星号)

简而言之,关于系统的所有内容都认为
ruby
意味着这个版本的ruby,而它的库就是这个库

对于Bundler,您需要安装
rbenv Bundler
。这里有一个很好的教程(谷歌很容易找到):

关于
rbenv
的(许多)可爱之处之一是,你可以很容易地直接查看ruby安装,看看发生了什么。例如,在我的机器上,我可以打开~/.rbenv,有些版本包含我的ruby安装,比如1.9.3-p327。打开它,我可以继续深入查看为该版本的ruby安装的gems(在~/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems中)。然后运行
gem list
gem安装somegem
并确认受影响的正是这些gem的集合——如果这是当前的ruby(在
rbenv global
中设置,并在
rbenv versions
中加星号)

简而言之,关于系统的所有内容都认为
ruby
意味着这个版本的ruby,而它的库就是这个库


对于Bundler,您需要安装
rbenv Bundler
。这里有一个很好的教程(谷歌很容易找到):

谢谢,所以如果我遵循这一点,并且不允许bundler共享gem,那么我在bundler中指定的每个gem都会安装到该项目的供应商目录中,如果我在不同的项目中使用相同的gem,则会为该项目再次安装。对的如果我允许bunder共享会发生什么?bundler将使用公共rubygems目录-默认或从
GEM_HOME
/
GEM_PATH
-使用bundler默认部署选项会有问题,那么默认情况下是否设置了禁用共享GEM的配置选项?如果是这样的话,那么在哪里呢?因为我的主目录或任何项目目录中都没有.bundle目录。谢谢你,所以如果我遵循这一点,并且不允许bundler共享gems,我在bundler中指定的每个gem都会安装到该项目的供应商目录中,如果我在不同的项目中使用相同的gem,则会为该项目再次安装。对的如果我允许bunder共享会发生什么?bundler将使用公共rubygems目录-默认或从
GEM_HOME
/
GEM_PATH
-使用bundler默认部署选项会有问题,那么默认情况下是否设置了禁用共享GEM的配置选项?如果是这样,那么是因为我的主目录或任何项目目录中都没有.bundle目录。