MINGW32, Git Bash 와 msys (부제: Git Bash에서 gcc 쓰기)

|

Git을 Windows에 깔아서 쓰다 보니 Git Bash 라는 놈이 있었다. 그런데 생긴게 꼭 진짜 Unix 계열에서 쓰는 Bash와 비슷한거다.

이게 무얼까 생각해보다가 잊어먹고 있었는데, 어느날 Windows에서 간단히 컴파일 할 수 있는 환경을 만들고 싶었다. 생각해보니 GNU 컴파일러가 윈도우에서 돌아가는 놈이 있을 것 같았다. (걔네들이 그런걸 만들지 않을리가 없다.)


그래서 찾은게 MINGW다. Minimalist GNU for Windows의 약자란다. gcc, make 등 GNU 개발 툴들을 윈도우 용으로 제공하고, Unix Like한 개발 환경을 제공한다. 그게 msys다. 그리고 이건 다시 돌아서, Git Bash와 거의 비슷하게 생긴 놈이다. 아니, Git Bash는 사실 msys를 가지고 만든거다.


GIt Bash 상에서 sh --version을 입력한 상태다. 이놈은 사실 GNU Bash이며, i686-pc-msys 환경에서 동작하도록 되어 있다.


참고 사이트 : http://www.mingw.org/ (MinGW 홈페이지다.)


다시 돌아가, MINGW를 설치하고 msys를 설치하면 Unix Like한 개발 환경을 가지게 된다. 일반적으로 C:\MinGW에 설치되는데, 그 아래 msys\(Version)\ 폴더에 들어가 보면 일반 Unix의 최상위 루트 디렉토리와 유사한 bin, etc, lib 등등의 폴더들을 볼 수 있다. msys가 구동되어 shell이 실행되면 이 폴더는 msys의 최상위 루트 디렉토리로 마운트 된다.

윈도우의 c, d 드라이브 등은 /c, /d 등으로 마운트 된다. 이 마운트 정보는 /etc/fstab에 저장되니 원하면 편집해서 써도 된다. msys에서 mount 등의 명령어는 Unix와 유사하게 구현되어 있으니 직접 마운트 해도 상관없다. (mount -a 등의 명령어도 잘 먹는다.)


Git Bash역시 Git이 설치된 디렉토리 (일반적으로 C:\Program Files (x86)\Git) 아래 들어가 보면 Unix의 최상위 루트 디렉토리와 유사한 놈들을 볼 수 있다. 물론 msys와 마찬가지로 이것이 Git Bash의 최상위 루트 디렉토리로 마운트 된다. 하지만 Git Bash는 단순히 Git 기능을 서포트 하기 위해 msys 기능 일부를 제공하는 것이기 때문에, 원하는 대로 mount 등의 기능을 사용할 수 없다. 제공하는 최소한의 기능들만 사용하게 된다.

또, Windows Vista 이상의 OS에서 Git Bash를 통해 Git Bash의 루트 아래 내용들을 건드리게 되면 윈도우 보안상의 이유로 (사용자 루트 디렉토리)\AppData\Local\VirtualStore\Program Files (x86)\Git 아래에 내용들이 갱신되게 된다. 여러모로 귀찮다.


MINGW를 설치하고 Git의 설치 내용 중 bin\git.exe만 msys의 /bin에 넣으면 msys에서 git을 쓰는데 이상 없다고 한다. 또, msys 2.0에서는 git을 기본 제공한다는 말도 있다. 둘다 안해봤으니 일단 패스. 만일 MINGW가 메인이라면 해보겠지만 개발 내용에서는 Git이 메인이기 때문에 Git Bash에 다음 수정을 하는 것을 목표로 한다.


1) gcc와 g++이 동작할 수 있도록 한다. 또, Git Bash에서 이 컴파일러로 컴파일된 놈이 동작해야 한다.

2) vim을, 되도록이면 color scheme까지 포함해서 사용 가능하게 한다.




끗.


And