سؤال

ليرة تركية؛ د:

$ gem install rubyzip 
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /Users/darth/.rvm/gems/ruby-1.9.2-p136/gems/rubyzip-0.9.4/README

والآن بالتفصيل.لست متأكدًا من المعلومات ذات الصلة، لذا سأقول كل شيء.

  1. لقد قمت مؤخرًا بالترقية من OS X Snow Leopard إلى Lion (قمت أيضًا بترقية Xcode إلى الإصدار 4.2)
  2. كل شيء سار على ما يرام لفترة من الوقت
  3. قررت اليوم تثبيت بعض الأحجار الكريمة (RSpec، Cucumber)، وأنا بدأت في الحصول على تحذيرات تنسيق التاريخ كلما فعلت أي شيء مع RubyGems
  4. قررت تحديث RubyGems، من 1.3.6 (لست متأكدًا هنا) إلى 1.8.11 الحالي
  5. استمر التحذير في الظهور، لذا حاولت إزالة الأحجار الكريمة مع rvm gemset empty, ، والذي فشل أيضًا بسبب خطأ في رفض بعض الأذونات (نعم يا غبي لم أكتبه)
  6. ونتيجة لذلك، أنا إعادة تثبيت روبي عبر rvm remove 1.9.2 و rvm install 1.9.2 (لم أنس ذلك rvm use 1.9.2 --default بعد ذلك.
  7. لقد قمت بتثبيت المجمع gem install bundle ثم حاول ذلك bundle install في مشروع Rails 3.1.1 الخاص بي، ولكنه ينتهي بالخطأ

    Installing rubyzip (0.9.4) 
    Errno::EPERM: Operation not permitted - /Users/darth/.rvm/gems/ruby-1.9.2-p136/gems/rubyzip-0.9.4/README
    An error occured while installing rubyzip (0.9.4), and Bundler cannot continue.
    Make sure that `gem install rubyzip -v '0.9.4'` succeeds before bundling.
    
  8. gem install rubyzip -v '0.9.4' يعطي الخطأ المذكور أعلاه

  9. يشير ملف README إلى تنزيل المصدر والتثبيت من هناك عبر ruby install.rb, ، والذي ينتهي أيضًا بالخطأ

    $ ruby install.rb 
    /Users/darth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/fileutils.rb:841:in `install': wrong number of arguments (4 for 3) (ArgumentError)
    from install.rb:21:in `block in <main>'
    from install.rb:18:in `each'
    from install.rb:18:in `<main>'
    
  10. حتى إجراء الاختبارات على Rubyzip ينتهي بمجموعة من الأخطاء

    $ rake test
    rake/gempackagetask is deprecated.  Use rubygems/package_task instead
    rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
    /Users/darth/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -C test alltests.rb
    <internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- stdrubyexttest (LoadError)
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from alltests.rb:5:in `<main>'
    rake aborted!
    Command failed with status (1): [/Users/darth/.rvm/rubies/ruby-1.9.2-p136/b...]
    
    Tasks: TOP => test
    (See full trace by running task with --trace)
    
  11. لقد نفدت أفكاري، ماذا يمكنني أن أفعل؟

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

المحلول

لست متأكدًا حقًا من سبب ذلك، لكنني تمكنت من إصلاحه عن طريق القيام بما يلي.

نظرًا لأن إعادة تثبيت Ruby 1.9.2 لم يساعدني، فقد قررت أن أكون أكثر جذرية وانتقلت إلى rvm.لقد اكتشفت أنه تم تثبيت الإصدار 1.1.something، والذي يبلغ عمره حوالي 9 أشهر.

لقد حاولت التحديث، لكنه لم يساعد، لذلك rvm implode فعلت الحيلة.حتى أنني اضطررت إلى ذلك sudo rm -rf ~/.rvm, ربما لأنني تمكنت من إفساد بعض عمليات تثبيت الأحجار الكريمة عن طريق إضافة sudo لهم.

بعد إعادة التثبيت rvm وإعادة تثبيت 1.9.2، يبدو أن كل شيء يعمل بشكل جيد الآن، حتى مع Xcode 4.2.

الدرس المستفاد، rm -rf وإعادة التثبيت أفضل من محاولة الترقية من إصدار قديم :)

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