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 を使用しています。
私はローカル環境で Ruby 3.0.2 を使用していました。
Rubyの学習を兼ねているため(競プロには不要ですが)rubocopを入れてみました。
すると、ACしたコードがエラーを吐くようになってしまいました。
これを機にローカル環境とAtCoderのRubyバージョンをそろえようと思い立ちました。
環境
- MacBook Air (M1, 2020)
- macOS Monterey 12.2
- Ruby 3.0.2
- asdfでインストール
- テストコード生成に green_day を利用
リポジトリ
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にクローズされました