0
0

Linux Ruby 3.3.5 update メモ (rbenv)

Last updated at Posted at 2024-09-07

環境

H/W : HP ENVY x360 Convertible 13-ar0xxx(CPU:Ryzen7 3700U Mem:16GB)
OS : Linux(Debian12 bookworm on WSL2)
Host OS : Windows11 Home 23H2

はじめに

インストールの記事は書いてるけど、そういやrbenvを使ったバージョンアップについて書いてないので投稿したいと思います。

参考URL

「gem update --system」と「gem update」の違い
LinuxでRuby 2.5.0 インストールメモ
【Ruby】インストール済みのGemを確認する方法

前提

過去記事のLinux Ruby3.3.1インストール完全に理解した(rbenv)の続きです。
インストールパスや各ディレクトリの所有者(グループ)設定、権限設定は前回の記事どおりの設定となっている前提となります。

Rubyのupdate

git pullでruby-buildを最新化する

bash
$ ruby -v
ruby 3.3.2 (2024-05-30 revision e5a195edf6) [x86_64-linux]
$ cd "$(rbenv root)"/plugins/ruby-build
$ git pull
fatal: detected dubious ownership in repository at '/usr/local/lib/rbenv/plugins/ruby-build'
To add an exception for this directory, call:

        git config --global --add safe.directory /usr/local/lib/rbenv/plugins/ruby-build

上記の様にgit pullでエラーとなります。
これは該当ディレクトリの所有者がrootなのでたとえrubyグループで読み書き実行の権限があったとしてもlocalアカウントではgitのポリシーでpullが実行できないためです。

bash
$ git config --global --add safe.directory /usr/local/lib/rbenv/plugins/ruby-build
$ git pull
error: cannot open '.git/FETCH_HEAD': Permission denied

エラーメッセージにあったgit config ~を実行しましたが、今度は'Permission denied'エラーとなりました。

結局、root権限(sudo)でgit pullを実行しました。
(以下訂正・追記)
.git配下を見たら所有者root、グループrootになっているファイルが複数ありました。
おそらく以前updateしたときにroot権限で作業したためです。
rbenvディレクトリ配下のグループ所有権をrubyに変更し、読み・書き・実行の権限を付与すればローカルアカウントで管理(updateなど)できるようになります。

bash
$ cd /usr/local/lib/
$ ls
rbenv
$ sudo chgrp -R ruby rbenv
$ sudo chmod -R g+rwxX rbenv
$ ls -l
drwxrwxr-x 14 root ruby 4096 May 22 10:56 rbenv

気を取り直して、git pullします。

bash
$ cd "$(rbenv root)"/plugins/ruby-build
$ git pull
(略)
$ rbenv install --list
3.1.6
3.2.5
3.3.5
jruby-9.4.8.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.0.2
truffleruby+graalvm-24.0.2

Only latest stable releases for each Ruby implementation are shown.
Use `rbenv install --list-all' to show all local versions.

3.3.5インストールとバージョン切替え

bash
$ rbenv install -v 3.3.5
(略)
==> Installed ruby-3.3.5 to /usr/local/lib/rbenv/versions/3.3.5
$ rbenv versions
  3.3.1
* 3.3.2 (set by /usr/local/lib/rbenv/version)
  3.3.5
$ rbenv global 3.3.5
$ ruby -v
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]

Gemのupdate

gemコマンド(RubyGems)本体のupdateと各gemモジュールのupdateの二種類あります。

gemコマンド(RubyGems)本体のupdate

--systemオプションを付けるとgemコマンド本体のupdateになります。
今回は3.5.16から3.5.18へupdateしました。

bash
$ gem -v
3.5.16
$ gem update --system
(略)
RubyGems system software updated
$ gem -v
3.5.18

Gemモジュールのupdate

オプションなしで全Gemモジュールのupdateを実行します。

bash
$ gem update
Updating installed gems
(略)

ターゲットのGemのみupdateしたい場合はgem update [GEMNAME]の様にGemの名前を指定します。
 

インストール済Gemとバージョン確認

bash
$ gem list

*** LOCAL GEMS ***

abbrev (default: 0.1.2)
(略)

-dオプションを付けると詳細な情報が表示されます。

おわりに

ちょっとしたことでもすぐに忘れるのですぐに見返せるようメモを作っておくと便利です。

0
0
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
0
0