أقوم بترقية Discourse من الإصدار 1.9.6 إلى 2.1.6، ولا أستطيع إكمال أمر bundle install. أستخدم Docker (Ubuntu 16.04) كصورة أساسية لبناء Discourse، مع إصدار Ruby 2.3.0. عند الوصول إلى bundle install، أواجه خطأ في التجميع التالي. مساعدة عاجلة! لست متأكدًا مما قد يكون مفقودًا…
==============================
Gem::Ext::BuildError: ERROR: فشل في بناء الامتداد الأصلي للـ gem.
الدليل الحالي:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0/ext/mini_racer_extension
/usr/local/rbenv/versions/2.3.0/bin/ruby -r ./siteconf20190111-14622-1sr4cny.rb
extconf.rb
التحقق من وجود main() في -lpthread... نعم
إنشاء Makefile
لعرض سبب فشل تجميع هذا الامتداد، يرجى التحقق من ملف mkmf.log الموجود هنا:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mini_racer-0.2.0/mkmf.log
الدليل الحالي:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0/ext/mini_racer_extension
make "DESTDIR=" clean
الدليل الحالي:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0/ext/mini_racer_extension
make "DESTDIR="
تجميع mini_racer_extension.cc
مضمن في:
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby.h:33:0،
من mini_racer_extension.cc:2:
mini_racer_extension.cc: في الدالة 'VALUE protected_callback(VALUE)':
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/ruby.h:882:52: خطأ:
'__builtin_choose_expr' لم يُعلن في هذا النطاق
OBJ_WB_UNPROTECT((VALUE)(obj)), ((VALUE)(obj))))
^
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/ruby.h:1039:48: ملاحظة في
تعريف الماكرو 'RARRAY_CONST_PTR'
#define RARRAY_CONST_PTR(a) rb_array_const_ptr(a)
^
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/ruby.h:1059:50: ملاحظة في
توسيع الماكرو 'RB_OBJ_WB_UNPROTECT_FOR'
#define RARRAY_PTR(a) ((VALUE *)RARRAY_CONST_PTR(RB_OBJ_WB_UNPROTECT_FOR(ARRAY,
a)))
^
mini_racer_extension.cc:850:9: ملاحظة في توسيع الماكرو 'RARRAY_PTR'
RARRAY_PTR(data->ruby_args));
^
Makefile:206: الوصفة للهدف 'mini_racer_extension.o' فشلت
make: *** [mini_racer_extension.o] خطأ 1
فشل make، كود الخروج 2
ستبقى ملفات Gem مثبتة في
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0 لفحصها.
النتائج مسجلة في
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mini_racer-0.2.0/gem_make.out
حدث خطأ أثناء تثبيت mini_racer (0.2.0)، ولا يمكن لـ Bundler الاستمرار.
تأكد من نجاح أمر `gem install mini_racer -v '0.2.0' --source
'https://rubygems.org/'` قبل التجميع.
في Gemfile:
mini_racer
بالنظر إلى الـ gems قيد التثبيت، أرى هذا (وأعتقد أن هذا ما يعتمد عليه mini_racer):
Fetching libv8 6.7.288.46.1 (x86_64-linux)
Installing libv8 6.7.288.46.1 (x86_64-linux)