Почему я не могу установить гем SQLite?

Я пытаюсь установить гем 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 просто повторяет то, что уже было отправлено на консоль. Как я могу установить этот драгоценный камень?

У меня тоже постоянно возникала эта ошибка !!

Perpetualcoder 07.01.2009 20:41

Ключ к ошибке - «не удается найти файлы заголовков для ruby» ... это означает, что вам понадобится пакет разработки для ruby.

salt.racer 07.01.2009 23:49

@ salt.racer / ЛЮБОЙ ЗДЕСЬ - не могли бы вы опубликовать, какой пакет (в основном) требуется.

Sudhakar Krishnan 01.01.2014 14:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
65
3
60 855
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

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

Обращение Fedora для заголовков mysql - это что-то вроде mysql-dev, поэтому правильным rpm sqlite, скорее всего, будет sqlite3-dev.

erik 07.01.2009 20:58

Я использую FreeBSD 7.1 прямо сейчас, и у меня установлен порт sqlite3-3.6.4, который предоставляет все необходимое, если я правильно помню. Я сам пытаюсь проверить Rails 2.2.2. Удачи, Эрик!

barneytron 07.01.2009 21:14

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

Это неприятно для Fedora, но проблема НЕ в этом. Это проблема libsqlite3-ruby.

Dan Rosenstark 22.01.2009 03:51
Ответ принят как подходящий

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

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

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

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

Черт, ТАК круто, это на самом деле правильный ответ ... Я потерялся, пытаясь установить SqlLite, и проблема заключалась в создании новых сообщений об ошибках каждую минуту. Теперь, если спрашивающий просто отметит это как правильный ответ, мы будем в деле.

Dan Rosenstark 22.01.2009 03:51

В Ubuntu я сделал apt-get install libsqlite3-ruby, и он отлично сработал. Конечно, под root ...

Dan Rosenstark 22.01.2009 03:52

Или, если вы хотите установить гем, вам нужно будет apt-get install ruby-dev, как говорит Йорг.

Shadowfirebird 05.02.2010 17:37

И снова Йорг, твоя информация мне пригодилась, чтобы облегчить мне обучение. Еще раз спасибо.

Mark Essel 07.05.2010 04:38

Великолепно - это следует задокументировать в FAQ по Ruby on Rails!

Anton Babushkin 21.02.2012 17:06

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

sudo yum install ruby-devel

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

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

После того, как вы его установили, если вы получите ошибку о том, что ваши драгоценные камни слишком старые "<1.3.1", когда вы пытаетесь запустить различные сценарии rails, например: сценарий / сервер или сценарий / консоль, Google "upgrade_rubygems", чтобы исправить эту проблему. ..

HTH ...

sudo apt-get install ruby-dev

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

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

Tore Aurstad 15.08.2018 01:04

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

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

У меня возникла проблема с установкой драгоценного камня sqlite3-ruby на мою коробку fedora 13. Исправлено после sudo yum установить sqlite-devel

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

yum install rubygem-sqlite3

Это сработало, но после "sudo yum install sqlite-devel"

UserBSS1 28.01.2016 15:53

да, но это зависит от ruby-2.4 и не использует rbenv-установленный ruby

andrej 20.04.2018 10:00

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

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

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

Тогда беги

gem install sqlite3

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

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

Это исправило это для меня! +1

R.Hull 02.06.2016 06:47

Да, это был ответ для меня

Echelon 18.08.2018 15:10

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

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

Я также столкнулся с этой же проблемой, проблема в том, что ваша установка Linux требует, чтобы были установлены библиотеки разработки для SQLite3, чтобы построить гем.

Вот как я решил проблему

Откройте свой терминал и выполните следующие команды

sudo apt-get install sqlite3

sudo apt-get install libsqlite3-dev

А затем попробуйте снова установить гем Sqlite3, используя эту команду

gem install sqlite3

Это все.

надеюсь, это поможет

Другие вопросы по теме