2

アップデート

私の無知を許してください、私が本当にRubyGemsを意味したとき、私は彼にrvmについて尋ねたと思います。そして、彼がRubyGemsについて考えているのは、少なくとも過去にいくつかの論争があったように思われるからだと思います。http: //stakeventures.com/articles/2008/12/04/rubygem-is-from-mars- aptget-is-from-venus。したがって、以下の質問についてはs / rvm / RubyGems/gを参照してください。

更新を終了

私のサーバー管理者は、Debianでrvmを使用することに少し警戒しています。これが彼の言うことです:

残念ながら、rvmシステム全体がDebianのようなパッケージングシステムと適切に相互作用しないため、異なる時間にデプロイを行う場合、デプロイするのは悪夢です。[さまざまなシステムなどでさまざまなバージョンのモジュールが簡単に作成される可能性があり、Debianパッケージングシステム全体でrvmの踏みつけに対処する必要があります。]

彼がここで言っているのは、複数のサーバーでアプリを実行することであり、1つのサーバーをアップグレードすると、深刻な問題が発生することになると思います。

彼の懸念に対処する方法はありますか?

4

3 に答える 3

3

RVMは、debianパッケージシステムで「ストンプ」を形作ったり形作ったりすることは決してありません。RVMは、一般ユーザーの場合は$ HOME / .rvmに、またはサードパーティのミッションクリティカルでないアプリケーションのヘッダーの通常の場所であるメンバーを追加する必要がある「rvm」グループを使用して/ usr / local/rvmにインストールします。 、およびライブラリ。

RVMは、パッケージマネージャーのおかげで誕生しました。彼らはルビーと宝石の依存関係を永遠に台無しにし、セキュリティアップデートをすぐにプッシュする時代に遅れをとっており、複数のルビーを同じボックスにインストールして管理するために、シンボリックリンクゲームをプレイすることなくそれらを動作させ、展開しました複数の異なる展開要件を持つ複数のマシンにとっては悪夢です。

RVMは、インストールとそれを使用するユーザーのセキュリティだけでなく、パッケージマネージャーがまったく関与しないようにすることにも特に目を向けて、かなりシームレスな問題でこれらすべてを解決しました。これにより、パッケージ管理ツールとインストールされたパッケージのデータベースが突然破壊されることがなくなります。

私はユーザーとして、そしてRVMプロジェクトの開発者として関わりました。それは、ジレンマを非常にうまくそして非常にエレガントに解決したからです。

于 2012-10-12T23:59:37.730 に答える
2

彼の懸念は、rubyが動くターゲットであり、rubyは数か月ごとに更新され、すべてのユーザーは常に最新のパッチレベルに更新する必要があるということです。

Rubyは多くの異なるパッケージ(opensslを除く)であり、rubyチームがパッチでリリースを更新しているため、セキュリティの取り組みを1か所に集中させることができますが、これは、バージョンが選択され、セキュリティパッチのみが適用されるパッケージマネージャーの保守的なアプローチに反します。それに、安定しているように聞こえますが、セキュリティの取り組みが複数のチームに広がり、オープンソースコミュニティ全体の速度が低下します。オペレーティングシステムのメンテナは、誰かが自分のために仕事の一部をしているという事実を受け入れたくないので、誰かを信頼することができます。

管理者が多くの無知を示​​しているプロセスの反復性に関しては、RVMはバージョンをロックすることを許可します。これは、上記で説明したRubyのアプローチに反します。したがって、すべてをロックする最も簡単な方法は、RVMを1つのバージョンにロックすることです。

rvm install 1.15.14

ただし、RVMのロックが必要な場合は、互換性が維持されているマイナーバージョンにロックすることをお勧めしますが、更新が提供されます。

rvm install latest-1.15

RVMはこのバージョンを長期間継続しませんが、現在の安定した「安定性」について懸念がある場合はいつでも、以前のバージョンを更新して、どちらを使用するかを決定できるようにします。

@deryldoucetteも彼の答えで多くのことを説明しました、私は物事を「再説明」しないように努めました。

于 2012-10-13T00:15:50.960 に答える
2

Rubygemsではgemバージョンを適切に制御できませんが、bundlerを使用すると、apt-getと比較してバージョンをより適切に制御できます。

Bundlerで読む必要があります-で緩い依存関係を指定することができGemfile、厳密な依存関係はに記録されGemfile.lockます。

于 2012-10-13T03:11:14.737 に答える