개인적으로 Cygwin을 절대 비추하는 이유 (부제: 걍 WSL 써라)

지금은 윈도우 10에 서브시스템 우분투를 설치해 우분투 내에서 할거 하고 있다.

node.js 가 아직 윈도우를 지원하지 않던 시절, 나는 한번 cygwin 을 깔아서 node.js를 설치했다.
잘 된다. 일단은. 일부 기능이 빠졌다고 나와 있다고는 하지만 딱히 불만은 없었다.
하지만 cygwin을 쓰면서 네이티브 리눅스와보다 불편한 감을 지울 수 없었고,
게다가 MS가 직접 나서서 libuv를 윈도우 포팅에 성공하여 node.js가 윈도우에서도 쓸 수 있는 날이 왔고,
나는 이제 더 이상 cygwin이 필요 없어서 지우려고 했으나… 안됐다.
결국 나는 윈도우를 밀어서 cygwin의 흔적을 지워버렸다.

Cygwin은 UNIX 콘솔의 편리함을 그대로 윈도우에서 쓸 수 있는 일종의 미들웨어이다.
Cygwin에서 유닉스 기반의 네이티브 컴파일도 가능하고 왠만한 도구들(쉘, 프로그램, 도구, ssh, git 버전관리 등등)을 그대로 지원한다.
하지만, 나는 이걸 쓰는 것보다 차라리 윈도우 10을 깔고, 거기에 서브시스템 리눅스를 깔라고 하고 싶다.
위키에서도 소개되긴 했지만… 왜그런지 짧게 설명자면…

  • 패키지 관리자의 부재 (apt, yum 등)
  • Windows 계정 종속적인 사용자 (Bitvise SSH Server도 마찬가지긴 하지만…)
  • 일부 커널 종속적인 프로그램 미지원 (docker 등)
  • 편해 보이지만 은근 불편한 언인스톨 시스템
  • 더럽게 느린 성능
  • 애매한 보안 정책 (관리자 계정은 root…)

아무리 장점이 많아도 단점이 모두 씹어먹기 때문에 나는 앞으로도 cygwin을 이용할 생각 절대로 없다고 보면 된다.
만약 윈도우에서 리눅스를 돌리고자 한다면, 나는 단 1초의 고민도 없이 윈도우 10의 서브시스템 리눅스를 권유하거나, 가상OS를 권하고 싶다.
VMWARE나 VirtualBox 등 가상 사용법이야 뭐 다들 알 것 같으니 넘어가고, 윈도우 10의 리눅스 기능에 짧막하게 소개하겠다.
일단, 윈도우에서 설치 가능한 리눅스는 아래와 같으며,
심지어 윈도우 서버 2016에서 빌드 1706 이상일 경우에도 일부 리눅스 설치가 가능하다.

  • Ubuntu (서버 2016 지원)
  • openSUSE (서버 2016 지원, Hyper-V 공식지원)
  • SLES (SUSE Linux Enterprise Server) (서버 2016 지원, Hyper-V 공식지원)
  • Kali Linux

해킹과 보안에 매달리는 사용자는 Kali까지 지원되니 고민 없이 설치하면 된다.
비록 설치 시 손 댈 곳은 많지만, 완벽한 리눅스 환경을 제공하면서, 게다가 커널도 일반 리눅스 커널이라 지원되는 커널이 있는 프로그램이라면 모두 설치가 가능하다.
게다가 성능은 기존 자원을 유동적으로 활용하기 때문에 사양에 따르긴 하겠지만 Cygwin보다 훨씬 부드럽게 동작한다.
나는 Ubuntu를 설치했는데, 재밌는 점이 윈도우 상에서 관리자 권한을 필요한 폴더나 파일일 경우 Ubuntu 에서도 sudo 등의 권한 상승을 요구한다는 점이다.
물론 TrustedInstaller 권한이 있는 파일이나 폴더는 죽어도 못건드린다…

어쨌든 간에, 회사에서 리눅스 개발이나 테스트를 겸하고 싶다면, 2가지 방법이 있는데,
스냅샷 등의 크리티컬 테스트를 요하는 환경이라면 아무래도 가상환경이 가장 이득이며,
그게 아닌 왠만한 실행 테스트 환경을 원한다면 윈도우 10에 리눅스 환경을 설치하는 것이 좋다. 회사에서는 그게 더 싸다. 물론 아예 리눅스 까는것보단 비싸긴 하겠지만, 문서작업 때문에 윈도우 쓸 수밖에 없는데 뭐.

추가내용:
WSL에서는 docker 못돌린다. 커널과 환경은 docker 사양에 맞긴 하지만 가장 중요한 chroot 명령어가 없기 때문이다… 이는 WSL에 SSH 서버 돌리는 법에서도 언급했다.
docker 같은 크리티컬한 작업을 원한다면 가상 돌리는 게 훨씬 이득이다. 그밖에 가벼운 일반적인 사용 용도(node.js나 python 돌리는 등)에 WSL 쓰도록.

composite / 2018년 4월 24일 / Piss Development
태그:, , , , , , ,

답글 남기기

Your email address will not be published / Required fields are marked *