سؤال

حسنا، لقد قضيت 4 ساعات في محاولة لهذا الرقم واحد دون نجاح. لقد حاولت كل المشتبه بهم المعتادين وغوغليد كل مجموعة من روبي 1.9.1، مسار الحمل، والأحجار الكريمة، ماكنتوش، فري، الجمبري وغيرها من الاشياء. خلاصة القول هي هذه:

عند I تجميع ruby1.9.1-P129 من مصادر على نظام التشغيل Mac OS X 10.5، المسار تحميل الافتراضي ($ :) I تحصل عليه هو:

ruby -e "puts $:"
/usr/local/lib/ruby/gems
/usr/local/lib/ruby/site_ruby/1.9.1
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.9.1
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.9.1
/usr/local/lib/ruby/1.9.1/i386-darwin9.7.0
.

وعندما أقوم بتثبيت جوهرة الجمبري، على سبيل المثال، وأحصل على:

gem which prawn
(checking gem prawn-0.5.0.1 for prawn)
/prawn.rb

وعندما أحاول تتطلب ذلك أحصل على:

ruby -e "require 'prawn'"
-e:1:in `require': no such file to load -- prawn (LoadError)
    from -e:1:in `'

والطريقة الوحيدة لقد كنت قادرا على حل هذه هو أن تفعل شيئا غبيا مثل هذا:

$: << "/usr/local/lib/ruby/gems/1.9.1/gems/prawn-0.5.0.1/lib"

وهذا، بالطبع، أمر مثير للسخرية تماما. لذا فإن السؤال هو كيف يمكنني الحصول على روبي 1.9.1 الاعتراف واتبع مسار الأحجار الكريمة الصحيح؟ أنا لم أصب هذه المسألة مع 1.8.7 ذلك أفترض أنه 1.9.1 معين. أشعر أنا في عداد المفقودين شيء واضح تماما هنا وأي مساعدة سيكون محل تقدير كبير!

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

المحلول

ووضع GEM_PATH = / البيرة / المحلية / ليب / روبي / الأحجار الكريمة / 1.9.1

وحل المشكلة. كنت أعرف أنه كان شيء بسيط. فقط يفاقم لي أن الأمر استغرق ALL DAY لمعرفة !! ويرجع ذلك إلى وجود أبدا هذه المسألة مع 1.8.7، وبالطبع لا RTFM !!

نصائح أخرى

ونفس المشكلة على الكرمية كوبونتو.

والتركيب:

$ sudo apt-get install build-essential ruby1.9.1-full libsqlite3 libsqlite3-dev rubygems1.9
$ sudo gem install sqlite3-ruby rails thin --no-rdoc --no-ri

والنتيجة:

$ ruby -e "require 'rubygems'; require 'sqlite3'" 
-e:1:in `require': no such file to load -- sqlite3 (LoadError)
        from -e:1:in `<main>'   

والحل:

$ export GEM_PATH=/usr/lib/ruby1.9.1/gems/1.9.1/
require 'rubygems'
require 'prawn'

وإذا لم الأمور تغيرت في 1.9 التي لم تعد بحاجة إلى تتطلب جواهر روبي أولا.

وفي المرة القادمة لديك مثل هذه القضية، لا ننسى لتشغيل gem env من سطر الأوامر. هذا هو ما يحدث على ويندوز، ولكن المبدأ هو نفسه الى حد كبير:

C:\Documents and Settings\a.grimm>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby19/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: C:/Ruby19/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby19/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/Ruby19/lib/ruby/gems/1.9.1
     - C:/Documents and Settings/a.grimm/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/

وأنا أبحث عن إجابة مختلفة لنفس المشكلة. في بعض الحالات (أي نظام بدء المهام) تحديد متغيرات البيئة قبل تدير روبي أمر مستحيل.

هل هناك طريقة في إدارة (> = 1.9.1 الخامس) رمز روبي تتطلب الأحجار الكريمة؟ دون تحديد GEM_PATH؟

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