Ответ 1
Когда я столкнулся с проблемой, оказалось, что я забыл внести изменения после bundle install
. Doh! git status
должен указывать неустановленные изменения для файлов gem.
Я пытаюсь развернуть приложение Rails 3.1 в первый раз на Heroku. Я установил его в стек кедра, удалил камень sqlite3, но когда я нажимаю код на Heroku, я получаю эту ошибку:
----- > Установка зависимостей с помощью Bundler версии 1.1.rc Запуск: установка пакета - без разработки: test --path vendor/bundle --deployment Получение метаданных драгоценных камней из http://rubygems.org/....... (...)
Установка рельсов (3.1.0) Установка sqlite3 (1.3.4) с собственными расширениями К сожалению, произошла фатальная ошибка. Сообщите об этой ошибке. трекер Bundler по адресу https://github.com/carlhuda/bundler/issues, чтобы мы могли это исправить. Благодарю! /usr/local/lib/ruby/ 1.9.1/rubygems/installer.rb:483: в `спасение в блоке в build_extensions ': ОШИБКА: Не удалось создать собственный род расширение. (Gem:: установщиком:: ExtensionBuildError) /usr/local/bin/ruby extconf.rb проверка на sqlite3.h... no
Я не знаю, почему установка пакета пытается установить sqlite3. Взгляните на мой Gemfile и Gemfile.lock:
Gemfile
source 'http://rubygems.org'
gem 'rails', '3.1.0'
gem 'json'
gem 'pg'
gem 'thin'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
# gem 'sass-rails', " ~> 3.1.0"
# gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
Gemfile.lock
GEM remote: http://rubygems.org/ specs:
actionmailer (3.1.0)
actionpack (= 3.1.0)
mail (~> 2.3.0)
actionpack (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
builder (~> 3.0.0)
erubis (~> 2.7.0)
i18n (~> 0.6)
rack (~> 1.3.2)
rack-cache (~> 1.0.3)
rack-mount (~> 0.8.2)
rack-test (~> 0.6.1)
sprockets (~> 2.0.0)
activemodel (3.1.0)
activesupport (= 3.1.0)
bcrypt-ruby (~> 3.0.0)
builder (~> 3.0.0)
i18n (~> 0.6)
activerecord (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
arel (~> 2.2.1)
tzinfo (~> 0.3.29)
activeresource (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
activesupport (3.1.0)
multi_json (~> 1.0)
arel (2.2.1)
bcrypt-ruby (3.0.1)
builder (3.0.0)
daemons (1.1.4)
erubis (2.7.0)
eventmachine (0.12.10)
execjs (1.2.9)
multi_json (~> 1.0)
hike (1.2.1)
i18n (0.6.0)
jquery-rails (1.0.14)
railties (~> 3.0)
thor (~> 0.14)
json (1.6.1)
mail (2.3.0)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.16)
multi_json (1.0.3)
pg (0.11.0)
polyglot (0.3.2)
rack (1.3.3)
rack-cache (1.0.3)
rack (>= 0.4)
rack-mount (0.8.3)
rack (>= 1.0.0)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
rack (>= 1.0)
rails (3.1.0)
actionmailer (= 3.1.0)
actionpack (= 3.1.0)
activerecord (= 3.1.0)
activeresource (= 3.1.0)
activesupport (= 3.1.0)
bundler (~> 1.0)
railties (= 3.1.0)
railties (3.1.0)
actionpack (= 3.1.0)
activesupport (= 3.1.0)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2)
rdoc (3.9.4)
sprockets (2.0.0)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
thin (1.2.11)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.29)
uglifier (1.0.3)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
PLATFORMS ruby
DEPENDENCIES jquery-rails json pg rails (= 3.1.0) thin uglifier
Как я могу это исправить?
Когда я столкнулся с проблемой, оказалось, что я забыл внести изменения после bundle install
. Doh! git status
должен указывать неустановленные изменения для файлов gem.
У меня та же проблема, и решение zoltarSpeaks исправило это для меня. После того, как я прочитал эту статью, у меня был метка кранов, которая указала, что нужно будет отталкиваться от локального sqlite3 до производства postgresql: http://batsov.com/articles/2011/10/30/deploying-rails31-apps-on-celadon-cedar/. Оказалось, что мне не нужен драгоценный камень кранов, но это явно проблема. Удалено ссылка, обновление пакета, все системы идут.
попробуйте удалить Gemfile.lock и запустить Bundle Install, commit и push
Простое решение без удаления камней sqlite3 для Heroku:
Добавить в Gemfile:
group :production do
gem 'pg', '0.17.1' #or version of pg you want
gem 'rails_12factor', '0.0.2' #Heroku static assets for image and css
Проверьте, что у вас есть:
end
end
в конце кода в Gemfile
чем Сохранить Gemfile и запустить установку пакета
$ bundle install --without production
чем commit
$ git commit -a -m "Update Gemfile.lock for Heroku"
чем
$ git push heroku master
Вот и все. Вы получите только несколько предупреждений, которые просто нужно исправить.