Skip to content

Instantly share code, notes, and snippets.

@wtnabe
Last active March 10, 2026 04:53
Show Gist options
  • Select an option

  • Save wtnabe/0d08327a9982f8088c7dbd0eb2539880 to your computer and use it in GitHub Desktop.

Select an option

Save wtnabe/0d08327a9982f8088c7dbd0eb2539880 to your computer and use it in GitHub Desktop.
rvとrvxでRubyスクリプト、rubygemsの実行のハードルがだいぶ下がりそう

2026-03-09 rv 0.5.3 時点の話。

rvx とは

rvx で起動できる gem と rv 管理の ruby の関係

  • rv は基本は最新安定版が動く ( なければ install される )
  • rv ruby pin でプロジェクト内の ruby のバージョンを固定できる ( .ruby-version を使う )
  • rvx ( rv tool run ) の際には install 時に利用した ruby が呼ばれる( システムデフォルトや .ruby-version は無視される )
    • この時、すでに uninstall されている ruby でも再度 install される
  • rvx 時に利用する ruby を指定する方法は今のところ見当たらない
  • rv tool uninstall && rv ruby pin && rv tool install で「install に利用した ruby を切り替える」ことができる
    • そうすると意図した version の ruby で動かすことができる

Debian系は注意

  • 少なくとも 12 ( bookworm ) は rv 側の判定で glibc が古すぎて musl 版の rv が動く
    • そう、 google/cloud-sdk とかね
  • musl 版の rv は musl 版の Ruby を install しようとするが Debian の musl パッケージでは必要なライブラリが足りない
  • musl 版の rv から install --tarball-path で直接 glibc 版の tarball を指定すれば install できる
    • tarball は事前に rv の install に使ったであろう curl で取得しておくこと

新しい Ruby に対応していない gem はどうしたら?

  • 使いたければ直しましょう
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment