Почему я не могу установить гем SQLite? - PullRequest
62 голосов
/ 07 января 2009

Я пытаюсь установить гем SQLite в Linux Fedora 9 с Ruby 1.8.6, Rails 2.2.2, gem 1.3 и sqlite-3.5.9. Вот команда, которую я запускаю, и ее результаты:

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

/usr/bin/ruby extconf.rb install sqlite3-ruby
can't find header files for ruby.

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

gem_make.out просто повторяет то, что уже было отправлено на консоль. Как я могу установить этот драгоценный камень?

Ответы [ 14 ]

134 голосов
/ 07 января 2009

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

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

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

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

12 голосов
/ 08 января 2009

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

sudo yum install ruby-devel

9 голосов
/ 06 января 2011

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

8 голосов
/ 12 мая 2016

Когда у меня возникла эта проблема:

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
6 голосов
/ 18 декабря 2010
sudo apt-get install ruby-dev

Исправлено для меня.

3 голосов
/ 24 августа 2011

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

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

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

gem install sqlite3
2 голосов
/ 20 июля 2011

Запустите следующее для Fedora OS:

yum install rubygem-sqlite3
1 голос
/ 07 января 2009

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

0 голосов
/ 15 апреля 2019

Я столкнулся с этой ошибкой при запуске bundle install после генерации приложенияact-rails в Fedora 29. Я смог определить подходящий пакет разработки, запустив dnf search sqlite3, а затем установил его dnf install libsqlite3x-devel. Это исправило это для меня.

0 голосов
/ 13 февраля 2018

На alpine вам необходимо установить пакет sqlite-dev.

...