症状
mason.nvimでLSPサーバーをインストールしようとするとエラーが表示され、インストールが完了しない。
結論:まずこれを確認
:checkhealth masonを実行して依存関係を確認するgit,curl,unzipがインストールされているか確認する- ネットワーク接続とプロキシ設定を確認する
操作フロー
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 も必要になることがある。
関連するトラブル
準備中
解決しない場合
- mason.nvim公式ドキュメント: https://github.com/williamboman/mason.nvim
- mason-lspconfig.nvim: https://github.com/williamboman/mason-lspconfig.nvim
- 確認すべきログ:
~/.local/state/nvim/mason.log - 次に調べるキーワード:
mason.nvim [LSPサーバー名] install failed