(Ruby 2.5.1) Windows Düzeltmesi – "Böyle Bir Dosya Yüklenemiyor – Sqlite3/Sqlite3_native (LoadError)"

Windows kullanıyorsanız, düzgün bir şekilde “oluşturulması” için harici kitaplıklar gerektiren birkaç değerli taş olduğunu anlamalısınız.

Bu harici kitaplıklar genellikle sisteminizde bulunmaz ve çalışabilmeleri için kurulmaları (ve referans alınmaları) gerekir. Bu nedenle MYSQL2 ve RMagick taşlarının beğenilerinin kurulumu “zor” olarak görülüyor.

SQLite3 kullanıyorsanız, işler biraz farklıdır.

Bu mücevher, çeşitli platformlarda (Windows dahil) işlevsellik sağlamayı amaçlayan birkaç “yapıya” sahiptir. Bu, Ruby’nin önceki sürümlerinde çalışırken, Ruby 2.5.1+ için çalışmaz – bu nedenle gördüğünüz hata…

böyle bir dosya yüklenemiyor — sqlite3/sqlite3_native (LoadError)

Hata, gem’in “mingw32” sürümünün yüklenmesi ve kullanılmaya çalışılmasından kaynaklanır. Gem’in bu sürümü, SQLite çekirdek dosyalarıyla önceden derlenmiştir, ancak Ruby’nin sonraki sürümleriyle kullanıldığında sorunlar yaşar.

Çözüm, gem’i “ruby” platformu (Windows’ta hala iyi çalışıyor) için yüklemektir:

gem kurulumu sqlite3 –platform=ruby

Bu, gem’in “yerel” sürümünü tüm uygun dosyalar vb. ile yükleyecektir – ancak mingw32 sürümünün beğenileriyle birlikte gelen platforma özgü işlevlerin hiçbirini kullanmayacaktır.

Bu, kutudan çıkar çıkmaz %100 çalışacaktır.

Ancak başka bir sorun var. “Paketleyici” kullanırsanız, genellikle yerel mücevher kurulumunu platforma özel bir kurulum lehine geçersiz kılar. Bu, paket güncelleme / paket kurulumunu çalıştırırsanız, muhtemelen mingw32 platformuyla sqlite3 gem’i kuracağı anlamına gelir.

Bu durumda, “gem uninstall” kullanarak ikincisine yapılan *herhangi bir* referansı kaldırmanız gerekir. (Bizim için) tipik olarak şöyle olur:

  • paket güncelleme [installs sqlite3]
  • gem kaldırma sqlite3 [shows selection]
  • “mingw32” varyantını kaldır
  • raylar [should work 100%]

Bu, sistemin gem ile çalışmasını sağlayacaktır.

Büyük sorun, gem’in “mingw32” sürümünü her kullandığınızda, özellikle gem’in belirli öğelerini çağırmak için tasarlanmış bir dizi referansa/çağrıya sahip olmasıdır.

Ruby 2.5.1+ sürümünde – herhangi bir nedenle – bu çağrılar, sistemin en fazla ilerlemeyi sağlayabilmesini sağlamak için tamamen kullanılmaz, dolayısıyla gördüğünüz hata. Bunu düzeltmek için, sisteminizi esasen gem’in yalnızca “yakut” varyantını kullanmaya “zorlayabilmeniz” gerekir.

Açıkçası, bir geliştirme ortamı olarak Linux veya Mac’i kullanıyorsanız – bu tür şeyler nispeten basit bir şekilde önlenebilir. Ama kolay bir şey yapmanın eğlencesi nerede? Windows’u kullanın!

Yorum bırakın

E-posta hesabınız yayımlanmayacak.