Heroku пытается установить гем sqlite3, даже если он не находится в Gemfile - PullRequest
17 голосов
/ 16 октября 2011

Я впервые пытаюсь развернуть приложение Rails 3.1 на Heroku. Я установил его в стек Cedar, удалил гем sqlite3, но когда я помещаю код в Heroku, я получаю эту ошибку:

-----> Установка зависимостей с использованием Bundler версии 1.1.rc Выполнение: установка пакета - без разработки: тестирование --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:in `спасение в блоке в build_extensions ': ОШИБКА: не удалось собрать собственный гем расширение. (Gem :: установщиком :: ExtensionBuildError) / usr / local / bin / ruby ​​extconf.rb проверка для sqlite3.h ... нет

Я понятия не имею, почему пакетная установка пытается установить 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

Как я могу это исправить?

Ответы [ 4 ]

33 голосов
/ 04 февраля 2012

Когда я столкнулся с проблемой, оказалось, что я забыл зафиксировать свои изменения после bundle install. Doh! git status должен указывать неустановленные изменения для файлов gem.

3 голосов
/ 05 декабря 2011

У меня та же проблема, и решение zoltarSpeaks устранило ее для меня.После прочтения этой статьи я установил гем taps после того, как указал, что его необходимо будет перенести с локального sqlite3 на рабочий postgresql: http://batsov.com/articles/2011/10/30/deploying-rails31-apps-on-celadon-cedar/. Оказалось, что в конце концов мне не нужен гем taps, но он явно былпроблема.Удалена ссылка, обновление пакета, все системы идут.

1 голос
/ 17 октября 2011

попробуйте удалить Gemfile.lock и запустить Bundle Install, зафиксировать и нажать

0 голосов
/ 10 августа 2015

Простое решение без удаления sqlite3 gem для 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

чем совершить

$ git commit -a -m "Update Gemfile.lock for Heroku"

чем

$ git push heroku master

Это все. Вы получите только несколько предупреждений, которые нужно просто исправить.

...