質問

TL; DR ジェネラコディセタグプレ


そして今詳細に。どの情報が関連しているかわからないので、すべてを言うつもりです。

  1. 最近、OS X Snow LeopardからLionにアップグレードしました(Xcodeも4.2にアップグレードしました)
  2. しばらくの間はすべて正常に機能しました
  3. 今日、私はいくつかのgem(RSpec、Cucumber)をインストールすることに決め、RubyGemsで何かをするたびに日付形式の警告を受け取り始めました
  4. RubyGemsを1.3.6(ここではわかりません)から現在の1.8.11に更新することにしました
  5. 警告がポップアップし続けたので、rvm gemset emptyを使用してジェムセットを削除しようとしました。これも、許可が拒否されたために失敗しました(はい、私はそれを書き留めていませんでした)
  6. その結果、rvm remove 1.9.2rvm install 1.9.2を介して Rubyを再インストールしました(その後、rvm use 1.9.2 --defaultを忘れることはありませんでした。
  7. bundler gem install bundleをインストールしてから、Rails 3.1.1プロジェクトでbundle installを生成しようとしましたが、エラーで終了します

    $ 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
    

  8. gem install rubyzip -v '0.9.4'は上記のエラーを出します

  9. READMEファイルには、ソースをダウンロードし、そこからruby install.rbを介してインストールするように指示されていますが、これもエラーで終了します

    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.
    

  10. ruby​​zipからテストを実行しても、多くのエラーが発生します

    $ 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>'
    

  11. アイデアが足りないのですが、どうすればよいですか?

役に立ちましたか?

解決

これの原因はよくわかりませんが、次のようにして修正することができました。

Ruby 1.9.2を再インストールしても効果がなかったため、さらに抜本的に取り組むことにし、rvmに移行しました。バージョン1.1.somethingがインストールされていることがわかりました。これは約9か月前のものです。

更新しようとしましたが、役に立たなかったため、rvm implodeでうまくいきました。おそらく、sudo rm -rf ~/.rvmを追加して、いくつかのgemインストールを台無しにしたためか、sudoを生成する必要がありました。

rvmを再インストールして1.9.2を再インストールした後、Xcode 4.2を使用しても、すべてが正常に機能しているようです。

教訓、rm -rfと再インストールは、1年前のバージョンからアップグレードするよりも優れています:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top