この記事はなに?
1から環境構築をして新規Railsプロジェクトを立ち上げてみて、手順や学んだことをアウトプットするものです。
動作環境
- macOS Ventura 13.2.1
- Homebrew 4.1.11をインストール済み
手順
Rubyのインストール
Rubyのバージョン確認
まずはターミナルを開いてRubyのバージョンを確認
$ ruby -v
RailsではRubyバージョン2.7.0以降が必須なので、これより古いバージョンが表示された場合は、Rubyの最新版をインストールする必要があります。
私の場合はバージョン2系だったので最新化が必要でした。
rbenvのインストール
Rubyのインストールにはrbenvというツールを使いました。rbenvはRubyのバージョン管理をするツールです。
$ brew install rbenv ruby-build
インストールできたら以下コマンドでrbenvの初期設定をします。
まずは現在使っているシェル名を確認します。
$ echo $SHELL
実行結果がbin/zsh
だったので以下コマンドを実行して初期設定完了です。
$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
Rubyのインストール
以下コマンドでインストールできるRubyのバージョン一覧を確認します。
$ rbenv install -l
最新版のRubyをインストールします。
$ rbenv install 3.2.2
そうすると以下のようなエラーが表示されました。
BUILD FAILED (macOS 13.2.1 using ruby-build 20230914.1)
Inspect or clean up the working tree at /var/folders/ks/1d8gcktx5cb3bb3m5hv19rfc0000gn/T/ruby-build.20230916165417.16799.uYlRrz
Results logged to /var/folders/ks/1d8gcktx5cb3bb3m5hv19rfc0000gn/T/ruby-build.20230916165417.16799.log
Last 10 log lines:
./vm_callinfo.h:218:16: error: use of undeclared identifier 'RUBY_FUNCTION_NAME_STRING'
if (debug) rp(ci);
^
./internal.h:94:72: note: expanded from macro 'rp'
#define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING)
^
compiling cont.c
2 errors generated
error: use of undeclared identifier 'RUBY_FUNCTION_NAME_STRING'
でググってみると以下の記事が見つかりました。Xcode Command Line Toolsが悪さをしているらしいです。
https://ama-tech.hatenablog.com/build-failed-when-rbenv-install-ruby-3-1-1
なので以下コマンドでXcode Command Line Toolsの削除&インストールします。
$ sudo rm -rf /Library/Developer/CommandLineTools
$ sudo xcode-select --install #ポップアップが表示されるので促されるままにインストール
もう一度Rubyのインストール
$ rbenv install 3.2.2
$ rbenv global 3.2.2
Rubyのバージョン確認
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin22]
無事に最新版Rubyのインストールができました。
SQLite3のインストール
バージョンが表示されればインストール不要です。
$ sqlite3 --version
3.32.3 2020-06-18 14:00:33 7ebdfa80be8e8e73324b8d66b3460222eb74c7e9dfd655b48d6ca7e1933calt2
Railsプロジェクトの作成
今回はRailsプロジェクトごとにgemの管理をしていく方法を採ります。
まずはプロジェクトのディレクトリを作り、bundleの初期設定をします。
$ mkdir Desktop/test-app
$ cd Desktop/test-app
$ bundle init
Writing new Gemfile to /Users/username/Desktop/test-app/Gemfile
生成されたGemfileの以下の行のコメントアウトを外します。
# gem "rails"
vendor/bundleディレクトリにgemをインストールします。pathオプションをつけることによって、今後bundle install
コマンドを実行したときに、こちらのディレクトリのgemに適応してくれます。
$ bundle install --path vendor/bundle
以下コマンドでRailsプロジェクトを立ち上げます。
$ bundle exec rails new . -B --skip-turbolinks --skip-test
Gemfileでコンフリクトして上書きするか聞かれるので、yesを入力して実行すると、Railsアプリに必要なファイルが作成されました。
Webサーバーの立ち上げ
以下コマンドを実行するとWebサーバーが立ち上がります。
$ bundle exec rails s
以下URLにアクセスするとRails画面が表示されました!
http://localhost:3000/
学び
環境構築について
- railsも1つのgemであること。
- railsをインストールすることで
rails s
を実行できるようになり、自分のPC上でWebサーバーを立ち上げてくれること。
用語
-
シェル
人間からの入力をコンピュータに伝える役割。つまり入力とコンピューターのインターフェース。
echo $SHELL
で使っているシェルの名前が分かる。
代表的なシェルは、bash、zshなどがある。
シェルはシンボリックリンクが使われていることもある。 -
シンボリックリンク
実際のファイルの置き場所とは異なるパスでそのファイルを参照できる仕組み。エイリアスのようなイメージ。 -
bundler
gemのバージョンやgemの依存関係を管理してくれるgemのこと。bundlerを使うことで、複数人での開発やgemのバージョンが上がってもエラーを起こさずに開発できる。 -
Turbolinks
Railsで使われるJavaScriptライブラリで、ページ遷移を高速化するための仕組み。
コマンド
-
source
シェルの設定を反映させる。 -
bundle exec {コマンド}
Gemfile内で指定されている全てのGemを適応して、 そのコマンドを実行する。