Не могу заставить работать "новые рельсы"

Я n00b жажду получить в свои руки Ruby on Rails (OSX 10.7). Но сначала мне нужно установить его. Сейчас я потратил 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.

Моя теория:

Я подозреваю, что это доступ https, который портит. Некоторые говорят, что это некоторая проблема с openssl.

$ openssl version
OpenSSL 0.9.8r 8 Feb 2011

Очевидно, лучший ответ - "OpenSSL 1.0.1", но я понятия не имею, как обновить Openssl глобально. Игнорируя это, я переустановил ruby, выполнив следующие действия:

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

Я понятия не имею, что делает brew, но, похоже, он установил openssl и спрятал его где-то в каталоге. Тем не мение. Что бы я ни делал, я всегда получаю одну и ту же ошибку:

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.

Я переустановил весь чабанг. Тот же результат. Вот журнал:

Удалить рвм

$ 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

Установка 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/]

Инталлинг 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

Установка RubyGems на всякий случай. После загрузки RubyGems через GIT я перехожу в каталог и запускаю установку.

$ 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.

Установка 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

Установка рельсов

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

В заключение. Давайте создадим новый проект

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$ 

Тот же результат. В чем дело?

5 ответов

Решение

Я бы попробовал две вещи здесь.

Во-первых, убедитесь, что команда Rails выполняется из правильного местоположения: возможно, вы используете не ту версию Rails. which rails должен показать вам, что файл получен изнутри вашей установки RVM: если это не так, вы должны убедиться, что вы rvm use 1.9.3 а потом попробуй gem install rails снова.

Во-вторых, поскольку эта ошибка звучит похоже на ошибку, которая произошла в более старой версии gem, я бы попытался обновить ваш бинарный файл gem. Во-первых, как в Rails, наберите which gem чтобы убедиться, что вы используете гем RVM, а не системный гем. Затем сделать gem update --system прежде чем связать установить снова.

У меня была такая же проблема, как оказалось, мне нужно было обновить пакет.

gem install bundler

Старый вопрос, но у меня сегодня эта проблема. Подход большого молотка:

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

Увеличенные разрешения root позволяют устанавливать все пакеты без ошибок. Затем вы удаляете проект и возвращаетесь к вашему обычному пользователю и заново создаете проект. Когда все пакеты были установлены пользователем root, команда 'new' успешно выполнена.

Это руководство оказалось работать:

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

Я думаю, что моя проблема была в том, что XCode не был настроен правильно. Следуйте этому руководству, и все будет хорошо.

У меня была такая же проблема, и я решил ее, обновив Homebrew

brew update

И, обновляя инструменты командной строки от вкладки загрузки XCode панели настроек.

Надеюсь, что это поможет людям, которые все еще ищут ответ.

Другие вопросы по тегам