우분투 투게더: 초보자부터 파워 유저까지 우분투 OS 활용 가이드 초판 1쇄 발행 2015년 3월 6일 지은이 이준희 펴낸이 한기성 펴낸곳 인사이트 편집 김민희 본문디자인 윤영준 제작 관리 박미경 표지출력 소다디자인프린팅 용지 월드페이퍼 인쇄 현문인쇄 제본 자현제책 등록번호 제10-2313호 등록일자 2002년 2월 19일 주소 서울시 마포구 잔다리로 119 석우빌딩 3층 전화 02-322-5143 팩스 02-3143 -5579 블로그 http://blog. insightbook.co.kr 이메일 insight@insightbook.co.kr ISBN 978-89-6626-131-4 책값은 뒤표지에 있습니다. 잘못 만들어진 책 은 바꾸어 드립니다. 이 책의 정오표는 http://www.insightbook.co.kr/09438에서 확인하실 수 있습니다. 이 도서의 국립중앙 도서관 출판예정도서목록(CIP)은 서지정보유통지원시스템 홈페이지(http://seoji.nl.go.kr/)와 국가자료공동목록시스템(http:// www.nl.go.kr/kolisnet)에서 이용하실 수 있습니다.(CIP제어번호: CIP2015003786) Copyright c 2015 이준희, 인사이트 이 책 내용의 일부 또는 전부를 재사용하려면 반드시 저작권자와 인사이트 양측 모두의 서면 동의를 얻어야 합니다.
차례 추천의 글 지은이의 글 vii ix 1부 우분투 기본 익히기 1 1장 우분투를 소개합니다 3 우분투 소개 4 GNU/Linux에 대하여 9 우분투 배포판의 종류 13 우분투 사용 목적 19 2장 우분투 설치하기 25 우분투 이미지 다운로드하기 26 가상머신에 우분투 설치하기 30 PC에 우분투 직접 설치하기 47 MAC에 우분투 직접 설치하기 55 우분투 14.04 LTS 다듬기 62 우분투 서버 버전 설치하기 72 우분투 버전 업그레이드하기 79 3장 우분투 준비운동 85 패키지 관리자 사용하기 86 텍스트 에디터 사용하기 103 파일 관리자 사용하기 119 iv
2부 우분투 응용하기 133 4장 우분투 사용하기 - 데스크톱 135 유니티 인터페이스 둘러보기 136 우분투에서 게임하기 146 와인으로 윈도우즈용 앱 사용하기 153 유용한 무료앱 소개 163 5장 우분투 주무르기 173 작업환경 주무르기 - 커스터마이징 174 컴피즈 살펴보기 189 6장 우분투에서 개발하기 203 소스 컴파일 하기 204 안드로이드 개발 환경 구축하기 212 도커 소개 및 설치하기 225 7장 우분투로 HTPC 구성하기 237 XBMC 소개 및 설치 238 XBMC를 실행하자마자 부팅되도록 설정하기 240 XBMC 한글 설정하기 245 영화 라이브러리 설정하기 248 8장 우분투로 홈서버 구축하기 253 원격 접속 환경 구축하기 254 나만의 파일서버 만들기 263 웹서버 만들기 279 차례 v
3부 부록 291 9장 우분투 응급실(Trouble Shooting) 293 우분투 혹은 우분투 라이브 CD(USB)에서 부팅이 되지 않을 경우 294 윈도우즈 재설치 후 우분투 부팅이 되지 않을 경우 299 Network Service Discovery Disabled 메시지가 나타날 경우 302 우분투 화면이 일부 또는 전부 영어로 보일 경우 303 우분투 소프트웨어 센터가 실행이 되지 않을 경우 305 패키지 파일을 잠글 수 없다고 경고가 나올 경우 306 패키지 의존성 문제가 발생할 경우 307 프로그램 설치가 느릴 경우 310 우분투가 다운되었을 경우 312 커뮤니티 지원 받기 314 찾아보기 319 vi
추천의 글 가장 우분투스러운 우분투 실용서의 탄생! 우분투는 누구나 손쉽게 사용할 수 있으며 편리하고 세련된 모습을 갖춘 리눅 스 배포판으로 알려져 있습니다. 하지만 그럼에도 불구하고 리눅스 자체를 다룰 때는 누구나 어느 정도의 어려움을 겪곤 합니다. 여러 가지 장벽에 부딪혀 우분 투를 사용하기 힘들어하는 이들을 위해 구세주처럼 등장한 책이 바로 이준희 님 의 역작, 웰컴 투 우분투 였습니다. 책이 출간됐을 당시, 저도 당연히 그 책을 구입하여 읽었지요. 이준희 님께서 우분투 커뮤니티와 SNS를 통해 실제 우분투 사용자들에게 왜 우분투를 사용하는가? 라는 질문을 했을 때 웰컴 투 우분투 의 후속작이 나올 것이라는 소식을 접했습니다. 사용자들의 답변을 취합해 책에 반영하여 집필한 다고 하셨지요. 시간이 흘러 원고를 받아 읽어 보니 군더더기 없이 깔끔하게 정 리된 내용에 폭풍 감동했습니다. 이 책에는 우분투를 사용할 때 가장 많이 필요한 내용이 크게 세 가지 주제로 일목요연하게 정리되어 있습니다. 우분투를 설치하여 사용하는 내용으로 구성 된 1부와 그렇게 익힌 우분투를 실제로 어떻게 사용하는지를 보여주고 실제 사 례들로 보여주고 있는 2부, 마지막으로 우분투 커뮤니티와 관련 SNS에 자주 올 라오는 정말 급한 문제들의 해결책을 담은 부록까지. 특히 우분투 응급실 은 이 책의 백미 중에 백미라고 할 수 있을 것 같습니다. 아예 이 부분만 따로 떼어 별 도로 들고 다녀도 좋을 것 같습니다. 재미난 점 하나는 저처럼 우분투로 개발을 하는 사람들을 위해 안드로이드와 클라우드계의 뜨거운 감자인 도커(Docker)까지 다룬 점입니다. 이 책을 선택하 는 또 한 가지 이유가 될 듯합니다. 우분투의 뜻을 영어로 풀어 쓰면 I am because we are. 입니다. 사람 냄새가 물씬 풍기는 공익 정신, 마치 우리나라 단군 할아버지의 홍익인간 정신과 무척 추천의 글 vii
닮아있으며 실제 우분투를 개발 및 배포하고 있는 캐노니컬 역시 그러한 정신을 지금까지 유지하고 있습니다. 우분투 같은 마음으로 출발하여, 우분투답게 정리된, 가장 우분투스러운 실용 서인 이 책을 엄지손가락을 높이 치켜들고 자신있게 추천합니다. - 엑세스 주식회사, 유명환 연구소장 viii
지은이의 글 우분투를 왜 쓰시나요? 우분투 10.04 LTS를 기반으로 썼던 웰컴 투 우분투 가 출간된 지 벌써 4년이 흘렀습니다. 웰컴 투 우분투 는 할머니도 쓸 수 있는 우분투라는 콘셉트로, 우 분투의 쉽고 간단한 측면을 좀 더 많은 사람들에게 소개하기 위해 만들었던 책 이었습니다. 출간 이후 4년 동안 한국에서 우분투의 사용자 저변이 생각보다는 크게 확대되지 못했지만, 그래도 예전보다는 우분투를 알아보고 문의를 하는 분 들이 많아졌습니다. 또한 웰컴 투 우분투 를 통해 우분투를 처음 시작하게 되 었다는 분들도 있어서 큰 보람을 느낄 수 있었습니다. 웰컴 투 우분투 이후 후속 책에 대한 문의를 많이 받았습니다. 6개월마다 한 번씩 출시되는 우분투의 특성상 웰컴 투 우분투 에서 다루는 정보들이 조금씩 뒤쳐지기도 했고, 그동안 우분투가 안팎으로 많은 변화를 겪었기 때문입니다. 우분투는 11.04 버전부터 그놈(GNOME) 인터페이스 대신 유니티(Unity) 인터 페이스를 도입하고 여러 데스크톱 환경으로 나뉘어있던 사용자 인터페이스를 통합하여 사용자 접근성 및 사용성을 높이려 하고 있습니다. 더불어 스마트폰을 위한 우분투 터치 운영체제에서도 동일한 인터페이스를 사용하여 데스크톱과 포스트 PC의 통합을 꾀하고 있습니다. 그래서 우분투 최신 버전은 이전 버전과는 사뭇 다른 모습을 갖추게 되었습니 다. 우분투를 꽤 오랫동안 사용했던 저도 다시 처음부터 익혀야 했을 정도로 많 이 바뀐 인터페이스는 기존 사용자들에게는 낯선 모습으로 다가올 수 있습니다. 하지만 유니티 인터페이스는 많은 부분에서 사용성 개선이 이루어졌기 때문에 분명 우분투를 처음 사용하는 분들에게는 오히려 쉽고 친숙하게 느껴질 겁니다. 이번 책을 처음 기획할 때부터 우분투의 변화된 모습을 소개함과 동시에 또 다른 목표가 있었습니다. 그것은 우분투를 소개하는 것에서 더 나아가, 우분투 를 실제로 사용할 사람들을 위한 책을 쓰자는 것이었습니다. 웰컴 투 우분투 지은이의 글 ix
의 할머니도 쓸 수 있는 쉬운 우분투 를 소개하는 콘셉트 때문에 할머니는 하지 않을 컴퓨터 작업들 을 소개하지 못했던 아쉬움이 있었습니다. 그래서 이번에는 더 다양한 우분투 사용자들을 위해 우분투를 여러 방면에서 활용하는 방법을 담 은 책을 쓰는 것이 목표였습니다. 그래서 우분투를 왜 쓰시나요? 라는 물음에서 다시 출발했습니다. 컴퓨터를 사면 미리 설치되어 있는 윈도우즈나 맥 OS X 대신에 우분투를 설치하여 사용 하는 이유는 무엇인가? 스마트폰과 태블릿 PC 등 포스트 PC가 많이 쓰이는 시 대에 PC에서 우분투를 사용하는 이유는 무엇인가? 우분투 한국 커뮤니티, 트위 터, 페이스북, 블로그 등에서 많은 우분투 사용자들에게 이러한 질문을 했고, 이 때 받았던 답변을 토대로 책의 내용을 꾸렸습니다. 1장~3장까지의 내용은 우분투를 사용하는 데 가장 기본적인 내용으로, 우분 투 소개부터 설치, 기본적인 사용 방법 등 우분투를 사용하고자 하는 모든 분들 에게 알맞는 내용을 담았습니다. 이후 4장부터 8장까지의 내용은 우분투를 사용 하는 목적에 따라 각 장을 나누었습니다. 4장은 우분투를 일반적인 목적으로 사 용하는 분에게 알맞으며, 5장은 거기에서 좀 더 나아가 우분투를 자신에게 맞게 맞춰서 사용할 수 있는 파워 유저에게 알맞습니다. 6장은 우분투에서 개발을 하 는 분들을 위해 기초적인 개발 환경 구축부터 도커 사용법까지 다뤘습니다. 7장 은 우분투를 HTPC로 사용하고자 하는 분에게, 8장은 우분투를 가정에서 홈서 버나 NAS로 사용하고자 하는 분에게 알맞는 부분입니다. 그리고 마지막으로 9 장은 우분투를 사용하면서 겪는 많은 문제들을 다루었습니다. 이 책을 볼 때 1장~3장까지는 순서대로 보고, 4장~8장까지는 우분투를 사용 하는 목적에 따라 나누어 보는 방법을 추천합니다. 그리고 우분투를 사용하다가 문제가 발생할 때는 9장의 내용을 참고하면 됩니다. 이 책을 보는 많은 분들이 우분투를 사용하면서 필요한 실전 생존 팁을 얻어갈 수 있었으면 좋겠습니다. 더불어 우분투를 사용하면서 컴퓨터를 사용하는 일 자체에서 제가 느꼈던 즐거 움을 함께 느꼈으면 좋겠습니다. 그럼 다시 한 번, 우분투! 시작해보겠습니다! x
우분투 JE 다운로드 안내 우분투 JE는 우분투의 디자인과 한글 관련한 문제들을 수정한 배포판입니다. 우분투를 처 음 사용하는 사용자도 추가 설정이나 설치 없이 우분투를 빠르고 편하게 설치하여 쓸 수 있도록 만들었습니다. 책에서 소개한 대부분의 설정이나 문제 해결 등이 미리 적용되어 있 기 때문에 우분투를 처음 시작하는 분에게 적합한 배포판입니다. 다운로드 : http://bugbear5.tumblr.com/ubuntu-je/ 지은이의 글 xi
1부 우분투 기본 익히기
1장 우분투를 소개합니다 여러 사람들이 자발적으로 모여서 지식을 공유하는 위키 백과사전 같은 사이트를 아시나요? 만 약 여러 사람들의 지식과 능력으로 운영체제를 만들 수 있다면 어떨까요? 우분투는 전 세계의 개 발자와 디자이너, 번역가 등 많은 기여자들이 다 같이 만들어가는 운영체제입니다. 1장에서는 알 면 알수록 매력적인 우분투에 대해 소개해보겠습니다.
1.1 우분투 소개 우분투는 남아프리카 공화국 출신의 백만장자 마크 셔틀워스(Mark Shuttleworth) 에 의해 처음 시작된 오픈소스 리눅스 프로젝트의 이름입니다. 우분투 라는 이름 은 남아프리카 줄루(Xulu)족의 언어로, 네가 있으니 내가 있다 라는 뜻을 지니고 있습니다. 우분투는 그 외에도 여러 가지 의미가 있지만 주로 인간애(Humanity) 를 강조하는 이름으로 풀이됩니다. 우분투는 리눅스는 사용하기 어렵다 는 고정관념에 정면으로 도전한 리눅스 프로젝트입니다. 리눅스는 1990년대 초반 처음 등장하여 그래픽 사용자 인터페 이스(GUI) 환경을 갖추면서 일반 사용자들의 관심을 받기 시작했습니다. 그렇 지만 초기 리눅스는 일반 사용자가 사용하기엔 너무 어려웠습니다. 기능에서는 윈도우즈에 뒤질 것이 없었지만 설치하기가 매우 까다로웠습니다. 그 결과, 리 눅스를 사용하는 사용자는 거의 없게 되었고 애플리케이션 생태계 또한 윈도우 즈에 비해 뒤처지게 되었습니다. 그 결과 시장에서 판매되는 대부분의 PC에는 윈도우즈가 설치되었습니다. 마크 셔틀워스는 그런 현실에 의문을 제기하였습니다. 윈도우즈는 사용자가 원하든 원하지 않든 대부분의 컴퓨터에 설치되어 있고, 컴퓨터의 가격을 인상시 키는 주요 원인이었습니다. 셔틀워스는 리눅스가 다시 이런 현실을 고칠 수 있 기를 바라면서 우분투 프로젝트에서 가장 먼저 수정해야 할 버그(bug)로 윈도 우즈가 대부분의 컴퓨터에 설치되어 있는 현실 을 꼽았습니다. 우분투는 그동안 리눅스가 갖고 있던 가장 큰 문제였던 사용하기 어렵다 는 고정 관념을 고치기 위해 사용하기 쉬운 리눅스를 표방하였습니다. 기존 리눅 스 사용자들은 검은 화면에 하얀 글씨만 깜빡이고 있는 명령행 인터페이스(CLI, Command Line Interface)에서 리눅스를 설치해야 했지만 우분투는 사용자에게 4 1장 우분투를 소개합니다
친숙한 GUI에서 설치할 수 있도록 하였습니다. 심지어 설치 CD로 부팅을 하면 우분투를 설치하지 않고 미리 사용해볼 수 있는 라이브 CD 기능도 제공합니다. 우분투14.04의 라이브 CD 설치 환경 우분투는 설치하기 쉬울 뿐 아니라 다국어 환경이 잘 갖춰져 있습니다. 전 세계 다양한 사용자로 이루어진 커뮤니티와 로컬팀의 노력으로 다국어 환경에 대응 하고 있기 때문입니다. 특히 리눅스 배포판 중에는 한글화가 제일 잘되어 있는 편이라 한국어 사용자들에게 인기가 특히 높은 편이며 한국 사용자가 사용하기 에 가장 쉬운 리눅스 배포판이기도 합니다. 14.04 Trusty Tahr 기준 권장 사용 환경은 다음과 같습니다. 만약 권장 사용 환경 이외의 환경일 경우, 일반 우분투보다 좀 더 가벼운 주분투(Xubuntu)나 루 분투(Lubuntu)를 설치하면 됩니다. 768MB 이상의 RAM 최소 5기가바이트 이상의 하드디스크 공간 1Ghz 이상의 CPU(Intel, AMD, ARM 등) 3D 가속이 가능한 그래픽 카드(Nvidia, ATI, Intel 등) ( Intel GMA500, ATI 일부 구형 그래픽 카드 제외) 1.1 우분투 소개 5
우분투는 빠르게 변하는 소프트웨어 환경에 대응하기 위해 6개월에 한 번씩 새 로운 버전이 출시됩니다. 버전명은 해당 버전의 우분투가 출시된 해와 달로 이 루어지며 코드네임은 머릿글자를 ABC순으로 정하고 있습니다. 그리고 6개월마 다 한 번씩 사용 환경이 변하는 데 부담을 느끼는 사용자를 위해 2년마다 일반 버전보다 지원 기간이 긴 LTS(Long Term Supprot) 버전을 출시하고 있습니다. 우분투에서 지원 기간이란 우분투에서 소프트웨어 업데이트를 지원 받을 수 있는 기간을 의미합니다. 지원 기간이 종료된 후에는 저장소를 통한 패키지 설 치, 추가 업데이트 지원이 종료되기 때문에 되도록 지원 기간 종료 전에 다음 버 전으로 업데이트하는 것이 좋습니다. 우분투 버전 목록 버전명 코드네임 출시일 ~ 지원 기간 우분투 4.10 (처음 버전) Warty Warthog 2004. 10. 20 ~ 2006. 4. 30 우분투 5.04 Hoary Hedgehog 2005. 4. 8 ~ 2006. 10. 30 우분투 5.10 Breezy Badger 2005. 10. 13 ~ 2007. 4. 13 우분투 6.06(LTS) Dapper Drake 2006. 6. 1 ~ 2009. 7. 14(Desktop), 2011. 6. 1(Server) 우분투 6.10 Edgy Eft 2006. 10. 26 ~ 2008. 4. 25 우분투 7.04 Feisty Fawn 2007. 4. 19 ~ 2008. 10. 19 우분투 7.10 Gutsy Gibbon 2007. 10. 18 ~ 2009. 4. 18 우분투 8.04(LTS) Hardy Heron 2008. 4. 24 ~ 2011. 5. 12(Desktop), 2013. 5. 19(Server) 우분투 8.10 Intrepid Ibex 2008. 10. 30 ~ 2010. 4. 30 우분투 9.04 Jaunty Jackalope 2009. 4. 23 ~ 2010. 10. 23 우분투 9.10 Karmic Koala 2009. 10.29 ~ 2011. 4. 30 우분투 10.04(LTS) Lucid Lynx 2010. 4. 29 ~ 2013. 5.9(Desktop), 2015. 4.(Server) 우분투 10.10 Maverick Meerkat 2010. 10. 10 ~ 2012. 4. 10 우분투 11.04 Natty Narwhal 2011. 4. 28 ~ 2012. 10.28 우분투 11.10 Oneiric Ocelot 2011. 10. 13 ~ 2013. 5. 9 우분투 12.04(LTS) Precise Pangolin 2012. 4. 26 ~ 2017. 4. 우분투 12.10 Quantal Quetzal 2012. 10. 18 ~ 2014. 4. 우분투 13.04 Raring Ringtail 2013. 4. 25 ~ 2014. 1. 우분투 13.10 Saucy Salamander 2013. 10. 17 ~ 2014. 7. 우분투 14.04(LTS) Trusty Tahr 2014. 4. 17 ~ 2019. 4. 우분투 14.10 Utopic Unicorn 2014. 10. 23 ~ 2015. 7. 일반 버전의 지원 기간 : (12.10 이전) 1년 6개월, (12.10 이후) 9개월 LTS 버전의 지원 기간 : (12.10 이전) 데스크톱 버전 : 3년, 서버 버전 : 5년, (12.10 이후) 5년 6 1장 우분투를 소개합니다
우분투의 버전 업그레이드에 대하여 우분투는 6개월마다 한 번씩 새로운 버전이 배포됩니다. 원래 우분투의 배포 방식은 예전 우분투의 데스크톱 환경이었던 그놈(GNOME) 프로젝트의 안정 버전 출시 기간에 맞춘 것 이었습니다. 데스크톱 환경에 따라 배포판의 버전 업데이트 기간을 맞춘 것입니다. 하지만 우분투가 그놈 데스크톱 환경에서 독립하여 자체적인 유니티 데스크톱 환경을 갖추면서 기존의 배포 방식을 변경하는 것에 대한 논의가 최근 우분투 커뮤니티 내에서 이루어지고 있습니다. 우분투는 새로운 버전이 한번 발표되면 안정성을 위해 설치되는 소프트웨어의 버전도 고정되어 버리고 보안 업데이트 정도만 하는 특징이 있습니다. 이러한 방식은 버전 업데이 트가 느리고 시스템과 밀접한 연관이 있는 커널이나 드라이버 같은 부분의 안정성을 확보 할 수 있습니다. 하지만 버전 업데이트가 빠르고 시스템에 영향을 주지 않는 응용 프로그 램의 버전 업데이트까지 제한한다는 단점이 있습니다. 우분투 커뮤니티 내에서는 이런 단점을 극복하기 위해 6개월마다 한 번씩 새로운 버전 이 배포되는 것이 아니라 배포판이 업그레이드를 통해 계속 새로운 업데이트를 받을 수 있 도록 하는 연속 배포 방식(Rolling-Release)에 대한 논의가 계속 이루어지고 있습니다. 하지만 현재로서는 커뮤니티 논의 단계에서 벗어나지 못하고 있기 때문에 당분간은 6개월 마다 새로운 버전이 나오는 방식이 유지될 듯합니다. 우분투 버그 리포트 # 1 우분투 버그 # 1 우분투는 사용자들이 프로그램의 버그를 발견하고 쉽게 보고할 수 있도록 버그 보고(Bug Report) 시스템을 운영하고 있습니다. 이 버그 보고 시스템을 통해서 우분투 사용자들은 우분투에 버그를 쉽게 보고할 수 있고, 우분투 개발자들은 사용자들이 겪고 있는 버그의 중요성을 파악하여 대응할 수 있습니다. 이 버그 보고 리스트 중 마크 셔틀워스가 스스로 보고한 # 1 버그의 내용은 이렇습니다. 마이크로소프트는 새 데스크톱 PC 시장의 대부분을 점유하고 있다. 이것은 버그로, 우분투는 이 버그를 수정하도록 설계되어 있다. 독점 소프트웨어는 IT 산업에서 혁신을 막고 있고 세계 인구의 소수만이 IT에 접근할 1.1 우분투 소개 7
수 있도록 제한하고 있으며 소프트웨어 개발자들의 잠재력을 제한하고 있다. 이 버그 는 PC 산업에서 매우 명백한 사실이다. 재현 방법 : 1. 근처의 컴퓨터 가게로 향한다. 증상 : 2. 판매되는 대부분의 PC에 독점 소프트웨어가 미리 설치되어 있는 것을 확인한다. 3. 우분투와 같은 자유 소프트웨어가 설치되어 있는 PC가 거의 없다는 것을 확인한다. 해야 할 일 : 1. 판매되는 PC는 대부분 우분투 같은 자유 소프트웨어만 설치되어 있어야 한다. 2. 놀라운 기능과 효용이 분명하도록 우분투를 마케팅해야 한다. 3. 앞으로 시스템은 더욱 사용자 친화적으로 나아가야 한다. 이 버그의 내용은 마이크로소프트의 운영체제가 소비자들이 구매하는 컴퓨터에 선택권 없이 미리 설치되어 있는 현실을 버그로 인식하고 있으며, 사용자가 컴퓨터에 설치되는 운 영체제를 선택할 수 있도록 해야 한다는 주장입니다. 단순히 우분투가 윈도우즈의 자리를 대체하는 것이 목적이 아니라 독과점이나 다름 없는 현재의 PC 시장을 좀 더 자유롭게 하 기 위한 의도가 담겨있습니다. 현재 이 버그는 수정된 상태로 표시되어 있습니다. PC, 스마트폰, 태블릿 등을 다 합쳤 을 때 더 이상 윈도우즈는 지배적인 위치의 운영체제라고 보기 어렵습니다. 가장 많이 사 용되는 운영체제는 안드로이드 같은 오픈소스 유닉스 계열의 운영체제가 되었죠. 비록 우 분투가 이 문제를 해결하기 위해 주도적인 역할을 했다고 보기는 어렵지만 어쨌든 윈도우 즈가 사용자의 선택권을 제한할 정도로 지배적인 위치를 보유하지 못한 상태이기 때문에 이 버그는 해결됐다고 보는 쪽이 맞을 듯합니다. 8 1장 우분투를 소개합니다
2장 우분투 설치하기 이제 본격적으로 우분투를 설치해보겠습니다. 설치하는 방법이 어려울 것이라는 편견과 달리 우분투의 설치는 매우 쉽고 간단합니다. 먼저 인터넷에서 디스크 이미지(iso 형식)를 다운받아 USB 메모리에 우분투 설치 USB를 만든 다음, 우분투 설치 USB를 통해 컴퓨터에 설치하는 형식 으로 이루어집니다. 만약 컴퓨터에 바로 설치하는 것이 부담스럽다면 가상머신을 통해 현재 사용 하고 있는 운영체제에 영향을 주지 않고 설치할 수도 있습니다.
2.2 가상머신에 우분투 설치하기 우분투 이미지를 받았으니, 이제 컴퓨터에 우분투를 설치해보겠습니다. 우분투 는 운영체제(Operating System)이기 때문에 기본적으로 현재 사용하고 있는 운 영체제에 영향을 미치지 않고 설치할 수는 없습니다. 한 컴퓨터에서는 동시에 하나의 운영체제만 구동할 수 있기 때문입니다. 하지만 현재 사용하고 있는 운 영체제에 영향을 주지 않고 우분투를 설치해볼 수 있는 간단한 방법이 하나 있 는데요, 바로 가상머신(Virtual Machine)에 우분투를 설치하는 방법입니다. 가상머신이란 하나의 컴퓨터 내에 또 다른 컴퓨터를 가상으로 만들어 구동하 는 방식으로, 하나의 컴퓨터로 여러 대의 컴퓨터를 사용하는 듯한 효과를 내거 나 동시에 여러 운영체제를 사용하기 위해서 설치합니다. 여기에서는 무료이면 서 가장 가벼운 가상머신인 버추얼박스(Virtualbox)에 우분투를 설치하는 방법 을 알아보겠습니다. 30 2장 우분투 설치하기
1. 가상머신 준비하기 1 가상머신 프로그램을 다운로드하기 위해 버추얼박스 홈페이지(https:// www.virtualbox.org/)에 접속하여 Download를 클릭합니다. 2 다운로드 페이지로 이동하여 현재 사용 중인 운영체제에 맞는 버추얼박스 를 다운로드합니다. 2.2 가상머신에 우분투 설치하기 31
3 설치 설명에 따라 버추얼박스를 설치합니다. 4 버추얼박스를 설치한 후 실행하면 가상머신이 하나도 등록되지 않은 상태 일 겁니다. 여기에서 새로 만들기 를 클릭하여 가상머신을 새로 만들어보겠 습니다. 32 2장 우분투 설치하기
3장 우분투 준비운동 이제 우분투를 설치했으니 우분투를 사용하기 위해 필요한 기본기를 익혀보겠습니다. 우분투를 전문적으로 다루기 위해서는 알아야 할 것이 무척이나 많습니다. 리눅스 커널의 구조부터 리눅스 의 파일 시스템, 부트로더 등... 하지만 일반적인 사용 목적에서 우분투를 사용하기 위해 알아야 할 것은 세 가지 뿐입니다. 그 세 가지는 바로 패키지 관리자, 텍스트 에디터, 파일 관리자입니다.
3.1 패키지 관리자 사용하기 가장 먼저 알아볼 패키지 관리자(Package Manager)는 우분투에서 프로그램을 설치하거나 시스템의 구성요소를 설치하기 위한 가장 기본적인 프로그램입니 다. 패키지 관리자는 네트워크에서 자동으로 필요한 것들을 받아와서 자동으로 설치하는 방식으로 동작합니다. 최근 스마트폰에서 사용되는 앱스토어(아이폰) 나 플레이 스토어(안드로이드)의 원조격인 방식으로, 프로그램부터 커널까지 누 구나 쉽게 설치할 수 있습니다. 1. 패키지 관리자에 대한 기본 개념 패키지 관리자 는 리눅스에서 프로그램 설치를 도와줍니다. 과거 리눅스에서 프 로그램을 설치하려고 하면 소스코드로부터 빌드(Build)라는 과정을 거쳐서 직 접 컴파일을 해주어야 했습니다. 워낙 다양한 환경에서 쓰이는데다 커널 버전도 수십, 수백 개에 달하기 때문에 소스코드를 주고 사용자가 스스로 컴파일을 하 는 방법이 더 효과적이었던 것입니다. 하지만 이 방식은 비 개발자들에게는 매 우 어려운 부분이었습니다. 패키지와 패키지 관리자는 이런 불편한 리눅스의 프 로그램 설치를 편리하게 바꿔주는 역할을 합니다. 다음은 패키지 관리자에서 주로 사용되는 핵심적인 용어입니다. (1) 패키지(Package) : 패키지는 이미 컴파일된 실행 파일을 담고 있는 설치 꾸 러미입니다. 이 패키지에는 컴파일된 파일들과 이 파일들을 어디에 어떻게 설치해야 하는지에 대한 정보, 해당 패키지를 설치하기 전에 먼저 설치해야 하는 패키지에 대한 정보가 함께 담겨 있습니다. 패키지 관리자는 이 패키지 86 3장 우분투 준비운동
로부터 정보를 읽어서 패키지를 설치합니다. 우분투도 이런 패키지로 이루어 져 있는 운영체제입니다. 우분투의 패키지 파일은 DEB(*.deb) 형식입니다. (2) 저장소(Repository) : 패키지들은 개별적으로 설치할 수도 있지만 일반적으 로 저장소라고 불리는 네트워크 공간에 업로드되어 있습니다. 우분투에서 는 이 저장소에서 패키지를 다운로드하여 설치합니다. 만약 특정 패키지를 설치하는 데 필수로 필요한 패키지들이 있다면 저장소에서 같이 다운로드 하여 설치합니다. (3) 의존성(Dependency) : 패키지들은 각각 해당 패키지를 설치하기 전에 먼 저 설치해야 하는 패키지에 대한 리스트를 갖고 있는데요, 이것을 의존성이 라고 부릅니다. 의존성은 필요한 구성요소가 설치되지 않은 채 소프트웨어 가 시스템에 설치되는 것을 방지하고 패키지 간의 충돌을 막아주는 역할을 합니다. 2. 우분투 소프트웨어 센터 일반 사용자 입장에서 가장 처음 만나게 되는 패키지 관리자는 바로 우분투 소 프트웨어 센터(Ubuntu Software Center)입니다. 우분투 소프트웨어 센터는 아 이폰에 있는 앱스토어처럼 우분투에서 손쉽게 프로그램을 설치하여 사용할 수 있는 프로그램입니다. 1. 우분투 소프트웨어 센터 실행하기 1 우분투 소프트웨어 센터를 실행하려면 유니티 런처 바에서 실행하거나, 3.1 패키지 관리자 사용하기 87
2 Super 키(윈도우즈 키)를 누른 다음, Unity Lens에서 검색해서 실행할 수 있 습니다. 우분투 소프트웨어 센터는 다음과 같이 구성되어 있습니다. 설치한 프로그램 목록 설치/삭제 기록 현재 진행상태 보기 2. 우분투 소프트웨어 센터에서 프로그램 설치하고 삭제하기 우분투 소프트웨어 센터에서 프로그램을 설치하고 삭제하는 과정은 매우 쉽습 니다. 앱스토어와 거의 동일합니다. 예를 들어서 리눅스용 게임 중 하나인 프로 즌 버블(Frozen Bubble)을 설치하고 삭제하는 과정을 살펴보겠습니다. 88 3장 우분투 준비운동
4장 우분투 사용하기 - 데스크톱 우분투는 원래 10.04까지 GNOME 인터페이스를 사용하고 있었지만 GNOME 프로젝트가 3.0으 로 버전업이 되면서 유니티 인터페이스를 개발하여 탑재하였습니다. 유니티는 본래 우분투 넷북 리믹스(Ubuntu Netbook Remix)에 탑재되어 있던 넷북용 인터페이스였으나, 현재는 우분투의 모든 데스크톱에 탑재되어 있습니다. 유니티는 GNOME, KDE, XFCE 등 여러 갈래로 갈라져 있는 우분투의 데스크톱 환경을 통합하고 자 하는 목적을 담고 있습니다. 우분투는 리눅스 배포판 최초로 리눅스 배포판과 데스크톱 환경 을 개발하는 주체가 같다는 특징이 있으며, 그만큼 다른 리눅스 배포판에 비해 데스크톱 인터페 이스에 신경을 많이 쓰고 있습니다.
4.3 와인으로 윈도우즈용 앱 사용하기 우분투를 데스크톱 목적으로 사용할 때 가장 아쉬운 부분은 바로 애플리케이션 생태계 부분입니다. 특히 한국에서 실행되는 서비스의 앱들은 우분투에서 실행 할 수 없는 경우가 많습니다. 앱 생태계는 아무래도 시장에서 가장 많은 점유율 을 차지하고 있는 윈도우즈가 훨씬 다양할 수밖에 없는데요, 우분투에서는 와인 을 설치해 윈도우즈 앱을 실행할 수 있습니다. 이번 절에서는 와인에 대해서 알아보고 와인을 이용하여 인터넷 익스플로러 (Internet Explorer)를 설치해보겠습니다. 1. 와인 설치 및 소개 와인(Wine)은 Wine is not Emulator의 약자로 일종의 윈도우즈 앱을 실행할 수 있는 에뮬레이터이자, 윈도우즈 실행 레이어라고 할 수 있습니다. 와인은 윈 도우즈의 실행 환경을 흉내 내어 윈도우즈용 애플리케이션을 실행하기 때문에 100% 윈도우즈앱을 실행할 수 있다고 할 수는 없지만 상당히 많은 윈도우즈용 애플리케이션을 리눅스에서 실행할 수 있으며 심지어 게임도 실행할 수 있을 정 도입니다. 1 와인을 설치하려면 우분투 소프트웨어 센터에서 Wine을 검색하여 설치하 거나, 터미널에서 다음 명령어를 입력합니다. sudo apt-get install wine 4.3 와인으로 윈도우즈용 앱 사용하기 153
2 설치가 완료되면 터미널에서 다음 명령어를 실행하여 환경을 설정합니다. winecfg 3 와인 환경 설정 창이 실행되면 실행 가 능한 윈도우즈 버전과 다른 설정을 확 인합니다. 가장 높은 호환성을 보이는 버전은 Windows XP 입니다. 설정 창 에서 확인 눌러 종료합니다. 4 와인은 Wintricks와 같은 명령어를 사용하여 추가적인 라이브러리를 구성 할 수 있습니다. 예를 들어 실행하고자 하는 애플리케이션이 윈도우즈 미디 어플레이어9 호환성이 필요할 경우 다음과 같이 입력할 수 있습니다. winetricks wmp9 5 실행하고자 하는 애플리케이션이 와인에서 잘 구동되는지 호환성을 확인 해보고 싶다면 와인 홈페이지(http://appdb.winehq.org/)에서 애플리케이 션의 이름을 검색하여 호환성을 확인해볼 수 있습니다.(가장 높은 등급은 Platinum이고 Gold, Silver, Bronze 순으로 등급이 매겨집니다.) 154 4장 우분투 사용하기 - 데스크톱
6 만약 와인을 실행하다가 오류가 발생하였을 경우 다음 명령을 통해 초기화 할 수 있습니다. 이때 와인에 설치되어 있던 다른 애플리케이션도 삭제되므 로 주의해야 합니다. rm -r ~/.wine 와인은 윈도우즈 애플리케이션을 실행할 수 있는 수단이지만 100% 호환이 되지 않으며 애플리케이션에 따라 매우 불안정할 수 있습니다. 와인으로 윈도우즈 애 플리케이션을 구동할 때는 중요한 작업을 반드시 백업하고 사용하기 바랍니다. 2. 와인으로 인터넷 익스플로러 설치하기 우분투에는 파이어폭스라는 뛰어난 브라우저가 기본으로 설치되어 있고, 원할 경우 구글의 크롬 브라우저를 설치할 수 있습니다. 아이폰 출시 이후 많이 나아 지긴 했지만 아직 한국 웹의 현실에서는 부득이하게 인터넷 익스플로러를 사용 해야만 하는 경우가 발생합니다. 와인으로 설치하는 인터넷 익스플로러는 불안 정해서 일반적인 웹브라우징용으로는 부적합하지만 간단한 ActiveX와도 호환 되기 때문에 인터넷 익스플로러가 필요할 경우 사용할 수 있습니다. 1 인터넷 익스플로러8을 설치하기 위해 터미널에서 다음 명령어를 입력합 니다. WINEPREFIX=~/.ie8 WINEARCH=win32 winetricks ie8 winetricks ie8 명령을 사용해도 설치가 가능하지만 WINEPREFIX 옵션 과 같이 사용하면 사용자의 기본 와인 설정 폴더인 ~/.wine에 영향을 주지 않고 ~/.ie8이라는 폴더에 IE8을 설치합니다. 더불어 WINEARCH은 해당 wineprefix가 32비트로 동작하도록 하는 명령입니다. 64비트 시스템에서는 winetricks를 통한 인터넷 익스플로러 설치에 오류가 있기 때문에 32비트로 동작을 강제해주어야 합니다. 4.3 와인으로 윈도우즈용 앱 사용하기 155
5장 우분투 주무르기 우분투에 기본 탑재되어 있는 유니티 인터페이스는 처음 우분투를 사용하는 사람도 쉽게 컴퓨터 를 사용할 수 있도록 만들어져 있습니다. 하지만 기존 리눅스를 사용하던 사용자들은 유니티가 사용자 입맛에 맞게 설정할 수 있는 요소가 거의 없다는 점을 가장 아쉬워합니다. 다른 운영체제에서는 주어진 작업 환경을 거의 벗어날 수 없게 되어 있지만, 우분투에서는 유니 티 인터페이스가 마음에 들지 않을 경우 다른 작업 환경을 선택하여 사용할 수 있도록 하는 옵션 을 제공하고 있습니다. 유니티에 마음에 드는 테마를 설치하거나, GNOME, KDE 등 표준 유닉스 데스크톱 환경을 설치하여 사용할 수도 있습니다.
5.2 컴피즈 살펴보기 우분투에 관심이 있는 사람이라면 한 번쯤 동영상에서 창이 출렁거리면서 움직 이거나 데스크톱 화면이 큐브 형태로 돌아가는 장면을 본 적이 있을 겁니다. 눈 으로 보기에도 화려할 뿐 아니라 실제 사용할 때도 유용한 부분이 많은 기능이 고, 우분투의 특징 중 하나로 자리 잡고 있습니다. 우분투에서 이런 그래픽 효과 를 담당하고 있는 것이 바로 컴피즈(Compiz)라고 불리는 창 관리자입니다. 컴 피즈는 단순한 효과를 내기 위한 프로그램이 아니라 우분투 데스크톱 환경에서 창(Window)의 움직임과 데스크톱의 구성을 맡고 있는 운영체제의 핵심 부분입 니다. 1. 컴피즈와 리눅스 디스플레이 시스템 리눅스 운영체제는 본래 윈도우즈처럼 그래픽 인터페이스을 갖춘 운영체제가 아니었습니다. 명령어 기반으로 정해진 명령어를 입력하여 사용해야 하는 운영 체제였습니다. 그래픽 사용자 인터페이스가 없었기 때문에 리눅스는 일반 사용 자가 아닌 컴퓨터와 친숙한 고급 사용자에게 적합한 운영체제로 인식되고 있습 니다. 그러던 중 리눅스 개발자들은 리눅스에 유닉스 계열에서 많이 사용되던 X윈 도(X-Window System, X11)를 결합하려는 시도를 하게 되었습니다. X윈도는 특 이하게도 서버(Server)와 클라이언트(Client) 개념으로 구성된 네트워크형 디스 플레이 시스템입니다. 일반적인 컴퓨터에서는 그래픽 출력을 담당하는 디스플 레이 시스템이 운영체제와 분리되어 있지 않지만 X윈도는 네트워크를 통해 통 신하기 때문에 서로 분리가 가능합니다. 5.2 컴피즈 살펴보기 189
이런 X윈도의 방식은 컴퓨터 자원이 부족했던 1980년대의 필요에 의해 만들 어졌습니다. 자원이 많이 있는 중앙 서버에서 운영체제를 실행하고 디스플레이 시스템은 자원이 가벼운 단말기(클라이언트)에서 실행하기 위해 이런 방식을 선 택하였습니다. <서버> X Server <단말기 A> X Client (APP) 사용자A OS OS Hardware Hardware <단말기 B> 사용자B <단말기 C> 사용자C X윈도 시스템의 구현 목적 - 서버 한 대의 컴퓨터 자원을 여러 대의 단말기에 공유하기 위한 목적 - 단말기는 비교적 가벼운 컴퓨터 지원으로도 사용자에게 GUI를 전달할 수 있음 X윈도 구성도 1990년대에 X윈도가 리눅스에 이식되면서 X윈도는 다음 그림과 같은 방식으로 리눅스에 이식 되었습니다. 사용자의 컴퓨터 안에서 서버(X Server)와 클라이언 트가 동시에 실행되어 서로 통신하며 사용자는 클라이언트에서 그래픽 환경을 보게 됩니다. 실제로 사용자가 보는 그래픽 환경은 리눅스를 통해 실행되는 X Server에서 클라이언트에게 보내주는 화면입니다. <Linux System> X Server 네트워크 통신(X) X Client (APP) 사용자 OS Hardware 리눅스에서 X윈도 실행 구조 - 하나의 OS에서 X Server와 X Client가 같이 실행 됨 - 디스플레이 시스템이 OS에서 분리되어 있기 때문에 GUI의 문제가 전체 운영체제의 실행에 영향을 주지 않음 리눅스에서 디스플레이 시스템 구성도 190 5장 우분투 주무르기
리눅스에서는 이렇게 운영체제와 디스플레이 시스템이 분리되어 있기 때문에 디스플레이 시스템이 멈춰도 운영체제에는 영향을 주지 않습니다. 디스플레이 시스템이 멈춰도 얼마든지 단축키를 통해 다른 터미널 세션으로 전환할 수 있 죠. 우분투에서는 기본적으로 다음 단축키를 통해 전환할 수 있습니다. (1) Ctrl+Alt+F1~F6 : 리눅스 터미널 세션 전환 (2) Ctrl+Alt+F7 : X Server 환경으로 전환 운영체제와 디스플레이 시스템이 분리되어 있다는 것은 시스템의 안정성면에서 는 큰 장점입니다. 하지만 치명적인 단점 중 하나는 바로 고도의 그래픽을 요구 하는 동영상이나 3D를 실행할 때 드러납니다. 동영상이나 3D 등은 서버와 클라 이언트의 네트워크 통신만으로 구현하기엔 데이터가 너무 많이 필요하고 자원 도 많이 소모됩니다. 따라서 X윈도에서는 동영상이나 3D는 하드웨어에서 직접 렌더링(Direct Rendering)하는 방식을 선택합니다. <Linux System> <Linux GUI> X Server 네트워크 통신(X) X Client (APP) 일반 앱 Window Manager 일반 앱 OS 사용자 Hardware Direct Rendering 3D 앱(게임 등) 직접 렌더링(Direct Rendering) 3D와 동영상의 경우 해당 창(게임 앱, 동영상 앱 등)에 하드웨어에서 렌더링한 결과를 뿌림 Direct Rendering 방식 하지만 현대에 와서 컴퓨터 자원이 풍족해지면서 데스크톱 환경에도 사용자 편 의성을 위해 창이 투명해지거나 여러 창을 띄워놓고 선택하는 등 고도의 효과를 구현해야 하는 경우가 많아졌습니다. 리눅스도 이런 트렌드에 맞추기 위해 디스 플레이 시스템 전체를 다이렉트 렌더링할 수 있도록 개조되었습니다. 그렇게 개 조된 것이 현재 우분투에서도 쓰이고 있는 OpenGL 하드웨어 가속을 지원하는 AIGLX라고 부르는 간접 렌더링(Indirect Rendering)입니다. 디스플레이 시스템 전체가 OpenGL을 지원하면서 거기에 맞게 OpenGL 3D 가속을 최대한 사용하여 창의 움직임을 제어하는 창 관리자가 새롭게 필요하게 5.2 컴피즈 살펴보기 191
6장 우분투에서 개발하기 우분투는 일반 사용자에게도 인기가 많지만 특히 개발자에게 인기가 많은 운영체제입니다. 패 키지와 저장소 시스템으로 인해 개발 환경을 구성하기가 쉽고, 우분투에서 실행되는 소프트웨 어의 대부분이 오픈소스 소프트웨어이기 때문입니다. 이번 절에서는 우분투 저장소에서 내려 받은 소스를 컴파일하는 과정과 안드로이드 개발 환경 구축, 그리고 최근 급부상하고 있는 도커 (Docker)에 대해 알아보겠습니다.
6.2 안드로이드 개발 환경 구축하기 우분투는 안드로이드를 개발하기에 적합한 환경입니다. 우분투 개발 환경이 다 른 환경에 비해 안드로이드 빌드가 빠르기도 합니다. 구글도 안드로이드의 개 발 및 빌드를 우분투 시스템을 통해서 하고 있습니다. 우분투에서 안드로이드 개발 환경을 구축하는 것에는 두 가지 방법이 있습니다. 하나는 ADT(Android Developing Tool)를 통한 방법이고 또 하나는 구글이 2014 구글 I/O에서 발표 한 안드로이드 스튜디오를 설치하는 방법입니다. 이번에는 우분투에서 안드로 이드 개발 환경을 구축하는 방법에 대해서 살펴보겠습니다. 1. JDK 설치하기 안드로이드와 안드로이드 앱들은 자바 기반으로 이루어져 있습니다. 따라서 우 분투에서 자바 개발에 필요한 JDK의 설치가 필요합니다. 자바는 현재 오라클 소유의 기술로 되어 있지만 우분투에서는 자바의 오픈소스 버전인 Open JDK를 추천하고 있습니다. Open JDK는 터미널에서 다음과 같이 설치해야 합니다. sudo apt-get install default-jdk default-jre 그런데 Open JDK 7은 최근 안드로이드 개발툴에서 속도와 UI 호환성 측면에서 이슈가 발견되고 있습니다. 이럴 경우 Open JDK가 아닌 Oracle Java JDK를 대 신 설치할 수 있습니다. 212 6장 우분투에서 개발하기
1 Oracle Java JDK는 기본적으로 우분투에서 설치할 수 없게 되어 있습니다. Oracle Java JDK를 설치하려면 개인 패키지 저장소(PPA)를 추가하여야 합 니다. 다음 명령어로 PPA를 추가합니다. sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 2 다음 명령어를 입력하여 최신 버전 자바를 설치합니다. sudo apt-get install oracle-java7-installer oracle-java7-set-default //Java 7 버전 설치 시 sudo apt-get install oracle-java6-installer oracle-java6-set-default //Java 6 버전 설치 시 3 설치 완료 후 다음 명령어를 입력하여 Java가 제대로 설치되었는지 확인합 니다. java --version java version "1.7.0_65" Java(TM) SE Runtime Environment (build 1.7.0_65-b17) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) 2. ADT 설치하기 안드로이드 개발을 위해서는 ADT를 설치해야 합니다. ADT는 자바 개발에 많 이 사용되는 IDE인 이클립스(Eclipse)의 플러그인 형태로 개발되어 있습니다. ADT는 안드로이드 SDK만 포함하고 있고 IDE를 포함하고 있지 않지만 번들 패 키지를 받으면 이클립스가 포함된 패키지를 받을 수 있습니다. 1 먼저 현재 사용하고 있는 우분투의 아키텍처 버전이 32비트인지, 64비트인 지 확인해야 합니다. 현재 쓰는 CPU가 64비트라고 해도 운영체제의 버전은 32비트일 수 있습니다. 확신이 없을 경우에는 다음 명령어를 입력해서 확인 할 수 있습니다. uname -m i686 (이렇게 출력될 경우 32비트 운영체제입니다.) x86_64 (이렇게 출력될 경우 64비트 운영체제입니다.) 6.2 안드로이드 개발 환경 구축하기 213
2 웹 브라우저로 다음 주소에 접속하여 ADT 번들 패키지를 현재 쓰고 있는 운영체제의 아키텍처에 따라 다운로드합니다. http://developer.android.com/sdk/index.html#download 3 다운로드가 완료되었으면 원하는 위치에 압축을 풉니다. 압축을 풀면 eclipse 폴더와 sdk 폴더가 같이 있는데 eclipse 폴더로 이동하여 eclipse 파 일을 실행합니다. 214 6장 우분투에서 개발하기
6.3 도커 소개 및 설치하기 최근 리눅스에서 가장 떠오르고 있는 프로젝트 중 하나가 바로 도커(Docker)라 는 프로젝트입니다. 도커는 리눅스에서 사용할 수 있는 가상머신 같은 개념이지 만 가상머신보다 훨씬 빠르고 가볍다는 장점이 있습니다. 이번 절에서는 도커에 대해 알아보고 우분투에서 도커를 설치하여 활용하는 방법에 대해 알아보겠습니다. 1. 도커 소개 도커를 이해하려면 먼저 2장에서 우분투를 설치할 때 잠시 설명했던 버추얼 박 스를 떠올려 보면 됩니다. 버추얼 박스는 가상머신 프로그램으로서 실제 시스템 (호스트) 위에 독립적으로 실행되는 가상머신(게스트)을 에뮬레이션해주는 프 로그램입니다. 가상머신과 실제 시스템과의 관계를 그림으로 표현해보면 다음 과 같습니다. <가상머신 A> <가상머신 B> 애플리케이션 애플리케이션 커널 커널 가상 하드웨어 가상 하드웨어 가상머신 커널 하드웨어 실제 시스템(호스트) 6.3 도커 소개 및 설치하기 225
호스트 머신에서 실행되는 가상머신 A와 B는 호스트 시스템의 자원을 이용해 하드웨어를 에뮬레이션한 것입니다. 여기에 2장에서 했던 것처럼 운영체제를 설치할 수 있습니다. 이렇게 설치된 운영체제와 그 위에서 실행되는 애플리케이 션은 실제 시스템과 독립적으로 구성되며 실제 시스템에 전혀 영향을 미치지 않 습니다. 도커는 가상머신과 유사하지만 리눅스의 특징을 살려서 리눅스 컨테이너라는 것을 실행합니다. 리눅스 컨테이너는 호스트에서 실행되는 리눅스 커널을 공유 하여 실행합니다. 이것이 하드웨어와 커널이 서로 독립되어 있는 가상머신의 가 장 큰 차이점입니다. 도커가 운용되는 모습을 살펴보면 다음과 같습니다. <컨테이너 A> <컨테이너 B> 애플리케이션 애플리케이션 도커 커널 하드웨어 호스트 머신 도커에서 실행되는 컨테이너 A와 B는 실제 시스템의 하드웨어와 커널을 그대 로 사용합니다. 커널과 하드웨어만 공유하고 실행 환경 자체는 가상머신처럼 독 립되어 있습니다. 도커는 이로서 독립된 환경 이라는 가상머신의 장점을 그대로 살리면서도, 하드웨어를 에뮬레이션하고 커널까지 따로 실행하는 가상머신에 비해 훨씬 가볍고 빠릅니다. 실행 환경이 독립되어 있다는 장점 덕분에 도커는 여러 가지 방법으로 활용할 수 있습니다. 실행 환경이 분리되어 있기 때문에 컨테이너상에서 테스트를 시행해도 실제 시스템에 영향을 주지 않습니다. 파편화가 다소 심한 리눅스에서 애플리케이션을 배포할 때 도커를 이용해 표 준 환경을 만들어 배포할 수 있습니다. 프로그램을 컴파일할 때 여러 개발 라이브러리를 설치해서 시스템이 지저분 해지는 것을 막을 수 있습니다. 컨테이너를 복제하여 서로 다른 시스템에서 표준 실행 환경을 쉽게 구축할 226 6장 우분투에서 개발하기
수 있습니다. 예를 들어, 컨테이너 환경에서 특정 개발 환경을 구축하여 다른 컴퓨터에도 개발 환경을 그대로 복제할 수 있습니다. 컨테이너를 백업해두면 시스템에 이상이 있을 때 쉽게 되돌릴 수 있습니다. 앞에서 언급한 장점 외에도 도커를 사용하는 분야는 무궁무진합니다. 애플리케 이션 배포, 웹 서버 구축 자동화, 테스트 환경 자동 구축 등 도커를 활용하는 분 야는 점점 늘어나고 있습니다. 다만 도커는 가상머신에 비해 다음과 같은 단점이 있습니다. 명령어 기반(콘솔 기반)의 환경만 구성이 가능합니다. GUI 환경에서 실행되 는 애플리케이션은 사용할 수 없습니다. 리눅스 컨테이너는 실제 시스템의 커널을 공유하기 때문에 컨테이너 환경과 실제 시스템은 모두 리눅스여야 합니다. 리눅스 커널을 에뮬레이션하는 방식 으로 윈도우즈나 맥 OS X 등의 운영체제에서도 도커의 실행은 가능하지만 컨 테이너는 윈도우즈나 맥 OS X 같은 다른 운영체제의 환경을 사용할 수는 없 습니다. 즉, 도커는 리눅스 콘솔 환경에 한정되어 있다는 단점이 있습니다. 하지만 가상 머신에 비해 훨씬 빠르고 애플리케이션 개발 및 배포에도 사용될 수 있어서 더 욱 매력적인 프로그램입니다. 2. 도커 설치하기 도커는 우분투 저장소에서 기본적으로 제공하고 있습니다. 다음 명령으로 도커 를 설치할 수 있습니다. sudo apt-get install docker.io 그러나 도커의 버전업이 워낙 빨라서 이미 우분투 저장소에서 제공하고 있는 버 전은 오래된 버전입니다. 최신 버전의 도커를 도커 저장소 를 추가하여 설치하 겠습니다. 6.3 도커 소개 및 설치하기 227
8장 우분투로 홈서버 구축하기 우분투는 리눅스 배포판입니다. 리눅스는 데스크톱 운영체제에서는 점유율이 낮지만 서버 (Server) 같은 컴퓨터에서는 점유율 1위를 자랑합니다. 일단 운영체제에 필요한 비용이 거의 없 고, 명령어 기반의 쾌적한 콘솔 환경을 지니고 있기 때문입니다. 서버라고 하면 많은 사람들이 전산실에 있는 커다란 컴퓨터들을 생각하지만 요즘에는 데스크 톱의 성능도 계속 좋아지고 있고 절전을 위한 기술도 많이 추가되면서 집에서 돌리는 홈서버 (Home Server)가 점점 많아지고 있습니다. 이런 서버들은 가정에서 개인적인 목적을 위해 사용 되는 서버들입니다. 특히 성능이 다소 떨어지는 구형 PC를 홈서버로 구성하여 이용하는 사용자 들이 늘어나고 있습니다. 홈서버의 운영체제로 특히 각광받고 있는 것은 바로 우분투입니다. 우분투는 일단 서버 구축에 운영체제 비용이 들어가지 않고, 문제가 발생했을 때 인터넷에서 찾아볼 수 있는 문서도 많이 축 적되어 있기 때문입니다. 이번에는 우분투를 이용하여 우분투에서 NAS(Network Attached Storage) 역할을 하는 간단 한 파일 서버를 구축해보겠습니다. 우분투 서버 에디션을 활용하면 구형 컴퓨터에 더 좋겠지만, 여기에서는 좀 더 쉽게 접근하기 위해 데스크톱 우분투에서 진행해보겠습니다. GUI를 제외하고 모든 과정은 서버 버전에서도 동일하게 진행할 수 있습니다.
8.1 원격 접속 환경 구축하기 우분투 홈서버를 구성할 때 디스플레이 장치(모니터)와 입력 장치(키보드, 마우 스)는 우분투 설치를 위해 최초에 반드시 필요합니다. 그렇지만 서버는 사용자 가 직접 사용하는 컴퓨터가 아니기 때문에 최초 설치 완료 후에는 디스플레이와 입력 장치가 항상 연결되어 있을 필요는 없습니다. 그러나 서버 관리라든지, 새 로운 기능의 추가를 위해서는 서버에 접근하여 작업을 해야 하는 경우가 있습니 다. 그럴 경우 디스플레이나 입력 장치를 연결하지 않고도 다른 컴퓨터에서 원 격으로 접근하여 작업할 수 있습니다. 이번 절에서는 원격지에서 우분투로 만들어진 서버로 접근하는 방법에 대해 알아보겠습니다. 1. SSH 접근 환경 구성하기 SSH는 유닉스끼리 원격지에서 접속할 때 많이 사용되는 방법입니다. 우분투에 서는 SSH를 구성하여 다른 우분투에서 접근하거나, 혹은 맥 OS X 같은 다른 유 닉스에서 접근할 수 있습니다. 윈도우즈에서도 Putty 같은 프로그램을 사용하면 우분투의 SSH 환경에 접근할 수 있습니다. 1 먼저 우분투에서 SSH를 설치해주어야 합니다. 터미널에서 다음 명령어를 입력하여 SSH를 설치합니다. sudo apt-get install ssh 254 8장 우분투로 홈서버 구축하기
2 그런 다음 명령어를 입력하여 현재 IP 주소를 확인합니다. inet addr 부분을 확인해보면 IP 주소를 알 수 있습니다. ifconfig eth0 Link encap:ethernet HWaddr 08:00:27:3e:7c:d4 inet addr:192.168.0.15 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe3e:7cd4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:33 errors:0 dropped:0 overruns:0 frame:0 TX packets:90 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4997 (4.9 KB) TX bytes:12616 (12.6 KB) 3 (우분투나 맥 OS X의 경우) 다른 컴퓨터에서 터미널을 실행하여 다음 명령 어를 입력합니다. ssh 뒤에는 사용자 계정을, @ 뒤에는 앞에서 알아냈던 우 분투 서버의 IP 주소를 입력합니다. ssh (사용자 계정)@192.168.0.15 3-1 (윈도우즈의 경우) Putty 홈페이지 (http://www.chiark.greenend.org. uk/~sgtatham/putty/download. html)에서 Putty를 받아서 이용할 수 있습니다. Putty에서 접속할 때 우분투 서버의 IP 주소를 입력하여 쉽게 접속 할 수 있습니다. Putty 입력 화면 8.1 원격 접속 환경 구축하기 255
4 접속을 하면 해당 장소가 인증이 되지 않았다는 경고 메시지가 나옵니다. 여기에서 yes를 입력하면 사용자의 비밀번호를 다시 한 번 확인합니다. 주의 : 이때 암호를 입력해도 아무것도 입력이 안 되는 것처럼 보이지만 정상적으로 비 밀번호가 입력되고 있는 것입니다. Computer:~ user$ ssh bugbear5@192.168.0.15 The authenticity of host '192.168.0.15 (192.168.0.15)' can't be established. ECDSA key fingerprint is 06:c2:1b:3e:32:e0:8e:81:55:60:98:92:48:f2:72:fd. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.15' (ECDSA) to the list of known hosts. bugbear5@192.168.0.15's password: 5 우분투 원격지에 성공적으로 접속되면 다음과 같은 메시지가 나옵니다. 이 때 셸 표시가 우분투처럼 바뀐 것을 확인할 수 있습니다. Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Fri Aug 22 00:58:46 2014 from 192.168.0.14 user@ubuntu:~$ 256 8장 우분투로 홈서버 구축하기
9장 우분투 응급실(Trouble Shooting)