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).
- Abrir Xcode
- 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