it-swarm.asia

لا يمكن تحميل هذا الملف - sqlite3/sqlite3_native (LoadError) على روبي على القضبان

عندما أحاول إعداد التثبيت الأساسي وبدء تشغيل الخادم باستخدام Rails 4.0.0 على Ruby 2.0.0 ، أواجه رسالة الخطأ التالية.

/usr/local/lib/Ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
    from /usr/local/lib/Ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
    from /home/penchal/new/site/config/application.rb:7:in `<top (required)>'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/railties-4.0.0/lib/Rails/commands.rb:76:in `require'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/railties-4.0.0/lib/Rails/commands.rb:76:in `block in <top (required)>'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/railties-4.0.0/lib/Rails/commands.rb:73:in `tap'
    from /usr/local/lib/Ruby/gems/2.0.0/gems/railties-4.0.0/lib/Rails/commands.rb:73:in `<top (required)>'
    from bin/Rails:4:in `require'
    from bin/Rails:4:in `<main>'

كيف يمكنني تجنب رسالة الخطأ هذه والمضي قدمًا؟

80
Penchala Reddy Audireddy

ابحث عن ملف sqlite3 gemspec الخاص بك. مثال واحد هو /usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec

ويندوز: C:\Ruby21\lib\Ruby\gems\2.1.0\specifications.

يجب عليك ضبط وفقا لمسار روبيجم وإصدار sqlite3. قم بتحرير الملف أعلاه وابحث عن السطر التالي

s.require_paths=["lib"]

تغييره ل

s.require_paths= ["lib/sqlite3_native"]
118
Harish Gopalakrishnan

راجع : https://stackoverflow.com/a/39136421/6755206

لحسن الحظ ، ليس عليك التبديل إلى الإصدار 2.0 من Ruby
هناك حل لهذه المشكلة ، بعد محاولة لا نهاية لها ...

https://github.com/hwding/sqlite3-Ruby-win


خطوات

قبل

  • gem uninstall sqlite3 --all

مصدر

بناء

  • تشغيل سطر الأوامر في دير المستخرجة
  • تأكد من تثبيت برنامج التحويل البرمجي C وإضافته إلى PATH
  • gem install bundler
  • bundle install
  • rake native gem
  • ستجد دير اسمه "pkg" المتولدة

التثبت

  • أدخل dir "pkg"
  • gem install --local sqlite3-xxx.gem ('xxx' هو رمز الإصدار)

التحقق من

  • irbname__
  • require 'sqlite3'
19
hwding

منذ تم دمج طلب السحب رقم 229 ، يمكن تثبيت sqlite3 لكل مفتاح git:. من الممكن استخدام sqlite3 بسهولة من خلال هذه الإضافة في Gemfile:

gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-Ruby"

هذا يعمل على RubyInstaller 2.4 وأحدث. يقوم تلقائيًا بتثبيت حزمة pacman المطلوبة mingw-w64-x86_64-sqlite3 عند تشغيل bundler install.

هناك بعض التلميحات الإضافية لـ Rails على Windows في RubyInstaller2 FAQ .

16
Lars Kanis
gem uninstall sqlite3 --all
ridk exec pacman -S mingw-w64-x86_64-sqlite3
gem inst sqlite3 --platform Ruby

هذا حل المشكلة بالنسبة لي.

Windows 10
Ruby 2.5.3
Rails 5.2.2
13
Edson Momm

فقط قم بتحرير Gemfile وأضف gem 'sqlite3', platform: :Ruby.

9
Ram

لا يوجد تجميع للمصادر أو تنزيل مكتبات تم تجميعها مسبقًا سيؤدي إلى حل هذه المشكلة ، صدقوني لقد جربت كل شيء ، المشكلة تكمن في مكان آخر. هذه هي الطريقة التي يعمل بها على النوافذ:

bundle update sqlite3

من المحتمل أن تحصل على خطأ آخر مماثل بعد هذا الخطأ المتعلق بـ nokogiri ، قم بإصلاحه باستخدام الأمر:

bundle update nokogiri

استمتع تطبيق روبي الخاص بك!

5
Norman Seßler

أفضل التثبيت الرسمي

ايم باستخدام القضبان 5.2.1p57 ، ويندوز 10 مجرد تشغيل الخطوط التالية حل مشكلة

gem uninstall sqlite3

وإلغاء جميع الإصدارات المثبتة. مرة أخرى تنفيذ الأوامر التالية

gem install sqlite3 --platform=Ruby

لقد انتهيت الآن. اسمحوا لي أن أعرف إذا استمرت المشكلة.

4
Pradeep Sapkota

عملت إزالة وإعادة تثبيت جوهرة sqlite3 بالنسبة لي.

gem uninstall sqlite3

bundle
4
JackHasaKeyboard

هذا عملت لي:

gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-Ruby", branch: "add-gemspec"
4
Bolan Oluwa

لتجنب هذا الخطأ ، تأكد من إضافة gem sqlite3 إلى Gemfile الخاص بك. ثم استخرج "exe" s و "dll" s من رابط تنزيل Sqlite إلى مجلد bin الخاص بـ Ruby. إذا استمرت المشكلة. جرب هذا:

bundle update

gem uninstall sqlite3

عند الاختيار بين إصدارات متعددة من sqlite3 ، اختر الخيار الأخير "كافة الإصدارات". أدخل الرقم الأخير هنا

اختر جوهرة لإلغاء التثبيت:
(1). sqlite3-1.3.13
(2). sqlite3-1.3.13-إلى x64 mingw32
(3). جميع الإصدارات
> 3.
.
إذا قمت بإزالة هذه الأحجار الكريمة ، فلن تتحقق هذه التبعيات.
متابعة إلغاء التثبيت؟ [YN]
> y

gem install sqlite3 --platform=Ruby

Rails s

هذا يجب أن تعمل.

اقرأ خلال هذا الرابط لمزيد من التوضيح إذا كان أعلاه يعمل لك.

2
Saurabh Borse

إذا لم تنجح الإجابة العليا ، فإن الإصلاح الذي اكتشفته هو ببساطة الانتقال إلى ملف Gemfile الخاص بك وإضافة رقم الإصدار 1.3.11 (بدلاً من 1.3.9) مباشرةً بعد sqlite3. لذا يجب الآن قراءة السطر الموجود في Gemfile:

# Use sqlite3 as the database for Active Record
gem 'sqlite3',  '1.3.11'
2
Andrew Britton

حصلت على نفس الخطأ عندما قمت بترقية إصدار Ruby الخاص بي إلى 2.5.X. تتبعت مع Rails task --trace أن sqlite3 غير متاح للإصدار 2.5 ، مما أقوم بتغيير GemFile تغيير جوهرة "sqlite3" إلى "sqlite3-Ruby" ، بعد أن قمت بإلغاء تثبيت gem "sqlite3" وأخيراً قمت بتشغيل bundle install.

لا أعرف ما هو السبب ... قرأت أن "sqlite3" غير متاح لـ Ruby 2.5 حتى الآن ، لكنني لست متأكدًا.

2
Adrian Higuita

هذا ما حدث لي كذلك. اتضح أنني قمت أصلاً بتثبيت SQLite 1.3.10 ، لكن بعد ذلك قمت بنسخ بعض الأحجار الكريمة من مشروع سكريبتس Rails التعليمي وأدرجته SQLite 1.3.9. ثم حصلت على نفس الخطأ الذي ارتكبته. لقد غيرتها مرة أخرى إلى 1.3.10 وعملت.

(هذا على Windows 7. كنت أقوم بتشغيل البرنامج التعليمي screencast على Cloud9 IDE).

1
Paul Macias

هذا هو الحل الوحيد الذي نجده بالنسبة لي ، مشتق من بعد إصدار GitHub هذا :

  1. الحصول على نسخة autoconf من مصادر sqlite3 من https://www.sqlite.org/download.html .
  2. ابدأ تشغيل MSYS Shell.
  3. في الموقع الذي تم فك حزمه لـ sqlite3 ، قم بتكوين إصدار ثابت فقط لتجنب الاحتفاظ DLL على PATH: ./configure --disable-shared.
  4. بناء وتثبيته: make install DESTDIR=/c/dev/Ruby/tmp. يمكنك تغيير الدليل.
  5. افتح الأمر موجه النوافذ وقم بتشغيل gem uninstall sqlite3 --all لإزالة جميع جواهر sqlite3 الموجودة.
  6. مرة أخرى عند الأمر موجه من النوافذ ، قم ببناء وتثبيت sqlite3 gem: gem install sqlite3 --platform=Ruby -- --with-sqlite3-include=C:\dev\Ruby\tmp\usr\local\include --with-sqlite3-lib=C:\dev\Ruby\tmp\usr\local\lib. تتضمن تلك الدلائل و lib قد تكون مختلفة ، لذلك تحقق في البداية.

أنا أستخدم Ruby الإصدار 2.5.1 و Rails الإصدار 5.2.0 على نظام التشغيل Windows 10.

1
ismailarilik

محدث

إضافة أدناه إلى Gemfile ثابتة بالنسبة لي: gem 'sqlite3'، '1.4.0'، منصات:: Ruby

1
Ryan

لقد وجدت ذلك! رأيت هذا https://www.youtube.com/watch؟v=lsrzvX0qzmA
أنا تثبيت: Rails الإصدار: 5.2.1 روبي الإصدار: 2.5.3 (x64-mingw32) Sqlite الإصدار 1.3.13
ولدي مشكلتك ... حل بلدي:

  1. في مجلد التثبيت الخاص بك مثل C:\Ruby25-x64\lib\Ruby\gems\2.5.0\gems \
    لديك مجلدات: "sqlite3-1.3.13" "sqlite3-1.3.13-x64-mingw32"
  2. إيجاد ملف
    C:\Ruby25-إلى x64\ليب\روبي\الأحجار الكريمة\2.5.0\الأحجار الكريمة\sqlite3-1.3.13\ليب\sqlite3\sqlite3_native.so
  3. انسخها في C:\Ruby25-x64\lib\Ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3\2.5\sqlite3_native.so (قد تكون المجلدات غير موجودة - إنشاء و معجون)
0
Roman Dergunov

بالنسبة لمستخدمي OSX ، يمكن أن ينتج ذلك عن استخدام مدير Ruby (مثل rvm).

إذا قمت بتعديل ~/.bash_profile وقمت بإضافة هذا:

[[ "$APP" = *"/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"* ]] && {
  echo Xcode detected
  rvm use system
}

يمكنك حل المشكلة. أعد تشغيل Xcode قبل محاولة البناء مرة أخرى.

يتم تعقب المشكلة الفعلية هنا: https://openradar.appspot.com/28726736 ).

يذهب الفضل الكامل إلى: https://egeek.me/2018/04/14/ipa-export-error-in-xcode-and-Ruby/

0
Julian K