Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 on rails OSX上相同gems的多个版本[以及如何摆脱它们]_Ruby On Rails_Ruby_Macos_Rubygems - Fatal编程技术网

Ruby on rails OSX上相同gems的多个版本[以及如何摆脱它们]

Ruby on rails OSX上相同gems的多个版本[以及如何摆脱它们],ruby-on-rails,ruby,macos,rubygems,Ruby On Rails,Ruby,Macos,Rubygems,当我从主目录而不是从项目运行gem list时,我会得到一系列安装在Mac上的gem。然而,似乎有很多不同版本的宝石我知道我不需要,比如: 本地宝石 同一个gem安装了两个甚至三个不同的版本。我猜这可能是因为一些gem,比如Rake,使用了旧版本作为默认版本 如何摆脱这些过时的gem版本,以及如何将较新的版本(如bigdecimal、io console、rake等)设置为gem的默认版本?您可以通过键入以下内容从计算机全局删除gem gem uninstall <gem_name>

当我从主目录而不是从项目运行gem list时,我会得到一系列安装在Mac上的gem。然而,似乎有很多不同版本的宝石我知道我不需要,比如:

本地宝石

同一个gem安装了两个甚至三个不同的版本。我猜这可能是因为一些gem,比如Rake,使用了旧版本作为默认版本


如何摆脱这些过时的gem版本,以及如何将较新的版本(如bigdecimal、io console、rake等)设置为gem的默认版本?

您可以通过键入以下内容从计算机全局删除gem

gem uninstall <gem_name> --version x.x.x
#Removes particular version of the gem

gem cleanup <gem_name>
#will remove all versions except the latest
但是有不同的版本也不错,除非你认为它们真的过时了,永远不会被再次使用


要使用特定版本的gem,我认为Gemfile.lock是最好的方法。或者你可以参考这个。它显示了与您类似的问题。

您可以通过键入以下命令从计算机中全局删除gem

gem uninstall <gem_name> --version x.x.x
#Removes particular version of the gem

gem cleanup <gem_name>
#will remove all versions except the latest
但是有不同的版本也不错,除非你认为它们真的过时了,永远不会被再次使用


要使用特定版本的gem,我认为Gemfile.lock是最好的方法。或者你可以参考这个。它显示了一个与您类似的问题。

您是否在项目文件夹中使用带有Gemfile的Bundler?是的,我正在使用它。但是,当我运行gem list时,我不在项目内,所以我猜[也许我在工作?]这些是全局gems版本,而不是这个项目的特定版本gems都放在同一个位置,无论它们是否用于项目。Bundler所做的是从已安装的版本中选择正确的版本,或者它可以安装由您的Gemfile定义的正确版本。好的,我明白了。。。因此,如果我想从现在开始在我的所有项目中使用rake 11.1.2(而不考虑我以前做过的项目),应该有一种方法将rake 11.1.2设置为默认版本,并去掉10.4.2,否?最简单的方法是卸载所有版本的rake,然后加载回您想要的版本。您是否在项目文件夹中使用带有Gemfile的Bundler?是的,我正在使用它。但是,当我运行gem list时,我不在项目内,所以我猜[也许我在工作?]这些是全局gems版本,而不是这个项目的特定版本gems都放在同一个位置,无论它们是否用于项目。Bundler所做的是从已安装的版本中选择正确的版本,或者它可以安装由您的Gemfile定义的正确版本。好的,我明白了。。。因此,如果我想从现在开始在我的所有项目中使用rake 11.1.2(而不考虑我以前做过的项目),应该有一种方法将rake 11.1.2设置为默认版本,并去掉10.4.2,否?简单的方法是卸载所有版本的rake,然后加载回您想要的版本。但是如果我尝试删除rake,我会得到这个结果Miguel@MacBook-Pro~>gem卸载rake-版本10.4.2错误:执行gem时。。。Gem::InstallError无法卸载Gem rake,因为它是默认的Gem。您使用rvm吗?但是如果我尝试删除rake,我会得到这个结果Miguel@MacBook-Pro~>gem卸载rake-版本10.4.2错误:执行gem时。。。Gem::InstallError无法卸载Gem rake,因为它是默认Gem。您在使用rvm吗?