Rails - установлен самый новый драгоценный камень, но приложение устарело
Я работаю над Bluehost. Я установил 3.2.8 жемчужину рельсов, и теперь я получаю это:
> gem list --local | grep rails
rails (3.2.8)
Но:
rails --version
Rails 2.3.11
Как я могу сделать так, чтобы команда "rails" использовала последний драгоценный камень? Я предполагаю, что это как-то связано с моей переменной $PATH, но я почти ничего не знаю об этом.
Кроме того, команда gem and rails вызывает некоторые ошибки, которые выглядят следующим образом:
Invalid gemspec in [XXX]: invalid date format in specification: "YYY"
Я не уверен, что это связано (и мне интересно, что вызывает такие ошибки в любом случае).
1 ответ
Попробуйте запустить эту команду:
curl -L https://get.rvm.io | bash -s stable --ruby --rails
Он устанавливает RVM, который поддерживает отдельные гемы для каждой установленной версии Ruby. --ruby
а также --rails
аргументы говорят ему установить ruby и rails при установке RVM. Установка RVM автоматически обновляет $PATH и любые другие необходимые переменные среды.
В конце установки вам будет предложено запустить:
source ~/.rvm/scripts/rvm
что сделает эти переменные среды изменения немедленно вступают в силу. Кроме того, вы можете выйти и затем снова войти в систему.
Бежать rails -v
а также ruby -v
в этот момент, и вы должны увидеть, что они указывают на новую версию. Бежать bundle install
из каталога вашего приложения RoR, и все необходимые вам гемы должны быть установлены в ~/.rvm/gems/ruby-/gems.
На этом этапе вы можете удалить / удалить любые gems/rails/ruby перед установкой RVM.
РЕДАКТИРОВАТЬ 17.10.2012: не важно мой ответ. Даже если бы возможно было запустить Rails 3.x с установленным в настоящее время Ruby 1.8 (см. Этот вопрос Stackru), вы не сможете запустить Ruby 1.9.x с помощью Bluehost Shared Hosting. Ваш единственный выбор (на данный момент) - VPS хостинг.
Причина в том, что Passenger Phusion привязан к версии Ruby, установленной в / usr / lib, которую вы не сможете изменить без root-доступа. Даже несмотря на то, что вы можете установить любую версию Ruby с RVM, вы не будете заставлять Пассажира говорить с ним, и поэтому ваш проект rails не будет использовать его жемчужины.