Помилка установки sqlite3-ruby на Ubuntu


257

У мене є така помилка під час встановлення sqlite3-ruby:

Створення рідних розширень. Це може зайняти деякий час ...
ПОМИЛКА: Помилка встановлення sqlite3-ruby:
    ПОМИЛКА: Не вдалося створити нативне розширення дорогоцінного каменю.

/usr/bin/ruby1.8 extconf.rb
перевірка sqlite3.h ... ні
sqlite3.h відсутній. Спробуйте "встановити порт sqlite3 + Universal" або "yum install sqlite3-devel"
*** помилка extconf.rb ***
Не вдалося створити Makefile через певну причину, можливо, відсутність
необхідні бібліотеки та / або заголовки. Перевірте файл mkmf.log для отримання додаткової інформації
деталі. Можливо, вам знадобляться параметри конфігурації.

Надані параметри конфігурації:
    --з opt-dir
    - без opt-dir
    - без включення
    --without-opt-include = $ {opt-dir} / включати
    --з opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --з-make-prog
    --без промо-прог
    --srcdir =.
    --curdir
    --ruby = / usr / bin / ruby1.8
    --з-sqlite3-реж
    - без-sqlite3-реж
    --з-sqlite3-включати
    --without-sqlite3-include = $ {sqlite3-dir} / включати
    --with-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


Файли 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 встановити 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-basic, а потім sudo gem встановіть sqlite3-ruby
Дмитро

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

3
Працював для мене на ubuntu 12.04, як запропонував маршлука. sudo apt-get install libsqlite3-dev
panta

Відповіді:


585

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

apt-get install libsqlite3-dev

26
Мені потрібно було sudo apt-get install libsqlite3-dev. Дякую.
B Сім

6
Працював як шарм. Дякую.
франк

Дякую - це точно не було б очевидним.
james_womack

15

Вам просто потрібен --там.

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

Це вказує, що опція полягає не в дорогоцінному камені, а в конкретному самоцвіті.


8

У моєму випадку не встановлено базових компіляторів, так що

sudo apt-get install build-essential

вирішив мою проблему, але для більшості людей, на які я думаю, https://stackoverflow.com/a/3649005/417267 є рішенням.


1
Це була моя проблема. Дякую.
j сум

6

Якщо ви працюєте в ubuntu і використовуєте RVM для рубіну на рейках, будь ласка, додайте ПЕРШИЙ:

sudo apt-get install libxslt-dev libxml2-dev

АБО Ви можете перевірити за допомогою цих команд:

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

sudo apt-get install sqlite3 libsqlite3-dev

-Зараз встановіть sqlite gem

 [sudo] gem install sqlite3-ruby

-використання Ubuntu не потребує sudo.

Удачі! Примітка: я використовую Ubuntu 10.10 і він працює.



6

Цього було досить просто, щоб змусити його працювати

sudo apt-get install libsqlite3-dev

Завдяки зефіру


4

Спробував ВСІ інші рішення, жодне не допомогло.

Виявилося, що вам також потрібен пакунок dev для самого рубіну. Для мене це допомогло

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 як статичну бібліотеку, встановіть десь у вашому домашньому каталозі та надайте цю опцію для процесу встановлення дорогоцінного каміння.

Перейдіть на сторінку завантаження та захопіть джерело. Найновіша версія цього часу - http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf у файлі або виконайте все, що ви зазвичай робите, щоб розпакувати; ввести каталог

./configure - відключити-спільний --enable-статичний --prefix = / деякий / шлях / в / мій / головний

компілювати, встановлювати та коли ви встановлюєте дорогоцінний камінь ...

встановити gem sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home


1

З sqlite3-ruby дорогоцінний камінь не може знайти 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 /, включайте, як ви вже говорили, тоді ви можете встановити його за допомогою: sudo apt-get install libsqlite3-dev
Курт

Я вже це зробив .. Це не допомагає. У мене встановлені sqlite3 та libsqlite3-dev.
Дмитро

0

Це точно та сама проблема, яка була у мене кілька тижнів тому. Я дізнався, що мені потрібно завантажити останні заголовки / бібліотеки зі сторінки завантаження SQLite. Спробуйте, сподіваюся, це допоможе!


0

Для мене проблему було вирішено шляхом отримання mkmf, який знаходиться в рубіні1,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 видалити 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.