支部例会の参加申し込み system を即席で作ろうと思い、手抜きで Rails server を立ててみようと思いました。(今回は技術的な話ばかりで、将棋の話はありません。)

  1. 国内最安値の Indigo VPS, 768MB を選択 (1時間0.52円)
  2. 本当は CentOS Stream 10 を使いたいが、Indigo VPS では使えない (多分 CPU が AVX2 に対応していない) ので、CentOS Stream 9 を選択
  3. 2GB の swap を設定
  4. 本来は丁寧に rbenv を使うべきだが、手抜きで dnf install ruby
  5. ruby --version したところ 3.0.7 が入っていた (本当は Ruby 3.0 系列は2024年4月に support が切れており、良くない)
  6. gem update --system を実行したら、Ruby 3.1.0 以上が必要だと怒られた
  7. rubygems.org で調べたところ、RubyGems 3.5.23 なら対応しているっぽい
  8. gem install rubygems-update --version=3.5.23 を実行
  9. update_rubygems を実行
  10. gem env をしたところ、とりあえず RubyGems は 3.5.23 になったことが確認できた
  11. gem install rails を実行したら Ruby の version が低いと怒られた
  12. rubygems.org で調べたところ Rails 7.1.5.1 なら対応しているっぽい
  13. gem install rails --version=7.1.5.1 を実行したら「You might have to install separate package for the ruby development environment, ruby-dev or ruby-devel for example.」と怒られた
  14. dnf install ruby-devel を実行、しかしまだ怒られる
  15. dnf install gcc を実行
  16. dnf install ruby-devel を実行、今度は psych で「yaml.h not found」と怒られる
  17. dnf install libyaml libyaml-devel を実行してもうまくいかないので、こちらを参考に epel を有効化してから再実行
  18. dnf install git を実行
  19. gem install public_suffix addressable bindex msgpack bootsnap matrix regexp_parser xpath capybara debug importmap-rails jbuilder puma rexml rubyzip websocket selenium-webdriver sprockets sprockets-rails sqlite3 stimulus-rails turbo-rails web-console websocket-extensions websocket-driver を実行
  20. 一般 user になって rails new temp01 を実行
  21. config/environments/development.rb に書き込み
  22. 電子証明書を取得して config/puma.rb に書き込み

うわ、これはかなり root 環境を汚してしまうなあ。そもそも dnf で入れる Ruby は RubyGems まで rpm 化されていてあまり良くないのだけど、最初に root で入れてしまうとそのあとの作業が root に引っ張られてしまって筋が悪い感じです。やはり横着せずに rbenv を使うべきなのでしょう。