クモのようにコツコツと

フロントエンドエンジニア イイダリョウの技術ブログ。略称「クモコツ」

【Rails】Codespacesとローカルに環境構築(Railsチュートリアル1章)

Rubyの続きです。前回はRubyの分岐や反復など制御構造について書きました。今回からはWebフレームワークRuby on Railsに入っていきます!Railsチュートリアルにトライします。初回は環境構築編です。それではいきましょう!

【目次】

Ruby/Ruby on Railsを習得するためにやったこと まとめ
qiita.com

Railsチュートリアル用テンプレートのリポジトリを作成

さっそくRailsチュートリアルの1章から始める!(1章は購入前でも試し読みできる模様)

※参考:第1章 ゼロからデプロイまで - Railsチュートリアル


最初にRailsチュートリアル用テンプレートのページを開く。

※参考:GitHub - yasslab/codespaces-railstutorial: 🎓 Railsチュートリアルで採用しているクラウド開発環境『GitHub Codespaces』のテンプレートです。


右上の「Use this template」のプルダウンから「Create a new repository」を押す。


リポジトリ作成画面でアプリ名を入れる(hello_appなど)


自分のGitHubアカウント内にhello_appリポジトリが作成された!

※参考:GitHub - ryo-i/hello_app


テンプレート機能はフォークと似ているが下記の違いがあるようだ。

  • 1つのリポジトリから複数作成できる(forkだと、同名のリポジトリとなるので1人のユーザー内で複数作成は不可)
  • 元となったリポジトリのコミット履歴を継承せず、クリーンな状態でスタートできる

※参考:GitHubのTemplate Repository機能のすゝめ #GitHub - Qiita

Codespacesで環境構築してみる

チュートリアルではまずGitHubのクラウド環境上にあるCodespacesでの環境構築を推奨していた。

Codespacesは使ったことないが、120時間までは無料。超えそうな時に通知メールが来て、その後にストップするらしい。
自分で制限解除すると有料に切り替わる。気がついたら有料ってことはなさそう。

※参考:GitHub Codespaces の請求について - GitHub Docs


リポジトリの「Code」から「Codespaces」を押す。


環境構築中の画面になる。しばらく待つ…。


Codespaces画面になった!リポジトリと同じファイル構成が入っている。

Codespacesは始めて触ったけど、メニューなどはVSCodeとほとんど同じ感じのようだ。同じMicrosoftだからかな。


Rubyがインストールされていることを確認。

$ ruby -v
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux]

Railsがインストールされているかも確認。もうインストールされているようだ。

$ rails -v
Rails 7.0.4.3

ブラウザ版のテキストエディタvscode.devもあるけど、こちらはターミナルが使えない。Codespacesの方はターミナルも使える。

※参考:「.」で起動するgithub.devとGithub Codespacesの違い #GitHub - Qiita

Railsをインストール

Railsチュートリアル自体はCodespaces環境でそのまま進めてもいいのだが、チュートリアルにはCodespaces環境の次にローカル環境の構築方法も書かれていた。

制限時間を気にせずにやりたいのでローカル環境の構築もトライしてみる。


ローカル環境にはrubyはすでにインストールされている。

% ruby -v
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin22]

Rubyのインストールは下記の記事を参照

※参考:【Ruby】最新版Rubyをインストール 〜苦戦の記録〜(ありがとうGemini先生) - クモのようにコツコツと


railsのインストールはまだしていないため、バージョン番号は表示されない。

% rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

Railsをインストールする時に、Rubyドキュメントをインストールすると時間が長くなるようだ。

ドキュメントをインストールに含めない設定を追加するコマンドを実行

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

実行後は特に何も起こらない。

RubyGemsについてはRubyインストールの記事を参照

※参考:【Ruby】最新版Rubyをインストール 〜苦戦の記録〜(ありがとうGemini先生) - クモのようにコツコツと


Railsをインストールするコマンド(バージョン番号も指定する)

% gem install rails -v 7.0.4.3
Successfully installed rails-7.0.4.3
1 gem installed

Railsのインストール確認。バージョン番号が表示された!

 % rails -v
Rails 7.0.4.3

bundlerのgemのバージョンも揃える。

% gem install bundler -v 2.5.6
Fetching bundler-2.5.6.gem
Successfully installed bundler-2.5.6
1 gem installed

Rubyのバージョンを変更

先ほどのcodespaces版「hello_app」のrailsのバージョンは3.2.3なので、ローカル環境も3.3.0から3.2.3に変更したい。

ruby "3.2.3"

※参考:hello_app/Gemfile at main · ryo-i/hello_app · GitHub


下記の記事を参考にRubyのバージョンを変更してみる。

※参考:Rubyのバージョン変更 #Ruby - Qiita


rbenvでインストールできるバージョン確認。3.2.3もインストールできる。

% rbenv install --list
3.0.6
3.1.4
3.2.3
3.3.0
jruby-9.4.6.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.0.0
truffleruby+graalvm-24.0.0

Only latest stable releases for each Ruby implementation are shown.
Use `rbenv install --list-all' to show all local versions.

3.2.3をインストール

% rbenv install 3.2.3
ruby-build: using openssl@3 from homebrew
==> Downloading ruby-3.2.3.tar.gz...
(※中略)
-> make install
==> Installed ruby-3.2.3 to /Users/xxx/.rbenv/versions/3.2.3

インストール、かなり長かった!不安になってググったらそういうものらしい、、

※参考:rbenv install 遅くて痺れを切らした話 #Ruby - Qiita


インストールしたRubyのバージョン一覧(3.2.3も入っていて、3.3.0に印が付いている)

% rbenv versions
  system
  3.2.3
* 3.3.0 (set by /Users/xxx/.rbenv/version)

rubyのバージョンを3.2.3に変更

% rbenv global 3.2.3

rbenvのキャッシュを更新する

% rbenv rehash

rubyのバージョンが3.2.3に切り替わっていた!

% ruby -v
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-darwin22]

Railsを更新

railsのバージョンを確認するとか下記の表示になった、、

% rails -v
rbenv: rails: command not found

The `rails' command exists in these Ruby versions:
  3.3.0

むむ?

「rails」コマンドは、次の Ruby バージョンに存在します。 3.3.0

rubyのバージョンごとにrailsをインストールする必要がありそう。


もう一回railsをインストールする

% echo "gem: --no-document" >> ~/.gemrc
% gem install rails -v 7.0.4.3
Building native extensions. This could take a while...
Successfully installed nio4r-2.7.1
Successfully installed actioncable-7.0.4.3
Successfully installed rails-7.0.4.3
3 gems installed

railsのバージョンが表示された!

 % rails -v
Rails 7.0.4.3

bundlerのバージョンを揃える

% gem install bundler -v 2.5.6
Fetching bundler-2.5.6.gem
Successfully installed bundler-2.5.6
1 gem installed

hello_app

hello_appをインストールしたいフォルダに移動し、下記のコマンドを実行

% rails _7.0.4.3_ new hello_app

しばらくインストール時間がかかったあとにインストール成功。「hello_app」フォルダが作られる。


「hello_app」のGemfileの内容を下記に書き換える

source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby "3.2.3"

gem "rails",           "7.0.4.3"
gem "sassc-rails",     "2.1.2"
gem "sprockets-rails", "3.4.2"
gem "importmap-rails", "1.1.5"
gem "turbo-rails",     "1.4.0"
gem "stimulus-rails",  "1.2.1"
gem "jbuilder",        "2.11.5"
gem "puma",            "5.6.8"
gem "bootsnap",        "1.16.0", require: false
gem "sqlite3",         "1.6.1"

group :development, :test do
  gem "debug",   "1.7.1", platforms: %i[ mri mingw x64_mingw ]
end

group :development do
  gem "web-console",         "4.2.0"
  gem "solargraph",          "0.50.0"
  gem "irb",                 "1.10.0"
  gem "repl_type_completor", "0.1.2"
end

group :test do
  gem "capybara",                 "3.38.0"
  gem "selenium-webdriver",       "4.8.3"
  gem "webdrivers",               "5.2.0"
  gem "rails-controller-testing", "1.0.5"
  gem "minitest",                 "5.18.0"
  gem "minitest-reporters",       "1.6.0"
  gem "guard",                    "2.18.0"
  gem "guard-minitest",           "2.4.6"
end

# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります
# gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]

railsのバージョン番号を確認するが表示されない、、

% rails -v
Could not find gem 'sassc-rails (= 2.1.2)' in locally installed gems.
Run `bundle install --gemfile /Users/xxx/hello_app/Gemfile` to install missing gems.

gemsのパッケージをインストールする。これはJSでいうnpm installみたいなものか。

 % bundle install

しばらく時間かかるのを待つ、、、

インストール完了後、railsのバージョンが表示された!

% rails -v
Rails 7.0.4.3

終わりに

ということで、Codespacesとローカルに環境構築してみました。ローカルの方がrubyのバージョンごとにrailsを入れたり、Codespacesよりも手間はかかりましたが、なんとか構築できたのでこのままローカルで作業を続けてみようと思います。

次回はgithubへのプッシュやクラウド環境へのデプロイに進みたく思います。それではまた!


Ruby/Ruby on Railsを習得するためにやったこと まとめ
qiita.com