8

OSの更新後もrvm環境を損なわないようにするための、より合理化された堅牢なアプローチを求めています。私はMountainLion、rvm 1.18.16、およびreadline、gettext、libxml2、libxslt、qt、gtk+を備えたhomebrewを使用しています-通常私にとって壊れている宝石はnokogiriとcapybara-webkitです

Mountain LionとXCodeを更新してから2回、ネイティブの拡張gemとRubyが破損し、すべてを再び機能させるために時間を費やす必要があります。このようなシステムの更新後にすべてのrvmコンポーネントを更新するためのベストプラクティスに従っているかどうか疑問に思う必要があります。

通常発生するのは、ネイティブ拡張機能を備えたgemが、特にMountain Lionを取り巻くlibxmlの問題で、使用できなくなった古いライブラリにリンクしていることです。すべてのプロジェクトでシステムをオンラインに戻すための基本的な手順は次のとおりです(rvmの下にRubyのバージョンが約8つインストールされているので、これは面倒です!)。

まず、AppStoreからMountainLionとXCodeを更新します。

次に、自作を次のように更新します。

brew update
brew upgrade

次に、ルビーをリストし、それぞれを再コンパイルし始めます...

rvm list
rvm reinstall ruby-1.9.2-p290
rvm reinstall ruby-1.9.3-p392
...

注:私は試しました:

rvm all do reinstall

しかし、それは私にこのエラーを与えました:「再インストール:コマンドが見つかりません」

次に、各ルビーをステップスルーし、ジェムに対して元の状態を実行します(これには、すべてのネイティブ拡張ジェムを再コンパイルするという副作用があります)。

rvm use ruby-1.9.3-p392
gem pristine --all

最後に、各プロジェクトに移動して、以下を実行します。

bundle install

その最後のステップが厳密に必要かどうかはわかりません。一部のプロジェクトは問題ないように見えましたが、そうでないプロジェクトもありましたが、これを実行すると、最後に残った問題が解決されたようです。

確かに、このプロセスを管理するためのより合理化された方法があります!?私はMountainLionとrvmの両方を数か月しか使用していませんが、その間に、2つのシステムアップデートによって作業中のRuby環境のほとんどが停止しました。コンサルタントとしての仕事と多くの開発環境に遭遇したため、Rubyのバージョンをたくさんインストールしているので、これを簡単に再現できるプロセスに落とし込みたいと思います。

何かご意見は?上記をさらに改善することはできますか?

4

1 に答える 1

14

できるよ:

rvm reinstall all

追加--forceして質問をスキップします。

すべての gemを含む完全な再インストールが行われることに注意してください。アクションgem pristineの実行に失敗した gem について通知されるため、出力に注意する必要があります。pristine

于 2013-03-08T02:58:15.290 に答える