Ruby on rails 如何删除gem,这样我就不需要为rails命令预先编写bundle exec了?
如果我尝试运行测试,我会 Gem::LoadError:您已经激活了jruby openssl 0.9.5,但您的Gemfile需要jruby openssl 0.8.5。将bundle exec预先添加到您的命令可能会解决此问题 我可以按照指示做,并预先编写bundle exec来解决这个问题。 这是因为我在另一个项目中有一个更新版本的gem 但是,我不再将另一个应用程序与较新版本的gem一起使用,因此我想知道:Ruby on rails 如何删除gem,这样我就不需要为rails命令预先编写bundle exec了?,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,如果我尝试运行测试,我会 Gem::LoadError:您已经激活了jruby openssl 0.9.5,但您的Gemfile需要jruby openssl 0.8.5。将bundle exec预先添加到您的命令可能会解决此问题 我可以按照指示做,并预先编写bundle exec来解决这个问题。 这是因为我在另一个项目中有一个更新版本的gem 但是,我不再将另一个应用程序与较新版本的gem一起使用,因此我想知道: 我如何才能真正删除较新的版本,这样我就不必在使用rails命令之前捆绑exec?
我如何才能真正删除较新的版本,这样我就不必在使用rails命令之前捆绑exec?您可以通过运行
gem uninstall <gem_name>
如果有多个版本,则提示将询问要删除的版本。使用gem uninstall和-v开关指定要卸载的版本:
gem uninstall jruby-openssl -v 0.9.5
根据您的操作系统和shell,您可以为命令创建别名或函数,我猜这是在使用Rake 例如,我在我的.bashrc中有这个 功能烘焙{ bundle-exec-rake$@ }
现在我可以键入bake which,运行的命令是bundle exec rake which。这通常发生在您将全局gemset用于不同项目时 隔离宝石的一个好方法是使用。安装后,您可以为每个项目创建一个名为.ruby version的文件,该文件上有一行用语法@标识gemset。从控制台:
$> echo "2.1@myproject" > .ruby-version
$> cd .
这将为您的项目创建一个gemset,每次您进入根目录时,gemset将特定于此项目。然后,您可以为不同的项目使用不同的gem版本,并运行rake或任何其他命令,而不会弄乱依赖项。如果您刚刚更改了当前项目中的某些gem或升级了某些gem,也可能会发生这种情况。