Ошибка установки sqlite3-ruby в Ubuntu - PullRequest
255 голосов
/ 11 августа 2010

У меня следующая ошибка при установке sqlite3-ruby:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel'
*** 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/bin/ruby1.8
    --with-sqlite3-dir
    --without-sqlite3-dir
    --with-sqlite3-include
    --without-sqlite3-include=${sqlite3-dir}/include
    --with-sqlite3-lib
    --without-sqlite3-lib=${sqlite3-dir}/lib


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h находится в / usr / include /

sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include

не работает


ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include

Ubuntu 10.04

Ответы [ 18 ]

1 голос
/ 31 декабря 2010

Была ли такая же проблема, и у меня сработало следующее:

скомпилируйте sqlite3 как статическую библиотеку, установите где-нибудь в своем домашнем каталоге и затем предоставьте эту опцию для процесса установки gem.

Перейдите на страницу загрузки и выберите источник. Самая последняя версия на данный момент - http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf в файле или делать то, что вы обычно делаете, чтобы распаковать; введите каталог

. / Configure --disable-shared --enable-static --prefix = / some / path / in / my / home

скомпилируйте, установите, и когда вы устанавливаете гем ...

gem install sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home

0 голосов
/ 17 сентября 2014

У вас сломанная версия RVM. Ubuntu делает с RVM что-то, что приводит к множеству ошибок, на данный момент единственный безопасный способ исправить это: sudo apt-get --purge remove ruby-rvm sudo rm -rf / usr / share / ruby…, если это не помогает затем перезагрузите компьютер. установить RVM: \ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles Если вы обнаружите, что вам нужно немного подержать, посмотрите на Установка Ruby в Ubuntu 12.04, которая дает немного больше объяснений

0 голосов
/ 13 июня 2013

Я согласен с Даней Вершининым & EnotionZ .

Если не можете использовать apt-get:

  1. скомпилируйте и установите sqlite3 из исходных кодов, указав свой собственный префиксный путь. Более подробную информацию можно найти в README.
  2. Затем передал этот путь установщику sqlite3-ruby (не забудьте "-").
0 голосов
/ 18 сентября 2011

Для меня проблема была решена путем получения mkmf, который находится в ruby1.8-dev.

sudo apt-get install ruby1.8-dev

Спасибо за это .

0 голосов
/ 05 февраля 2011

Это та же самая проблема, которая была у меня несколько недель назад.Я обнаружил, что мне нужно загрузить самые последние заголовки / библиотеки со страницы загрузки SQLite.Попробуйте, надеюсь, это поможет!

0 голосов
/ 10 ноября 2016

Забудь все и сделай это,

пробег * * 1003

yum install ruby-devel sqlite sqlite-devel ruby-rdoc
yum install make gcc
gem install sqlite3-ruby
bundle install

Это для rhel, запустите то же самое для Ubuntu.

0 голосов
/ 01 июня 2018

Ни одно из вышеупомянутых решений не помогло мне, даже после установки ruby2.5-dev и libsqlite3-dev. Затем попытался использовать PostgreSql вместо sqlite. Это работало нормально. Чтобы использовать PostgreSql вместо sqlite, используйте эту команду при создании rails проекта.

rails [_VERSION_] new project_name -d postgresql

Если вы хотите использовать MySql, тогда используйте mysql вместо postgresql.

rails [_VERSION_] new project_name -d mysql

Иначе вы можете попробовать без sqlite.

bundle install --without sqlite
0 голосов
/ 11 августа 2010

Не --without-sqlite3-include=/usr/include, но --with-sqlite3-include=/usr/include.

...