简体   繁体   English

无法让'rails new'工作

[英]Can't get 'rails new' to work

I'm a n00b eager to get my hands on Ruby on Rails (OSX 10.7). 我非常渴望得到Ruby on Rails(OSX 10.7)。 But first I need to install it. 但首先我需要安装它。 Now I've spend 9 hours trying to get it to work but it always fails when I try to create a new project: 现在我花了9个小时试图让它工作但是当我尝试创建一个新项目时总是失败:

$ rails new /Users/tom/Documents/14-Utveckling/WhichTerminal 
   exist  
identical  README.rdoc
identical  Rakefile
identical  config.ru
identical  .gitignore
 conflict  Gemfile
Overwrite /Users/tom/Documents/14-Utveckling/WhichTerminal/Gemfile? (enter "h" for help) [Ynaqdh] Y
   force  Gemfile
   exist  app
identical  app/assets/images/rails.png
identical  app/assets/javascripts/application.js
identical  app/assets/stylesheets/application.css
identical  app/controllers/application_controller.rb
identical  app/helpers/application_helper.rb
    exist  app/mailers
    exist  app/models
identical  app/views/layouts/application.html.erb
identical  app/mailers/.gitkeep
identical  app/models/.gitkeep
    exist  config
 identical  config/routes.rb
identical  config/application.rb
identical  config/environment.rb
   exist  config/environments
identical  config/environments/development.rb
identical  config/environments/production.rb
identical  config/environments/test.rb
    exist  config/initializers
identical  config/initializers/backtrace_silencers.rb
identical  config/initializers/inflections.rb
identical  config/initializers/mime_types.rb
 conflict  config/initializers/secret_token.rb
Overwrite /Users/tom/Documents/14-  Utveckling/WhichTerminal/config/initializers/secret_token.rb? (enter "h" for help) [Ynaqdh] Y
    force  config/initializers/secret_token.rb
 conflict  config/initializers/session_store.rb
Overwrite /Users/tom/Documents/14-Utveckling/WhichTerminal/config/initializers/session_store.rb? (enter "h" for help) [Ynaqdh] Y
    force  config/initializers/session_store.rb
 conflict  config/initializers/wrap_parameters.rb
 Overwrite /Users/tom/Documents/14-Utveckling/WhichTerminal/config/initializers/wrap_parameters.rb? (enter "h" for help) [Ynaqdh] Y
    force  config/initializers/wrap_parameters.rb
    exist  config/locales
identical  config/locales/en.yml
identical  config/boot.rb
identical  config/database.yml
    exist  db
 conflict  db/seeds.rb
Overwrite /Users/tom/Documents/14-Utveckling/WhichTerminal/db/seeds.rb? (enter "h" for help) [Ynaqdh] Y
   force  db/seeds.rb
   exist  doc
identical  doc/README_FOR_APP
    exist  lib
    exist  lib/tasks
identical  lib/tasks/.gitkeep
    exist  lib/assets
identical  lib/assets/.gitkeep
    exist  log
identical  log/.gitkeep
    exist  public
identical  public/404.html
identical  public/422.html
identical  public/500.html
identical  public/favicon.ico
identical  public/index.html
identical  public/robots.txt
    exist  script
identical  script/rails
    exist  test/fixtures
identical  test/fixtures/.gitkeep
    exist  test/functional
identical  test/functional/.gitkeep
    exist  test/integration
identical  test/integration/.gitkeep
    exist  test/unit
identical  test/unit/.gitkeep
identical  test/performance/browsing_test.rb
identical  test/test_helper.rb
    exist  tmp/cache
    exist  tmp/cache/assets
    exist  vendor/assets/javascripts
identical  vendor/assets/javascripts/.gitkeep
    exist  vendor/assets/stylesheets
identical  vendor/assets/stylesheets/.gitkeep
    exist  vendor/plugins
identical  vendor/plugins/.gitkeep
      run  bundle install
Enter your password to install the bundled RubyGems to your system: 
Fetching gem metadata from https://rubygems.org/.........

NoMethodError: private method `open' called for Gem::Package:Class
An error occured while installing rake (0.9.2.2), and Bundler cannot continue.
Make sure that `gem install rake -v '0.9.2.2'` succeeds before bundling.

My theory: 我的理论:

I suspect it is the https access that is screwing up. 我怀疑是https访问是搞砸了。 Some say it is some problem with openssl. 有人说这是openssl的一些问题。

$ openssl version
OpenSSL 0.9.8r 8 Feb 2011

Apparently, the best answer is 'OpenSSL 1.0.1' but I have no clue how to update Openssl globally. 显然,最好的答案是'OpenSSL 1.0.1',但我不知道如何在全球范围内更新Openssl。 Ignoring this I did reinstall ruby doing the following: 忽略这一点我确实重新安装ruby执行以下操作:

$ rvm remove 1.9.3
$ brew install openssl
$ rvm install 1.9.3 --with-openssl-dir=`brew --prefix openssl`

I have no clue what brew does but it seems to install openssl and tuck it away in a directory somewhere. 我不知道brew会做什么,但它似乎安装openssl并把它塞进某个目录。 Anyway. 无论如何。 Whatever I do I always end up with the same error: 无论我做什么,我总是会遇到同样的错误:

Fetching gem metadata from https://rubygems.org/.........
NoMethodError: private method `open' called for Gem::Package:Class
An error occured while installing rake (0.9.2.2), and Bundler cannot continue.

I reinstalled the whole chabang. 我重新安装了整个chabang。 Same result. 结果相同。 Here is the log: 这是日志:

Remove rvm 删除rvm

$ rvm implode
[...]
rvm has been fully removed. Note you may need to manually remove /etc/rvmrc and ~/.rvmrc if they exist still.
$ gem uninstall rvm
$ which ruby
/usr/bin/ruby

Installing RVM 安装RVM

$ curl -L get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9248  100  9248    0     0   2403      0  0:00:03  0:00:03 --:--:-- 27939
Downloading RVM from wayneeseguin branch stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1023k  100 1023k    0     0  85026      0  0:00:12  0:00:12 --:--:-- 94532

Installing RVM to /Users/tom/.rvm/
    RVM PATH line found in /Users/tom/.bashrc /Users/tom/.zshrc.
    RVM sourcing line found in /Users/tom/.bash_login /Users/tom/.zlogin.

# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Installation of RVM in /Users/tom/.rvm/ is almost complete:

  * To start using RVM you need to run `source /Users/tom/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# Tom Eriksen,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne


rvm 1.13.8 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

Intalling Ruby 1.9.3 (with openssl 1.0.1) 安装Ruby 1.9.3(使用openssl 1.0.1)

$ rvm install 1.9.3 --with-openssl-dir=`brew --prefix openssl`
Fetching yaml-0.1.4.tar.gz to /Users/tom/.rvm/archives
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  460k  100  460k    0     0  65747      0  0:00:07  0:00:07 --:--:--  116k
Extracting yaml-0.1.4.tar.gz to /Users/tom/.rvm/src
Configuring yaml in /Users/tom/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/tom/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/tom/.rvm/usr
Installing Ruby from source to: /Users/tom/.rvm/rubies/ruby-1.9.3-p194, this may take a while depending on your cpu(s)...

ruby-1.9.3-p194 - #fetching 
ruby-1.9.3-p194 - #downloading ruby-1.9.3-p194, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9610k  100 9610k    0     0   193k      0  0:00:49  0:00:49 --:--:--  212k
ruby-1.9.3-p194 - #extracting ruby-1.9.3-p194 to /Users/tom/.rvm/src/ruby-1.9.3-p194
ruby-1.9.3-p194 - #extracted to /Users/tom/.rvm/src/ruby-1.9.3-p194
ruby-1.9.3-p194 - #configuring 
ruby-1.9.3-p194 - #compiling 
ruby-1.9.3-p194 - #installing 
Retrieving rubygems-1.8.24
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  371k  100  371k    0     0   355k      0  0:00:01  0:00:01 --:--:--  446k
Extracting rubygems-1.8.24 ...
Removing old Rubygems files...
Installing rubygems-1.8.24 for ruby-1.9.3-p194 ...
Installation of rubygems completed successfully.
ruby-1.9.3-p194 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p194 - #importing default gemsets (/Users/tom/.rvm/gemsets/)
Install of ruby-1.9.3-p194 - #complete 
$ which ruby
/Users/tom/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
$ which gem
/Users/tom/.rvm/rubies/ruby-1.9.3-p194/bin/gem
$ which rails
/usr/bin/rails

Installing RubyGems just in case. 安装RubyGems以防万一。 Afer downloading RubyGems through GIT I move to the directory and run setup. 之后通过GIT下载RubyGems我移动到目录并运行安装程序。

$ cd /Users/tom/Library/Developer/rubygems 
Toms-dator-2:rubygems tom$ ruby setup.rb 
RubyGems 2.0.a installed



------------------------------------------------------------------------------

RubyGems installed the following executables:
    /Users/tom/.rvm/rubies/ruby-1.9.3-p194/bin/gem

rubygems$ gem update --system
Latest version currently installed. Aborting.

Installing json (it complains if I don't) 安装json(如果我不这样做会抱怨)

rubygems$ gem install json
Fetching: json-1.7.3.gem (100%)
Building native extensions.  This could take a while...
Successfully installed json-1.7.3
Installing ri documentation for json-1.7.3
Installing darkfish documentation for json-1.7.3
1 gem installed

Rubygems$ which gem
/Users/tom/.rvm/rubies/ruby-1.9.3-p194/bin/gem

Installing rails 安装导轨

Rubygems$ gem install rails
Fetching: i18n-0.6.0.gem (100%)
Successfully installed i18n-0.6.0
Fetching: multi_json-1.3.5.gem (100%)
Successfully installed multi_json-1.3.5
Fetching: activesupport-3.2.3.gem (100%)
Successfully installed activesupport-3.2.3
Fetching: builder-3.0.0.gem (100%)
Successfully installed builder-3.0.0
Fetching: activemodel-3.2.3.gem (100%)
Successfully installed activemodel-3.2.3
Fetching: rack-1.4.1.gem (100%)
Successfully installed rack-1.4.1
Fetching: rack-cache-1.2.gem (100%)
Successfully installed rack-cache-1.2
Fetching: rack-test-0.6.1.gem (100%)
Successfully installed rack-test-0.6.1
Fetching: journey-1.0.3.gem (100%)
Successfully installed journey-1.0.3
Fetching: hike-1.2.1.gem (100%)
Successfully installed hike-1.2.1
Fetching: tilt-1.3.3.gem (100%)
Successfully installed tilt-1.3.3
Fetching: sprockets-2.1.3.gem (100%)
Successfully installed sprockets-2.1.3
Fetching: erubis-2.7.0.gem (100%)
Successfully installed erubis-2.7.0
Fetching: actionpack-3.2.3.gem (100%)
Successfully installed actionpack-3.2.3
Fetching: arel-3.0.2.gem (100%)
Successfully installed arel-3.0.2
Fetching: tzinfo-0.3.33.gem (100%)
Successfully installed tzinfo-0.3.33
Fetching: activerecord-3.2.3.gem (100%)
Successfully installed activerecord-3.2.3
Fetching: activeresource-3.2.3.gem (100%)
Successfully installed activeresource-3.2.3
Fetching: mime-types-1.18.gem (100%)
Successfully installed mime-types-1.18
Fetching: polyglot-0.3.3.gem (100%)
Successfully installed polyglot-0.3.3
Fetching: treetop-1.4.10.gem (100%)
Successfully installed treetop-1.4.10
Fetching: mail-2.4.4.gem (100%)
Successfully installed mail-2.4.4
Fetching: actionmailer-3.2.3.gem (100%)
Successfully installed actionmailer-3.2.3
Fetching: thor-0.14.6.gem (100%)
Successfully installed thor-0.14.6
Fetching: rack-ssl-1.3.2.gem (100%)
Successfully installed rack-ssl-1.3.2
Fetching: rdoc-3.12.gem (100%)
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Successfully installed rdoc-3.12
Fetching: railties-3.2.3.gem (100%)
Successfully installed railties-3.2.3
Fetching: rails-3.2.3.gem (100%)
Successfully installed rails-3.2.3
Installing ri documentation for i18n-0.6.0
Installing darkfish documentation for i18n-0.6.0
Installing ri documentation for multi_json-1.3.5
Installing darkfish documentation for multi_json-1.3.5
Installing ri documentation for activesupport-3.2.3
Installing darkfish documentation for activesupport-3.2.3
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README.rdoc, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for test/performance.rb, skipping
Installing ri documentation for builder-3.0.0
Installing darkfish documentation for builder-3.0.0
Installing ri documentation for activemodel-3.2.3
Installing darkfish documentation for activemodel-3.2.3
unable to convert "\x89" from ASCII-8BIT to UTF-8 for test/multipart/binary, skipping
Installing ri documentation for rack-1.4.1
Installing darkfish documentation for rack-1.4.1
Installing ri documentation for rack-cache-1.2
Installing darkfish documentation for rack-cache-1.2
Installing ri documentation for rack-test-0.6.1
Installing darkfish documentation for rack-test-0.6.1
Installing ri documentation for journey-1.0.3
Installing darkfish documentation for journey-1.0.3
Installing ri documentation for hike-1.2.1
Installing darkfish documentation for hike-1.2.1
Installing ri documentation for tilt-1.3.3
Installing darkfish documentation for tilt-1.3.3
Installing ri documentation for sprockets-2.1.3
Installing darkfish documentation for sprockets-2.1.3
Installing ri documentation for erubis-2.7.0
Installing darkfish documentation for erubis-2.7.0
Installing ri documentation for actionpack-3.2.3
Installing darkfish documentation for actionpack-3.2.3
Installing ri documentation for arel-3.0.2
Installing darkfish documentation for arel-3.0.2
Installing ri documentation for tzinfo-0.3.33
Installing darkfish documentation for tzinfo-0.3.33
Installing ri documentation for activerecord-3.2.3
Installing darkfish documentation for activerecord-3.2.3
Installing ri documentation for activeresource-3.2.3
Installing darkfish documentation for activeresource-3.2.3
Installing ri documentation for mime-types-1.18
Installing darkfish documentation for mime-types-1.18
Installing ri documentation for polyglot-0.3.3
Installing darkfish documentation for polyglot-0.3.3
Installing ri documentation for treetop-1.4.10
Installing darkfish documentation for treetop-1.4.10
Installing ri documentation for mail-2.4.4
Installing darkfish documentation for mail-2.4.4
Installing ri documentation for actionmailer-3.2.3
Installing darkfish documentation for actionmailer-3.2.3
Installing ri documentation for thor-0.14.6
Installing darkfish documentation for thor-0.14.6
Installing ri documentation for rack-ssl-1.3.2
Installing darkfish documentation for rack-ssl-1.3.2
Installing ri documentation for rdoc-3.12
Installing darkfish documentation for rdoc-3.12
Installing ri documentation for railties-3.2.3
Installing darkfish documentation for railties-3.2.3
Installing ri documentation for rails-3.2.3
Installing darkfish documentation for rails-3.2.3
28 gems installed

Rubygems$ which rails
/Users/tom/.rvm/gems/ruby-1.9.3-p194/bin/rails

Finally. 最后。 Let's create a new project 让我们创建一个新项目

Rubygems$ rails new /Users/tom/Documents/WhichTerminal 
       exist  
      create  README.rdoc
      create  Rakefile
      create  config.ru
   identical  .gitignore
      create  Gemfile
      create  app
      create  app/assets/images/rails.png
      create  app/assets/javascripts/application.js
      create  app/assets/stylesheets/application.css
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/mailers
      create  app/models
      create  app/views/layouts/application.html.erb
      create  app/mailers/.gitkeep
      create  app/models/.gitkeep
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  lib/assets
      create  lib/assets/.gitkeep
      create  log
      create  log/.gitkeep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  script
      create  script/rails
      create  test/fixtures
      create  test/fixtures/.gitkeep
      create  test/functional
      create  test/functional/.gitkeep
      create  test/integration
      create  test/integration/.gitkeep
      create  test/unit
      create  test/unit/.gitkeep
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor/assets/javascripts
      create  vendor/assets/javascripts/.gitkeep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.gitkeep
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
         run  bundle install
Fetching gem metadata from https://rubygems.org/.........

NoMethodError: private method `open' called for Gem::Package:Class
An error occured while installing rake (0.9.2.2), and Bundler cannot continue.
Make sure that `gem install rake -v '0.9.2.2'` succeeds before bundling.
Rubygems$ 

Same result. 结果相同。 What's wrong? 怎么了?

I would try two things here. 我会在这里尝试两件事。

First, ensure that the Rails command is running from the correct location: it sounds possible that you're not using the correct version of Rails. 首先,确保Rails命令从正确的位置运行:听起来您可能没有使用正确版本的Rails。 which rails should show you that the file is sourced from inside your RVM installation: if it isn't, you need to make sure you rvm use 1.9.3 and then try gem install rails again. which rails应该显示该文件来自RVM安装内部:如果不是,则需要确保rvm use 1.9.3然后再次尝试gem install rails

Second, because this error sounds similar to an error that occurred in an older version of gem, I would try updating your gem binary. 其次,因为这个错误听起来类似于旧版gem中发生的错误,我会尝试更新你的gem二进制文件。 First, just like in Rails, type which gem to ensure that you're using the RVM gem, not the system gem. 首先,就像在Rails中一样,键入which gem来确保您使用的是RVM gem,而不是系统gem。 Then, do gem update --system before you bundle install again. 然后,在再次捆绑安装之前执行gem update --system

I had the same problem, as it turned out I needed to update bundler. 我有同样的问题,因为事实证明我需要更新bundler。

gem install bundler gem install bundler

Old question, but I am having this problem today. 老问题,但我今天遇到这个问题。 The big hammer approach: 大锤方法:

sudo su
rails new my_proj
rm -rf my_proj
exit
rails new my_proj

The increased permissions of root allows all of the bundles to install without throwing an error. 增加的root权限允许安装所有bundle而不会抛出错误。 Then you remove the project and return to your normal-priv user and recreate the project. 然后删除项目并返回普通的priv用户并重新创建项目。 With all of the bundles installed by root, the 'new' command ran successfully. 通过root安装所有bundle,“new”命令成功运行。

This guide turned out to work: 该指南结果证明有效:

http://tecparatodos.com/2011/07/24/installing-ruby-on-rails-on-mac-os-x-lion/ http://tecparatodos.com/2011/07/24/installing-ruby-on-rails-on-mac-os-x-lion/

I think that my problem was that XCode was not set up correctly. 我认为我的问题是XCode设置不正确。 Follow this guide and everything will work out fine. 按照本指南,一切都会很好。

I had the same problem and I solved it by updating Homebrew 我有同样的问题,我通过更新Homebrew解决了它

brew update

And by updating the command line tools from the Xcode download tab of the preferences panel. 并通过更新首选项面板的Xcode下载选项卡中的命令行工具。

Hope it will help people who are still looking for the answer. 希望它能帮助那些仍在寻找答案的人。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM