Rubyをほとんど使わないがインストールする(RVM)
2025/09/15
C言語で単体テストを書いているが、この環境を作るまでにひどく時間がかかった。
一から作ったのが原因ではあるが、では既に何かデファクトスタンダードがあるかというと無いと思う。
そこで見つけたのが、単体テストフレームワーク Unity と同じグループで開発している Ceedling だ。
まずは使ってみようとしたのだが、Ruby が必要らしい。
インストールしていないのだが、探してみると開発環境としてインストールするためプロジェクトごとにバージョン管理する手順がたくさん見つかった。
今回は Ceedling を動かすためだけにインストールするので、Ruby 開発する人ほどには使わないが root 環境にインストールしたいわけでもないくらいでやってみよう。
rbenv
rbenv を使うと、必要があればバージョンを切り分けられそうだ。
$ sudo apt install rbenv
$ rbenv install -l
$ rbenv install 3.1.2
$ ruby --version
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]
$ gem --version
3.4.20
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bashrc:
eval "$(rbenv init -)"
さて、手順通りに最新バージョンをインストールしたのだが、そもそも rbenv をインストールした時点で /usr/bin/ruby
もインストールされていた。
rbenv をインストールしない方が「最小限」で済むのでは。。。
ここで ruby だけ uninstall すると rbenv も一緒に消えてしまった。
root にインストールしない方法を探しているので、rbenv は止めておこう。
RVM
rbenv 以外でもう1つ RVM が候補にあったのでこちらを試そう。
コマンド名が rvm
で、 rm
と一文字違いなので注意しよう。
curl
の前に \
が付いているのはなんだろう?
どうやら alias
設定を無視して実行するという意味らしい。
gnupg2 は持っていなかったので apt install したが、それ以外はローカルにインストールされたようだ。
.bashrc
などに自動で追加まで行われている。
これを書いている時点の Ruby安定版は 3.4.5 だそうだ(ダウンロード)。
インストール直後の rvm list known
には出てこなかったが rvm get head
で更新した後だと出てきた。
が、rvm install
すると apt get
すると言い出した。そういうものなの?
あるいは何か足りないからインストールしたいのか?
ruby をインストールするのではなく、libsqlite3-dev とかそういうのだったのでよしとしよう。
$ rvm install ruby-3.4.5
Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/ubuntu/24.04/x86_64/ruby-3.4.5.tar.bz2
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..hirokuma password required for 'apt-get --quiet --yes update':
最終的には $HOME/.rvm
の下にインストールされたので私の希望通りだ。
RVM を使おう。
もう1つの環境にもインストールしたのだが、そちらは rvm install
でパスワード入力はしなくても進んだ。
いろいろビルドしている環境なのでライブラリが既にインストールされていたのだろう。
また、 rvm use 3.4.5 --default
しないとコマンドが使えなかった。同じような手順でやったつもりなのだがよくわからない。
Ceedling
今回の本題ではないが、RVM でインストールされた gem を使う例として ceedling をインストールしておこう。
$ gem install ceedling
Fetching ceedling-1.0.1.gem
Fetching unicode-emoji-4.1.0.gem
Fetching unicode-display_width-3.2.0.gem
Fetching thor-1.4.0.gem
Fetching constructor-2.0.0.gem
Fetching diy-1.1.2.gem
Fetching deep_merge-1.2.2.gem
Successfully installed unicode-emoji-4.1.0
Successfully installed unicode-display_width-3.2.0
Successfully installed thor-1.4.0
Successfully installed constructor-2.0.0
Successfully installed diy-1.1.2
Successfully installed deep_merge-1.2.2
Successfully installed ceedling-1.0.1
7 gems installed
A new release of RubyGems is available: 3.6.9 → 3.7.2!
Run `gem update --system 3.7.2` to update your installation.