为什么我安装的是 Rails 3.2,但 Ubuntu 却认为安装了 Rails 2.3.14?

为什么我安装的是 Rails 3.2,但 Ubuntu 却认为安装了 Rails 2.3.14?

我对 Ubuntu、Ruby 和 Rails 还不太熟悉。我正在努力学习第一个 Rails 指南在该指南的中途,我将 Ubuntu 版本 11 升级到了 Ubuntu 版本 12。在使用版本 11 时,我通过以下方式安装了 Rails:

gem install rails

然后运行:

rails --version

我几乎确信输出的内容如下:

Rails 3.2.7

当我跑步时:

rails server

Webrick 服务器启动了,我能够查看我的入门页面。我还能继续学习教程。然后,我遇到了一些问题,一些软件包丢失/损坏,在尝试修复该问题的过程中,我将 Ubuntu 升级到了版本 12。

登录 Ubuntu 12 版后,我尝试继续本教程。这次我运行

rails server

这发生过:

  create  
  create  app/controllers
  create  app/helpers
  create  app/models
  create  app/views/layouts
  create  config/environments
  create  config/initializers
  create  config/locales
  create  db
  create  doc
  create  lib
  create  lib/tasks
  create  log
  create  public/images
  create  public/javascripts
  create  public/stylesheets
  create  script/performance
  create  test/fixtures
  create  test/functional
  create  test/integration
  create  test/performance
  create  test/unit
  create  vendor
  create  vendor/plugins
  create  tmp/sessions
  create  tmp/sockets
  create  tmp/cache
  create  tmp/pids
  create  Rakefile
  create  README
  create  app/controllers/application_controller.rb
  create  app/helpers/application_helper.rb
  create  config/database.yml
  create  config/routes.rb
  create  config/locales/en.yml
  create  db/seeds.rb
  create  config/initializers/backtrace_silencers.rb
  create  config/initializers/inflections.rb
  create  config/initializers/mime_types.rb
  create  config/initializers/new_rails_defaults.rb
  create  config/initializers/session_store.rb
  create  config/initializers/cookie_verification_secret.rb
  create  config/environment.rb
  create  config/boot.rb
  create  config/environments/production.rb
  create  config/environments/development.rb
  create  config/environments/test.rb
  create  script/about
  create  script/console
  create  script/dbconsole
  create  script/destroy
  create  script/generate
  create  script/runner
  create  script/server
  create  script/plugin
  create  script/performance/benchmarker
  create  script/performance/profiler
  create  test/test_helper.rb
  create  test/performance/browsing_test.rb
  create  public/404.html
  create  public/422.html
  create  public/500.html
  create  public/index.html
  create  public/favicon.ico
  create  public/robots.txt
  create  public/images/rails.png
  create  public/javascripts/prototype.js
  create  public/javascripts/effects.js
  create  public/javascripts/dragdrop.js
  create  public/javascripts/controls.js
  create  public/javascripts/application.js
  create  doc/README_FOR_APP
  create  log/server.log
  create  log/production.log
  create  log/development.log
  create  log/test.log
  create  vendor/rails

我尝试研究发生了什么,结果看起来是因为 Rails 版本太旧。我运行了以下命令:

rails --version

..得到了这个:

Rails 2.3.14

我想可能是 Rails 以某种方式降级了,所以我运行了这个:

gem install rails

并得到这个:

Successfully installed rails-3.2.7
1 gem installed
Installing ri documentation for rails-3.2.7...
Installing RDoc documentation for rails-3.2.7...

我认为它必须被修复,因此我再次尝试了 Rails 3 应该能够做的事情,并得到了与以前相同的结果,因此我运行了这个:

rails --version

并得到这个:

Rails 2.3.14

我又重复了几次,结果还是一样。我尝试研究为什么会发生这种情况,但到目前为止,我什么也没想出来。看起来我可以安装 Rails 3,但这并不能改变 Ubuntu 12 认为 Rails 2 已安装的事实。它的反应也好像 Rails 2 已安装一样,似乎没有什么能改变这一点。

如果 Ubuntu 告诉我刚刚安装了 Rails 3,为什么它会认为已经安装了 Rails 2?

其他详细信息:

  • 我正在使用 Zsh 终端。
  • 我在需要的地方使用了 sudo,即使我没有在这里写
  • 我在 VMware Workstation 8 中运行 Ubuntu
  • 我在 Windows 7 中运行 VMware Workstation 8
  • 我尝试在全新的虚拟机中安装 Ubuntu 12,但遇到了同样的问题。

答案1

因为你安装了存储库中预构建的 2.3.14 rails 软件包之一,此外还通过以下方式安装了 Rails 3.2.7:宝石:-)

  • 以某种方式,您直接安装了其中一个软件包或者将其作为依赖项安装:
    rails - 基于 ruby​​ 的 MVC 框架,适用于 Web 应用程序开发
    ruby-rails-2.3 - 基于 ruby​​ 的 MVC 框架,适用于 Web 应用程序开发
    
  • apt-cache show rails告诉我们它是...Version: 2.3.14.1
  • 从头开始,以下步骤成功安装 3.2.7 (提供详细日志):

    sudo apt-get 安装 ruby​​gems
    sudo gem 安装 rails
    #...稍等片刻...
    $ rails --version
    Rails 3.2.7
    
  • 在您现有的系统上,我建议您尝试以下操作,看看是否可以删除 2.3.14 并让 3.2.7 作为默认系统运行:

    sudo apt-get 删除 rails ruby​​-rails\*
    sudo apt-get 自动删除
    sudo apt-get--重新安装安装 ruby​​gems
    sudo gem 安装 rails
    

相关内容