2

私は Octopress のブログに取り組んでいるので、別の gemset をセットアップしてrvm use gemset octopress. それはすべてうまくいきました。しかし、新しい ZSH タブ (関連する場合は OS X Mountain Lion を使用しています) を開くと、以前使用していた gemset に戻りました。私はその時点でそれを知らなかったので、私は走っbundle installた. Octopress gemset に既にインストールしたすべての gem がインストールされていることに気付いたので、何が起こっているのかを突き止めました。質問: これを元に戻す簡単な方法があるbundle installので、他の gemset にこれらの gem がすべて含まれないようにするか、gem ごとに手動でアンインストールする必要があります (それらはかなりの数です)。ありがとう。

4

2 に答える 2

2

数日前、私はこれと同じ問題を (もう一度) 抱えていて、次のコマンドを書いて解決しました:

$ threshold="20m"; dir="`rvm gemdir`/gems"; find -X "$dir" -type d -maxdepth 1 -mindepth 1 -mtime -"$threshold" | xargs basename | sed -e 's/-\(\([0-9]\{1,\}.\)*[0-9]\{1,\}\)$/ \1/g' -e 's/\(.*\) \(.*\)/gem uninstall \1 --version \2 --executables --ignore-dependencies \&/g'

指定されたしきい値 (20 分以上) 後に追加された各 gem をアンインストールするために必要な数のコマンド ラインを生成します。次に、コマンド プロンプトでこれらの行をコピー アンド ペーストするだけです。

私のコマンドを実行する前に:

  1. 現在の宝石セットが台無しになっているものであることを確認してください
  2. thresholdをニーズに合った値に設定します

たとえば、上記のコマンドは次の行を生成できます。

gem uninstall elasticsearch --version 1.0.1 --executables --ignore-dependencies &
gem uninstall elasticsearch-api --version 1.0.1 --executables --ignore-dependencies &
gem uninstall elasticsearch-extensions --version 0.0.14 --executables --ignore-dependencies &
gem uninstall elasticsearch-transport --version 1.0.1 --executables --ignore-dependencies &

追加情報が必要な場合は、ここに記事を投稿しました: http://noteslog.com/post/how-to-undo-a-wrong-bundle-install/

于 2014-03-19T23:15:37.917 に答える