سؤال

قمت بالترقية مؤخرا إلى Ubuntu 9.04 ولدي مشكلات باستخدام الأحجار الكريمة. لقد قمت بتثبيت Ruby و Ruygems and Rails باستخدام Apt-Get. ال rails القيادة تعمل.

ثم قمت بعد ذلك بكابيسترانو والأحجار الكريمة الأخرى، مثل Heroku. من أجل القيام بذلك، استخدمت الأمر:

sudo gem install XXX

عندما أريد استخدام cap أمر لا يعمل:

bash: cap: command not found

هو نفسه مع أوامر الأحجار الكريمة الأخرى.

هل لدي شيء خاص للقيام به بحيث تعمل أوامر GEM؟

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

المحلول

أين هي جهرة بلدي؟

يمكنك أن تجد حيث يتم تخزين الأحجار الكريمة الخاصة بك باستخدام gem environment أمر. علي سبيل المثال:

chris@chris-laptop:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.2

  - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/chris/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:

إذا نظرت إلى قسم "GEM Paths:"، يمكنك أن ترى أن الأحجار الكريمة يمكن تخزينها في مكانين على جهاز الكمبيوتر المحمول الخاص بي: /usr/lib/ruby/gems/1.8 أو في .gem دليل في منزلي دير.

يمكنك أيضا معرفة أن الملفات التنفيذية المخزنة في الدليل القابل للتنفيذ والتي في هذه الحالة /usr/bin.

لأن /usr/bin في طريقي هذا يتيح لي تشغيل cap, merb, rails إلخ.

تحديث المسار الخاص بك

إذا لم يكن دليلك القابل للتنفيذ الخاص بك على مسارك (على سبيل المثال، إذا كان ذلك هو /var/lib/gems/1.8/bin)، فأنت بحاجة إلى تحديث متغير المسار الخاص بك.

على افتراض أنك تستخدم شل باش. يمكنك القيام بذلك بسرعة للجلسة الحالية عن طريق كتابة ما يلي في موجه Shell؛ دعونا نتظاهر بأنك تريد إضافة /var/lib/gems/1.8/bin إلى المسار:

export PATH=$PATH:/var/lib/gems/1.8/bin

واضغط على العودة. هذا يلحق الدليل الجديد إلى نهاية المسار الحالي. لاحظ القولون بين $PATH و /var/lib/gems/1.8/bin

لتعيين القيمة لجميع الجلسات، ستحتاج إلى تحرير إما .profile أو .bashrc ملف وإضافة نفس السطر إلى نهاية الملف. أنا عادة تحرير بلدي .bashrc ملف دون سبب آخر غير هذا ما قمت به دائما. عند الانتهاء، احفظ الملف ثم قم بتحديث بيئتك عن طريق كتابة:

bash

في موجه شل. هذا سوف يسبب .bashrc للحصول على reread.

في أي نقطة يمكنك التحقق من القيمة الحالية لل $PATH عن طريق كتابة

echo $PATH

في موجه شل.

إليك عينة من أحد الخوادم الخاصة بي، حيث اسم المستخدم الخاص بي هو "كريس" واسم الجهاز هو "كريس كمبيوتر محمول":

chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$ 
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 

جوهرة بلدي لن يحمل!

"لن يتم تحميل GEMS Ruby على الرغم من تثبيتها"يسلط الضوء على مشكلة شائعة باستخدام إصدارات مختلفة متعددة من روبي؛ في بعض الأحيان يخرج مسار بيئة الأحجار الكريمة والأحجار الكريمة من المزامنة:

rb(main):003:0> Gem.path

=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit

أي عملية روبي هنا تبحث فقط في مكان واحد لجحائها.

:~/$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
  - EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1
     - /home/mark/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

انظر بعناية في إخراج بيئة GEM:

  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1

هذا ليس نفس المسار كما عاد بواسطة Gem.Path:

["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]

من الصعب قول ما سببه بالضبط lib/ruby للتغيير إلى lib/ruby1.9 ولكن على الأرجح كان المطور يعمل مع إصدارات روبي متعددة. سريع mv أو ln سوف تحل المشكلة.

إذا كنت بحاجة إلى العمل مع إصدارات Ruby متعددة، فعليك استخدامها RVM.

نصائح أخرى

كما لوحظ من Chris، تحتاج إلى إضافة بيئة الأحجار الكريمة إلى طريقك. يمكنك القيام بذلك عن طريق:

echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc

المجلد الذي الأحجار الكريمة مخزن يجب أن يكون على طريقك، على سبيل المثال لي هو:

/ home/victor/.gem/ruby/1.8/bin.

تحقق من المسار الخاص بك عن طريق الكتابة

echo $PATH

يقوم بذلك عند تثبيت Ruygems، الآن في Ubuntu 9.04، لدي هذه المشكلة. لقد لاحظت أنه في "GEM Englience" الدليل القابل للتنفيذ هو "/var/lib/gems/1.8/bin"، بدلا من "/ USR / BIN" ... هذه مشكلة مع Ruygems أو مع Ubuntu 9.04؟

الحل الذي واجهته هو إضافة "/var/lib/gems/1.8/bin" إلى مسار $ الخاص بي القيام بذلك: مسار التصدير = $ مسار: /var/lib/gems/1.8/bin لكنه لا يتم حفظه ... كيف يمكنني حفظ طريقي؟

شكرا...

Resultvi: ColoQuei o تصدير مسار = $ مسار: /var/lib/gems/1.8/bin no ~ / .bashrc! =

MKMF جزء من حزمة Ruby1.9.1-Dev. تحتوي هذه الحزمة على ملفات الرأس اللازمة لمكتبات التمديد ل Ruby 1.9.1. تحتاج إلى تثبيت حزمة Ruby1.9.1-Dev عن طريق القيام:

Sudo Apt - احصل على تثبيت Ruby1.9.1-Dev

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