我正在尝试用红宝石做一些项目,使之像这样
git commit -am“添加你好” heroku创建 git push heroku master
然后我收到此错误
remote: checking for sqlite3.h... no
remote: sqlite3.h is missing. Try 'brew install sqlite3',
remote: 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
remote: and check your shared library search path (the
remote: location where your sqlite3 shared library is located).
remote: *** extconf.rb failed ***
remote: Could not create Makefile due to some reason, probably lack of necessary
remote: libraries and/or headers. Check the mkmf.log file for more details. You may
remote: need configuration options.
remote:
remote: Provided configuration options:
remote: --with-opt-dir
remote: --without-opt-dir
remote: --with-opt-include
remote: --without-opt-include=${opt-dir}/include
remote: --with-opt-lib
remote: --without-opt-lib=${opt-dir}/lib
remote: --with-make-prog
remote: --without-make-prog
remote: --srcdir=.
remote: checking for sqlite3.h... no
remote: sqlite3.h is missing. Try 'brew install sqlite3',
remote: 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
remote: and check your shared library search path (the
remote: location where your sqlite3 shared library is located).
remote: *** extconf.rb failed ***
remote: Could not create Makefile due to some reason, probably lack of necessary
remote: libraries and/or headers. Check the mkmf.log file for more details. You may
remote: need configuration options.
remote:
remote: Provided configuration options:
remote: --with-opt-dir
remote: --without-opt-dir
remote: --with-opt-include
remote: --without-opt-include=${opt-dir}/include
remote: --with-opt-lib
remote: --without-opt-lib=${opt-dir}/lib
remote: --with-make-prog
remote: --without-make-prog
remote: --srcdir=.
我试图像本教程https://devcenter.heroku.com/articles/sqlite3和本教程Detected sqlite3 gem which is not supported on Heroku一样更改我的gemfile,但没有任何改变。
我试图以此安装sqlite3
gem install sqlite3
和成功,但没有任何改变。当我想推送heroku master时,仍然给我错误。
能给我任何建议吗?
答案 0 :(得分:0)
从gemfile中删除sqlite(或使其仅位于开发/测试组中)后,运行bundle install
并提交更改。
重点是heroku是基于容器的,您需要与本地计算机区分开来-本地文件仅在提交和推送时才到达本地,然后heroku建立一个只读文件(严格来说,它的“磁盘”可以,但是所有更改都可能在任何时候丢失),然后容器就会运行。
答案 1 :(得分:0)
我刚从a Reddit post中读到,最近RoR中的SQLite版本控制存在错误,它可能与此有关。像下面这样指出特定版本的SQLite 确实对我有用!
因此,在您的Gemfile中,替换为:
gem 'sqlite3'
与此:
gem 'sqlite3', '~> 1.3', '< 1.4'
答案 2 :(得分:0)
当我尝试创建一个新的 rails 项目时遇到了同样的问题。我通过在 Ubuntu 上运行此命令(基于终端输出错误消息中的指令)解决了这个问题:sudo apt-get install libsqlite3-dev
然后在安装后,我重新创建项目并且它可以工作。
我假设您的计算机上安装了 sqlite3
。如果未安装可以运行该命令sudo apt install sqlite3
,则可以运行上述命令。