لا يمكن لـ Ruby العثور على المكتبات المطلوبة على الرغم من تثبيت GEM
سؤال
لقد قضيت حرفيًا في محاولة لتثبيت Ruby 1.9.2 وأجعلها تعمل مع الأحجار الكريمة:-/ لقد تخليت في النهاية عن جهاز Mac OSX 10.6 الخاص بي وأدلي هو الحالة الحالية على جهاز Ubuntu الخاص بي. أي نصيحة سيكون موضع تقدير كبير!
# ruby test.rb
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- mongo (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from test.rb:1:in `<main>'
# cat test.rb
require 'mongo'
db = Mongo::Connection.new.db("mydb")
# gem which mongo
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/mongo-1.1.2/lib/mongo.rb
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
وفقا لهذه الصفحة: http://docs.rubygems.org/read/chapter/19أنا متموجة أي روبي كنت أستخدمه لمطابقة ما تستخدمه جوهرة:
# which ruby
/usr/local/rvm/bin/ruby
# ls -l `which ruby`
lrwxrwxrwx 1 root root 44 2010-11-17 13:25 /usr/local/rvm/bin/ruby -> /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# which gem
/usr/local/rvm/bin/gem
# gem -v
1.3.7
# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
المحلول
لماذا يتم عرض "RVM" في الخاص بك /usr/local/rvm/
طريق؟ هل قمت بتثبيت على نطاق النظام ، كمسؤول نظام يستخدمه إدارة نظام Ruby على نطاق واسع لعدة مستخدمين؟
هل إضافة [[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'
لك ~/.bashrc
, ~/.bash_profile
أو ~/.profile
(أيهما قمت بتكوينه)؟
للاستخدام الطبيعي ، كل يوم ، أوصي الإعداد الافتراضي لـ RVM:تثبيت RVM, RVM GEMS Management.
ملاحظة للذات: شراء الأسهم في RVM. إنه رائع جدًا.
نصائح أخرى
حاول وضع السطر التالي في البداية
require "rubygems"
هل تعمل تحت Ruby 1.8.7 ، والتي تم تثبيتها مسبقًا افتراضيًا على OS X؟
إذا كان الأمر كذلك ، فإن فرق واحد بين 1.9.1 و 1.9.2 هو ذلك "."
ليس جزءًا من $:
مسار بعد الآن.
أوصي أن تفعل rvm implode
وحذف الإعداد الحالي. ثم استخدم RailsReady البرنامج النصي لإعداد RVM و Ruby بشكل صحيح لك على Ubuntu. من المهم أن تفهم أنه حتى تعرف ما تفعله ، يجب عليك تشغيل البرنامج النصي كمستخدم. امل ان يساعد.
على Linux و OS X ، كان عليّ دائمًا وضع "Rubygems" في البداية. ومع ذلك ، فقد عملت دائمًا بشكل جيد بدون هذا الخط على Windows.