7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RVMでRubyのマルチユーザーインストールを試す

Last updated at Posted at 2022-07-28

これはなに

rbenvを使ってRubyマルチユーザーで使えるようにインストールしようと思って調べてみたところ、rbenvだと少し面倒そうだった。
その最中にRVMなるものを見つけて、楽にインストールできたのでインストール手順を書いておく。

rbenvでマルチユーザーインストールする場合

以下の記事などのように、

  • /usr/local/などにrbenvを配置
  • sudoerもrbenvを呼べるようにPATHを通す
  • RBENV_ROOT環境変数を設定、sudo時に渡すようにする

をしなければならない。

どうやってマルチユーザーで使えるようにしてるか後から触る時に忘れそうだなと思って、以下の記事を読んでいたら、

rbenv と同じバージョン管理ツールの RVM には、「Multi-User installations」というインストール方法があります。

とあったので試してみた。

RVMのインストール

RVM: Ruby Version Manager - Installing RVM を参考にインストールする。

僕の環境はUbuntuだったので、ドキュメント通りUbuntuのインストール方法で進める。

$ sudo apt-get install software-properties-common

$ sudo apt-add-repository -y ppa:rael-gc/rvm
$ sudo apt-get update
$ sudo apt-get install rvm

インストール後、ユーザーをrvmグループに追加する必要がある。

$ sudo usermod -a -G rvm $USER

/etc/profile.d/rvm.shを読み込めば使えるようになる。(すごい簡単!)

$ echo 'source "/etc/profile.d/rvm.sh"' >> ~/.bashrc

:warning: Ubuntu以外の場合は、https://rvm.io/rvm/install#any-other-system を参照。
なお、Ubuntu以外の場合でマルチユーザーインストールをしたい場合はインストールスクリプトをsudo付きで実行する必要がある。

Note: The Multi-User install instructions must be prefixed with the sudo command. However, once the install is complete, and the instructions to add users to the rvm group is followed, the use of either sudo or rvmsudo is no longer required. The sudo command is only to temporarily elevate privileges so the installer can complete its work. If you need to use sudo or rvmsudo after the install is complete, some part of the install directions were not properly followed. This usually is because people execute the install as root, rather than executing the installation instructions from a non-privileged user account.

https://rvm.io/rvm/install#1-download-and-run-the-rvm-installation-script より引用)

本当にマルチユーザーで使えるのか確認

とりあえずRubyをインストールする。

$ rvm install 3.1.2
略...

$ which ruby
/usr/share/rvm/rubies/ruby-3.1.2/bin/ruby

$ ruby --version
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

rubocopをグローバルにインストールしておいて、別のユーザーで使えるのか確かめる。

$ gem install rubocop
略...

$ which rubocop
/usr/share/rvm/gems/ruby-3.1.2/bin/rubocop

$ rubocop --version
1.32.0

準備ができたので、新しくユーザーを作ってRubyを使えるか確認する。

$ sudo useradd -m -G rvm -s $(which bash) test-user
$ sudo su - test-user
$ whoami
test-user

$ which ruby
/usr/share/rvm/rubies/ruby-3.1.2/bin/ruby

$ ruby --version
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

$ echo 'puts("Hello World")' > main.rb
$ ruby main.rb
Hello World

rubocopも使える。

$ which rubocop
/usr/share/rvm/gems/ruby-3.1.2/bin/rubocop

$ rubocop --version
1.32.0

$ rubocop -A main.rb
略...
1 file inspected, 3 offenses detected, 3 offenses corrected

さいごに

ほぼ何もせずにマルチユーザーでRubyが使えるようになった。RVMすごい。
どんな仕組みなのかは調べてみたい。

Refs

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?