症状

mason.nvimでLSPサーバーをインストールしようとするとエラーが表示され、インストールが完了しない。

結論:まずこれを確認

  1. :checkhealth mason を実行して依存関係を確認する
  2. git, curl, unzip がインストールされているか確認する
  3. ネットワーク接続とプロキシ設定を確認する

操作フロー

    flowchart TD
    A[インストール失敗] --> B{:checkhealth mason}
    B -->|ERROR表示| C[依存ツール不足]
    B -->|OK| D{ログを確認}
    C --> E[git/curl/unzipをインストール]
    D -->|network error| F[ネットワーク確認]
    D -->|permission denied| G[パーミッション確認]
    D -->|その他| H[個別エラーを調査]
    F --> I[プロキシ設定確認]
    G --> J[mason.nvimのデータディレクトリ確認]
  

よくある原因

  • git がインストールされていない - 多くのLSPサーバーはgitでクローンされる
  • curl または wget がない - ダウンロードに必要
  • unzip がない - zipファイルの展開に必要
  • npm/cargo/pip がない - 言語別のパッケージマネージャが必要なサーバーがある
  • ネットワーク接続の問題 - ファイアウォールやプロキシで遮断されている
  • データディレクトリの権限不足 - ~/.local/share/nvim/mason への書き込み権限がない
  • ディスク容量不足 - ダウンロードや展開に必要な空き容量がない

操作手順

ステップ1: checkhealthで依存関係を確認する

Neovimで以下を実行する:

    :checkhealth mason
  

🔍 チェックポイント: すべての項目が OK になっていれば依存関係は問題なし

ERRORが表示された場合は、不足しているツールをインストールする。

ステップ2: 必須ツールのインストール状況を確認する

ターミナルで以下を実行する:

    # 必須ツールの確認
which git curl unzip

# バージョン確認
git --version
curl --version
unzip -v
  

🔍 チェックポイント: 各コマンドでパスとバージョンが表示されれば正常

不足している場合のインストール例:

    # Ubuntu/Debian
sudo apt install git curl unzip

# macOS (Homebrew)
brew install git curl unzip

# Fedora
sudo dnf install git curl unzip
  

ステップ3: 言語別パッケージマネージャを確認する

インストールしようとしているLSPサーバーに応じて確認する:

    # Node.js系LSP(typescript-language-server等)
node --version
npm --version

# Python系LSP(pyright等)
python3 --version
pip3 --version

# Rust系LSP(rust-analyzer等)
cargo --version

# Go系LSP(gopls等)
go version
  

🔍 チェックポイント: 対象LSPに必要なツールがインストールされていること

ステップ4: masonのログを確認する

Neovimで以下を実行する:

    :MasonLog
  

ログファイルの場所:

    ~/.local/state/nvim/mason.log
  

🔍 チェックポイント: エラーメッセージの内容を確認し、原因を特定する

ステップ5: データディレクトリの権限を確認する

    ls -la ~/.local/share/nvim/mason
  

🔍 チェックポイント: 自分のユーザーで読み書き可能であること

権限に問題がある場合:

    # 所有者を変更
sudo chown -R $(whoami):$(whoami) ~/.local/share/nvim/mason

# 権限を設定
chmod -R u+rwX ~/.local/share/nvim/mason
  

ステップ6: ネットワーク接続を確認する

    # GitHubへの接続確認
curl -I https://github.com

# npmレジストリへの接続確認
curl -I https://registry.npmjs.org
  

🔍 チェックポイント: HTTP 200または301/302が返ればネットワークは正常

プロキシ環境の場合、init.lua に設定を追加する:

    -- ~/.config/nvim/init.lua
vim.env.HTTP_PROXY = "http://proxy.example.com:8080"
vim.env.HTTPS_PROXY = "http://proxy.example.com:8080"
  

ステップ7: 手動インストールを試す

:Mason を開き、対象のLSPサーバーを選択して i キーでインストールを実行する:

    :Mason
  

🔍 チェックポイント: インストール進捗とエラーメッセージを確認する

NG行動(やってはいけないこと)

  • sudo でNeovimを起動する - パーミッションが混乱し、通常ユーザーで使えなくなる
  • mason.nvimのデータディレクトリを手動で編集する - 整合性が崩れる可能性がある
  • エラーを確認せずに再インストールを繰り返す - 根本原因が解決しない
  • checkhealth の警告を無視する - 依存関係の問題を見逃す

よくある質問(FAQ)

Q1: 特定のLSPサーバーだけインストールできない場合は?

A: そのLSPサーバー固有の依存関係を確認する。:MasonLog でエラー詳細を確認し、必要なツール(npm, pip, cargo等)がインストールされているか確認する。

Q2: mason.nvimのキャッシュをクリアする方法は?

A: データディレクトリを削除して再インストールする:

    rm -rf ~/.local/share/nvim/mason
  

Neovimを再起動後、:Mason で再インストールする。

Q3: 会社のプロキシ環境で使う場合の設定は?

A: init.lua で環境変数を設定するか、シェルの環境変数を設定する。npmを使うLSPの場合は npm config set proxy も必要になることがある。

関連するトラブル

準備中

解決しない場合