증상과 원인은 공식 포럼 스레드의 보고 기준이고, 아래 우회법은 커뮤니티에서 만든 것입니다. 제조사가 확인한 수정은 아직 없습니다. 시스템 파일을 바꾸는 우회법은 되돌릴 방법을 먼저 확인하고 적용하세요.
증상
Remote SSH로 Ubuntu 22.04 LTS 서버에 붙어 Cursor 3.13.10을 쓰면 코드 인덱싱/검색이 통째로 먹통이 됩니다.
- 화면 우측 하단 토스트:
index build failed: miniserde error - 출력(Output) 패널 로그:
crepectl: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.39' not found - 함께 뜨는 메시지:
cannot index repository without Git,Not creating an indexing watcher: no queryable index to build - Codebase 검색·
@codebase가 빈 결과이거나 아예 동작 안 함
원인
crepectl은 Cursor의 Instant Grep 인덱서(코드 검색용 인덱스를 만드는 바이너리)입니다. Cursor가 배포하는 이 바이너리가 GLIBC 2.39로 컴파일돼 있습니다(3.13.10 전 빌드도 마찬가지입니다 — 아래 스태프 확인 참고). 그런데 Ubuntu 22.04 LTS는 GLIBC 2.35를 씁니다. 시스템 glibc가 2.39보다 낮으니 바이너리가 아예 로드되지 못하고, 인덱싱 전체가 실패합니다.
Cursor 스태프(deanrie)가 원 스레드에서 공식 확인했습니다. 요지는 세 가지입니다.
- 패키징 버그가 맞습니다. "This is a real packaging bug on our side. We shipped
crepectllinked against GLIBC 2.39, but Ubuntu 22.04 LTS has 2.35." 다만 수정 시점(ETA)은 아직 없습니다. - 3.13.10에서 새로 생긴 문제가 아닙니다. "Older remote builds also needed 2.39, it's just that until a recent change the crash was silently handled by the ripgrep fallback, so it wasn't noticeable." 즉 예전 빌드도 똑같이 2.39를 요구했고, ripgrep 폴백이 조용히 처리해줘서 안 보였을 뿐입니다. 따라서 구버전으로 롤백해도 이 문제는 해결되지 않습니다.
miniserde error라는 엉뚱한 메시지가 뜨는 건 별개의 로깅 버그입니다. "Logging is swallowing the real reasoncrepectlcrashes."
함께 알아둘 것 — 클라우드(시맨틱) 인덱싱은 돌아오지 않습니다. 코드베이스 임베딩 인덱싱이 사라진 것은 버그가 아니라 의도적 정책 변경입니다. 스태프 표현으로 "This isn't a bug and it won't be restored. Semantic embeddings indexing is being intentionally rolled back in favor of grep-based retrieval." 그래서 embeddable_files.txt나 'View included files'도 복구되지 않습니다. 아래 조치로 되살릴 수 있는 것은 Instant Grep(로컬 grep 인덱스)까지입니다.
정리하면, 지금 선택지는 (1) 그냥 두고 ripgrep 폴백으로 쓰기, (2) glibc 2.39를 crepectl에만 사이드로드해 Instant Grep 복구, (3) 서버 OS를 24.04로 올려 시스템 glibc를 2.39로 맞추기 — 이 셋입니다.
방법 1 — 그냥 두고 ripgrep 폴백으로 쓰기 (가장 안전, 대부분 이걸 권합니다)
중요: 구버전으로 롤백하는 방법은 통하지 않습니다. 스태프 확인대로 예전 빌드도 GLIBC 2.39를 요구했기 때문입니다(폴백이 가려줬을 뿐). 이전 안내에서 롤백을 권했으나, 스태프 답변에 따라 정정합니다.
인덱스가 깨져도 검색 자체는 계속 됩니다. Cursor가 ripgrep 폴백으로 넘어가기 때문입니다. 스태프 표현으로 "search will still work via the ripgrep fallback, just slower and without the crepe index."
- 체감 차이: 검색이 조금 느려지고, crepe 인덱스 기반 결과가 빠집니다.
- 토스트가 계속 거슬리면 Settings → Indexing에서 Index Repositories for Instant Grep (BETA) 를 끄면 됩니다.
- 비개발자거나 운영 서버라면 이 선택이 제일 안전합니다. Cursor가 재빌드해 배포하면 자동으로 해결됩니다.
방법 2 — GLIBC 2.39 사이드로드 래퍼 (고급·취약, Instant Grep만 복구)
원 스레드에서 Instant Grep 한정으로 동작이 확인된 우회책입니다. OS는 안 건드리고, Ubuntu 24.04의 libc6 2.39만 홈 디렉터리에 풀어서 crepectl이 그것을 쓰게 만듭니다. 아래 스크립트는 스레드에 서술된 동작(24.04 libc6 2.39를 ~/.local/share/cursor-glibc239에 내려받고, crepectl을 백업 후 래퍼로 교체)을 표준 방식(새 ld-linux 로더로 원본을 실행)으로 재구성한 것입니다 — 원문 스크립트 자체는 스레드에 공개돼 있지 않습니다.
주의: glibc를 섞어 쓰는 방식이라 취약하고, Cursor 서버가 업데이트될 때마다 래퍼가 덮어써져 다시 실행해야 합니다. 시스템 glibc는 건드리지 않으므로 서버 전체가 망가질 위험은 낮지만, 반드시 crepectl만 대상으로 하세요.
원격 서버 터미널에서:
#!/usr/bin/env bash
set -euo pipefail
# 1) Ubuntu 24.04 libc6(=GLIBC 2.39)만 홈에 풀기 (OS는 안 건드림)
GLIBC_DIR="$HOME/.local/share/cursor-glibc239"
mkdir -p "$GLIBC_DIR"; cd "$GLIBC_DIR"
# 버전 문자열(2.39-0ubuntuX.Y)은 보안 업데이트로 바뀝니다. 404가 나면
# http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/ 에서 최신 libc6_2.39-*_amd64.deb 파일명으로 교체하세요.
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) crepectl 실제 경로 찾기
CREPECTL="$(find "$HOME/.cursor-server" -type f -name crepectl -path '*helpers*' | head -n1)"
[ -n "$CREPECTL" ] || { echo "crepectl 없음 — Cursor로 원격에 한 번 접속해 서버 설치 후 다시 실행"; exit 1; }
# 3) 원본 백업 (최초 1회만)
[ -f "$CREPECTL.orig" ] || cp "$CREPECTL" "$CREPECTL.orig"
# 4) crepectl을 래퍼로 교체: 새 로더 + 새 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 "완료 — Cursor에서 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 몫이므로, 패치 버전이 나오면 최신으로 업데이트하세요.
- 원 포럼 스레드를 구독해두고, Cursor 새 버전 체인지로그에 crepectl/GLIBC 관련 수정이 들어왔는지 확인하는 걸 권합니다.
