맥 운영체제에서 'gcc' 'make' 같은 컴파일 툴이나 'svn' 'git' 같은 분산 버전 관리툴, 또는 기본적인 Unix/Linux 툴킷을 사용하려면 기본적으로 홈브류(Homebrew)나 명령어 라인 도구(Command Line Tools)을 먼저 설치해야 합니다.
OS X 최신 버전에 홈브류를 설치하는 방법은 별도의 포스트를 통해 소개해 드린 적이 있고, 애플이 제공하는 '명령어 라인 도구'는 맥에 Xcode를 설치하면 자동으로 같이 설치됩니다. 예전에는 Xcode를 먼저 설치한 뒤 메뉴 막대 > Open Developer Tool > More Developer Tools...를 클릭해 따로 내려받아야 했는데, OS X 10.9 Mavericks와 같이 나온 Xcode 5 버전부터는 Xcode에 포함되어 있기 때문에 따로 내려받을 필요가 없어졌습니다.
터미널을 이용해 명령어 라인 도구 설치하기
하지만 개발직에 종사하고 있다고 해서 Xcode가 다 필요한 건 아닐 겁니다.
단순히 커맨드 라인 도구를 이용하기 위해 5GB에 육박하는 Xcode를 설치해야 한다는 게 상당히 비효율적이죠. 애플 개발자 포털 사이트를 방문해 명령어 라인 도구만 내려받을 수 있긴 하지만 계정이 없는 분도 있을 겁니다.
이런 분은 굳이 Xcode를 설치하거나 애플 사이트를 방문할 필요 없이 OS X에 내장된 '터미널(Terminal)'만으로 명령어 라인 도구를 쉽게 내려받을 수 있습니다.
1. 맥이 인터넷에 연결돼 있을 때 아래와 같이 명령어를 입력하면 곧바로 커맨드라인 도구 설치가 시작됩니다. ▼
xcode-select --install
2. 명령어 라인 도구를 설치하겠냐는 대화상자가 나타나면 '설치' 버튼을 눌러줍니다. 다운로드 용량은 버전에 차이가 있지만 보통 150~200MB사이입니다. ▼
3. 명령어 라인 도구를 다 내려받으면 '사용권 계약'이 담긴 대화상자가 나타납니다. 여기서 '동의' 버튼을 누르면 설치가 완료됩니다. ▼
4. 이제 터미널을 통해 명령어 라인 도구를 사용할 수 있습니다. gcc 컴파일러를 실행해 개발자 도구가 잘 설치되었는지 확인해보세요. ▼
명령어 라인 도구 설치 경로
1. 명령어 라인 도구는 아래 경로에 설치됩니다. 사용자 라이브러리(~/Library)가 아닌 공용 라이브러리(/Library)에 설치된다는 점만 유념하시면 될 듯합니다. ▼
/Library/Developer/CommandLineTools/
2. 나중에 명령어 라인 도구가 필요 없어지면 해당 폴더만 삭제하시면 됩니다. 물론 위와 같은 방법으로 언제든 다시 내려받을 수 있습니다. ▼
사용할 수 있는 명령어 종류
'명령어 라인 도구' 설치 후 사용할 수 있는 명령어 종류는 OS X 버전과 명령어 라인 도구의 버전에 따라 차이가 있습니다. Command Line Tools (OS X 10.11) for Xcode 7.3 버전을 기준으로 다음과 같은 명령어가 포함돼 있습니다.
∙ ar
∙ as
∙ asa
∙ bison
∙ bitcode_strip
∙ BuildStrings
∙ c++ (clang 가상본)
∙ c89
∙ c99
∙ cc
∙ clang
∙ clang++ (clang 가상본)
∙ cmpdylib
∙ codesign_allocate
∙ CpMac
∙ cpp
∙ ctags
∙ ctf_insert
∙ DeRez
∙ dsymutil (llvm-dsymutil 가상본)
∙ dwarfdump
∙ dyldinfo
∙ flex
∙ flex++
∙ g++ (gcc 가상본)
∙ gatherheaderdoc
∙ gcc
∙ gcov (llvm-cov 가상본)
∙ GetFileInfo
∙ git
∙ git-cvsserver
∙ git-receive-pack (git 가상본)
∙ git-shell
∙ git-upload-archive
∙ git-upload-pack (git 가상본)
∙ gm4
∙ gnumake
∙ gperf
∙ hdxml2manxml
∙ headerdoc2html
∙ indent
∙ install_name_tool
∙ ld
∙ lex
∙ libtool
∙ lipo
∙ lldb
∙ llvm-cov
∙ llvm-dsymutil
∙ llvm-dwarfdump
∙ llvm-profdata
∙ lorder
∙ m4
∙ make
∙ MergePef
∙ mig
∙ mkdep
∙ MvMac
∙ nasm
∙ ndisasm
∙ nm
∙ nmedit
∙ otool
∙ pagestuff
∙ projectInfo
∙ ranlib (libtool 가상본)
∙ rebase
∙ redo_prebinding
∙ ResMerger
∙ resolveLinks
∙ Rezv
∙ RezDet
∙ RezWack
∙ rpcgen
∙ segedit
∙ SetFile
∙ size
∙ SplitForks
∙ strings
∙ strip
∙ svn
∙ svnadmin
∙ svndumpfilter
∙ svnlook
∙ svnrdump
∙ svnserve
∙ svnsync
∙ svnversion
∙ swift
∙ swift-demangle
∙ swift-stdlib-tool
∙ swiftc (swift 가상본)
∙ unifdef
∙ unifdefall
∙ UnRezWack
∙ unwinddump
∙ what
∙ xml2man
∙ yacc
설치 오류 및 업데이트
터미널에 '명령어 라인 도구'를 설치하는 명령어를 넣었을 때 'not currently available' 또는 '...already installed'라는 문구가 나타나면 맥에 명령어 라인 도구가 이미 설치되어 있는 것일 수 있습니다.
앞서 말씀드렸듯이 Xcode 최신 버전을 내려받으면 '명령어 라인 도구'가 같이 설치되는데, Xcode를 삭제하더라도 명령어 라인 도구는 삭제되지 않습니다. 이럴 때 '명령어 라인 도구' 설치 명령어를 입력하면 위와 같은 메시지가 나타나게 되는 거죠. 물론 명령어 라인 도구를 깨끗이 삭제하지 않은 경우에도 같은 증상이 나타날 수 있습니다. 이때는 Finder를 통해 명령어 라인 도구 설치 폴더를 완전히 삭제한 뒤 설치 명령어를 다시 입력해 보시기 바랍니다.
그럼 명령어 라인 도구 업데이트는 어떻게 하느냐?
맥에 Xcode 없이 명령어 라인 도구만 설치되어 있더라도 새 버전이 나오면 OS X 알림 배너를 통해 알려주며, 맥 앱스토어의 업데이트 탭을 통해 새 버전을 설치할 수 있습니다. 따라서 명령어 라인 도구는 써야 하는데 Xcode 용량이 부담스러운 분은 Xcode를 맥에서 삭제하셔도 큰 문제나 불편한 부분은 거의 없습니다.
참조
• Apple - Building from the Command Line with Xcode FAQ
• RailsApps Project - Xcode Command Line Tools