جوهرة sqlite3-روبي:فشل في إنشاء امتداد أصلي للجواهر

StackOverflow https://stackoverflow.com/questions/43778

  •  09-06-2019
  •  | 
  •  

سؤال

تحديث: تحقق من سؤال المتابعة هذا: تحديث الجوهرة على نظام التشغيل Windows - هل هو معطل؟


على نظام التشغيل Windows، عندما أفعل هذا:

gem install sqlite3-ruby

أحصل على الخطأ التالية:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
        ERROR: Failed to build gem native extension.

c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --platform Win32
checking for fdatasync() in rt.lib... no
checking for sqlite3.h... no

nmake
'nmake' is not recognized as an internal or external command,
operable program or batch file.


Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out

نفس الشيء يحدث مع جوهرة البركوت.يبدو أنني أتذكر أن هذه الجواهر تم تثبيتها بشكل جيد على < 1.0 جواهر، لكنني الآن على 1.2.0، وقد سارت الأمور بشكل خاطئ.

لقد حاولت هذا أيضًا:

gem install sqlite3-ruby --platform Win32

وغني عن القول أن هذا لا يعمل أيضًا (نفس الخطأ)

هل يعرف أحد ما الذي يحدث هنا وكيفية إصلاح هذا؟


تحديث: تحقق من سؤال المتابعة هذا: تحديث الجوهرة على نظام التشغيل Windows - هل هو معطل؟

هل كانت مفيدة؟

المحلول

كما يقترح ناثان، يبدو أن هذا مرتبط بحقيقة أن أحدث الإصدارات من جواهر sqlite3-Ruby وhpricot لا يبدو أنها تحتوي على إصدارات Windows.إليك ما يجب فعله عند مواجهة هذا الموقف (لاحظ أن اسم الجوهرة يتم وضع حرف بدل عليه تلقائيًا، لذا يمكنك الكتابة فقط SQL واحصل على قائمة بجميع الأحجار الكريمة التي تبدأ بـ SQL):

$ gem list --remote --all sqlite

*** REMOTE GEMS ***

sqlite (2.0.1, 2.0.0, 1.3.1, 1.3.0, 1.2.9.1, 1.2.0, 1.1.3, 1.1.2, 1.1.1, 1.1)
sqlite-ruby (2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2)
sqlite3-ruby (1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.6.0, 0.5.0)

ثم يمكنك اختيار الإصدار الذي ترغب في تثبيته:

gem install sqlite3-ruby -v 1.2.3

لتثبيت hpricot بنجاح، قمت بما يلي:

gem install hpricot -v 0.6

بشكل مزعج، القيام ب gem update يحاول تحديث الأحجار الكريمة إلى أحدث إصداراتها المعطلة على نظام التشغيل Windows.عندما يواجه روتين التحديث خطأً، فإنه يخرجك من العملية برمتها.هناك حل (اختراق) لهذه المشكلة هنا.

فهل هذه المشكلة هي خلل في الأحجار الكريمة؟هل يجب ألا تكتشف الأحجار الكريمة النظام الأساسي تلقائيًا وتقوم بتثبيت أحدث إصدار متوافق؟

نصائح أخرى

واجهت نفس المشكلة على Ubuntu، وهذا حل المشكلة بالنسبة لي:

http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html

هل من الممكن أن الإصدار الأحدث لم يتم نقله إلى Win32 بعد؟نظرًا لأن هذه الجوهرة المحددة تحتوي على روابط للتعليمات البرمجية المجمعة، فإنها تتطلب جوهرة خاصة بالمنصة.إذا فرضت تثبيت الإصدار 1.2.3 بدلاً من الإصدار 1.2.4 الحالي، فسيتم تثبيت الإصدار الخاص بالنظام الأساسي، ولكن عندما أسمح لـ Gem بمحاولة تثبيت الإصدار الحالي، أحصل على الإصدار 1.2.4 العام (في الأحجار الكريمة) مجلد Library، فهو يفتقر إلى اللاحقة -x86-mswin32 الموجودة في أسماء مجلدات sqlite3-Ruby الأخرى.

ربما يستطيع شخص آخر الإجابة عن كيفية تعامل الأحجار الكريمة مع الأحجار الكريمة الخاصة بالمنصة.هل يتم تحميل جواهر منفصلة لكل نظام أساسي ويختار برنامج الأحجار الكريمة أي منها سيتم سحبه؟

الأول من sqlite.org(http://www.sqlite.org/download.html)
تحميل ->
الثنائيات المترجمة مسبقًا: sqlite-dll-win32-x86-3071700.zip
وكود المصدر: sqlite-autoconf-3071700.tar.gz
ثم استخرج كـ:

-include
    --sqlite3.h
    --sqlite3ext.h
-lib
    --shell.c
    --sqlite3.c
    --sqlite3.def
    --sqlite3.dll

جوهرة التثبيت الأخيرة مثل:

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=path\to\include  
 --with-sqlite3-lib=path\to\lib --no-ri --no-rdoc

حظ سعيد!

لقد واجهت هذه المشكلة أيضًا.ومن الجدير بالذكر أن الفرق بين 1.2.3 و1.2.4 ليس كبيرًا.هنا 1.2.4.ملاحظات الإصدار:

اسم الإصدار:1.2.4

ملحوظات:يقوم هذا الإصدار بتحديث ملف C الذي تم إنشاؤه فقط لتعكس تغييرات التوافق التي تم إجراؤها على ملف SWIG.لا تتأثر التصميمات الثنائية (على سبيل المثال ، Windows) ، ولا تحتاج إلى تحديث.بشكل عام ، لن تحتاج إلى هذا التحديث إلا إذا كنت تستخدم إصدارًا من Ruby قبل 1.8.6.(مصدر: 1.2.4.ملاحظات الإصدار)

نأمل أن يساعد الآخرين!

واجهت نفس المشكلة على نظام التشغيل Windows وقمت بتثبيت MinGWhttp://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/downloadوذهبت المشكلة :-)

C:> GEM Install HPRICOT تم تثبيته بنجاح HPRICOT-0.8.2-X86-MSWIN32 1 GEM تثبيت وثائق RI لـ HPRICOT-0.8.2-X86-MSWIN32 ...تثبيت وثائق RDoc لـ hpricot-0.8.2-x86-mswin32...

C:> GEM تثبيت Ruby-Postgres تم تثبيته بنجاح Ruby-Postgres-0.7.1.2006.04.06-X86-MSWIN32 1 GEM تثبيت وثائق RI لـ Ruby-Postgres-0.7.1.2006.04.06-X86-MSWIN32 ...تثبيت وثائق RDoc لـ Ruby-postgres-0.7.1.2006.04.06-x86-mswin32...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top