加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 无法推送到heroku – sqlite3.h丢失了

发布时间:2020-12-16 19:18:46 所属栏目:百科 来源:网络整理
导读:首先发布在这里=)在此先感谢您的帮助,此时任何帮助都很酷! 1-我在搜索stackoverflow之前已经搜索了很多并尝试了很多东西. 2-运行时 git push heroku master 我明白了: checking for sqlite3.h... no sqlite3.h is missing. Try 'port install sqlite3 +uni
首先发布在这里=)在此先感谢您的帮助,此时任何帮助都很酷!

1-我在搜索stackoverflow之前已经搜索了很多并尝试了很多东西.

2-运行时

git push heroku master

我明白了:

checking for sqlite3.h... no
   sqlite3.h is missing. Try 'port install sqlite3 +universal'
   or 'yum install sqlite-devel' and check your shared library search path (the
   location where your sqlite3 shared library is located).

3-我检查了Gemfile:生产和开发/测试分别为pg和sqlite3配置得很好

4- Sqlite3.h在这里:

pcbo$ls -l /usr/include/sqlite3.h
   -rw-r--r--  1 root  wheel  322724  7 Dec  2011 /usr/include/sqlite3.h

5-忘了提到我正在使用mac os x ..

6-产出:
pcbo $git push heroku master

Counting objects: 71,done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (58/58),done.
    Writing objects: 100% (71/71),26.46 KiB,done.
    Total 71 (delta 8),reused 0 (delta 0)

    -----> Heroku receiving push
    -----> Ruby/Rails app detected
    -----> Installing dependencies using Bundler version 1.2.0.pre
    Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
   Fetching gem metadata from https://rubygems.org/.......
   Installing rake (0.9.2.2)
   Installing i18n (0.6.0)
   Installing multi_json (1.3.6)
   Installing activesupport (3.2.3)
   Installing builder (3.0.0)
   Installing activemodel (3.2.3)
   Installing erubis (2.7.0)
   Installing journey (1.0.3)
   Installing rack (1.4.1)
   Installing rack-cache (1.2)
   Installing rack-test (0.6.1)
   Installing hike (1.2.1)
   Installing tilt (1.3.3)
   Installing sprockets (2.1.3)
   Installing actionpack (3.2.3)
   Installing mime-types (1.18)
   Installing polyglot (0.3.3)
   Installing treetop (1.4.10)
   Installing mail (2.4.4)
   Installing actionmailer (3.2.3)
   Installing arel (3.0.2)
   Installing tzinfo (0.3.33)
   Installing activerecord (3.2.3)
   Installing activeresource (3.2.3)
   Installing coffee-script-source (1.3.3)
   Installing execjs (1.4.0)
   Installing coffee-script (2.2.0)
   Installing rack-ssl (1.3.2)
   Installing json (1.7.3) with native extensions
   Installing rdoc (3.12)
   Installing thor (0.14.6)
   Installing railties (3.2.3)
   Installing coffee-rails (3.2.2)
   Installing jquery-rails (2.0.2)
   Installing pg (0.12.2) with native extensions
   Using bundler (1.2.0.pre)
   Installing rails (3.2.3)
   Installing sass (3.1.19)
   Installing sass-rails (3.2.5)
   Installing sqlite3 (1.3.6) with native extensions
   Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
   /usr/local/bin/ruby extconf.rb
   checking for sqlite3.h... no
   sqlite3.h is missing. Try 'port install sqlite3 +universal'
   or 'yum install sqlite-devel' and check your shared library search path (the
   location where your sqlite3 shared library is located).
   *** 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
   --enable-local
   --disable-local
   Gem files will remain installed in /tmp/build_zmjrcoagwpai/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6 for inspection.
   Results logged to /tmp/build_zmjrcoagwpai/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6/ext/sqlite3/gem_make.out
   An error occurred while installing sqlite3 (1.3.6),and Bundler cannot continue.
   Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.
   !
   !     Failed to install gems via Bundler.
   !
   !     Heroku push rejected,failed to compile Ruby/rails app

7-非常感谢任何帮助!

解决方法

[UPDATE1]

从你的git推送日志,这是你的罪魁祸首: –

Installing sqlite3 (1.3.6) with native extensions

所以,正如我最初所怀疑的那样,错误是试图加载sqlite3 gem,这将在heroku上失败.如前所述,这可能是因为两个原因

>错误地将Gemfile配置为在生产中需要sqlite3 gem
>其他一些gem依赖于sqlite3 gem.使用gem依赖命令来显示gem&的依赖关系.删除依赖于sqlite3的gem.

之后,重新运行bundle install&它会奏效.

— [结束更新1] —

您可以获得此错误的唯一原因是,尝试在heroku上使用不受支持的sqlite3数据库.仔细检查你的Gemfile并确保其设置与此类似

group :production do
  gem 'pg'
end
group :development,:test do
  gem 'sqlite3'
end

然后执行bundle install以重新生成Gemfile.lock.现在,尝试推动heroku.如果你仍然得到这个错误,那么你正在使用的一些gem已经将sqlite3列为其gemspec文件中的硬编码依赖项.所以实际上,sqlite3正在加载,即使它不存在于gemfile中.所以验证这一点,在localhost上运行以下命令:

$bundle install | grep sqlite

最后,尝试了这个.它不起作用.回复git push heroku master&的完整日志. heroku日志的输出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读