Невозможно установить гем sqlite3 в Mac OS X 10.5.8 (Leopard)
Использование Mac OS X 10.5.8 (Leopard) ruby 1.9.3p0 gem версия 1.8.14 sqlite3 версия 3.7.9
Я также установил Xcode 3.1.4 (не уверен, используется ли это для установки гемов).
Я взял драгоценный камень sqlite3
gem fetch sqlite3
Потом распаковал
gem unpack sqlite3-1.3.5.gem
И перешел в новый каталог
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)", но не понял, что должно быть сделано.
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему?
Я пробовал другие подходы, такие как Ошибка с MySql при выполнении Bundle Install, и я не могу установить gem sqlite3, но они не сработали для меня.
Обновление: у меня есть похожие проблемы при попытке
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.
У меня уже установлен gem mysql2 (0.3.11).
Обновление 2: при выполнении
gem update
Я получаю следующее при обновлении гема sqlite3-ruby:
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...
Спасибо
1 ответ
Если вы используете Mac OS 10.5.X или ниже, вы не можете запустить sqlite3. Вам нужен как минимум Snow Leopard, чтобы его можно было скомпилировать.
Вместо этого попробуйте изменить Gemfile, чтобы использовать sqlite3-ruby 1.2.5.
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'