2010-06-08 28 views
10

Mise à niveau vers Rails 3 en commençant par RVM 1.8.7. Mac OS X 10.5.8sqlite3-ruby ne peut pas faire sur rvm 1.8.7

Output: 
josh-crewss-macbook:~ joshcrews$ gem install sqlite3-rubyBuilding native extensions. This could take a while...ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. 
/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... no 
checking for sqlite3_column_database_name()... no 
checking for sqlite3_enable_load_extension()... no 
checking for sqlite3_load_extension()... no 
creating Makefile 

make 
gcc -I. -I. -I/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin9.8.0 -I. -I/usr/local/include -I/opt/local/include -I/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -O2 -fno-common -pipe -fno-common -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -c database.c 
database.c: In function ‘deallocate’: 
database.c:17: warning: implicit declaration of function ‘sqlite3_next_stmt’ 
database.c:17: warning: assignment makes pointer from integer without a cast 
database.c: In function ‘initialize’: 
database.c:76: warning: implicit declaration of function ‘sqlite3_open_v2’ 
database.c:79: error: ‘SQLITE_OPEN_READWRITE’ undeclared (first use in this function) 
database.c:79: error: (Each undeclared identifier is reported only once 
database.c:79: error: for each function it appears in.) 
database.c:79: error: ‘SQLITE_OPEN_CREATE’ undeclared (first use in this function) 
database.c: In function ‘set_sqlite3_func_result’: 
database.c:277: error: ‘sqlite3_int64’ undeclared (first use in this function) 
database.c: In function ‘rb_sqlite3_func’: 
database.c:311: warning: passing argument 1 of ‘ruby_xcalloc’ as signed due to prototype 
database.c: In function ‘rb_sqlite3_step’: 
database.c:378: warning: passing argument 1 of ‘ruby_xcalloc’ as signed due to prototype 
make: *** [database.o] Error 1 

liste Gem (ceux-ci sont sous RVM, sous le système que j'ai beaucoup plus de pierres précieuses inclus le sqlite3-ruby qui a travaillé pendant 1,5 ans)

josh-crewss-macbook:~ joshcrews$ gem list 

*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.0.0.beta3) 
actionpack (3.0.0.beta3) 
activemodel (3.0.0.beta3) 
activerecord (3.0.0.beta3) 
activeresource (3.0.0.beta3) 
activesupport (3.0.0.beta3, 2.3.8) 
arel (0.3.3) 
builder (2.1.2) 
bundler (0.9.25) 
capybara (0.3.8) 
configuration (1.1.0) 
cucumber (0.7.2) 
cucumber-rails (0.3.1) 
culerity (0.2.10) 
database_cleaner (0.5.2) 
diff-lcs (1.1.2) 
erubis (2.6.5) 
ffi (0.6.3) 
gherkin (1.0.30) 
i18n (0.4.0, 0.3.7) 
json_pure (1.4.3) 
launchy (0.3.5) 
mail (2.2.1) 
memcache-client (1.8.3) 
mime-types (1.16) 
nokogiri (1.4.2) 
polyglot (0.3.1) 
rack (1.1.0) 
rack-mount (0.6.3) 
rack-test (0.5.4) 
rails (3.0.0.beta3) 
railties (3.0.0.beta3) 
rake (0.8.7) 
rdoc (2.5.8) 
rspec (2.0.0.beta.10, 2.0.0.beta.8) 
rspec-core (2.0.0.beta.10, 2.0.0.beta.8) 
rspec-expectations (2.0.0.beta.10, 2.0.0.beta.8) 
rspec-mocks (2.0.0.beta.10, 2.0.0.beta.8) 
rspec-rails (2.0.0.beta.10, 2.0.0.beta.8) 
rubygems-update (1.3.7) 
selenium-webdriver (0.0.20) 
spork (0.8.3) 
term-ansicolor (1.0.5) 
text-format (1.0.0) 
text-hyphen (1.0.0) 
thor (0.13.6) 
treetop (1.4.8) 
trollop (1.16.2) 
tzinfo (0.3.22) 
webrat (0.7.1) 

version de XCode: 3.1.1

Mon soupçon est-il a à voir avec "-I/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/lib/ruby ​​/ 1.8/i686-darwin9.8.0", parce que i686-darwin9.8.0 n'existe pas dans ce fichier

Répondre

16

Je reçu de l'aide à RailsConf d'un (le?) Mainteneur gem sqlite3-ruby, Aaron Patterson

Options:

  • Enfourchez Snow Leopard
  • Installer sqlite3-ruby 1.2.5
  • sqlite3 via macports Installation première

Get sur Snow Leopard

sqlite3-ruby> = 1.3.0 non testé pour OSX 10.5. Snow Leopard devrait fonctionner

sqlite3-ruby Installation 1.2.5

gem install sqlite3-ruby -v 1.2.5 

Ensuite, chaque jeu Rails3 Gemfile dire ce

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 

sqlite3 via macports Install premier

sudo port install sqlite3 
gem install sqlite3-ruby 
+0

Merci, la dépendance version m'a aidé aussi. J'ai été capable de résoudre une situation similaire sur OS X 10.5/Ruby 1.8.6/Rails 2.3.8 avec 'config.gem 'sqlite3-ruby',: version => '~> 1.2.0',: lib => ' sqlite3'' – conny

+1

Comme Bryce l'a déjà mentionné: Comme alternative à MacPorts, vous pouvez utiliser homebrew. 'infuser installer sqlite; gem install sqlite3-ruby' l'a résolu magnifiquement. – romeroabelleira

+0

"Vous devez avoir le moteur SQLite installé pour construire ce module [sqlite3-ruby]." (http://rubygems.org/gems/sqlite3-ruby) D'où le 'sudo port install sqlite3', je suppose. –

3

Je ne suis pas sûr à 100% de ce qui cause le problème, mais je l'ai eu en travaillant en installant sqlite3 via homebrew: http://github.com/mxcl/homebrew

Après cela, la gemme installée juste très bien. La version de sqlite3 de Leopard ne doit pas être compatible avec la nouvelle version de sqlite3-ruby.

1

J'ai le même problème sur Linux, et exécute ci-dessous deux commandes. Fonctionne parfaitement.

sudo aptitude install sqlite3 libsqlite3-dev 
sudo gem install sqlite3-ruby 
2

Si vous avez déjà le MacPort sqlite3 ou infusion installé, et vous avez encore le problème, vous pourriez avoir à spécifier des options de compilation lors de l'installation du bijou.

Exemple:

gem install sqlite3 -v 1.3.5 -- --with-sqlite3-include=/opt/local/include --with-sqlite3-lib=/opt/local/lib 

Si vous êtes sur homebrew, utilisez/usr/local au lieu de/opt/local.

Pour configurer Bundler de se rappeler les options de construction pour sqlite3 (run "de configuration d'aide bundle" pour plus d'informations):

bundle config build.sqlite3 --with-sqlite3-include=/opt/local/include --with-sqlite3-lib=/opt/local/lib