C

거믄마루 2013. 1. 15. 02:00

CYGWIN 이라는 시스템이 있음에도 왜 MINGW 를 쓰는가 하는데에 대해서는 자세하게 말하지 않겠다.

한가지만 언급하자면, CYGWIN 환경에서는 완전한 POSIX 호환을 위해서 호환성 계층 DLL 이라는 것이 링크되어야 하고 이 때문에 프로그램의 성능도 떨어진다. 또한 호환성 계층 DLL 을 프로그램과 항상 같이 배포해야 하는 함정이 있다는 것이다. 게다가 라이센스 문제가 있기도 하다. 이에 반해 MINGW 는 툴체인만 제공하는 것이므로 그러한 DLL 이 없어 시스템의 성능을 그대로 끌어낼 수 있다는 장점이 있다.


어쨌든 볼것도 없이 나의 선택은 MINGW 이다.


MINGW 만 있더라도 각종 perl, ssh, sftp, rcp, scp 등 강력한 유닉스 명령을 사용할 수 있고 C, C++, Objective C, Fortran, ADA 등의 언어로 WINDOWS NATIVE 프로그램을 빌드할 수 있는 개발환경이 주어진다. 나는 MINGW 에서 윈도우용 서버 프로그램과 GUI 프로그램, Oracle OCI 나 Pro*C 도 컴파일해서 실행도 해보았고 완벽하게 동작하는 것을 직접 확인했다. 또한 MINGW 에서 만든 라이브러리는 Visual C++ 에서 그대로 사용할 수 있다. 심지어는 gcc 를 크로스컴파일러로 빌드하여 SunOS, HP/UX, Mac OSX, AIX 등의 플랫폼용 프로그램을 빌드할 수 있기도 하다. 물론 모두 직접 해본 것들이다. 단점이 없는 것은 아니지만 다목적 개발환경으로 UNIX 와 WINDOWS 간에 거의 차이점이 없는 개발환경을 만들어 준다.


그럼 여기까지 각설하고 MINGW를 설치해보자.

설치를 하기전 일단  MINGW 공식 홈페이지 http://www.mingw.org 를 둘러보라. 왼쪽 메뉴에 보면 Navigation 에 Downloads 라고 있는데 여기에 혹하지 말고 더 밑에 Popular Content 에서 그리고 그 밑에 All time: 에서 Getting Started 를 클릭해서 들어가 보라.  그러면 Graphical User Interface Installer 라는 제목이 보일 것이고 그 밑에 Download and run the latest mingw-get-inst version. 라고 있을 것이다.  GUI 인스톨러를 다운로드하기 위해 mingw-get-inst 를 클릭해서 들어가 보자.



맨 위의 mingw-get-inst-20120426 가 가장 최신의 것이므로 이것을 클릭하자



설치프로그램은 mingw-get-inst-20120426.exe 를 클릭하면 다운로드 받을 수 있다.



다운로드 된 실행파일을 실행하고 진행하다 다음과 같은 화면에서 주황색 박스부분을 선택한다.



기본 설치 디렉토리는 C:\MinGW 인데 보통 이대로 둔다.



다음과 같이 세부항목이 나오면 원하는 부분에 체크하면되는데 나중에 귀찮지 않으려면 모두 체크하거나

최소한 MSYS Basic System 과 MinGW Developer ToolKit 은 설치해두는 것이 좋을 것이다.



자 그럼 시작메뉴/모든 프로그램/MinGW 라는 프로그램 그룹이 생기고 MinGW Shell 가 설치된 것을 확인할 수 있을 것이다.



그러나 그대로 사용하기에는 불편한 점이 있는데 말이 UNIX SHELL 이지 DOS cmd 명령창에 불과하다.

그야말로 재앙수준의 불편함이 느껴질 것이다. 보통 SHELL 이면 최소한 폰트도 마음대로 바꾸고 마우스로 긁기만 해도 문자열이 복사되고, 우측 마우스 버튼을 누르면 붙여지고 하는 기능등이 되어야 쓰는데 불편함이 없다.  예전에는 rxvt 라는 환경을 사용해서 어느 정도는 쓸만했는데 스크롤되면서 화면에 이상한 찌꺼기같은게 남거나 한 팩셀 라인만큼씩만 안보여서 가독성이 심하게 떨어지는 퀄리티에 짜증이 나기 일쑤였다.  그러나 근래에는 mintty 라는 프로그램이 나와서 이를 한방에 해결하여 정말 메시아와 같은 윈도우용 SHELL 프로그램이라고 할 수 있겠다.


혹시나 mintty 가 기본적으로 설치안되어 있을 수도 있으므로 아래와 같이 mingw-get install msys-mintty 명령을 실행하여 mintty 를 설치해준다. 

에러가 난것은 이미 설치되어 있는 것을 의미하므로 패스...



설치가 완료되었으면 종료하고 mintty 를 더 쉽게 사용하기 위해서는 MinGW Shell 의 속성을 바꿔보자.

다음과 같이 시작메뉴/모든 프로그램/MinGW/MinGW Shell 에서 마우스 우클릭으로 속성을 선택한다.



다음 화면과 같이 msys.bat 뒤에 --mintty 를 붙이기만 하면 MinGW Shell이 이 후 실행부터 DOS cmd 가 아닌 mintty 를 실행하게 한다.



--mintty 옵션 추가후 다음과 같이 $ 프롬트와 함께 터미널이 뜰것이다.  



우선 가독성을 위해 폰트를 Fixedsys 로 변경하기 위해 좌측 상단의 아이콘을 클릭하여 메뉴를 나오게하여 Options 를 선택하자.



다음과 같이 폰트를 변경한다. 폰트뿐만 아니라 다양한 옵션들이 있는데 그것들은 둘러보고 각자 취향에 맞게 하면 된다.

DOS cmd 가 딱 두개의 폰트만을 제공하는 것에 비해 이건 완전 폰트 천국... 



한글입력이 가능하기 위해서는 다음과 같이 홈디렉토리의 .inputrc 를 수정해야 한다. 더 정확히는 vim ~/.inputrc 로 해야 한다.



다음과 같이 설정을 맞추고 :wq 을 입력하여 저장하고 나온다. vi 가 불편한 사용자들은 C:\MinGW\msys\1.0\home\<<사용자아이디>>\.inputrc 를 다른 편안한 에디터를 사용하여 수정해도 된다.  <<사용자아이디>> 윈도즈시스템에 현재 로그인한 사용자아이디를 말한다. 로그인한 아이디를 모를 가능성이 있을려나 모르겠지만 C:\MinGW\msys\1.0\home 디렉토리를 뒤져보면 감잡을 수 있을 것이다. 



ls 명령을 쳤을때 한글이 보이게 하려면 홈디렉토리의 .profile 를 수정해야 한다. 더 정확히는 vim ~/.profile 로 해야 한다.



.profile 에 다음과 같이 alias ls='ls -aFs --show-control-chars' 를 추가하면 된다.

-aFs 옵션은 내 취향이므로 없어도 된다. 중요한것은 --show-control-chars 옵션이다.

 나머지 라인들은 모두 내 취향인데 필요시 추가하면 된다.

다음과 같이 설정을 맞추고 :wq 을 입력하여 저장하고 나온다. 

vi 가 불편한 사용자들은 C:\MinGW\msys\1.0\home\<<사용자아이디>>\.profile 를 다른 편안한 에디터를 사용하여 수정해도 된다.



기본적인 설정은 모두 마쳤다. 이제 프로그램을 종료하고 다시 시작하면 새로운 설정이 적용되어 한글 입출력도 가능한 de facto 완벽한 터미널을 볼 수 있을 것이다.


MINGW 의 신세계에 오신 것을 환영한다.

...