2017-02-09 7 views
1

rbenvとBundlerを使用して環境を設定するすべての設定で、指示は常にgem install bundlerを使用してバンドルをシステムジェムとしてインストールすることです。しばしば、rbenv-bundler rbenv pluginもお勧めしますが、the maintainers of rbenv discourage thisです。システムの宝石としてRailsをインストールする必要がありますか?

Railsをインストールする方法は記載されていません。新しいRailsプロジェクトを初期化すると、bundlerのための基本的なGemfileが作成されます。しかし、Railsプロジェクトを初期化するには、Railsをインストールする必要があります。ディレクトリを作成したり、Railsを含む基本的なGemfileを作成したり、bundle installを実行したり、Railsを現在のディレクトリに初期化したりするのは間違いです。実際には、うまくいけば、うまくいくとは思えません。

したがって、Railsはgem install railsのシステム・ジェムとしてインストールする必要がありますか?もしそうなら、複数のバージョンのRails、特にrbenvをどのように管理しますか?

答えて

2

システム宝石としてレールをインストールすることはまったく意味があります。

mkdir rails_app 
cd rails_app 
vi Gemfile # Edit it to include a rails version you need 
bundle --path vendor # Wait for bundler to finish 
bundle exec rails new ./ 

最後のステップは頼む:

rbenvまたはあなたが使用する他のRubyのバージョン管理をめちゃくちゃにしないと、以下のGemfileを持つディレクトリから新規のRailsアプリを作成(初期化)するための簡単な手順は次のとおりですOverwrite /path/to/rails_app/Gemfile? (enter "h" for help) [Ynaqdh]yを入力して、デフォルトのRails Gemfileコンテンツを取得します。

注:上記の手順では、宝石をシステムのグローバルスコープにインストールしないように、ローカルvendorディレクトリ(rails appフォルダ内)を指定しています。

+0

これは意味があります。それはディレクトリの作成、Gemfileの作成、そしてそのGemfileの吹き飛ばしなど、作業の重複です。それはいくつかのコマンドです。しかし、Bundlerを除くすべてのものは、ベンダー(あるいはあなたが呼んでいるもの)のディレクトリに住んでいます。 –

+0

カスタマイズされたドッカーインスタンスを使用しない限り、システムGemとしてインストールするのは実際は本当に悪い考えです。システムライブラリとユーザーランドライブラリを分離することをお勧めします。レールアプリケーションは、OSの観点からは基本的にユーザーランドです。したがって、配備ユーザーのためのrbenvが優れています。 – Tilo

+0

そのため、この例では、アプリケーション内のベンダーフォルダに宝石をインストールします。個人的に私はまた、Foreman/Heroku Localを使って他のサービス(データベース、Redisなど)を管理して、アプリケーションにそれらを隔離します。 –

2

答えはいいえ、システムの宝石としてレールをインストールしないでください。プロジェクトフォルダを作成し、.ruby-versionファイルを追加し、このファイルに希望するルビーバージョンを追加してください。つまり、2.3.0です。 rbenvはこのファイルで指定されたバージョンを使用し、システムのルビにはなりません。

ここでgem install bundlerをこのディレクトリから作成し、Gemfileを作成して、あなたのレールバージョンを追加することができます。今度はbundle installを実行して、RAILSのトラックに巻いてください.....

関連する問題