Closed4

AtCoder 回答リポジトリのrubyバージョンやgemの管理方法

おけぽよおけぽよ

解決したい課題

Ruby 2.7.2 にしたらbundle exec green_day new $CONTESTが失敗するようになりました。

Ruby 2.7.2では使えないのか、Ruby 3.0.2から切り替えたから何かが中途半端になって使えないのか、切り分けできていません。

背景

AtCoderの自動採点システムは Ruby 2.7.1 を使用しています。
https://atcoder.jp/contests/practice/rules

私はローカル環境で Ruby 3.0.2 を使用していました。
Rubyの学習を兼ねているため(競プロには不要ですが)rubocopを入れてみました。
すると、ACしたコードがエラーを吐くようになってしまいました。

これを機にローカル環境とAtCoderのRubyバージョンをそろえようと思い立ちました。

環境

  • MacBook Air (M1, 2020)
  • macOS Monterey 12.2
  • Ruby 3.0.2
    • asdfでインストール
  • テストコード生成に green_day を利用

リポジトリ

https://github.com/oke-py/abc-rb

おけぽよおけぽよ

Ruby 2.7.1

asdfを使用してインストールを試みます。

asdf install ruby 2.7.1
Downloading openssl-1.1.1l.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1
Installing openssl-1.1.1l...
Installed openssl-1.1.1l to /Users/naoki/.asdf/installs/ruby/2.7.1

Downloading ruby-2.7.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.bz2
Installing ruby-2.7.1...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 12.2 using ruby-build 20211109)

Inspect or clean up the working tree at /var/folders/62/pzs9vh696wd2pv4358l5cgwm0000gn/T/ruby-build.20220227125901.48728.S27Vjf
Results logged to /var/folders/62/pzs9vh696wd2pv4358l5cgwm0000gn/T/ruby-build.20220227125901.48728.log

Last 10 log lines:
../.././include/ruby/ruby.h:1847:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
2 warnings generated.
4 warnings generated.
linking shared-object zlib.bundle
422 warnings generated.
linking shared-object date_core.bundle
linking shared-object psych.bundle
make: *** [build-ext] Error 2

エラーとなりました。インストール済みの Ruby 2.7.2 で妥協します。

おけぽよおけぽよ

Ruby 3.0.2

$ ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [arm64-darwin20]

$ bundle exec green_day new abc200
Successfully created abc200 directory

成功しました。作成されたディレクトリを削除しておきます。

$ rm -rf abc200

Ruby 2.7.2

$ asdf local ruby 2.7.2

$ ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin20]

$ bundle exec green_day new abc200
No preset version installed for command green_day
Please install a version by running one of the following:

asdf install ruby 2.7.2

or add one of the following versions in your config file at /Users/naoki/go/src/github.com/oke-py/abc-rb/.tool-versions
ruby 3.0.2

失敗しました。これを解決できるとうれしいです。

おけぽよおけぽよ

Ruby 3.0.2を利用して生成されたGemfile.lockを削除しました。
Ruby 2.7.2でbundle installしたら解決しました。

このスクラップは2022/03/05にクローズされました