ruby-on-rails ruby sqlite gem sqlite3-ruby

ruby on rails - sqlite3 gema no se instala



ruby-on-rails sqlite3-ruby (4)

Estoy intentando instalar la gema "sqlite3-ruby" (o la gema "sqlite3") en OS X 10.6. Estoy usando ruby-1.9.2 y actualmente obtengo lo siguiente:

$ sqlite3 --version 3.7.4 $ sudo gem install sqlite3 Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb checking for sqlite3.h... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:368:in `try_do'': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'' from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'' from extconf.rb:28:in `<main>'' Gem files will remain installed in /Users/folken/.rvm/gems/ruby-1.9.2-head/gems/sqlite3-1.3.3 for inspection.

Los siguientes son los resultados de los cuales & whereis, y el sqlite3.h se encuentra en / opt / local / include:

$ which sqlite3 /opt/local/bin/sqlite3 $ whereis sqlite3 /usr/bin/sqlite3

He intentado pasar en lo siguiente también:

sudo gem install sqlite3 -- --with-sqlite3-include /opt/local/include --with-sqlite3-lib /opt/local/lib sudo gem install sqlite3 -- --with-sqlite3-dir /opt/local/bin

lo que resulta en lo siguiente:

ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb --with-sqlite3-dir /usr/bin/sqlite3 *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby --with-sqlite3-dir /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:1336:in `dir_config'': undefined method `split'' for true:TrueClass (NoMethodError) from extconf.rb:9:in `<main>''

También en /Users/folken/.rvm/gems/ruby-1.9.2-head/gems: sqlite-ruby-2.2.3 sqlite3-1.3.3

Bajo RVM tengo ruby-1.8.7 y la gema sqlite3 está bien, pero después de muchas búsquedas en Google no he encontrado una solución que funcione para mí. Cualquier ayuda es muy apreciada (incluso si se trata de la instalación manual o la piratería para comenzar a trabajar).


Estaba siguiendo el libro Rails3 in Action con rvm usando ruby ​​1.9.2.p180 y rails 3.1.0.rc6 con Mac OS X 10.5.8 (Leopard) y cuando ejecuté:

rake cucumber:ok

Tengo:

Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can''t activate sqlite3 (~> 1.3.4, runtime), already activated sqlite3-1.3.3. Make sure all dependencies are added to Gemfile.)

Entonces hice

gem install sqlite3 -- --with-sqlite3-dir=/opt/local

Seguido por:

bundle install

Con suerte, encontraré mi propia respuesta en Internet cuando se requiera sqlite 1.3.5.


Para osx, asegúrese de tener instalado Xcode y de haber aceptado los términos. Para mí, no había aceptado los términos (por cualquier motivo, quizás Xcode se instaló o actualizó recientemente en mi computadora).

  1. Abrir Xcode
  2. Si aparece una ventana emergente, acepte los términos (si no recibe una ventana emergente, es probable que ya haya aceptado los términos).

Parece que no has instalado XCode.


Tuve un problema casi similar a ti en el que tenía instalado sqlite3 y, sin embargo, la gema sqlite3 no se instalaría. Estaba viendo un mensaje de error como sigue,

user-name-rajas-macbook-pro:rails3 user-namer$ gem install sqlite3 Building native extensions. This could take a while... ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension. /Users/user-namer/.rvm/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb checking for sqlite3.h... yes checking for sqlite3_libversion_number() in -lsqlite3... no sqlite3 is missing. Try ''port install sqlite3 +universal'' or ''yum install sqlite3-devel'' and check your shared library search path (the location where your sqlite3 shared library is located). *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/user-namer/.rvm/rubies/ruby-1.9.2-p180/bin/ruby --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib --with-sqlite3lib --without-sqlite3lib Gem files will remain installed in /Users/user-namer/.rvm/gems/ruby-1.9.2- p180@rails_3/gems/sqlite3-1.3.3 for inspection. Results logged to /Users/user-namer/.rvm/gems/ruby-1.9.2-p180@rails_3/gems/sqlite3- 1.3.3/ext/sqlite3/gem_make.out

Esto es lo que funcionó para mí.

gem install sqlite3 -- --with-sqlite3-dir=/opt/local