Cygwin(시그윈)은 최소 설치만 해도 49메가가 넘기에 좀 부담스러운 면이 있더군요. grep 이나 diff 등의 명령어 한두 개를 쓰려고, Cygwin(시그윈)을 설치하는 것은 배보다 배꼽이 더 큰 경우였습니다.
"GnuWin32" 에서 리눅스/유닉스 툴을 윈도우용으로 컴파일하여 제공하고 있습니다. 물론 무료이고 오픈소스입니다. 인터넷에 보면 GnuWin32 말고도 이렇게 리눅스 툴을 윈도우용으로 포팅해 주는 곳이 많은데 GnuWin32 쪽이 가장 전문적이었습니다.
다운로드 방법
주소: http://gnuwin32.sourceforge.net/packages.html
파일 비교 명령인 diff 파일을 받는 것을 예로 듭니다:
우선 위의 주소의 목록에서 DiffUtils 라는 것을 클릭하면 다운받는 페이지가 나옵니다.
"Complete package, except sources (소스를 제외한, 패키지 전체)"의 Setup 을 클릭하고 Download 를 클릭하면, 전세계의 미러 사이트들이 나오고 "diffutils-2.8.7-1.exe" 등의 이름을 가진 설치 파일이 다운로드됩니다. 그런데 저는 이 방법보다는, 다음의 수동 설치를 권합니다.
Binaries 옆의 Zip 을 클릭합니다. 그러면 "diffutils-2.8.7-1-bin.zip" 식의 이름으로 압축된 파일이 다운로드됩니다. (버전에 따라서 파일명이 다름.) 이 파일 속에 있는 diff.exe 파일을 하드에 풀어 놓습니다. diff.exe 를 실행시키면 다음의 메시지가 나옵니다:
---------------------------
diff.exe - DLL 찾기 실패
---------------------------
DLL libintl3.dll을(를) 지정한 경로 D:\X;.;C:\WINNT\system32;C:\WINNT\system;C:\WINNT;에서 찾을 수 없습니다.
---------------------------
확인
---------------------------
diff.exe 가 libintl3.dll 이라는 라이브러리 파일을 필요로 한다는 의미입니다. 그러면 앞의 다운로드 페이지로 다시 돌아가서, Dependencies (종속 파일들) 옆에 있는 Zip 을 클릭하여 "diffutils-2.8.7-1-dep.zip" 이라는 파일을 받습니다.
"diffutils-2.8.7-1-dep.zip" 파일 속에서 "libintl3.dll" 파일을 꺼내서, diff.exe 가 있는 곳에 같이 풀어놓습니다.
이제 diff.exe 를 다시 실행시키면
---------------------------
diff.exe - DLL 찾기 실패
---------------------------
DLL libiconv2.dll을(를) 지정한 경로 D:\X;.;C:\WINNT\system32;C:\WINNT\system;C:\WINNT;에서 찾을 수 없습니다.
---------------------------
확인
---------------------------
이런 메시지가 나옵니다. 방금 받은 "diffutils-2.8.7-1-dep.zip" 파일 속에서 "libiconv2.dll" 파일도 꺼내서, diff.exe 가 있는 곳에 같이 풀어놓습니다.
이제 diff.exe 가 잘 실행이 될 것입니다.
D:\X>diff
diff.exe: missing operand after `diff.exe'
diff.exe: Try `diff.exe --help' for more information.
diff.exe: missing operand after `diff.exe'
diff.exe: Try `diff.exe --help' for more information.
diff.exe --help 라고 하면 도움말이 나옵니다.
결론
다른 유틸리티들도 이런 식으로 받을 수 있습니다. 특히 CoreUtils 라는 것 속에는, 리눅스의 가장 기본적인 명령어들이 들어 있기에 꼭 받아보는 것이 좋습니다.
그런데 GnuWin32 에는 bash 셀이 없더군요. 그래서 bash 셀을 쓰기 위해서는 시그윈(Cygwin)을 설치할 수밖에 없었습니다.