Edited at

CircleCIでbundler2のインストール時に実行ファイルの削除でYnの入力を求められるやつの対策

CircleCIでbundler2系を使いたいので以下のコマンドを実行するようにしていたが

     - run:

name: setup bundler 2
command: |
sudo gem uninstall bundler
sudo rm /usr/local/bin/bundle
sudo rm /usr/local/bin/bundler
sudo gem update --system
sudo gem install bundler

以下のログを出してタイムアウトすることがあった

Remove executables:

bundler

in addition to the gem? [Yn] Remove executables:
bundler

in addition to the gem? [Yn] Remove executables:
bundler

in addition to the gem? [Yn] context canceled

要はユーザーからの入力を待ってタイムアウトしている。


対策

こうすればよかった

      - run:

name: setup bundler 2
command: |
sudo gem update --system
sudo gem uninstall -ax bundler
sudo gem install bundle

gem uninstallはaオプション(バージョン問わず該当するものを全て削除)とxオプション(インタラクティブに実行形式ファイルの削除を問わずアンインストールを続行する)を取れるので、それを指定すればよかった。rmコマンドとかいらない。

yesコマンドを使ってもいいのでは?と思ったがなんか動かなかった。理由は調べてないのでわからん。