docs: expand libtinfo troubleshooting; add scripts/env-no-ld.sh

- README: deactivate may not clear LD_LIBRARY_PATH; unset, /usr/bin/vi, diagnostics
- scripts/env-no-ld.sh: run commands without LD_LIBRARY_PATH for vi/bash
- run.sh: include in commit if changed (verify diff)

Made-with: Cursor
This commit is contained in:
dosangyoon
2026-03-23 13:46:41 +09:00
parent a984b86766
commit 2caa74ac05
3 changed files with 82 additions and 13 deletions

42
run.sh
View File

@@ -1,22 +1,38 @@
#!/usr/bin/env bash
# libtinfo 경고: 터미널에 이미 conda가 켜져 LD_LIBRARY_PATH가 잡혀 있으면
# env -u LD_LIBRARY_PATH ./run.sh
# 로 실행해 보세요.
#!/bin/sh
# conda가 LD_LIBRARY_PATH에 lib를 넣은 상태에서 bash가 스크립트를 읽으면
# 시스템 bash가 conda의 libtinfo를 물어 경고가 난다. /bin/sh로 한 번 감싼 뒤
# LD_LIBRARY_PATH 없이 bash를 다시 실행한다.
if [ -z "${STT_RUN_WITH_CLEAN_LDLIB:-}" ]; then
export STT_RUN_WITH_CLEAN_LDLIB=1
exec env -u LD_LIBRARY_PATH /bin/bash "$0" "$@"
fi
set -euo pipefail
if [[ -z "${BASH_VERSION:-}" ]]; then
echo "ERROR: bash로 실행하세요. 예) ./run.sh 또는 bash run.sh" >&2
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
if [[ -z "${CONDA_BASE:-}" || ! -f "${CONDA_BASE}/bin/activate" ]]; then
CONDA_BASE=""
for cand in "${HOME}/workspace/miniconda3" "${HOME}/miniconda3" "${HOME}/anaconda3" "/opt/anaconda3"; do
if [[ -n "$cand" && -f "$cand/bin/activate" ]]; then
CONDA_BASE="$cand"
break
fi
done
fi
if [[ -z "${CONDA_BASE:-}" || ! -f "${CONDA_BASE}/bin/activate" ]]; then
echo "ERROR: conda를 찾을 수 없습니다. 예: export CONDA_BASE=/path/to/miniconda3" >&2
exit 1
fi
cd /home/dsyoon/workspace/stt
# 기본은 ncue (기존 동작). 다른 환경은 CONDA_ENV=stt 등으로 지정.
CONDA_ENV="${CONDA_ENV:-ncue}"
# shellcheck source=/dev/null
source "${CONDA_BASE}/bin/activate" "${CONDA_ENV}"
CONDA_BASE="/home/dsyoon/workspace/miniconda3"
source "${CONDA_BASE}/bin/activate" ncue
# 전역 LD_LIBRARY_PATH에 conda lib를 넣으면, 같은 터미널의 bash가 conda의
# libtinfo.so 를 물며 «no version information available» 경고가 날 수 있음.
# torch/ctranslate2 등은 uvicorn 자식 프로세스에만 경로를 넘긴다.
# 전역 LD_LIBRARY_PATH에 conda lib를 넣지 않음 (bash/libtinfo 경고 방지).
# torch/ctranslate2 등은 uvicorn 자식에만 경로 전달.
PORT="${PORT:-8025}"
RELOAD="${RELOAD:-0}"