Я пытаюсь установить драгоценный камень SQLite на коробке Fedora 9 Linux с 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
просто повторяет то, что уже было отправлено на консоль. Как установить этот камень?
SQLite RubyGem на самом деле не RubyGem, это "CGem", IOW он написан на C. Это означает, что он должен быть скомпилирован и связан с интерпретатором Ruby при его установке и для этого файлы заголовков C для интерпретатора Ruby.
Если вы сами компилируете Ruby, эти файлы заголовков будут установлены автоматически, однако в системах RedHat-ish такие файлы заголовков обычно упаковываются в отдельный пакет под названием <whatever>-dev
. Таким образом, в этом случае вам нужно будет установить пакет ruby-dev
и, возможно, пакет libsqlite3-dev
(Ubuntu) или sqlite-devel
(Fedora).
Однако вам может быть лучше просто установить пакет с установленной упаковкой libsqlite3-ruby
операционной системы, таким образом, все зависимости будут автоматически выполнены.
(Примечание: все имена пакетов, вытащенные из воздуха, могут отличаться в вашей системе.)
Вероятно, вам нужен пакет ruby dev. Для Ubuntu вам необходимо установить ruby1.8-dev, который включает файлы заголовков ruby. Быстрый google говорит, что пакет yum - это рубиновый. поэтому запустите это:
sudo yum install ruby-devel
Я столкнулся с проблемой установки sqlite3-ruby gem на моем блоке fedora 13. Он был исправлен после sudo yum install sqlite-devel
Когда у меня была эта проблема:
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
sudo apt-get install ruby-dev
исправил это для меня.
В Ubuntu 9 и 10 попробуйте:
sudo apt-get install ruby-dev
sudo apt-get install sqlite3-dev
Затем запустите
gem install sqlite3
Выполните следующее для ОС Fedora:
yum install rubygem-sqlite3
У вас есть весь исходный код, необходимый для сборки sqlite3-ruby? Gem пытается скомпилировать код C и не может найти заголовки. Вероятно, вы можете использовать генератор rpm для sqlite3-ruby (я не использую Fedora, но я уверен, что он существует), если вы предпочитаете отказываться от компиляции. Лично для рубинового материала я предпочитаю использовать драгоценный камень, а не систему дистрибуции.
Запустите "sudo yum install sqlite-devel", а затем "gem install sqlite3". Была такая же проблема на моей Fedora 15.
У меня была такая же самая точная проблема... вместо того, чтобы копировать недостающие части, я использовал синаптический метод unbuntu.
Ключевым пакетом для меня был libsqlite-ruby1.9.1... Я зарегистрировал свой опыт (для справки) с этой ошибкой по адресу: Sqlite3-gem-error-during-bundle-install
Я исправил проблему на моем OLPC (Fedora 9), установив "gcc" как ни странно. Похоже, что это был один из тех пакетов dev, но нет.
Кроме того, в отношении других пакетов суффикс имеет значение "-devel", а не "-dev", поэтому убедитесь, что вы вернетесь к ним: "ruby-devel", "sqlite-devel"...
После того, как вы установили это, если у вас возникли ошибки в том, что ваши драгоценные камни были слишком старыми "< 1.3.1" при попытке запуска различных сценариев рельсов, например: script/server или script/console, google "upgrade_rubygems", чтобы исправить эту проблему...
НТН...
Я не очень хорошо знаком с Fedora, но в Ubuntu, когда вы устанавливаете пакеты, у вас есть apt-get, и вам нужно установить необходимые для сборки компоненты, которые включают gcc и другие инструменты компиляции для C. Я бы сказал, что это ваша проблема, и вы посмотрите, как это можно установить либо с помощью RPM, либо apt-get на Fedora.