aud*_*ric 19 ruby bundle ruby-on-rails bundler
在这里完成Ruby和Rails的新人...过去曾尝试过一些教程,但那是关于它的.我正在尝试遵循"Ruby on Rails 3 Tutorial"一书,并找到了一个障碍,我在这里和谷歌搜索后找不到任何帮助.
我还没有做过任何事情; 只要:
rails new first_app
Run Code Online (Sandbox Code Playgroud)
然后将Gemfile sqlite3更改为
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
Run Code Online (Sandbox Code Playgroud)
当我运行'bundle install'时,我得到以下内容:
Fetching gem metadata from http://rubygems.org/.........
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 3.0.1) ruby depends on
bundler (~> 1.0.0) ruby
Current Bundler version:
bundler (1.1.3)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Run Code Online (Sandbox Code Playgroud)
我试过通过卸载捆绑包
gem uninstall bundler -v 1.1.3
Run Code Online (Sandbox Code Playgroud)
然后通过安装bundler v1.0.0
gem install bundler -v 1.0.0
Run Code Online (Sandbox Code Playgroud)
但它似乎让我捆绑1.1.2 ..
我只是觉得自己已经走到了尽头,无法找到更多关于如何解决这个问题的信息.
任何帮助都将受到极大的赞赏和奖励大量的培根......
更新更新更新
我无法让bundler v 1.1.2卸载.我终于通过这样做卸载了所有的宝石:
sudo gem list | cut -d" " -f1 > gem_list.txt
cat gem_list.txt | xargs sudo gem uninstall -aIx
cat gem_list.txt | xargs sudo gem install
Run Code Online (Sandbox Code Playgroud)
然后重新安装...这使我可以进行'捆绑安装'并开始运行..谢谢大家的帮助!
Nee*_*mar 14
这是因为gems也安装在全局gemset中,您可以使用以下命令卸载它:
rvm @global do gem uninstall bundler
Run Code Online (Sandbox Code Playgroud)
但您也可以使用其他版本的bundler:
gem install bundler -v '~>1.0.0'
bundle _1.0.0_ install
Run Code Online (Sandbox Code Playgroud)
将1.0.0替换为已安装的版本(如果是其他)
joe*_*son 10
首先验证您的版本,以确保它们是最新的:
$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]
$ rails -v
Rails 3.2.2
$ gem list bundler
*** LOCAL GEMS ***
bundler (1.1.3)
Run Code Online (Sandbox Code Playgroud)
如果您需要更新ruby,可以从ruby-lang.org下载或使用ruby-build等工具.如果您有任何版本的Ruby 1.9.3现在都可以.
要更新所有宝石:
gem update --system
gem update
Run Code Online (Sandbox Code Playgroud)
宝石可能会在几个不同的地方安装宝石,这些宝石会相互干扰.有系统宝石(通常由root或使用sudo安装)和您的个人用户宝石.我最喜欢的方法是使用一个名为rb-evn的简单工具.一个相关的工具是rvm.要么没事.
对于您的第一个教程,您可以跳过Gemfile中的版本号:
- gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
+ gem 'sqlite3-ruby', :require => 'sqlite3'
Run Code Online (Sandbox Code Playgroud)
Bundler将以正确的方式排序所有内容.最终,如果您正在与其他开发人员协调或构建生产系统,则需要指定版本号.
随意在这里提问,我将添加到这个答案.
也许您在计算机上安装了捆绑软件1.1.2和1.1.3(可能还有更多版本)
使用
gem list bundler
Run Code Online (Sandbox Code Playgroud)
检查已安装的捆绑软件版本。
然后删除您不想要的
gem uninstall bundler -v VERSION_NUMBER
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37146 次 |
| 最近记录: |