0

Rails アプリケーションを書き始めた当初は、RVM の Web サイトで読んだ .ruby-version を使用しました。Rails アプリケーションの 2 つでこれを行いました。これを起動するために入力したコマンドを覚えていないほど昔のことです。.ruby-version も .rvmrc も使用していないアプリケーションが他に 7 つあります。私がしたことは、gemset (rvm 使用) をアプリケーションに割り当てることだけで、問題なく動作しています。

これが私の状況です。私の開発サーバーでは、rvm use 1.9.3@gemsetname --default を実行することで、gemset を使用したいものに変更することができました。それを行ったら、gemset に欠落している宝石がないことを確認するためにバンドルの更新を行いました。その後、私はまだアプリケーションを実行できます。次に、.ruby-version にあった gemset を削除しました。アプリケーションをデプロイした後も、問題なく Web サイトを使用できます。ただし、本番サーバーには別の話があります。本番サーバーで .ruby-version ファイルの削除を含め、同じ手順を実行できますが、削除された .ruby-version ファイルに含まれていた gem ファイルが引き続き検索されます。.ruby-version ファイルをアプリケーションに戻すと、バンドルの更新を実行して、削除しようとした gemset にすべての gem をインストールする必要があります。私'

他のアプリケーションのように .ruby-version をまったく使用しない 2 つのアプリケーションを変更したいと考えています。私の目標は、Rails 3.2 の最新バージョンを使用するすべてのアプリケーションに対して 1 つの gemset を用意し、最終的にはすべての Rails 4.0 アプリケーションに対して 2 つ目の gemset を作成することです。

Stack Overflow で .ruby-version を検索しようとしましたが、これに関する関連記事が見つかりません。何年にもわたって誰かがこれについて何かを投稿していると確信しているので、私はただ悪い日を過ごしているだけかもしれません. RVM の Web サイトで .ruby-version について説明されているページを見つけようとしましたが、見つかりません。

どんな助けでも大歓迎です。

更新 7/22 午前 9:22 CDT 0915 GMT-5

最終的に Ruby を Ruby 2.0 にアップグレードする準備として、開発サーバーで以下のコマンドを実行したことを思い出しました。

gem update --system 2.0.3
gem update bundler

私は実稼働サーバーでこれを行っていませんでした。これらのコマンドの両方を実行し、使用する gemset を選択してから、.ruby-version ファイルを削除しました。アプリケーションが機能しませんでした。ファイルを元に戻すと、アプリケーションが機能しました。rvm gemset listを実行すると、将来使用したい gemset を使用していると表示されます。どういうわけか、開発サーバーでは .ruby-version の要件を取り除くことができましたが、実稼働サーバーではそうではありませんでした。

これが問題です。これは私の .ruby-version ファイルに含まれているものです:

1.9.3@gemsetname

RVM Web サイトには、.ruby-version を設定するロジックがありました。アプリケーションに使用するジェムセットを設定していなかったので、システムが Rails アプリケーションの名前でジェムセットを作成したと思います。これは先に述べておくべきでした。アプリケーションが作成した gemsetname を使用したくありません。

4

1 に答える 1

0

gemsetsを使用.ruby-versionしています - これは rvm で可能ですが、推奨されません。gemset 用に別のファイルがあり.ruby-gemsetます: そして、このファイルを gemsets に使用し.ruby-version、ruby バージョンだけを残す必要があります - コードリポジトリに保持することをお勧めします - for詳細については、この質問を確認してください: `.ruby-gemset` および/または `.ruby-version` をチェックインする必要がありますか? この回答とともに:https://stackoverflow.com/a/16738020/497756

于 2013-07-21T12:19:40.693 に答える