症状

Ubuntu 22.04 LTS サーバーに Remote SSH で接続し、Cursor 3.13.10 を実行すると、コードのインデックス作成/検索が完全に動かなくなります。

  • トースト通知(右下): index build failed: miniserde error
  • 出力パネルのログ: crepectl: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.39' not found
  • 併発するメッセージ: cannot index repository without GitNot creating an indexing watcher: no queryable index to build
  • Codebase 検索や @codebase が空を返すか、何も起きない

原因

crepectl は Cursor の Instant Grep インデクサ — コード検索インデックスを構築するバイナリです。Cursor 3.13.10 以降、このバイナリは GLIBC 2.39 でコンパイルされています。Ubuntu 22.04 LTS に搭載されているのは GLIBC 2.35 です。システムの glibc が 2.39 より古いため、バイナリがまったくロードできず、インデックス作成が完全に失敗します。

これは 3.13.10 で発生したリグレッションです。フォーラムのスレッド時点で、Cursor の公式な修正はなく、スタッフからの返答もありません。 OS を 24.04(GLIBC 2.39 を搭載)にアップグレードすれば根本的に解決しますが、本番サーバーには負担が大きく — 報告者も明確に却下しています。以下は今すぐ使える 2 つの回避策です。

対処法 1 — Cursor を 3.13.10 より前のビルドにロールバックする(最も安全)

問題が最初に現れたのは 3.13.10 なので、それより前のバージョンなら GLIBC 2.39 版の crepectl はインストールされません。Cursor の Remote SSH はローカルのクライアントバージョンに合ったサーバーバイナリをプッシュするため、ローカルクライアントをダウングレードし、リモートサーバーのキャッシュをクリアするのがコツです。

  1. 3.13.10 の 直前 のビルド(例: 3.13.9 や 3.12.x)を Cursor のダウンロードページ/changelog から入手し、ローカルの Cursor に上書きインストールします。
  2. 3.13.10 に戻らないよう自動アップデートを無効化します: Settings → Application → Update → 自動アップデートを無効化。
  3. リモートサーバーで、再プロビジョニングさせるためキャッシュされたサーバーバイナリを削除します:
bash

   rm -rf ~/.cursor-server
  1. Cursor から再接続します。システムの GLIBC 2.35 と互換のある古い crepectl が再インストールされます。

シェル操作に不慣れなら、これが最も安全なルートです。修正版のビルドが出たら最新の Cursor に戻しましょう。

対処法 2 — crepectl 用に GLIBC 2.39 をサイドロードする(上級者向け、コミュニティで確認済み、壊れやすい)

これはスレッドで 動作確認された回避策です — Instant Grep 限定。OS には手を付けず、Ubuntu 24.04 の libc6 2.39 をホームディレクトリに展開して crepectl がそちらをロードするようにするだけです。以下のスクリプトは、スレッドで説明されている挙動(~/.local/share/cursor-glibc239 に 24.04 の libc6 2.39 をダウンロードし、crepectl をバックアップして、ラッパーに置き換える)を、新しい ld-linux ローダーを呼び出す標準的な手法で再現したものです — 元のコミュニティスクリプト自体はスレッドに公開されていませんでした。

注意: glibc のバージョンを混在させるのは壊れやすく、Cursor サーバーが更新されるたびにラッパーは上書きされるので、その都度これを再実行する必要があります。システムの glibc には一切触れないため、サーバー全体が壊れるリスクは低いですが — crepectl 限定にとどめてください。

リモートサーバーで:

bash

#!/usr/bin/env bash
set -euo pipefail

# 1) Unpack only Ubuntu 24.04 libc6 (= GLIBC 2.39) into home (no OS change)
GLIBC_DIR="$HOME/.local/share/cursor-glibc239"
mkdir -p "$GLIBC_DIR"; cd "$GLIBC_DIR"
# The version string (2.39-0ubuntuX.Y) changes with security updates. If this 404s,
# grab the current libc6_2.39-*_amd64.deb from http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/
wget -N http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6_2.39-0ubuntu8.4_amd64.deb
dpkg -x libc6_2.39-*_amd64.deb .

# 2) Locate the real crepectl
CREPECTL="$(find "$HOME/.cursor-server" -type f -name crepectl -path '*helpers*' | head -n1)"
[ -n "$CREPECTL" ] || { echo "crepectl not found — connect once from Cursor to install the server, then re-run"; exit 1; }

# 3) Back up the original (first time only)
[ -f "$CREPECTL.orig" ] || cp "$CREPECTL" "$CREPECTL.orig"

# 4) Replace crepectl with a wrapper that runs the original via the newer loader + libc
cat > "$CREPECTL" <<EOF
#!/usr/bin/env bash
G="$GLIBC_DIR/lib/x86_64-linux-gnu"
exec "\$G/ld-linux-x86-64.so.2" --library-path "\$G:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu" "$CREPECTL.orig" "\$@"
EOF
chmod +x "$CREPECTL"
echo "Done — in Cursor run Cmd/Ctrl+Shift+P → 'Developer: Reload Window'"

その後 Cursor で Developer: Reload Window を実行するとインデックスが復活します。サーバー更新で再び壊れたら、スクリプトを再実行するだけです。

根本原因と追跡

  • 本当の修正は (a) サーバーを Ubuntu 24.04 にアップグレードしてシステムの glibc を 2.39 にする、または (b) Cursor が crepectl を glibc 2.35 でリビルドするか静的リンクで配布する、のいずれかです。(b) は Cursor 側の対応なので、パッチが出たら最新ビルドに更新しましょう。
  • フォーラムのスレッドを購読し、crepectl/GLIBC の修正について Cursor の changelog を注視してください。