لا يمكن لـ Discourse العثور على الجواهر المحددة في المكون الإضافي

مرحباً! أقوم بتطوير إضافة لتمكين تسجيل الدخول باستخدام Ethereum على Discourse. المشكلة هي أنه عند تثبيت الإضافة، أحصل على خطأ في إحدى التبعيات (rbsecp256k1).

ERROR:  Error installing rbsecp256k1:
	ERROR: Failed to build gem native extension.

    current directory: /var/www/discourse/plugins/sdp/gems/2.7.5/gems/rbsecp256k1-5.1.0/ext/rbsecp256k1
/usr/local/bin/ruby -I /usr/local/lib/ruby/site_ruby/2.7.0 -r ./siteconf20220303-1234-gyqjb.rb extconf.rb
extconf.rb:3:in `require': cannot load such file -- mini_portile2 (LoadError)
	from extconf.rb:3:in `<main>'

extconf failed, exit code 1

أتساءل ما الذي قد يحدث بما أنه يعمل في بيئة التطوير إذا قمت بتثبيت التبعيات يدوياً.

هذه الجوهرة لها تبعيات على مستوى نظام التشغيل تحتاج إلى تثبيتها، وفقًا لوثائقهم: GitHub - etscrivner/rbsecp256k1: Compiled Ruby wrapper around libsecp256k1 for secp256k1 ECDSA.

نعم، لدي هذه مثبتة بالفعل. تحدث المشكلة عندما لا يمكنه العثور على mini_portile2، وهو أحد الاعتماديات الخاصة به.

إعجاب واحد (1)

كيف قمت بتعريف الاعتمادية mini_portile2 في المكون الإضافي الخاص بك؟

إعجاب واحد (1)

لقد واجهت نفس المشكلة في تثبيت نفس الاعتمادية للجوهرة.

ألق نظرة

سأكون سعيدًا لو كان هناك حل أكثر مباشرة.

إعجابَين (2)

ألا يمكنك فقط إسقاط هذا بما أنه موجود بالفعل في نواة Discourse؟

إعجاب واحد (1)

أعني، يمكنني ذلك ولكن المشكلة ليست مع هذه الجوهرة (gem) المشكلة مع rbsecp256k1، عندما تحاول البناء لا تجد الجوهرة (gem) mini_portile2 (كما تقول الرسالة: cannot load such file -- mini_portile2 (LoadError) from extconf.rb:3:in \u003cmain\u003e')

أنت تعيد نفس النقاش الذي طرحه @fzngagan ، انظر رابطه أعلاه: Having a hard time installing `eth` gem in a plugin in production - #3 by fzngagan ، ربما يمكنك المساهمة في حله.

الحل الذي قدمه يعمل، لكنني لا أعتبره خيارًا صالحًا، فلن يكون أي مستخدم مستعدًا للقيام بكل ذلك لمجرد إضافة مكون إضافي. كنت أرغب فقط في معرفة ما إذا كان بإمكان أي شخص التفكير في نهج أفضل (الأقرب إلى مجرد إضافة المستودع وينتهي الأمر). كما قال @fzngagan نفسه:

كنت سأحب ذلك لو كان هناك حل أكثر مباشرة.

والآن لدينا موضوعان حول نفس المشكلة بالضبط…

إعجاب واحد (1)

لقد كنت أضيقه، لا يبدو أنه متعلق بالجواهر، يبدو أنه متعلق بـ extconf.rb. لقد جربت مع بعض الجواهر الأخرى ذات الإعداد الأكثر تعقيدًا (ruby-magic و libusb)، وكلاهما لا يعمل (لسبب مختلف) وكل ما لديهما مشترك هو التبعيات في extconf.rb.

إعجاب واحد (1)

تم إصلاح هذه المشكلة في أحدث فروع tests-passed و stable من discourse.

إعجابَين (2)

ليس بعد، لم يتم دمج طلب السحب (PR) بعد.

إعجاب واحد (1)

@RGJ كان هناك بعض حالات فشل الاختبار التي كان يجب معالجتها أولاً. لقد تم دمجها الآن.

إعجابَين (2)