6
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?

ruby-lspのバージョンをあげたい

Last updated at Posted at 2025-06-05

はじめに

こんにちは。Gakken LEAPで働いていますkoboriです。

VSCodeとRubyを使って開発をする場合、Rubyの拡張機能パック を使用される方は多いのではないかと思います。ご多分に漏れず私もその1人なわけですが、先日 拡張機能パックに含まれる ruby-lsp に関するエラーに遭遇しました。その際、エラーの解消にやや手間取ったので、解消方法とそのプロセスをまとめてみました。かいつまみながらでも読んでみていただけると嬉しいです。

用語の整理

まず初めに、ruby-lspに関する用語を下記に整理しておきます。

  • ruby-lspサーバ: ローカルにインストールされたRuby Gem
  • ruby-lspクライアント: VSCodeの拡張機能(ruby-lsp)に含まれる機能

今回遭遇したエラー

今回遭遇したエラーは、 こちらのissue に該当するもので、issueの記載にある通り、ruby-lspサーバ(gem)のバージョンが古いことが原因で発生していました。

Gemのバージョンアップは問題なくできた(つもりだった)のですが、ruby-lspクライアント(VSCodeの拡張機能)が参照するruby-lspサーバのバージョンが古いままであるために、エラーが解消されないというのが今回の問題でした。

先に結論

VSCodeの拡張機能のruby-lspが提供する、VSCodeのコマンドを実行することで、ruby-lspクライアントが参照するruby-lspサーバのバージョンを最新に更新することができます。

具体的な手順は下記の通りです。

  1. VSCodeのコマンドパレットを開く
    • Windows/Linux: Ctrl + Shift + P
    • macOS: Cmd + Shift + P
  2. Ruby LSP: Update Ruby LSP Server を選択して実行する

本コマンドについては、VSCodeの拡張機能のruby-lspのドキュメントに記載がありました。

解消までのプロセス

上述の通り、簡単に解決できる問題ではあったのですが、ここからは自戒を込めて、解消までのプロセスをまとめてみます。

「ruby-lspサーバのバージョンが古いことが原因」であることが分かった後、グローバルにインストールされたGemのバージョンを確認しました。すると、下記の通り、2つのバージョンがインストールされていることが分かり、v0.17.17によりエラーが発生している仮説が立ちました。

$ gem list | grep ruby-lsp
ruby-lsp (0.23.14, 0.17.17)
# 出力結果は一部省略しています。

何らかの理由で、VSCodeが v0.17.17を参照しているのだろうと考え、試しにv0.17.17をアンインストールしてみました。これにより、解消される or 参照先のruby-lsp gemが見つからない旨を示すエラーが発生することを期待しました。
しかし、結果はいずれにも該当せず、VSCodeを再起動すると、再び v0.17.17が復活しており、ruby-lspクライアントはv0.17.17参照しています。困りました。

もっと早く見ておけという話なのですが、ここでVSCodeの拡張機能のruby-lspのドキュメントを見てみると、下記の記述を見つけ、 .ruby-lsp というディレクトリがVSCodeの拡張機能のruby-lspにより作成され、そこでruby-lspサーバのバージョンを管理していることが分かりました。

By default, the Ruby LSP will generate a .ruby-lsp directory with a composed bundle that includes the server gem.

ここで、 .ruby-lsp ディレクトリへ移動し、ruby-lspサーバ(gem)のバージョンを確認したところ、v0.17.17 がインストールされていることが分かりました。
次に、.ruby-lsp 内の Gemfile を編集し、バージョンアップを試みることにしました。下記のようにGemfileを編集し、bundle install を実行しました。

gem 'ruby-lsp', '~> 0.23.0'

しかし、VSCodeを再起動すると、またもや v0.17.17 が復活し、VSCodeの拡張機能もそれを参照しています。.ruby-lsp 内の Gemfile を見ると、先ほどの編集内容が消えています。VSCodeの拡張機能のruby-lspが、.ruby-lsp ディレクトリを管理しているようです。

次に、下記の対応を実施しました。

  1. .ruby-lsp ディレクトリを削除する
  2. VSCodeの拡張機能のruby-lspをアンインストールする
  3. グローバルにインストールされているruby-lspサーバ(gem)の v0.17.17 をアンインストールする
  4. VSCodeを再起動する
  5. VSCodeの拡張機能のruby-lspをインストールする

これにより、VSCodeが参照するruby-lspサーバのバージョンを最新に更新することができました。

しかし、「.ruby-lsp ディレクトリを削除する」のは、開発環境とはいえ力技過ぎるなと思い、VSCodeの拡張機能のruby-lspのドキュメントを再度確認すると、Ruby LSP: Update Ruby LSP ServerというVSCodeのコマンドが提供されていることが分かり、これが正攻法だったかと思うに至りました。

まとめ

ドキュメントを読もう。(自戒)

おわりに

以上、gem ruby-lspのバージョンアップについて自身の経験も交えつつまとめてみました。どなたかの参考になれば幸いです。

エンジニア募集

Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています。
ぜひお気軽にカジュアル面談へお越しください。

6
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
6
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?