Gem sqlite3 install error

I'm trying to install the "sqlite3-ruby" gem (or the "sqlite3" gem) on OS X 10.6. I'm using ruby-1.9.2 and I currently get the following: $ sqlite3 --version 3.7.4 $ sudo gem install sqlite3 Bui...

I’m trying to install the «sqlite3-ruby» gem (or the «sqlite3» gem) on OS X 10.6. I’m using ruby-1.9.2 and I currently get the following:

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

/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb
checking for sqlite3.h... *** 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=/Users/folken/.rvm/rubies/ruby-1.9.2-head/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
/Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:28:in `<main>'


Gem files will remain installed in /Users/folken/.rvm/gems/ruby-1.9.2-head/gems/sqlite3-1.3.3 for inspection.

The following is the results of which & whereis, and the sqlite3.h is located in /opt/local/include:

 $ which sqlite3
/opt/local/bin/sqlite3
 $ whereis sqlite3
/usr/bin/sqlite3

I’ve tried passing in the following as well:

sudo gem install sqlite3 -- --with-sqlite3-include /opt/local/include --with-sqlite3-lib /opt/local/lib
sudo gem install sqlite3 -- --with-sqlite3-dir /opt/local/bin

which results in the following:

ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb --with-sqlite3-dir /usr/bin/sqlite3
*** 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=/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby
    --with-sqlite3-dir
/Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:1336:in `dir_config': undefined method `split' for true:TrueClass (NoMethodError)
    from extconf.rb:9:in `<main>'

Also under /Users/folken/.rvm/gems/ruby-1.9.2-head/gems:
sqlite-ruby-2.2.3
sqlite3-1.3.3

Under RVM I have ruby-1.8.7 and the sqlite3 gem loads fine on that, but after much googling I have not found a solution that works for me. Any help is greatly appreciated (even if it involves manual installation / hackery to get working).

12 ответов

SQLite RubyGem на самом деле не RubyGem, это «CGem», IOW он написан на C. Это означает, что он должен быть скомпилирован и связан с интерпретатором Ruby при его установке и для этого файлы заголовков C для интерпретатора Ruby.

Если вы сами компилируете Ruby, эти файлы заголовков будут установлены автоматически, однако в системах RedHat-ish такие файлы заголовков обычно упаковываются в отдельный пакет под названием <whatever>-dev. Таким образом, в этом случае вам нужно будет установить пакет ruby-dev и, возможно, пакет libsqlite3-dev (Ubuntu) или sqlite-devel (Fedora).

Однако вам может быть лучше просто установить пакет с установленной упаковкой libsqlite3-ruby операционной системы, таким образом, все зависимости будут автоматически выполнены.

(Примечание: все имена пакетов, вытащенные из воздуха, могут отличаться в вашей системе.)

Jörg W Mittag
07 янв. 2009, в 19:25

Поделиться

Вероятно, вам нужен пакет ruby ​​dev. Для Ubuntu вам необходимо установить ruby1.8-dev, который включает файлы заголовков ruby. Быстрый google говорит, что пакет yum — это рубиновый. поэтому запустите это:

sudo yum install ruby-devel

hacintosh
08 янв. 2009, в 04:51

Поделиться

Я столкнулся с проблемой установки sqlite3-ruby gem на моем блоке fedora 13.
Он был исправлен после sudo yum install sqlite-devel

Rahul
06 янв. 2011, в 10:57

Поделиться

Когда у меня была эта проблема:

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

Для меня работала установка « libsqlite3-dev» с помощью:

apt-get install libsqlite3-dev

matiasmasca
12 май 2016, в 13:33

Поделиться

sudo apt-get install ruby-dev

исправил это для меня.

Sacha
18 дек. 2010, в 11:44

Поделиться

В Ubuntu 9 и 10 попробуйте:

sudo apt-get install ruby-dev
sudo apt-get install sqlite3-dev

Затем запустите

gem install sqlite3

ldemon
23 авг. 2011, в 22:23

Поделиться

Выполните следующее для ОС Fedora:

yum install rubygem-sqlite3

Chase
20 июль 2011, в 06:43

Поделиться

У вас есть весь исходный код, необходимый для сборки sqlite3-ruby? Gem пытается скомпилировать код C и не может найти заголовки. Вероятно, вы можете использовать генератор rpm для sqlite3-ruby (я не использую Fedora, но я уверен, что он существует), если вы предпочитаете отказываться от компиляции. Лично для рубинового материала я предпочитаю использовать драгоценный камень, а не систему дистрибуции.

barneytron
07 янв. 2009, в 17:48

Поделиться

Запустите «sudo yum install sqlite-devel», а затем «gem install sqlite3». Была такая же проблема на моей Fedora 15.

rapidror
01 авг. 2011, в 07:26

Поделиться

У меня была такая же самая точная проблема… вместо того, чтобы копировать недостающие части, я использовал синаптический метод unbuntu.

Ключевым пакетом для меня был libsqlite-ruby1.9.1… Я зарегистрировал свой опыт (для справки) с этой ошибкой по адресу:
Sqlite3-gem-error-during-bundle-install

Riding Rails
21 дек. 2010, в 20:39

Поделиться

Я исправил проблему на моем OLPC (Fedora 9), установив «gcc» как ни странно. Похоже, что это был один из тех пакетов dev, но нет.

Кроме того, в отношении других пакетов суффикс имеет значение «-devel», а не «-dev», поэтому убедитесь, что вы вернетесь к ним: «ruby-devel», «sqlite-devel»…

После того, как вы установили это, если у вас возникли ошибки в том, что ваши драгоценные камни были слишком старыми «< 1.3.1» при попытке запуска различных сценариев рельсов, например: script/server или script/console, google «upgrade_rubygems», чтобы исправить эту проблему…

НТН…

cosmo lee
15 май 2009, в 22:39

Поделиться

Я не очень хорошо знаком с Fedora, но в Ubuntu, когда вы устанавливаете пакеты, у вас есть apt-get, и вам нужно установить необходимые для сборки компоненты, которые включают gcc и другие инструменты компиляции для C. Я бы сказал, что это ваша проблема, и вы посмотрите, как это можно установить либо с помощью RPM, либо apt-get на Fedora.

Tim Knight
07 янв. 2009, в 19:10

Поделиться

Ещё вопросы

  • 1Перемещение мыши, чтобы остановить монитор от сна [дубликата]
  • 0использование jQuery .each в переменной javascript перед добавлением на экран
  • 0Как я могу написать объединение в именованном запросе?
  • 0Неверное значение из DDX_CBIndex ()
  • 0Нужно нажать кнопку дважды, чтобы выполнить функцию — jQuery
  • 1Нужно ли синхронизировать доступ к аргументам и локальным методам при одновременном вызове метода?
  • 0Как перебрать все ключи кроме одного в руле?
  • 0Как я могу узнать, сколько раз пятница 13-го появляется в году?
  • 0AngularJS — Запуск функции один раз при загрузке
  • 1HTML5 — проверка
  • 0angular — не удается обновить массив из службы
  • 0как создать уникальный код с правильным форматом
  • 1Spring boot + файл свойств Gradle
  • 0перенаправить не www на www с .htaccess в yii
  • 0Ошибка проверки PHP
  • 1Максимизировать и свернуть в Android
  • 1Как запрограммировать проект для предотвращения DDoS-атаки
  • 1WPF MVVM: динамическое рисование фигуры из файла xaml
  • 0Как мне постоянно обновлять значение, если оно изменилось в базе данных
  • 1Не удается импортировать android.text.util.Regex? Где это находится?
  • 0Почему проблема «Изменение ориентации изображения», которая захватывается с помощью камеры устройства и загружается на FTP-сервер, сохраняется в следующем сценарии?
  • 0Получить цену и добавить в корзину кнопку Magento
  • 1Как создать несколько итераций
  • 0JQuery формы ввода выберите значение
  • 1Вывести вложенный список построчно в обратном порядке, используя понимание списка и цикл for — Python
  • 0php получает информацию о фейсбуке, используя имя пользователя и пароль
  • 0Вернуть только необходимое значение с preg_match
  • 1Python: издеваться над атрибутом или издеваться над всем классом?
  • 0Показывать различный контент в соответствии с переключателем
  • 1Может ли скала код, скомпилированный с JDK 7, работать на JVM 8?
  • 1Веб-приложение Python Dash вызывает внутреннюю ошибку сервера
  • 0Пример вызова функции CakePHP из jQuery
  • 0jQuery вызов webAPI WebSecurity.IsAuthenticated всегда ложно
  • 0Build C ++ XPCOM ошибка зависимости
  • 1Запустите веб-приложение Maven на сервере из Eclipse с внедрением свойств из профиля.
  • 0Странная ошибка компоновщика
  • 0SQL для выбора с определенной длиной критериев суммы результатов
  • 0PHP Изменить включенный файл
  • 1Обработка 2.0 Фильм не может открыть файл фильма при запуске из банки
  • 1Перезаписать файл Python при его использовании?
  • 0Функция привязки с большим количеством аргументов, чем необходимо, и передача ей определенных аргументов
  • 0Как отобразить сообщение с помощью jquery?
  • 1Превышение времени ожидания запроса на обработку
  • 1Является ли формат файла конфигурации DRBD стандартным?
  • 1Строка DataBar в Merged Cells странное поведение
  • 1Сервисный класс Spring содержит слишком много методов поиска
  • 0Эффективный поиск в хэш-таблице без использования ключа
  • 1Проверьте соседнюю точку в 2d массиве с граничными условиями
  • 0Использование Javascript для вычисления полей формы с комбинацией переключателей, текстовых полей и ползунка
  • 0C ++ стандартная альтернатива itoa () для преобразования int в base 10 char *

При попытке выполнения rails s в папке с проектом терминал выдает сообщение
Could not find gem ‘sqlite3’ in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems

Запускаю bundle install и выдает это:

Installing sqlite3 1.3.12 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20161120-25046-1u39x6csqlite3-1.3.12/gems/sqlite3-1.3.12/ext/sqlite3
/usr/bin/ruby2.3 -r ./siteconf20161120-25046-gvhez0.rb extconf.rb
mkmf.rb can’t find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20161120-25046-1u39x6csqlite3-1.3.12/gems/sqlite3-1.3.12 for inspection.
Results logged to /tmp/bundler20161120-25046-1u39x6csqlite3-1.3.12/extensions/x86_64-linux/2.3.0/sqlite3-1.3.12/gem_make.out
Using turbolinks-source 5.0.0
Using tzinfo 1.2.2

В чем может быть причина? Весь вечер промучился….


  • Вопрос задан

    более трёх лет назад

  • 2183 просмотра

Пригласить эксперта

Для начала нужно попробовать установить сам SQLite (а не только его dev-пакет).

sudo apt-get install sqlite3 libsqlite3-dev

О! Есть прогресс после sudo apt-get install sqlite3 libsqlite3-dev Но теперь терминал выдает
rails s
Could not find gem ‘sqlite3’ in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.

перед тем как запустить сервер делал bundle install и установка sqlite3 прошла успешно но в финале выдало ошибку на

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20161123-3460-57vq0zdebug_inspector-0.0.2/gems/debug_inspector-0.0.2/ext/debug_inspector
/usr/bin/ruby2.3 -r ./siteconf20161123-3460-5z3b6z.rb extconf.rb
mkmf.rb can’t find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20161123-3460-57vq0zdebug_inspector-0.0.2/gems/debug_inspector-0.0.2 for inspection.
Results logged to /tmp/bundler20161123-3460-57vq0zdebug_inspector-0.0.2/extensions/x86_64-linux/2.3.0/debug_inspector-0.0.2/gem_make.out

An error occurred while installing debug_inspector (0.0.2), and Bundler cannot continue.
Make sure that `gem install debug_inspector -v ‘0.0.2’` succeeds before bundling.

Запустил sudo gem install debug_inspector -v ‘0.0.2’ но выдало
Building native extensions. This could take a while…
ERROR: Error installing debug_inspector:
ERROR: Failed to build gem native extension.

current directory: /var/lib/gems/2.3.0/gems/debug_inspector-0.0.2/ext/debug_inspector
/usr/bin/ruby2.3 -r ./siteconf20161123-4179-mk02jr.rb extconf.rb
mkmf.rb can’t find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/debug_inspector-0.0.2 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/debug_inspector-0.0.2/gem_make.out


В чем может быть причина?

А как вообще ruby ставился?
sudo apt-get install ruby2.3-dev ?

curl -sSL https://get.rvm.io | bash -s stable
rvm install 2.3.0
rvm default ruby-2.3.0
rvm use ruby-2.3.0
gem install bundler
cd каталог_с_моей_неведомой_ебаниной_на_рельсах
bundle install


  • Показать ещё
    Загружается…

09 февр. 2023, в 22:01

50000 руб./за проект

09 февр. 2023, в 22:00

1 руб./за проект

09 февр. 2023, в 21:41

2000 руб./за проект

Минуточку внимания

I’m running an instance built off ami-595a0a1c. I am trying to install the sqlite3 (or sqlite) gem and it’s failing with the below error:

$ sudo gem install sqlite3
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite3-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/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
Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/sqlite3-1.3.3 for inspection. Results logged to /usr/lib64/ruby/gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out

Typically, this just means you need to install the development libraries and everything is cool. However, I have installed the sqlite-devel packages and still no dice. Since this is the Amazon Linux instance, I’d rather not add more repositories than the ones Amazon provides if possible. What can i do to get this thing to compile? Thanks for any insight!

From a brand new instance, here’s what I’ve done:

$ sudo yum install rubygems ruby-devel

$ sudo gem update —system

$ sudo gem install rails

$ rails new app

$ cd app

$ rails server

Could not find gem ‘sqlite3 (>= 0)’ in any of the gem sources listed in your Gemfile.

$ sudo yum install sqlite-devel

$ sudo gem install sqlite (or sqlite3 — same result)

See breakage above

I know there is a very similar post here but since it’s 2 years old and still unanswered I thought I’d give it another try.

Some versions to prove everything needed is installed and I’m at least somewhat sane:

ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

And the error:

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

        /usr/bin/ruby extconf.rb
checking for sqlite3.h... *** 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/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
/usr/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from /usr/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
        from /usr/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
        from /usr/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
        from /usr/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
        from /usr/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from /usr/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
        from /usr/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from /usr/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
        from /usr/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
        from /usr/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
        from extconf.rb:28:in `<main>'


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

EDIT: Here’s the mkmf.log it wants you to check:

"gcc -o conftest -I/usr/include/ruby-1.9.1/x86_64-linux -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I/usr/include -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include    -march=x86-64 -mtune=generic -O2 -pipe -fPIC conftest.c  -L. -L/usr/lib -L/usr/local/lib -L/opt/local/lib -L/sw/local/lib -L/usr/lib -L. -Wl,--hash-style=gnu -Wl,--as-needed -rdynamic -Wl,-export-dynamic     -lruby-static  -lpthread -lrt -ldl -lcrypt -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

My first thoughts were that I needed to specify where to find sqlite3.h so I tried this:

gem install sqlite3 -- --with-sqlite3-include=/usr/include

Same error. Also, specifying —with-sqlite3-dir to give gem a general idea of where to find the files doesn’t help. I’ve confirmed that /usr/include/sqlite3.h exists, as well as the proper lib, and I’m running out of ideas.

At the very least I’d like to see someone else with a working configuration. Maybe we can compare version numbers, but even that’s a real stretch.

Last edited by Cyphus (2011-05-26 02:57:59)

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Gem ext builderror error failed to build gem native extension
  • Geforce security update driver продолжить установку невозможно произошла ошибка
  • Geforce now ошибка установки
  • Geforce now ошибка синхронизации steam
  • Geforce now error c0f1103f

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии