🔻
Ruby on Rails v6 のインストール(2024年12月時点)
久しぶりにRails 6系の環境構築をしていたらハマったので手順をメモしておきます。
ざっくり手順
- Ruby 2.7系のインストール(
rbenv install 2.7.8
) - Rails 6系のインストール(
gem i rails -v 6.0
) - いったん
rails new
する(sqlite のバージョンが合わずエラーとなる)- sqlite 1.7系をインストールしようとしてrubyのバージョンが合わずエラー。ruby 3系以上を要求するエラーだったので ruby のバージョンを上げればいけるかもしれないが未検証。
- Gemfileを編集して sqlite のバージョンを1.5系に固定Gemfile
gem 'sqlite3', '1.5'
- もう一度
rails new
する(Gemfileを上書きしないように注意) -
rails server
してエラーがなく、http://127.0.0.1:3000
にアクセスしてRailsが表示されればOK 🙌🎉🙌🎉🙌
追加手順(2024/12/27追記)
新たにcontrollerを作ってそのルートにアクセスするとwebpackerのエラーになったので以下を追加。
7. yarn add -D @rails/webpacker
8. yarn add -D babel-loader
9. config/webpack/environment.js
を以下に変更(node:falseの設定を追加)
const { environment } = require('@rails/webpacker')
environment.config.merge({
node: false
})
module.exports = environment
-
bin/webpack-dev-server
がエラーなく動けばOK
実施環境
- device: MacBook Pro
- chip: Apple M3 Pro
- OS: macOS 14.4.1
エラー集
-
rails server
したら webpacker ないぞとエラーになった
使っている node に yarnがなかったのでコマンドrails webpacker:install
がスキップされていた。
以下で解決
$ npm install -g yarn
$ rails webpacker:install
-
rails webpacker:install
で node-gyp のエラーになった
gyp ERR! stack Error: Command failed: /Users/xxxx/.pyenv/shims/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack File "<string>", line 1
gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gyp ERR! stack SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
gyp ERR! stack
gyp ERR! stack at ChildProcess.exithandler (node:child_process:422:12)
gyp ERR! stack at ChildProcess.emit (node:events:517:28)
gyp ERR! stack at maybeClose (node:internal/child_process:1098:16)
gyp ERR! stack at Socket.<anonymous> (node:internal/child_process:450:11)
gyp ERR! stack at Socket.emit (node:events:517:28)
gyp ERR! stack at Pipe.<anonymous> (node:net:350:12)
pythonのバージョンが合ってなかった。node-gypにはpython 2系が必要。
# 前提: pyenv 導入済み
$ pyenv install 2
$ pyenv local 2
$ rails webpacker:install
小ネタ
- 特定のrailsを動かしたい(複数のrailsが入っている環境)
$ rails _6.0.3_ new sample_app
感想
古いバージョンを入れるのは、当時と前提が崩れているところがあってエラーにまみれがち。
(今回でいうとyarn や python 2系 がある前提になっていたり、
sqliteでは ~> 1.4
の指定でも互換性壊れてたりとか、MacのCPUが変わってたりとか)
でも環境構築の練習にはいい題材かもしれない。
とりあえずできてよかった。めでたしめでたし。
Discussion