Tuist

Tuist 업데이트 할 때 경험한 트러블슈팅(aka 집요한 실험노트)

kimhyeji 2025. 8. 1. 19:01

Tuist 버전 업데이트를 하는 과정에서 경험한 트러블슈팅을 기록하고자 작성하려고 합니다.

문제 해결 과정을 기록하지 않으면 시간이 흐르고 같은 문제를 마주했을 때 그때마다 서치해서 해결만 하게 되더라구요!

 

우선 Tuist 버전을 확인하고 업데이트를 시도합니다.

$ tuist version
$ tuist update

 

tuist update를 실행하면 CLI 실행파일 자체를 업데이트하는 동시에, TuistEnv zip 파일을 다운받아 unzip 하는 과정을 거칩니다.

TuistEnv의 역할은 무엇일까요?
TuistEnv는 런타임 환경 관리자로, 터미널 명령을 실제로 처리할 Tuist 실행 파일을 다운로드하고, 설치하고, 관리하는 역할을 합니다.
Tuist 4부터는 TuistEnv가 Mise로 대체되어 공식 설치 스크립트나 Homebrew 방식에 따라 업데이트 할 수 있습니다. 저는 3.20이었기 때문에 TuistEnv로 업데이트 했던 것 같아용

 

처음 마주했던 에러는 TuistEnv zip 파일을 unzip 할 때 발생했고, 다운받은 TuistEnv zip 파일이 불완전하거나 디렉토리를 찾지 못하여 발생하는 에러로 추측했습니다.

unzip:  cannot find zipfile directory in one of .../tuistenv.zip or .../tuistenv.zip.zip, and cannot find .../tuistenv.zip.ZIP, period.

 

TuistEnv zip 파일을 다시 다운받기 위해 TuistEnv 캐시 전체를 제거하고 다시 업데이트를 시도해봅니다.

$ rm -rf ~/.tuist/tuistenv

 

다시 업데이트를 하려고 보니, 어라?

이미 최신 버전으로 업데이트가 되었다네용

🤔 tuist update를 실행했을 때 어떤 흐름으로 진행되길래 그런걸까?

1. CLI 바이너리 업데이트

2. CLI 버전에 따른 TuistEnv zip 파일 다운로드 & unzip

즉, TuistEnv unzip 에러가 발생하기 전에 이미 Tuist CLI는 최신 버전으로 업데이트가 됐기 때문에 다시 업데이트를 하려고 할 때 이미 업데이트할게 없다고 뜨고 TuistEnv zip 파일은 다시 다운로드 되지 않습니다.

TuistEnv 없음!

 

이제 런타임 바이너리 역할을 했던 TuistEnv 가 없기 때문에 tuist 실행 명령어 처리가 불가하지 않을까 싶었는데 잘 되더라고요?

gpt와 상황 공유 및 궁금증들을 해결하며 깊이 추적해봤습니다.

Tuist 실행파일 위치 출력

$ which tuist
/usr/local/bin/tuist

$ ls -l $(which tuist)
-rwxr-xr-x  1 kimhyeji  staff  31744197  6  1  2023 /usr/local/bin/tuist

 

실행 파일 위치를 출력해보고, 해당 경로의 상세 정보를 확인해봤습니다.

상세 정보를 통해 알 수 있는 것은, 심볼릭 링크가 아니라 실제 파일이라는 것인데, 실제 파일은 '-'로 시작하고 심볼릭 링크는 'l(엘)'로 시작합니다. (파일 크기도 31,744,197 바이트로 꽤 크죠..?)

  • 심볼릭 링크 : 특정 파일 위치를 가리키는 바로가기 파일을 통해 접근, 가리키고 있는 파일의 경로 정보 저장
  • 실제 파일 : 실제 바이너리 파일

두 접근 방식의 차이는 업데이트 과정에서 명확하게 비교할 수 있습니다.

심볼릭 링크의 경우 디렉토리를 가리키고 있기 때문에 해당 디렉토리에서 파일만 교체하여 업데이트 할 수 있으나, 실제 파일의 경우 파일을 덮어쓰거나 새로운 버전의 파일을 다운받아 교체하는 작업이 필요합니다.

 

그런데 우리가 작업하는 모든 프로젝트의 Tuist 버전이 같지 않을 가능성이 크고 레거시 프로젝트의 경우 Tuist 버전을 매번 업데이트하지 않을 수 있기 때문에 각 프로젝트들이 다른 Tuist 버전의 바이너리 파일로 실행해야 할 가능성이 크겠죠?

프로젝트마다 각기 다른 Tuist 버전으로 빌드해야 한다고 생각하니 벌써부터 머리가 지끈지끈..🤯

 

결론은, 앞으로를 위해서라도 Tuist 버전 관리 도구가 필요할 것 같아 Mise를 설치해야 할 것 같다는 것입니다!

반응형

'Tuist' 카테고리의 다른 글

Mise로 Tuist 버전 관리하기  (1) 2025.08.13