Git이 정상적으로 작동하려면 Apple의 Xcode 커맨드 라인 도구(Command Line Tools)에 포함된 여러 의존성 요소가 필요합니다. Xcode Tools가 설치되어 있지 않으면 Git 명령어를 실행할 때마다 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) 오류가 발생합니다.
이 글에서는 해당 오류가 무엇인지, 왜 발생하는지 설명하고, 실제 예시 시나리오를 통해 문제를 해결하는 방법까지 단계별로 안내해 드립니다.
Git이란 무엇인가?
Git은 가장 널리 사용되는 버전 관리 시스템(Version Control System)입니다. Git은 파일에 대한 변경 이력을 추적하여 어떤 작업이 이루어졌는지 기록으로 남기고, 필요할 때 특정 버전으로 되돌릴 수 있게 해줍니다. 또한 여러 사람의 변경 사항을 하나의 소스로 병합할 수 있어 협업에도 큰 도움이 됩니다.
따라서 혼자만 보는 코드를 작성하든 팀 단위로 개발하든, Git은 누구에게나 유용한 도구입니다.
Git의 주요 특징
Git은 사용자의 컴퓨터에서 실행되는 소프트웨어입니다. 파일과 그 변경 이력은 모두 로컬 컴퓨터에 저장됩니다. 동시에 GitHub나 Bitbucket 같은 온라인 호스팅 서비스에 파일과 리비전 기록의 사본을 저장할 수도 있습니다. 변경 사항을 업로드하고 다른 사람의 변경 사항을 내려받을 수 있는 중앙 저장소가 있으면 다른 개발자들과의 협업이 훨씬 수월해집니다.
특히 Git은 변경 사항을 자동으로 병합할 수 있어서, 두 사람이 같은 파일의 서로 다른 부분을 수정한 뒤에도 서로의 작업을 잃지 않고 합칠 수 있습니다.
Git은 터미널과 같은 명령줄 인터페이스(CLI)로 사용할 수도 있고, Sourcetree처럼 그래픽 사용자 인터페이스(GUI)를 갖춘 데스크톱 앱으로도 사용할 수 있습니다.
Xcode Tools란 무엇인가?
Xcode는 맥의 공식 개발 및 디버깅 환경으로, macOS와 iOS 애플리케이션 개발에 필요한 필수 개발 파일을 제공합니다.
개발자가 맥에서 소프트웨어를 개발하려면 먼저 Xcode Command Line Tools를 설치해야 합니다.
Apple은 프로그래머를 위한 통합 개발 환경인 Xcode를 제공합니다. macOS, iOS, tvOS 또는 watchOS용 소프트웨어를 개발한다면 전체 Xcode 애플리케이션을 설치해야 합니다.
Xcode는 기본적으로 설치되어 있지 않지만, Apple 개발자 웹사이트나 Mac App Store에서 받을 수 있습니다.
Apple 기기용 소프트웨어를 개발하지 않는다면 전체 Xcode 앱은 필요 없습니다. 디스크 공간을 40GB 이상 차지하기 때문입니다!
대신 Xcode Command Line Tools를 다운로드하여 설치하면 됩니다. 이는 터미널 앱에서 실행되는 명령줄 도구들을 포함한, 소프트웨어 개발자를 위한 더 작은 패키지입니다.
이러한 도구들은 컴퓨팅 초창기부터 Unix 운영체제에서 프로그래머들이 사용해 온 것으로, 거의 모든 소프트웨어 개발의 기반이 됩니다.
다행히도 Xcode Command Line Tools 패키지는 디스크 공간을 약 1.2GB만 차지합니다.
맥에 Xcode Command Line Tools를 설치하는 3가지 방법
- 전체 Xcode 패키지 설치
- 터미널을 통해 Xcode Command Line Tools 설치
- Homebrew 설치를 통해 Xcode Command Line Tools 설치
Apple 기기용 소프트웨어를 개발하는 것이 아니라면 전체 Xcode 패키지 설치는 권장하지 않습니다. 다운로드 시간도 오래 걸리고 디스크 공간도 너무 많이 차지하기 때문입니다. 대신 더 빠른 나머지 두 가지 방법 중 하나를 시도해 보세요.
macOS는 Unix 기반으로 만들어져 있어 오랫동안 소프트웨어 개발의 표준으로 자리 잡았으며, 지금도 가장 인기 있는 개발 플랫폼 중 하나입니다.
Xcode Command Line Tools를 설치해 두면 거의 모든 오픈소스 개발 도구를 추가할 수 있는 탄탄한 기반을 갖추게 됩니다.
Git xcrun: error: invalid active developer path 오류란?
git pull, git push, git clone, git status, git branch 등 어떤 Git 명령어를 실행하든, 여러 버전의 macOS에서 사용자들이 이 오류를 겪었습니다.
일부 맥 터미널 사용자들은 pip, Homebrew 등 다른 커맨드 라인 도구들도 실패하거나 제대로 작동하지 않는 것을 발견했으며, 오류 메시지는 "xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)"였습니다. 이러한 커맨드 라인 도구들은 이전에는 잘 작동하다가 macOS 시스템 소프트웨어 업데이트 이후 갑자기 작동을 멈출 수 있습니다.
일반적인 오류 메시지는 다음과 같습니다:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcrun 오류의 원인은 무엇인가?
대부분의 경우 이 오류는 macOS를 업데이트하거나 업그레이드한 후 터미널 앱에서 git 명령을 실행하려 할 때 나타났습니다. 특히 최근 Big Sur로 업데이트한 맥에서 많이 보고되었습니다.
위의 오류 메시지는 그 자체로 설명이 됩니다. /Library/Developer/CommandLineTools 경로에서 찾은 활성 개발자 경로가 유효하지 않다는 뜻입니다. 즉, 이 오류는 Git 자체의 문제가 아니라 Command Line Tools의 문제입니다.
흥미로운 점은 Command Line Tools가 이미 macOS에 설치되어 있고 이전까지 잘 작동했더라도 이 오류가 발생할 수 있다는 것입니다. macOS 업그레이드 후에 오류가 나타났다면, 맥에 Command Line Tools를 재설치하는 것만으로도 설치 경로 관련 문제가 해결될 가능성이 높습니다.
Git xcrun 오류 해결 방법
이 오류를 처음 마주했다면 가장 먼저 터미널 창을 닫고 다시 실행해 보세요. 앱을 재시작한 후 명령어를 다시 입력하여 정상 작동하는지 확인합니다. 일시적인 오류(glitch)로 인한 것이었다면 앱을 재시작하는 것만으로 해결될 수 있습니다.
또한 터미널 앱이 명령어를 실행할 충분한 권한을 갖고 있는지 확인하세요. 접근 권한 문제를 피하려면 일반 콘솔 대신 관리자 권한(elevated) 터미널 창을 열어야 합니다. 이런 조치로도 해결되지 않으면 맥을 재부팅한 후 처음부터 다시 시도해 보세요. Outbyte macAries 같은 최적화 도구로 불필요한 파일과 사소한 시스템 문제를 먼저 정리하는 것도 도움이 됩니다.
오류가 너무 지속적이라 위의 문제 해결 단계로도 해결되지 않는다면, 아래의 해결책들을 따라 해보세요.
이 문제를 해결하는 가장 확실한 방법은 Xcode를 설치하는 것입니다. iOS 앱 개발에 관심이 있다면 전체 버전을 설치해도 되며, 역시 이 문제를 해결해 줍니다. Apple 개발자 사이트에서 Xcode .dmg 파일을 다운로드하면 됩니다.
Xcode를 자주 사용하지 않을 예정이라면, Xcode용 커맨드 라인 도구 패키지만 찾아 해당 .dmg 파일을 다운로드하여 설치하면 됩니다. 역시 Apple 개발자 사이트에서 받을 수 있습니다.
해결 방법 #1: Command Line Tools 설치 또는 재설치
아무것도 다운로드하지 않고 터미널에서 몇 가지 명령어만 실행해서 이 문제를 해결하고 싶다면, 아래 방법이 정답입니다:
- 터미널(Terminal) 앱을 실행합니다. 다른 터미널 앱을 사용해도 됩니다. macOS 사용자라면: 터미널 앱은 응용 프로그램 폴더 안의 유틸리티 폴더에서 찾거나, Spotlight 검색으로 바로 실행할 수 있습니다.
- 터미널에 다음 명령어를 입력하고 Enter 키를 눌러 커맨드 라인 도구를 설치합니다:
xcode-select --install - 이 명령어는 터미널에서 실행되어 Xcode용 커맨드 라인 도구를 설치합니다. 다음과 같은 출력이 표시되어야 합니다:
xcode-select: note: install requested for command line developer tools - Install(설치) 버튼을 클릭합니다.
- "Accept(동의)" 버튼을 클릭하여 라이선스 계약에 동의합니다.
설치가 완료될 때까지 기다려 주세요. 도중에 중단하지 말고 인내심을 갖고 기다리세요. 시간이 다소 걸릴 수 있습니다. 설치가 끝나면 터미널 앱을 다시 시작합니다. 저의 경우 재시작이 필요 없었지만, 경우에 따라서는 재시작 없이는 작동하지 않을 수 있습니다.
마지막으로, 오류 메시지가 나타났을 때 사용했던 명령어를 다시 입력하여 오류 없이 실행되는지 확인합니다. (제 경우에는 git commit이었습니다.)
다운로드에 7GB 이상의 공간이 필요하다는 안내가 표시된다면, Apple 개발자 사이트에서 Xcode 애플리케이션 전체를 직접 다운로드해야 한다는 뜻이니 참고하세요.
위 명령어로도 문제가 해결되지 않는다면, 아래 명령어를 함께 실행해 보세요:
xcode-select --reset
문제가 해결된 후에는, Xcode 없이 커맨드 라인 도구가 실행되도록 경로를 설정하는 것이 좋습니다:
xcode-select --switch /Library/Developer/CommandLineTools
Node.js와 node 타입이 필요한 모듈을 사용하는 경우 터미널에서 다음과 같은 경고를 볼 수 있습니다:
xcode-select: error: tool 'xcodebuild' requires Xcode
but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
이 오류는 전체 Xcode가 필요한 상황에서 개발자 디렉터리(xcode-select)가 /Library/Developer/CommandLineTools를 가리키고 있을 때 발생합니다(Xcode 설치 후 CommandLineTools를 설치한 경우에 생깁니다). 다음 명령어로 개발자 디렉터리를 Xcode.app로 업데이트하면 빠르게 해결할 수 있습니다:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
해결 방법 #2: Apple 개발자 다운로드 페이지에서 설치
터미널에서 Command Line Tools를 설치 또는 재설치하고 맥을 재시작했는데도 오류가 계속된다면, Apple에서 직접 제공하는 DMG 파일로 Command Line Tools를 수동 설치해 볼 수 있습니다.
다운로드 페이지에 접근하려면 Apple ID가 필요합니다. developer.apple.com에 접속하여 Command Line Tools for Xcode(최신 버전)를 다운로드한 후 수동으로 설치하세요.
Homebrew를 사용 중이라면 업데이트가 필요합니다. Homebrew를 재설치하거나 삭제 후 다시 설치할 필요는 없으며, 간단한 업데이트만으로 충분합니다.
해결 방법 #3: 터미널이 Xcode를 사용하도록 강제 설정
맥에 이미 Xcode가 설치되어 있다면 위의 설치 단계를 건너뛰고, 터미널이 Xcode의 커맨드 라인 도구를 사용하도록 강제할 수 있습니다. 이를 위해 다음 명령어들을 사용합니다:
- sudo xcode-select --reset
- sudo xcodebuild -license
여러 버전의 Xcode가 설치되어 있다면 아래 명령어로 원하는 버전을 선택할 수 있습니다:
xcode-select --switch /Applications/Xcode.app
반대로 Xcode 없이 Command Line Tools만 사용하도록 선택할 수도 있습니다:
xcode-select --switch /Library/Developer/CommandLineTools
마무리
운영체제를 업데이트한 후 이전까지 잘 작동하던 서비스들이 오랫동안 사용 불능 상태가 되는 문제는 흔히 발생합니다. 하지만 위에서 소개한 해결 방법을 따르면 xcrun: error: invalid active developer path (/library/developer/commandlinetools) 문제를 해결할 수 있을 것입니다. 만약 어떤 방법으로도 해결되지 않는다면, 아래 댓글 섹션에 오류 메시지를 공유해 주세요.