序章

Ruby on Rails は、サイトやWebアプリの作成を検討している開発者に人気のあるアプリケーションスタックです。 Rubyプログラミング言語をRails開発フレームワークと組み合わせることで、アプリ開発を迅速かつ効率的に行うことができます。

RubyとRailsをインストールする1つの方法は、コマンドラインツールrbenvを使用することです。 rbenvを使用すると、Ruby on Railsアプリケーションを開発するための適切に制御された堅牢な環境が提供され、必要に応じてチーム全体のRubyのバージョンを簡単に切り替えることができます。

rbenvは、Rubyのアプリケーション固有のバージョンを指定するためのサポートを提供し、ユーザーごとにグローバルRubyを変更できるようにし、環境変数を使用してRubyバージョンをオーバーライドできるようにします。

このチュートリアルでは、rbenvを使用して、ローカルのmacOSマシンにRubyonRailsをインストールしてセットアップします。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • macOSがインストールされた1台のコンピューターまたは仮想マシンで、そのマシンへの管理アクセスとインターネット接続があります。 このチュートリアルは、 macOS 10.14Mojaveでテストされています。
  • MacOSでNode.jsをインストールしてローカル開発環境を作成する方法で説明されているように、MacOSマシンにNode.jsがインストールされています。 Asset Pipeline などのいくつかのRails機能は、JavaScriptランタイムに依存しています。 Node.jsはこの機能を提供します。

ステップ1—rbenvをインストールする

このステップでは、rbenvをインストールし、起動時に自動的に起動することを確認します。 macOSでこれを行うために、このチュートリアルではパッケージマネージャーHomebrewを使用します。

Homebrewでrbenvパッケージをダウンロードするには、次のコマンドを実行します。

  1. brew install rbenv

これにより、rbenvと[ruby-build]( https://github.com/rbenv/ruby-build )プラグインがインストールされます。 このプラグインは、rbenv installコマンドを追加します。これにより、Rubyの新しいバージョンのインストールプロセスが合理化されます。

次に、コマンドeval "$(rbenv init -)"~/.bash_profileファイルに追加して、ターミナルを開いたときにrbenvが自動的にロードされるようにします。 これを行うには、お気に入りのテキストエディタで.bash_profileを開きます。

  1. nano .bash_profile

次の行をファイルに追加します。

〜/ .bash_profile
eval "$(rbenv init -)"

ファイルを保存して終了します。

次に、~/.bash_profileファイルに加えた変更を現在のシェルセッションに適用します。

  1. source ~/.bash_profile

rbenvが正しく設定されていることを確認するには、typeコマンドを使用します。これにより、rbenvコマンドに関する詳細情報が表示されます。

  1. type rbenv

ターミナルウィンドウに次のように表示されます。

Output
rbenv is a function rbenv () { local command; command="${1:-}"; if [ "$#" -gt 0 ]; then shift; fi; case "$command" in rehash | shell) eval "$(rbenv "sh-$command" "[email protected]")" ;; *) command rbenv "$command" "[email protected]" ;; esac }

この時点で、マシンにrbenvとruby-buildの両方がインストールされています。 これにより、次の手順でコマンドラインからRubyをインストールできるようになります。

ステップ2—Rubyをインストールする

これでruby-buildプラグインがインストールされたので、1つのコマンドで必要なRubyのバージョンをインストールできます。 このステップでは、Rubyのバージョンを選択し、それをマシンにインストールしてから、インストールを確認します。

まず、-lフラグを使用して、使用可能なすべてのバージョンのRubyを一覧表示します。

  1. rbenv install -l

そのコマンドの出力は、インストールすることを選択できるバージョンの長いリストになります。

このチュートリアルでは、Ruby 2.6.3をインストールします。

  1. rbenv install 2.6.3

Rubyのインストールは時間のかかるプロセスになる可能性があるため、インストールが完了するまでに時間がかかるように準備してください。

インストールが完了したら、globalサブコマンドを使用してRubyのデフォルトバージョンとして設定します。

  1. rbenv global 2.6.3

バージョン番号を確認して、Rubyが正しくインストールされていることを確認します。

  1. ruby -v

出力は次のようになります。

Output
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]

別のバージョンのRubyをインストールして使用するには、rbenv install 2.3.0rbenv global 2.3.0などの別のバージョン番号でrbenvコマンドを実行します。

これで、Rubyの1つのバージョンがインストールされ、デフォルトのRubyバージョンが設定されました。 次に、Rubyパッケージとライブラリ、または gems を使用するように設定します。これにより、Railsをインストールできるようになります。

ステップ3—宝石の操作

Gems は、Rubyエコシステム全体に配布できるRubyライブラリとプログラムのパッケージです。 gemコマンドを使用して、これらの宝石を管理します。 このステップでは、gemコマンドを構成して、Railsのインストールの準備をします。

gemをインストールすると、インストールプロセスでローカルドキュメントが生成されます。 これにより、各gemのインストールプロセスにかなりの時間がかかる可能性があるため、この機能をオフにする構成設定を含む~/.gemrcというファイルを作成して、ローカルドキュメントの生成をオフにします。

  1. echo "gem: --no-document" > ~/.gemrc

これが完了したら、gemコマンドを使用して、プロジェクトのgem依存関係を管理するツールであるBundlerをインストールします。 これは、Railsが正しく機能するために必要です。

  1. gem install bundler

次のような出力が表示されます。

Output
Fetching: bundler-2.0.2.gem Successfully installed bundler-2.0.2 1 gem installed

gem envコマンドを使用して、gemの環境と構成について詳しく知ることができます。 インストールされているgemの場所を確認するには、次のようにhome引数を使用します。

  1. gem env home

次のような出力が表示されます。

/Users/sammy/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0

これで、gemワークフローを設定して調査したので、Railsを自由にインストールできます。

ステップ4—Railsのインストール

Railsをインストールするには、gem installコマンドと-vフラグを使用してバージョンを指定します。 このチュートリアルでは、バージョン5.2.3を使用します。

  1. gem install rails -v 5.2.3

gemコマンドは、指定したgemとすべての依存関係をインストールします。 Railsは複雑なWeb開発フレームワークであり、多くの依存関係があるため、プロセスが完了するまでに時間がかかります。 最終的に、Railsがインストールされていることを示すメッセージとその依存関係が表示されます。

Output
... Successfully installed rails-5.2.3 38 gems installed

:別のバージョンのRailsをインストールする場合は、検索を実行して有効なバージョンのRailsを一覧表示できます。これにより、可能なバージョンの長いリストが出力されます。 次に、4.2.7などの特定のバージョンをインストールできます。

  1. gem search '^rails$' --all
  2. gem install rails -v 4.2.7

Railsの最新バージョンをインストールする場合は、バージョンを指定せずにコマンドを実行します。

  1. gem install rails

rbenvは、 shims のディレクトリ、または呼び出しをインターセプトして変更またはリダイレクトするライブラリを作成することによって機能します。 この場合、shimは、現在有効になっているRubyバージョンで使用されているファイルをRubyコマンドにポイントします。 rehashサブコマンドを介して、rbenvはそのディレクトリにシムを維持し、サーバーにインストールされているすべてのバージョンのRubyのすべてのRubyコマンドと一致させます。 新しいバージョンのRubyまたはRailsなどのコマンドを提供するgemをインストールするときは常に、rehashを使用する必要があります。

シムのディレクトリを再ハッシュするには、次のコマンドを実行します。

  1. rbenv rehash

次のコマンドを使用してバージョンを印刷することにより、Railsのインストールを確認します。

  1. rails -v

インストールされたRailsのバージョンが表示されます。

Output
Rails 5.2.3

Railsが正常にインストールされると、Ruby on Railsインストールのテストを開始し、Webアプリケーションの開発を開始できます。 次のステップでは、rbenvとRubyを更新およびアンインストールする方法を学習します。

ステップ5—rbenvとRubyの更新とアンインストール

プロジェクトを保守するときは、必要に応じて更新およびアンインストールする方法を知っておくと便利です。 このステップでは、rbenvをアップグレードしてから、マシンからRubyとrbenvをアンインストールします。

次のコマンドを実行して、Homebrewを使用してrbenvとruby-buildをアップグレードできます。

  1. brew upgrade rbenv ruby-build

rbenvまたはruby-buildを更新する必要がある場合、Homebrewが自動的に更新します。 セットアップがすでに最新の場合、次のような出力が得られます。

Output
Error: rbenv 1.1.2 already installed Error: ruby-build 20190615 already installed

これにより、利用可能な最新バージョンのrbenvを使用できるようになります。

Rubyの追加バージョンをダウンロードすると、~/.rbenv/versionsディレクトリに必要以上のバージョンが蓄積される可能性があります。 ruby-buildプラグインのuninstallサブコマンドを使用して、これらの以前のバージョンを削除できます。

たとえば、次のコマンドを実行して、Rubyバージョン2.1.3をアンインストールします。

  1. rbenv uninstall 2.1.3

rbenv uninstallコマンドを使用すると、古いバージョンのRubyをクリーンアップして、現在使用している以上のインストールが行われないようにすることができます。

rbenvを使用しないことにした場合は、システムから削除できます。

これを行うには、最初にエディターで~/.bash_profileファイルを開きます。

  1. nano ~/.bash_profile

ターミナルを開いたときにrbenvが起動しないようにするには、ファイルから次の行を見つけて削除します。

〜/ .bash_profile
...
eval "$(rbenv init -)"

この行を削除したら、ファイルを保存してエディターを終了します。

次のコマンドを実行して、変更をシェルに適用します。

  1. source ~/.bash_profile

次に、次のコマンドを使用して、rbenvとインストールされているすべてのRubyバージョンを削除します。

  1. rm -rf `rbenv root`

最後に、Homebrewでrbenvパッケージ自体を削除します。

  1. brew uninstall rbenv

rbenvのバージョンをチェックして、アンインストールされていることを確認します。

  1. rbenv -v

次の出力が得られます。

Output
-bash: /usr/local/bin/rbenv: No such file or directory

これは、マシンからrbenvを正常に削除したことを意味します。

結論

このチュートリアルでは、macOSにrbenvを使用してRubyonRailsをインストールしました。 ここから、 Rubyでコーディングする方法シリーズを使用して、Rubyでのコーディングについて詳しく知ることができます。 また、デフォルトのsqlite3データベースではなく、 PostgreSQLでRubyonRailsを使用する方法を調べることもできます。これにより、アプリケーションのスケーラビリティ、集中化、および安定性が向上します。