[우분투] 윈도우 10 bash 설치, 제거 및 업그레이드

27633B3B57A31E181C ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)


이번 윈도우 10 레드스톤부터 윈도우 10 내에 내장된 bash shell (우분투)를 지원한다는 소식은 알 만한 분들은 이미 다 알고 계실 것 같습니다.

이 글에서는 그 우분투의 설치 및 bash 실행에 대한 방법과, 또 해당 우분투를 최신 배포판으로 업그레이드하는 방법, 마지막으로 우분투 이미지를 (재설치 등의 이유로) 제거하는 방법을 소개하려 합니다.


Bash on Windows (우분투) 설치

1. ‘제어판 – 프로그램 – 프로그램 및 기능 – Windows 기능 켜기/끄기 – Linux용 Windows 하위 시스템’ 체크 후 확인 버튼 클릭합니다.

2179403D5799FF9225 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
Windows 기능 창

이후 재부팅 안내가 나오면 재부팅을 한 후 기다립니다.


2. cmd나 PowerShell 둘 중 아무 거나 실행시킨 후 ‘bash’ 명령을 입력합니다.
(또는 그냥 ‘윈도우 키’를 누른 후 바로 ‘bash’ 를 쳐서 (즉, 검색창에 bash를 검색해서) 바로 명령 실행해도 됩니다)

처음 실행 시 초기 설치가 진행됩니다.

2351FB3557A31FBE19 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
(1) Windows 계열 Shell prompt를 통해 실행시키는 화면

2644A04A579A0BB321 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
(2) 검색창 (윈도우 키를 누른 후 ‘bash’ 타이핑)을 통해 실행시키는 화면

도중에 계정 이름과 암호를 묻게 되면 원하는 아이디와 패스워드를 입력합니다.

2474233957A31FE81B ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)


3. 설치가 끝나면 정상적으로 우분투 14.04 가 설치된 것을 확인할 수 있습니다.

221D903657A31FFC1E ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)

(번외 ps. ‘C 드라이브’와 같은 각 로컬 파티션 (‘내 컴퓨터’의 ‘로컬 디스크’) 들은 /mnt 경로에 해당 드라이브 문자로 마운트되어 있습니다)

 


Bash on Windows 배포판 업그레이드

14.04도 꽤 괜찮은 배포판이지만, 아무래도 수 년 전의 구형 배포판이다 보니 최신 버전의 유틸리티가 지원되지 않는 경우도 많고 해서 (…혹시 직접 소스를 컴파일해 쓰신다면 말리지는 않겠지만…) 업그레이드해야 할 필요성을 느낄 수 있습니다.

윈10 레드스톤 초기 때는 배포판 업그레이드 시도가 실패했는데, 이번에는 큰 문제 없이 되는 것 같아 올려봅니다.
(※ 다만 부작용은 있습니다. 아래에 설명해 두겠지만, 그 점 감안해서 진행해주시기 바랍니다.)


1. /etc/apt/sources.list 파일을 수정하기 위해 에디터로 엽니다. (에디터는 편한 것으로 사용하세요)

23231D3A57A3200D18 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
우분투 설치 시 기본으로 있는 vim 에디터 사용.
단 처음 보는 사람에겐 그다지 권장하지 않는 에디터이다


2. ‘trusty’ 부분을 원하는 배포판 코드네임(예 : Ubuntu 16.04의 경우 ‘xenial’)으로 바꿉니다.

출시 시기(Version)에 따른 코드네임(Adjective)https://wiki.ubuntu.com/DevelopmentCodeNames 에서 확인할 수 있습니다.

21453D3357A3201D0E ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
수정 전 스샷

아래는 수정 후의 스샷입니다. 우분투 16.04 으로 올리고 싶었으므로 ‘trusty’ 를 모두 ‘xenial’ 로 바꾸었습니다.

(다만 리포지토리 자체도 아무래도 외국 서버보다 상대적으로 속도가 빠른 한국 미러로 바꾸었는데, 바꾸시려는 분은 아래 스샷의 주소를 참고하시기 바랍니다)

2261983957A3203527 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
수정 후 스샷


3. 아래의 명령을 실행합니다. 진행 중 아래에 있는 스샷과 같이 몇몇 오류 메세지가 뜰 수 있습니다.

sudo apt update
sudo apt full-upgrade

 

252C603F579A02200A ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
에러 메세지

2136573F579A022705 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
업그레이드 완료 화면


4. 모든 설치가 끝나고 exit 후 다시 bash 로 들어오면 해당 버전의 배포판이 설치된 것을 알 수 있습니다.

254E5F3557A3215220 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
버전 확인

2217D23657A3216C27 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
16.04 기준 gcc 최신 버전이 설치된 모습.
14.04 버전에서는 apt를 이용해 설치될 수 없는 버전이다

25032F3A57A31E391B ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)
추후 개인적으로 별도 커스텀 prompt를 적용한 모습


※ 배포판 업그레이드 시 주의 및 참고 사항

1. 이런 업그레이드 작업 자체가 윈도우 내의 ‘색다른'(?) 변종 리눅스 내에서 이뤄진 탓에, 오류가 있을 수 있으며 정상 작동 보증을 받기는 힘듭니다.

대표적으로 제가 겪고 있는 문제 중 하나는 sudo 첫 실행 시 ‘sudo: no tty present and no askpass program specified’ 라는 에러를 내고 아무 작업도 실행되지 않는 것인데, 아무래도 업데이트 후 내부적인 tty 동작에 무언가 문제가 있는 것 같습니다.

이 문제의 해결책은 아래와 같습니다.

sudo -S [명렁어]

 

2756DD3857A324F50E ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)

업데이트 후 sudo 가 생각대로 잘 되지 않는다

이 문제는 sudo 를 처음 실행했을 때 password 를 입력받아야 하는데, Bash on Windows 의 어떤 내부 사정으로 인해 tty로부터 password 를 입력받을 수 없는 상황이 원인입니다. sudo 중 -S (대문자 S) 옵션은 sudo가 password 를 tty 로부터가 아닌 stdin (즉 현재 입력 중인 터미널) 로부터 직접 받을 수 있게 해 줍니다.

따라서 처음 sudo를 실행했을 때 password 를 입력해야 하는데, 그걸 ‘sudo -S’ 와 같이 실행시키면 정상적으로 password 를 받아 실행되는 것을 볼 수 있습니다.

일단 한 번 sudo -S 를 사용해서 입력받은 password 가 유지되는 상황이라면 (sudo 실행 때마다 매번 password를 받지는 않죠), 당분간은 그냥 원래의 sudo 를 계속 사용할 수 있습니다. 즉 sudo -S 는 ‘패스워드를 입력해야 할 필요가 있을 경우’에만 사용하면 됩니다.
간단하게는 sudo 실행 시 저런 에러 메세지가 뜬다면 그 때만 -S 옵션을 붙여 재실행하면 되겠죠.

저 -S 옵션에 관해서 일일히 신경쓰기 싫다면 ~/.bashrc (현재 유저만 적용) 또는 /etc/bash.bashrc (모든 유저에게 적용하고 싶을 경우) 파일 맨 아래쪽에 아래와 같은 명령어 한 줄을 추가하셔도 됩니다.

alias sudo='sudo -S'

236BC73957A3241C30 ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)

bashrc 파일 내에 적용된 alias

이렇게 하면 해당 유저가 실행한 bash 안에서는 ‘sudo’ 가 ‘sudo -S’로 자동으로 변환 인식됩니다. 그냥 평소처럼 sudo 라고만 쓸 수 있게 되죠.

 

다만 위 에러 내용을 보았을 때, tty 를 사용하는 유틸리티는 비슷한 문제를 발생시킬 가능성이 있다고 볼 수 있습니다. 최신 배포판으로 업데이트하기 전에 관련 내용을 확인해 둬야겠죠.

이처럼 배포되는 변종 14.04 외에는 마소&캐노니컬 에서 정식 지원되지 않는 범위라 예상치 못한 다양한 문제가 있을 수 있으니, 그런 문제가 발생하면 다시 윈도우 정식 배포판으로 내려올 생각은 미리 해 두시는 게 좋습니다.

2. 커널 업그레이드는 안 되는 것으로 보입니다.

일단 apt install 로 최신 커널 설치 자체는 되는데, 문제는 윈도우 계열 쉘 프롬프트에서 ‘bash’ 를 입력해서 실행시키는 것 자체가 이미 초기 커널을 베이스로 하는 것을 기본값으로 두고 있기에 설치된 커널로 ‘부팅’하는 게 불가능합니다.

뭐 사실 애초에 기존 커널 자체도 윈도우 내에서 돌아가기 위해 상당한 깊이로 수정되었을 것이기에, 설사 새 커널로 바꿀 수 있도록 지원한다 하더라도 실제로는 안 됐을 가능성이 높았을 것 같군요.

 


Bash on Windows 이미지 삭제 (및 재설치)

우분투를 재설치해야 하는 경우가 있을 수 있습니다. 또는 더이상 사용하지 않지만 이미지 용량 때문에 삭제를 해야 할 수도 있겠죠. 이 경우 처음의 제어판에 있던 ‘프로그램 기능’에서 체크를 해제하는 것만으로는 이미지가 삭제되지 않습니다. 별도의 명령어를 통해 삭제해줘야 합니다.

삭제하는 명령어는 간단합니다. cmd나 PowerShell 에서 아래의 명령어를 치면 됩니다.

lxrun /uninstall /full

 

2527FB3657A321B71D ([우분투] 윈도우 10 bash 설치, 제거 및 업그레이드)

우분투 이미지 삭제 화면

y 를 입력하고 엔터를 치면 빠르게 우분투가 제거됩니다.

이후 재설치를 원한다면 처음처럼 그냥 ‘bash’ 를 실행시키면 다시 설치 안내가 뜨며 이미지를 다운로드 받는 과정부터 시작하게 됩니다.

Reply