Ошибка установки sqlite3-ruby в Ubuntu


257

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

Сборка собственных расширений. Это может занять некоторое время ...
ОШИБКА: Ошибка установки sqlite3-ruby:
    ОШИБКА: не удалось создать собственное расширение для гема.

/usr/bin/ruby1.8 extconf.rb
проверка на sqlite3.h ... нет
sqlite3.h отсутствует. Попробуйте 'port install sqlite3 + universal' или 'yum install sqlite3-devel'
*** extconf.rb не удалось ***
Не удалось создать Makefile по какой-то причине, вероятно, из-за отсутствия
необходимые библиотеки и / или заголовки. Проверьте файл mkmf.log для более
подробности. Вам могут понадобиться параметры конфигурации.

Предоставляются варианты конфигурации:
    --with-неавтоматического реж
    --without-неавтоматического реж
    --with-неавтоматического включают
    --without-неавтоматического включают = $ {неавтоматического реж} / включить
    --with-неавтоматического Пб
    --without-неавтоматического Пб = $ {неавтоматического реж} / Lib
    --with-макияж прог
    --without-макияж прог
    --srcdir =.
    --curdir
    --ruby = / USR / бен / ruby1.8
    --with-sqlite3-реж
    --without-sqlite3-реж
    --with-sqlite3-включают
    --without-sqlite3-включают в себя = $ {sqlite3-DIR} / включить
    --with-sqlite3 Пб
    --without-sqlite3 Пб = $ {sqlite3-DIR} / Библиотека


Gem файлы останутся установленными в /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 для проверки.
Результаты заносятся в /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

не работает

ОШИБКА: при выполнении gem ... (OptionParser :: InvalidOption)
    неверный параметр: --without-sqlite3-include = / usr / include

Ubuntu 10.04


та же проблема - это не ответ. sqlite3.h не существует, и все вышеперечисленные пакеты установлены. ubunut 10,10
RRT

Попробуйте sudo apt-get install build-essential, а затем sudo gem install sqlite3-ruby
Дмитрий

1
с тех пор он изменился на просто sqlite3, неsqlite3-ruby
kelloti

3
У меня работал на Ubuntu 12.04, как предложил Маршлука. sudo apt-get установить libsqlite3-dev
panta

Ответы:


585

Для компиляции собственного расширения гема вам нужны заголовки разработки SQLite3. Вы можете установить их, запустив (возможно, с sudo):

apt-get install libsqlite3-dev

26
Я нуждался sudo apt-get install libsqlite3-dev. Спасибо.
B Семь

6
Работал как шарм. Спасибо.
frank.m

Спасибо, это определенно не было бы очевидно.
james_womack

15

Вам просто нужно --там.

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

Это указывает на то, что опцией является не самоцвет, а конкретный самоцвет.



6

Если вы работаете в Ubuntu и используете RVM для ruby ​​на рельсах, пожалуйста, добавьте FIRST:

sudo apt-get install libxslt-dev libxml2-dev

ИЛИ Вы можете проверить с помощью этих команд:

Эта команда подготовит для вас два пакета: sqllite3 и libsqlite3-dev

sudo apt-get установить sqlite3 libsqlite3-dev

-Теперь установи sqlite gem

 [sudo] gem install sqlite3-ruby

использование Ubuntu не нуждается в sudo.

Удачи! Примечание: я использую Ubuntu 10.10, и он работает.



6

Этого было достаточно просто, чтобы заставить его работать

sudo apt-get install libsqlite3-dev

Благодаря Маршлуке


4

Перепробовал ВСЕ другие решения, ни одно не помогло.

Оказалось, что вам также нужен пакет dev для самого ruby. Для меня это помогло

sudo apt-get install ruby-full

Хотя у него много неприятных зависимостей (например, emacs, wtf?), Просто

sudo apt-get install ruby1.8-dev

все должно быть в порядке. После установки (и у вас установлены пакеты sqlite и sqlite-dev)

sudo gem install sqlite3-ruby

работает как шарм.


1
работал для меня тоже. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite


1

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

скомпилируйте 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


1

Из sqlite3-ruby gem не могу найти sqlite3.h в Ubuntu :

Вам также необходимо установить сам gcc, так что в целом это будет:

sudo apt-get install gcc libsqlite3-dev ruby1.8-dev
sudo gem install sqlite3

По-видимому, вы получаете неправильную ошибку, указывающую на отсутствующий файл sqlite3.h, когда в реальной проблеме отсутствует сам gcc.


1

Решение состоит в том, чтобы добавить --отдельные configureпараметры от gemпараметров.

вместо того

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

попробуйте это, все в одной строке, обязательно добавьте --после последнего gemпараметра и перед configureпараметрами:

sudo gem install sqlite3 --
--with-sqlite3-lib=/somewhere/local/lib
--with-sqlite3-include=/somewhere/local/include

Это должно помочь вам обойти эту ошибку:

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

Это было именно то, что мне было нужно - большое спасибо этому подателю!
Дэвид Лой

0

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


Если sqlite3.h действительно отсутствует и не находится в / usr / include, как вы сказали, тогда вы можете установить его с помощью: sudo apt-get install libsqlite3-dev
Kurt

Я уже сделал это .. Это не помогает. У меня установлены sqlite3 и libsqlite3-dev.
Дмитрий

0

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


0

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

sudo apt-get install ruby1.8-dev

Благодаря mentalized для того.


0

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

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

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

0

Вы сломали версию 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

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

бегать

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

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


0

Ни одно из вышеупомянутых решений у меня не сработало, даже после установки 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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.