2.6 KiB
2.6 KiB
dua 설치 스크립트 오류 수정 계획 (FIX-DUA-INSTALL-IMP-PLAN)
1. 원인 분석
Byron/dua-cli GitHub 저장소는 워크스페이스 내 라이브러리 크레이트(dua-core-v5.0.1, dua-core-v5.0.0 등)의 릴리스도 함께 발행합니다.
기존 install-dua.sh는 단순히 prerelease == false인 첫 번째 릴리스 태그를 가져오도록 작성되어 있어, 바이너리 에셋이 전혀 없는 dua-core-v5.0.1 태그를 선택하고 dua-dua-core-v5.0.1-x86_64-unknown-linux-musl.tar.gz와 같은 존재하지 않는 다운로드 URL을 요청하여 404 에러로 실패하였습니다.
또한 Windows용 install-dua.ps1은 winget에만 의존하고 있어, GitHub Releases에서 직접 최신 v* 바이너리를 다운로드하거나 폴백으로 설치하는 기능이 부족했습니다.
flowchart TD
Start([설치 시작]) --> API[GitHub Releases API 조회]
API --> Filter{태그가 'v*' 로 시작하고<br/>assets가 존재하는가?}
Filter -- No (예: dua-core-v*) --> Skip[무시하고 다음 릴리스 검사]
Skip --> Filter
Filter -- Yes (예: v2.46.0) --> Download[아키텍처별 에셋 다운로드<br/>dua-vX.Y.Z-target.tar.gz/.zip]
Download --> Extract[압축 해제 및 ~/.local/bin 배포]
Extract --> PathConfig[PATH 환경변수 등록]
PathConfig --> Done([설치 완료])
2. 작업 단계 및 체크리스트
단계 1: 원인 분석 및 계획 수립
- GitHub Releases API 응답 구조 확인 (
dua-core-v*vsv*) - 실행 계획서(
VIBE-WORK/261031/FIX-DUA-INSTALL-IMP-PLAN.md) 작성
단계 2: install-dua.sh 수정
_json_latest_tag함수에서prerelease == false조건뿐만 아니라tag_name이v로 시작하고(startswith("v"))assets배열이 비어있지 않은 릴리스만 선택하도록 필터 강화- GitHub API 호출 시 User-Agent 헤더 및 Fallback 태그(
v2.46.0) 안전장치 추가 bash -n install-dua.sh문법 검사 및 태그 추출 테스트
단계 3: install-dua.ps1 개선
- GitHub Releases에서
v*태그의 Windows 바이너리(dua-{TAG}-{ARCH}-pc-windows-msvc.zip)를 직접 다운로드하여$env:USERPROFILE\.local\bin에 설치하도록 개선 (다른 스크립트들과 일관된 방식) - PATH 환경변수 자동 등록 및 버전 확인 로직 구성
단계 4: 완료 보고서 작성 및 Graphify 업데이트 / Git 푸시
- 완료 보고서(
VIBE-WORK/261031/FIX-DUA-INSTALL-PHASE01.md) 작성 uv tool run --from graphifyy graphify update .실행- Git commit 및 push