2012-01-06 129 views
1

使用 的Mac OS X 10.5.8(Leopard)的 紅寶石1.9.3p0 寶石版本1.8.14 sqlite3的版本3.7.9不能在Mac OS X 10.5.8(Leopard)上安裝sqlite3的寶石

我也已經安裝了Xcode 3.1.4(不知道這是否用於安裝寶石)。

我拿來了sqlite3的寶石

gem fetch sqlite3 

然後打開包裝

gem unpack sqlite3-1.3.5.gem 

而且cd'ed到新目錄

cd sqlite3-1.3.5 

執行的

ruby setup.rb config 

然後cd'ed爲EXT/sqlite3的

,然後執行使

這是返回以下錯誤信息:

usernamemac:sqlite3 username$ make 
compiling backup.c 
compiling database.c 
database.c: In function 'initialize': 
database.c:47: error: 'SQLITE_OPEN_READWRITE' undeclared (first use in this function) 
database.c:47: error: (Each undeclared identifier is reported only once 
database.c:47: error: for each function it appears in.) 
database.c:47: error: 'SQLITE_OPEN_CREATE' undeclared (first use in this function) 
database.c:79: error: 'SQLITE_OPEN_READONLY' undeclared (first use in this function) 
database.c:81: warning: implicit declaration of function 'sqlite3_open_v2' 
database.c: In function 'set_sqlite3_func_result': 
database.c:285: error: 'sqlite3_int64' undeclared (first use in this function) 
database.c:285: error: syntax error before 'long' 
make: *** [database.o] Error 1 

創業板的README.rdoc文件我讀到「啓用選項SQLITE_ENABLE_COLUMN_METADATA(請參閱www.sqlite.org/compile.html以獲取詳細信息)「但不明白應該做什麼。

任何人都可以請幫我解決這個問題嗎?

我嘗試了其他方法,如 Error with MySql while doing Bundle InstallI can't install sqlite3 gem但這些對我來說不起作用。

更新:我也有類似的問題,試圖

rails new app1 -d mysql 

create vendor/plugins/.gitkeep 
run bundle install 
/Users/username/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/generators/app_base.rb:232: warning: Insecure world writable dir /usr/local in PATH, mode 040777 
/Users/username/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:209: warning: Insecure world writable dir /usr/local in PATH, mode 040777 
Fetching source index for http://rubygems.org/ 
Installing rake (0.9.2.2) 
... 
Installing jquery-rails (1.0.19) 
Installing mysql2 (0.3.11) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /Users/username/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lm... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lz... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lsocket... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lnsl... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lmygcc... no 
checking for mysql_query() in -lmysqlclient... no 
*** 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 
    ... (list of switches) 

Gem files will remain installed in /Users/username/a/app1/vendor/bundle/gems/mysql2-0.3.11 for inspection. 
Results logged to /Users/username/a/app1/vendor/bundle/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 
An error occured while installing mysql2 (0.3.11), and Bundler cannot continue. 
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling. 

時,我已經安裝了寶石mysql2(0.3.11)。

更新2:當執行

gem update 

我得到當sqlite3的,紅寶石的寶石被更新如下:

Updating sqlite3-ruby 
Building native extensions. This could take a while... 
/Users/username/.rbenv/versions/1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/ext/builder.rb:48: warning: Insecure world writable dir /usr/local in PATH, mode 040777 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

     /Users/username/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... yes 
checking for sqlite3_initialize()... no 
checking for sqlite3_backup_init()... no 
checking for sqlite3_column_database_name()... no 
checking for sqlite3_enable_load_extension()... no 
checking for sqlite3_load_extension()... no 
creating Makefile 

make 
compiling backup.c 
compiling database.c 
database.c: In function 'initialize': 
database.c:47: error: 'SQLITE_OPEN_READWRITE' undeclared (first use in this function) 
database.c:47: error: (Each undeclared identifier is reported only once 
database.c:47: error: for each function it appears in.) 
database.c:47: error: 'SQLITE_OPEN_CREATE' undeclared (first use in this function) 
database.c:79: error: 'SQLITE_OPEN_READONLY' undeclared (first use in this function) 
database.c:81: warning: implicit declaration of function 'sqlite3_open_v2' 
database.c: In function 'set_sqlite3_func_result': 
database.c:285: error: 'sqlite3_int64' undeclared (first use in this function) 
database.c:285: error: syntax error before 'long' 
make: *** [database.o] Error 1 


Gem files will remain installed in /Users/username/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.5 for inspection. 
Results logged to /Users/username/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out 
Gems updated: activesupport, activemodel, rack, journey, sprockets, actionpack, railties, coffee-rails, jquery-rails, minitest, rubygems-update, sass-rails 
Installing ri documentation for activesupport-3.2.0.rc2... 

感謝

+0

什麼版本是sqlite的? 'sqlite3 --version' – iain 2012-01-06 22:16:12

+0

@Iain Version 3.7.9 – Usering 2012-01-06 22:18:56

+0

我可以問一個愚蠢的問題 - 做'gem install sqlite3'有什麼問題嗎?這太簡單了嗎? ;)順便說一句,有沒有依賴XCode與寶石(除非他們指定它)。 – iain 2012-01-06 22:24:11

回答

2

如果您正在運行的Mac OS 10.5 .X或更低版本,您無法運行sqlite3。您至少需要Snow Leopard才能編譯它。

而是試着改變你的Gemfile使用sqlite3的,紅寶石1.2.5

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 
相關問題