我是RoR的新手,我试图遵循Micheal Hartl的Ruby on Rails教程。在开始本教程之前,我已经提前设置了所有内容,并将Rails版本更新为4.1.1,并且一切运行良好,直到教程中我需要具有最高4.0.5版本的Rails以继续该示例。为了做到这一点,我尝试了几件事。首先我跑:
gem uninstall rails
之后我收到了它已卸载的消息但是在运行rails -v时我仍然有4.1.1。然后,关于stackoverflow的一个答案,卸载railties,我做了:
gem uninstall railties 4.1.1
之后运行时:rails -v我收到一条消息,说明版本3.2.18正在运行,这是我作为railsinstaller的一部分安装的。不幸的是,在创建一个新的应用程序后,它在捆绑安装上停止了并且没有继续多次。然后我尝试删除所有宝石,以便从头开始安装所有内容。我这样做了:
ruby -e" gem list
。split(/ $ /)。每个{| line |除非line.strip.empty,否则放gem uninstall -Iax #{line.split(' ')[0]}
? }"
我也在这里找到了。它确实删除了宝石,之后我卸载了Ruby。然后我用rails Rails版本3.2.18再次安装了所有内容。当它完成并且当我打开cmd时,在Rails版本下的Rails环境配置中,我可以再次看到版本4.1.1。我跑的时候:
gem uninstall rails
它卸载了3.2.18版本,正确的版本。我再次安装了所有内容,希望安装正确的版本并且显示4.1.1是一个小错误,但是在创建新应用程序时,bundler安装仍然无法正常工作。现在,经过几次尝试,我试图保持原样,除了尝试安装4.0.5版本之外,不要卸载任何东西。首先它安装了轨道和轨道4.1.1然后我收到了一个错误:找不到有效的宝石' 4.0.5'。
我检查了几个问题和答案,试图整天设置它,但它没有成功。我试着写详细信息,这样你就可以更好地理解,因为有类似的问题,但没有针对我遇到的完全相同的问题。无论我做了什么,我都完成了许多版本4.1.1仍在文件夹中的宝石。我希望有人知道该怎么做,以及如何删除以前的版本forevr。提前致谢!
答案 0 :(得分:2)
首先找到rails gem目录。
有很多方法可以做到,例如查看GEM_HOME
和GEM_PATH
echo $GEM_HOME
echo $GEM_PATH
这是一种蛮力的方式:
find / -type d -name rails-4.1.1
这可能会找到多个目录,例如系统的gem目录,缓存,docs,bundler目录,RVM或chruby的ruby版本控制目录等。
如果您是系统的唯一用户,请删除所有这些用户。
立即验证4.1.1已消失:
# Show the executable, if any
which rails
# Show the version, which should not say 4.1.1
rails --version
# If you're within a bundle directory
bundle exec rails --version
请勿捆绑。
编辑你的Gemfile,它也可能要求Rails 4.1.1,并设置你想要的确切Rails版本:
gem 'rails', '= 4.0.5'
现在捆绑:
bundle update
验证rails 4.1.1不在您的Gemfile中,也不是锁定:
grep 4.1.1 Gemfile Gemfile.lock
答案 1 :(得分:0)
如果你正在使用bundler
(强烈推荐),你应该能够为不同的应用程序使用不同版本的宝石
-
你试过这个:
在
Gemfile
中,确保引用了正确版本的Rails -
gem 'rails', '3.2.0'
在您的app目录中 -
bundle install
-
这将使用bundler为您的应用安装相应的gems,可以根据需要进行更改