如何避免来自RubyGems的弃用消息?

如何避免来自RubyGems的弃用消息?,ruby,rubygems,gem,Ruby,Rubygems,Gem,在gem update--system之后,当我执行与rubygems相关的操作时,我收到以下消息: 注意:Gem::Specification#default_executable=已弃用,无需替换。将于2011年10月1日或之后移除 Gem::Specification#default_executable=从/usr/lib/ruby/gems/1.8/Specification/rubygems-update-1.7.2调用 我怎样才能避免呢?我试图删除rubygems并重新安装,但没有

gem update--system
之后,当我执行与rubygems相关的操作时,我收到以下消息:

注意:Gem::Specification#default_executable=已弃用,无需替换。将于2011年10月1日或之后移除

Gem::Specification#default_executable=从/usr/lib/ruby/gems/1.8/Specification/rubygems-update-1.7.2调用


我怎样才能避免呢?我试图删除rubygems并重新安装,但没有解决问题。

查看rubygems的安装位置:

$ gem list -d rubygems
在那里找到
deprecate.rb
文件,并使
self.skip
class方法始终返回true

或者,如果您正在使用RVM,则以下命令将修复它:

rvm rubygems current

您可能需要重新生成gem规范

安装RubyGems 1.8.1后,在加载exsting gems时,您将看到不推荐使用的内容。运行gempristine--all--no扩展来安全地重新生成gem规范


重新生成适用于我的gem规范:
sudo gem pristine--全部--无扩展

见:

您还可以降级您的rubygems版本:
sudogem更新——system 1.7.1

RVM修复程序只是降低了RubyGems的版本。这在大多数情况下是可以的。谢谢你,格拉迪斯!对我来说,在同一个区域中有几个deprecate.rb文件,我必须对所有这些文件都使用这种技术?仅对其中一个文件执行此操作并不能解决我在回滚到1.7.2后仍然收到一条消息的问题。似乎我和许多人一样,在使用“rvm rubygems current”时遇到了问题—错误:此解释器无法切换到1.3.7。似乎在某个时候rvm搞砸了(可能是因为没有使用rvm更新rubygems)。发现通过重新安装rvm(无需卸载)可以轻松修复此问题:$bash<我非常后悔更新,这是多么浪费时间。必须卸载带有本机代码的Gems,然后重新安装。当我运行此操作时,我得到:将Gems恢复到原始状态。。。还原的minitest-1.6.0还原的minitest-1.6.0还原的rake-0.8.7还原的rake-0.8.7 RDoc 2.5未保存方法参数,因此您应该将RDoc数据gem升级到>=2.5.3的版本。然后它就退出了。也许在评论中会显得很愚蠢。不知道该怎么办。我的gem由Bundler出售,因此运行
gem pristine--all--no extensions
只能恢复Bundler gem,因为它是唯一作为系统gem安装的。其余的在我的vendor/ruby目录中。有人知道如何使它们“原始”,或者如果有一个论点我可以传递给bundler为我这样做吗?我真的很想摆脱铺天盖地的反对通知书。我正在使用Bundler 1.0.15和RubyGems 1.8.5。如果
gem pristine
不适合您,请尝试
gem update--system 1.6.2