крушение поезда. Rails требует RubyGems> = 1.3.2 - PullRequest
5 голосов
/ 11 марта 2010

Обновление II Проблема решена, но почему? Это была самая большая головная боль за всю историю. Моя проблема решена, однако я понятия не имею, как я справился с этой задачей. Плюс следующие результаты не имеют смысла. Мой путь .profile (/ usr / local / bin) отличается от пути, который работает в данный момент (/ usr / bin /). Рабочий путь неожиданно появился после того, как я закрыл терминал в OSX Snow Leopard. Что здесь происходит?

Вот рабочие пути и запутанный файл .profile:

$ rails -v
Rails 3.0.0.beta
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
$ gem -v
1.3.6
$ whereis ruby
/usr/bin/ruby
$ whereis rails
/usr/bin/rails
$ whereis gem
/usr/bin/gem
$ which gem
/usr/bin/gem
$ which ruby
/usr/bin/ruby
$ which rails
/usr/bin/rails
$ mate ~/.profile

.profile file:

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
if [[ -s /Users/justinz/.rvm/scripts/rvm ]] ; then source /Users/justinz/.rvm/scripts/rvm ; fi

Обновление Я заметил, что какой рубин и где рубин находятся в разных местах

which ruby
/opt/local/bin/ruby
whereis ruby
/usr/bin/ruby

Я недавно обновил ruby ​​до ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10] и, кажется, сломал рельсы. Когда я пытаюсь загрузить рельсы. Я получаю странное сообщение. Пожалуйста, помогите!

$ ruby ​​скрипт / сервер Rails требует RubyGems> = 1.3.2. Пожалуйста, установите RubyGems и попробуйте снова: http://rubygems.rubyforge.org

$ which ruby
/usr/local/bin/ruby
$ whereis ruby
/usr/bin/ruby
$ which rails
/usr/local/bin/rails
$ whereis rails
/usr/bin/rails
$ which gem
/usr/local/bin/gem
$ whereis gem
/usr/bin/gem
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0]
$ rails -v
Rails 2.3.5
$ gem list

*** LOCAL GEMS ***

actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activeresource (2.3.5)
activesupport (2.3.5)
builder (2.1.2)
bundler (0.9.11)
columnize (0.3.1)
erubis (2.6.5)
fastercsv (1.5.1)
ffi (0.6.3)
gbarcode (0.98.16)
i18n (0.3.5)
linecache (0.43)
mail (2.1.3)
memcache-client (1.8.0)
prawn (0.8.4)
prawn-core (0.8.4)
prawn-layout (0.8.4)
prawn-security (0.8.4)
rack (1.1.0, 1.0.1)
rack-mount (0.6.1)
rack-test (0.5.3)
rails (2.3.5)
rake (0.8.7)
ruby-debug (0.10.3)
ruby-debug-base (0.10.3)
rubygems-update (1.3.6)
sqlite3 (0.0.8)
text-format (1.0.0)
thor (0.13.4)
tzinfo (0.3.17)
$ sudo gem install sqlite3-ruby
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for fdatasync() in -lrt... no
checking for sqlite3.h... yes
checking for sqlite3_open() in -lsqlite3... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/local/bin/ruby
    --with-sqlite3-dir
    --without-sqlite3-dir
    --with-sqlite3-include
    --without-sqlite3-include=${sqlite3-dir}/include
    --with-sqlite3-lib
    --without-sqlite3-lib=${sqlite3-dir}/lib
    --with-rtlib
    --without-rtlib
    --with-sqlite3lib
    --without-sqlite3lib


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/ext/sqlite3_api/gem_make.out

Ответы [ 6 ]

2 голосов
/ 19 марта 2010

Вы смотрели в Ruby Version Manager или rvm (http://rvm.beginrescueend.com/). Я знаю, что он работает на Linux и Mac OS X.

В основном это инструмент, который управляет различными версиями ruby ​​и всеми связанными с ним "частями". У меня были подобные проблемы, когда друг рекомендовал мне попробовать, и это решило это для меня.

1 голос
/ 15 марта 2010

Если вы запускаете это на Mac (что я предполагаю из «дарвина», который появляется в ваших следах), вы можете иногда получить такие проблемы, как если бы вы набрали gem whatever вместо sudo gem whatever. Проверьте каталог ~ / .gem или ~ / .gems, чтобы увидеть, были ли там случайно установлены какие-либо гемы.

Если это так, удалите / переустановите их.

1 голос
/ 13 марта 2010

Я только что исправил эту же проблему. Я не уверен, что он самый эффективный, но я перестроил все с нуля, как подробно описано в hivelogic , установив ruby ​​и ruby ​​gems в '/ usr / local'

Не забыв изменить свой путь:

export PATH=/usr/local/bin:$PATH
0 голосов
/ 29 мая 2010

Я действительно только что столкнулся с этой проблемой. Моя была вызвана улучшением рубина. Я начинал с довольно старого EC2 AMI под управлением Ruby 1.8.6, и мне хотелось запустить более новую версию 1.8.7. Я скачал и скомпилировал последнюю версию 1.8.7 Ruby, удалил ссылку на мой 1.8.6 (это сервер Debian, поэтому / usr / bin / ruby ​​была символической ссылкой на /usr/bin/ruby1.8, остерегайтесь этого), и новый Ruby работал с / usr / local / bin / ruby. Это было хорошо. Но затем я начал сталкиваться со странным поведением, в том числе с вышеупомянутой ошибкой «Rails требует RubyGems> = 1.3.2». Вот вещи, которые мне нужно было проверить и сделать, которые могут отличаться для других, но, надеюсь, это будет полезно:

  • Я удалил rubygems и переустановил его: «apt-get remove rubygems», затем загрузил его из rubyforge и установил. Это может быть не совсем необходимо, но я хотел убедиться, что все было чисто. Помните, что драгоценные камни связаны с вашей версией ruby, поэтому при обновлении вам может понадобиться переустановить все драгоценные камни. Я не уверен, есть ли обходной путь для этого, но мне было бы интересно знать, если так.

  • В моем случае я обманул. Поскольку я шел с 1.8.6 -> 1.8.7, я решил попробовать скопировать драгоценные камни из старого местоположения Ruby в новое: "cp -R /usr/lib/ruby/gems/1.8 / usr / local / Библиотека / рубин / камни». Это сработало для меня, но я все еще тестирую, и вполне возможно, что при этом могут возникнуть проблемы, поэтому будьте осторожны. Конечно, это удобнее, чем переустанавливать все.

  • Я управляю пассажиром с помощью nginx. В конфигурации Пассажира в нем будут записи, указывающие как на двоичный файл Ruby, так и на самоцвет Пассажира. Убедитесь, что изменили это! Мне потребовалось несколько минут, чтобы подумать, как мое приложение все еще правильно запускалось, хотя самоцветы исчезли ... Это было потому, что конфигурация nginx все еще указывала прямо на /usr/bin/ruby1.8 - упс.

Надеюсь, эта информация кому-нибудь поможет.

0 голосов
/ 14 марта 2010

вам нужно создать символическую связь между двумя разными каталогами.

sudo ln -s / opt / local / bin / ruby ​​/ usr / bin / ruby ​​

0 голосов
/ 12 марта 2010

Я не совсем уверен, что помню правильно, как это было некоторое время назад, но я думаю, что у меня была похожая проблема при обновлении с Rails 2.3.4 до Rails 2.3.5. Я полагаю, что в этом случае проблема была вызвана установкой Rack 1.1.0 и Rack 1.0.1 (Rack 1.1.0 был установлен во время обновления Rails). Я избавился от 1.1.0, и все снова заработало.

У меня не возникло никаких проблем при обновлении с Ruby 1.8.6 до Ruby 1.8.7 (в Windows).

Я могу ошибаться, но, возможно, это, по крайней мере, даст вам новое направление для попытки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...