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

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

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

/usr/bin/ruby1.8 extconf.rb проверка для sqlite3.h... нет sqlite3.h отсутствует. Попробуйте 'port install sqlite3 +universal' или 'yum install sqlite3-devel'
*** extconf.rb не удалось *** Не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия необходимых библиотек и / или заголовков. Проверьте файл mkmf.log для более подробной информации. Вам могут потребоваться параметры конфигурации. Предоставленные параметры конфигурации:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    - без-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby1.8
    --with-sqlite3-dir
    --without-sqlite3-dir
    --with-sqlite3-include
    --without-sqlite3-include=${sqlite3-dir}/include
    --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 install sqlite3-ruby --without-sqlite3-include = / usr / include

не работает

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

Ubuntu 10.04

18 ответов

Решение

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

apt-get install libsqlite3-dev

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

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

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

В моем случае базовые компиляторы не установлены, поэтому

sudo apt-get install build-essential

решил мою проблему, но для большинства людей я думаю, что /questions/11965710/oshibka-ustanovki-sqlite3-ruby-v-ubuntu/11965713#11965713 является решением.

Вот что я сделал:

wget http://www.sqlite.org/sqlite-amalgamation-3.7.2.tar.gz
tar xzf sqlite-amalgamation-3.7.2.tar.gz
cd sqlite-3.7.2/

./configure
make
make install

gem install rails sqlite3-ruby

от: http://cuasan.wordpress.com/2010/10/13/rails-3-on-debian-with-sqlite-3/

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

sudo apt-get install libsqlite3-dev

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

Если вы работаете в 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, и он работает.

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

Оказалось, что вам также нужен пакет 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

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

Решение состоит в том, чтобы добавить -- разделять 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

Вот лучший ответ от HEROKU - не могу запустить мастер git push heroku

Поскольку вы не можете использовать sqlite3 на heroku, добавьте это в ваш Gemfile:

group :production do
  gem 'pg'
end
group :development, :test do
  gem 'sqlite3'
end

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

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

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

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

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

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

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

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

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

sudo apt-get install ruby1.8-dev

Спасибо за это.

Вы сломали версию 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, которая дает немного больше объяснений.

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

бежать

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

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

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

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

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

Я только что перешел на sqlite3-ruby '1.2.2'

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

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