如何使用捆绑器重新安装宝石

我做了一个bundle show并获得了一个gem目录的完整路径。

不幸的是,我使用rm -r gem_path删除了该目录。 然后我的导轨应用程序不再工作了。 如果我尝试启动服务器或启动rails控制台,则会输出以下错误:

<class:Application> :未初始化的常量MyAPP::Application::Gem (NameError)

我应该怎么做才能恢复?

我尝试了bundle installbundle update ,希望强制捆绑包搜索并重新安装,但是没有起作用。

我也尝试删除Gemfile.lock并运行bundle install 。 没有改变,同样的错误。

有问题的宝石是作为标签的行为


如果使用rbenv,这会让你完全卸载并重新安装一个像rmagick这样的gem:

第一:尝试一个简单的卸载/重新安装

gem uninstall rmagick
bundle install

如果这不起作用,您可以删除已安装宝石的所有踪迹。 找到你的宝石安装位置:

bundle show rmagick
BUNDLE_DIR=$(dirname $(dirname $(bundle show rmagick)))
echo $BUNDLE_DIR

你的gem安装前缀将是默认的,例如~/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0或者你设置的东西。例如.vendor

清除gem目录:

rm -rf $BUNDLE_DIR/gems/rmagick-*

清除编译好的gem缓存:

rm $BUNDLE_DIR/cache/rmagick*.gem

还要清除捆绑商的规格缓存:

rm $BUNDLE_DIR/specifications/rmagick*gemspec

然后你可以重新安装:

bundle install

您始终可以使用:

gem pristine acts-as-taggable-on

pristine - 从位于gem缓存中的文件中恢复已安装的gem到原始状态

如果你只想恢复当前项目的gem,你应该运行:

bundle exec gem pristine acts-as-taggable-on


首先,我做了一个gem q --L ,这是gem query --local的快捷方式。 它向我输出安装的所有本地宝石。

actionmailer (3.2.8, 3.2.6, 3.2.1, 3.1.0)
actionpack (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activemodel (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activerecord (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activeresource (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activesupport (3.2.8, 3.2.6, 3.2.1, 3.1.0)
acts-as-taggable-on (2.3.3)
...

然后,按照DVG的建议,我使用正确的名称gem uninstall acts-as-taggable-on卸载了gem gem uninstall acts-as-taggable-on并运行了bundle install 。 之后,我能够再次rails crails s ,没有任何问题。

链接地址: http://www.djcxy.com/p/6105.html

上一篇: How to reinstall a gem using bundler

下一篇: ruby on rails