∞RVM ベストプラクティス
WayneとMichalが意図した方法でRVMを使用したいですか?以下は、RVMを使用しながら開発を容易にする上で効果的であることが証明されているヒントとベストプラクティスの集です。
∞一覧
∞1. 各プロジェクトにrvmrcファイルを使用する
プロジェクト固有のrvmrcを使用すると、一般的なワークフローを簡単に自動化できます。アプリの作業時にRubyを自動的に切り替えることができるだけでなく、環境の自動ブートストラップも容易になります。
∞2. rvmrcをソース管理にチェックインする
プロジェクトのrvmrcをアプリと共にソース管理にチェックインすることで、すべてのユーザーがプロジェクトとRVMを使用する際に一貫した環境を確保し、gemsetのインストールなども自動化できます。
rvmリポジトリまたはTEDxPerthリポジトリにあるrvmrcファイルの例を参照してください。また、`export rvm_project_rvmrc=1
`を`$HOME/.rvmrc
`に設定することで、プロジェクトディレクトリにcdすることでプロジェクトのブートストラップを行うことができます。
さらに、Passengerを使用している場合でも、デプロイメント時にアプリケーション固有の環境を自動的に設定できます。
∞3. プロジェクトごとのgemsetを使用する
プロジェクトごとのgemsetを使用すると、各アプリケーションが独自のgem環境を持つため、バージョン競合による問題を回避できます。ほとんどの場合、Rubyを選択する際に(例:rvmrcで)"2.1.1"ではなく"2.1.1@your-app"を使用します。
さらに、1と2と組み合わせることで、ユーザーは自動的に正しいバージョンのgemsetを使用できます。Bundlerを使用している場合、RVMはBUNDLE_PATHも設定するため、gemディレクトリはBundlerがgemを配置する場所と同じになります。
∞4. 可能であればRVMでデプロイする
RVMを使用した開発は良いアイデアですが、可能であれば、RVMを使用してアプリケーションをデプロイすることも良いアイデアです。これにより、アプリケーション固有の環境の利点に加えて、開発の後半で本番環境で発生するバージョン固有のバグの追跡も容易になります。これは主に、両者の環境を合理的に一貫したものにするためです。
さらに、Rubyのアップグレードが必要になった場合、RVMの`rvm upgrade`コマンドが役立ちます。
∞5. 使用するツールにRVMを統合する
最後に、統合ページを読んで、開発およびデプロイメントエコシステムにRVMを最適に統合する方法を確認してください。