SQLITE3-RUBY لا يمكن صنعه على RVM 1.8.7
-
25-09-2019 - |
سؤال
الترقية إلى Rails 3 من خلال البدء بـ RVM 1.8.7. OSX 10.5.8
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
قائمة الأحجار الكريمة (هذه تحت RVM ، تحت النظام ، حصلت على المزيد من الأحجار الكريمة شملت SQLite3-Ruby التي عملت لمدة 1.5 سنة)
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)
إصدار Xcode: 3.1.1
شكوكي هي أن الأمر يتعلق بـ "-i/user/joshcrews/.rvm/ruby/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin9.8.0" ، لأن i686-darwin9.8 في هذا الملف
المحلول
حصلت على مساعدة في Railsconf من (The؟) Sqlite3-Ruby Gem ، Aaron Patterson
خيارات:
- احصل على ثلج ليوبارد
- تثبيت sqlite3-ruby 1.2.5
- تثبيت sqlite3 عبر macports أولا
احصل على ثلج ليوبارد
SQLITE3-RUBY> = 1.3.0 لم يتم اختباره لـ OSX 10.5. يجب أن تعمل الفهد الثلجي
تثبيت sqlite3-ruby 1.2.5
gem install sqlite3-ruby -v 1.2.5
ثم اضبط كل gemfile Rails3 ليقول هذا
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
تثبيت sqlite3 عبر macports أولا
sudo port install sqlite3
gem install sqlite3-ruby
نصائح أخرى
لست متأكدًا بنسبة 100 ٪ مما يسبب المشكلة ، لكنني جعلتها تعمل عن طريق تثبيت SQLite3 عبر Homebrew: http://github.com/mxcl/homebrew
بعد ذلك ، تم تثبيت الأحجار الكريمة على ما يرام. يجب ألا يكون إصدار Leopard of SQLite3 متوافقًا مع الإصدار الجديد من SQLite3-Ruby.
إذا قمت بالفعل بتثبيت SQLite3 Macport أو Brew ، وما زلت تواجه المشكلة ، فقد تضطر إلى تحديد خيارات الإنشاء عند تثبيت GEM.
مثال:
gem install sqlite3 -v 1.3.5 -- --with-sqlite3-include=/opt/local/include --with-sqlite3-lib=/opt/local/lib
إذا كنت على Homebrew ، فاستخدم /usr /محلي بدلاً من /opt /local.
لتكوين Bundler لتذكر خيارات الإنشاء لـ SQLite3 (قم بتشغيل "Config Config Bundle" لمزيد من المعلومات):
bundle config build.sqlite3 --with-sqlite3-include=/opt/local/include --with-sqlite3-lib=/opt/local/lib
لدي نفس المشكلة على Linux ، ويدير أمرين. يعمل تماما.
sudo aptitude install sqlite3 libsqlite3-dev
sudo gem install sqlite3-ruby