0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode・WSL・Windows環境で`Solargraph gem not found`が出たときの対処方法

Last updated at Posted at 2025-01-25

はじめに

ちょっとした理由があり、Rubyの学習を再度始めました。
いままで使えないまま放置していたSolargraphをちゃんと使えるようにしようと思い、対処したので備忘録として残しておきます

環境

  • VSCode
  • WSL2(Ubuntu)
  • Windows11

やりたいこと

  • solargraphを使いたい

やったこと

  • solargraphをVSCodeでインストール
  • gemをUbuntuでインストール

エラー内容

Solargraph gem not found. Run `gem install solargraph` or update your Gemfile

原因

  • VSCodeはWindows上に、gemはUbuntu上にあり、上手く読み込めていない

解決策

GitHubのQAを参照しながら対処しました。
最下部の参考欄にリンクを記載しています。
以下に該当箇所の和訳とちょっとした追記を記載します。

  1. bashでwhich solargraphを実行し、パスをコピーする

    • 追記:このときUbuntu上でコマンドを実行する
  2. solargraph.batファイルを作成し、以下のスニペットを貼り付ける。 {{SOLARGRAPH_PATH}}を1のパスに置き換えて使用する

    @echo off
    bash -c "{{SOLARGRAPH_PATH}} %*"
    
    // e.g.
    @echo off
    bash -c "~/.rbenv/shims/solargraph %*"
    
    • 重要:パスのbinをwrapperに置き換えてください。
      • (e.g. /home/mtamdev/.rvm/gems/ruby-2.6.0@dev-project/bin/solargraph %* -> /home/mtamdev/.rvm/gems/ruby-2.6.0@dev-project/wrappers/solargraph %*
        • 追記:自分の場合は以下パスが以下だったので、wrapperに置き換えずそのまま使いました
          • ~/.rbenv/shims/solargraph %*
        • 追記:batファイルはVSCodeが存在するWindows上に作成します
  3. solargraph.batファイルを保存し、その完全なファイルパスをコピーします。

  4. VSCodeのsettings.jsonに以下を追加する。 パスはコピーしたbatのファイルパスに置き換えてください。

    "solargraph.commandPath": "C:\\Max\\solargraph.bat"
    
  5. VSCodeを再起動する

なぜ上記の対処法で動くのか?

そもそもbatファイルとは?

  • Windows用のスクリプトファイル
  • ファイルを実行すると、PowerShellなどで使うWindowsコマンドを上から順番に実行してくれる

batの中で何をしているのか

  • 前提
    • Solargraphを実行するにはLinuxコマンドが必要
    • VSCodeはWindows上にあるので、そのままだとLinuxコマンドが使えない
  • やっていること
    • bash -c
      • bashシェルを呼び出し、-c 以下の箇所をコマンドとして解釈させる
    • "{{SOLARGRAPH_PATH}} %*"
      • solargraphのパスを渡して実行させている

結論

VSCode上でbatファイルのパスを指定して実行->
batファイルの中身でbashシェルを呼び出してLinux上でsolargraphを実行->
動く

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?