유니티 아니다. 뮤니티다! MATE로 만들어진 Unity 인터페이스!



http://www.omgubuntu.co.uk/2016/02/ubuntu-mate-16-04-unity-style-desktop


Unity 인터페이스는 다들 알다시피 이제 캐노니컬에서 개발을 포기했다는 사실은 다들 알고 계실 겁니다.


쓸모없었는데 잘 됐다면서 좋아하시는 분도 계시고 이제 적응해서 편하게 쓰고 있는데 왜 없앴냐면서 화내시는 분도 계실겁니다. 게다가 Unity8의 개발 과정을 지켜보면서 기대하시는 분도 계셨지요. 하지만 Canonical 주도의 Unity 인터페이스는 이제 사라졌고 다시는 볼 수 없게 되었습니다.

하지만 Unity 인터페이스 구성이 잘 만들어졌다는 것은 모두가 동의하는 사항이었습니다. 화면을 최대한 쓰기 하기 위해서 많은 고심을 했다는 것이 보였을 정도입니다. 그래서 17년 현재 비공식 배포판인 Ubuntu-MATE에서는 MATE를 기반으로 Unity인터페이스를 구현했습니다.


위 스크린샷을 보시면 왼쪽 패널에는 유니티 스타일로 프로그램 리스트들이 떠있고 위쪽 패널에는 메뉴들이 뜨게 됩니다. 누가봐도 유니티입니다. MacOS스타일의 메뉴 구성이 마음에 안 든다면 libtopmenu로 시작되는 패키지를 삭제하면 됩니다.


방법도 아주 간단합니다.


시스템 - 제어센터에 들어가신 다음 모양새 카테고리에 있는 MATE Tweak 아이콘을 클릭하시면 쉽게 하실 수 있습니다.


그러니까...


이렇게 있으니 한번 찾아보세요.


그리고 인터페이스 탭에서 패널 항목으로 가면 우분투 마테 레이아웃대신 다른 것을 선택할 수 있는데 그곳에 뮤니티가 있습니다!


여기에 있다 스크린샷에 있는 마우스 포인터 근처를 찾아보자.

이제 알아서 바뀝니다!


만약 MacOS 스타일의 메뉴가 마음에 안 드시면

sudo apt-get remove libtopmenu*

이것으로 패키지를 삭제하시면 됩니다.


욕먹고 사라진 인터페이스지만 구성이 좋기는 좋은가 보네요. Unity Desktop

,



VAAPI : https://en.wikipedia.org/wiki/Video_Acceleration_API

VDPAU : https://en.wikipedia.org/wiki/VDPAU

XvBA : https://en.wikipedia.org/wiki/X-Video_Bitstream_Acceleration




리눅스에서 동영상 가속을 위한 방법은 3가지가 있습니다.


우선 인텔이 만든 Video Acceleration API 줄여서 VAAPI라 부르는 API가 있습니다. libva.so를 이용하고 인텔이 만들었기에 당연히 인텔GPU에서 지원을 합니다. 그리고 AMD의 경우에는 오픈소스 드라이버를 이용할 경우 지원을 합니다. (Padoka PPA를 이용하시면 VAAPI가 AMD에 한해 비활성화 됩니다. 이유는 아래를 보시면 압니다.)


그리고 Nvidia가 만든 VDPAU가 있습니다. 지금이야 개나소나 다 지원하고 거의 업계표준이 되어버린 H.264 포맷이 처음 등장하고 나서 세상에 충격을 줬던 바로 그 시절에 태어난 물건입니다. 당시 PC성능으로 H264의 FHD영상은 재생이 버거워서 이런저런 방법을 강구해야 했습니다. 그 때 Nvidia가 PureVideo라는 것을 내놓았고 ATi(현재 AMD로 흡수)에서도 무언가 내놓기는 했는데... 아무튼 이 당시부터 GPU를 이용한 디코딩이 활성화 되었습니다. 그 때 만들었던 PureVideo를 리눅스로 이식하면서 VDPAU라는 이름으로 가져온 것입니다. 대략 2000년대 중후반 쯤이겠군요. 생각보다 역사가 좀 된 물건입니다.

지금은 AMD의 오픈소스 드라이버와 Nvidia의 드라이버를 사용하면 활성화가 됩니다. 인텔은 별도의 Wrapper를 사용하면 지원이 됩니다.


마지막으로 나온 XvBA란 물건이 있는데 이놈은 Catalyst를 설치했을 경우 XvBA를 지원하는 프로그램에서 활성화가 됩니다. 위의 위키피디아를 보시면 아시겠지만 다른 API에 비해 문서가 부실한데 이유야 당연히 악명높은 Catalyst를 사용했을 때만 활성화 되는데다가 위의 설명을 보셨을 아시겠지만 AMD의 오픈소스 드라이버가 VAAPI와 VDPAU를 둘다 지원하는 반면 XvBA에 대해서는 일언 반구도 없습니다. 즉, 버려진 자식 취급인것이지요.


그러니까 우분투 16.04이후로 Catalyst도 망했고 (어차피 AMDGPU드라이버로 바뀌었으니) 기존 사용자도 Catalyst를 설치할리 없으니 XvBA는 무시하도록 합시다.




VAAPI와 VDPAU는 다른 두 업체에서 처음 시작했지만 지금은 Freedesktop.org에서 관리하고 개발하고 있습니다. 물론 인텔은 VAAPI를 지원하고 있고 Nvidia는 VDAPU를 밀고 있지만 이 둘중에서 어떤 것이 승리할지는 아무도 모릅니다.


그리고 이 둘이 함께 개발이 되면서 서로가 서로를 대신하는 Wrapper도 함께 개발되었습니다. 우분투라면 vdpau-va-driver라는 패키지와 libvdpau-va-gl이란 두 패키지를 보셨을 겁니다.


패키지 설명을 잠깐 볼까요?


vdpau-va-driver

 libvdpau-va-gl

 VDPAU-based backend for VA API

VAAPI를 위한 VDPAU기반 백엔드

 VDPAU driver with OpenGL/VAAPI backend

VAAPI/OpenGL을 위한 VDPAU드라이버 백엔드


그러니까 말이 어려워서 그런데 쉽게 말하자면 VDPAU 칩셋에서 VAAPI프로그램을 돌리기 위한 패키지 (vdpau-va-driver)와 VAAPI칩셋에서 VDPAU프로그램(Adove Flash 같은)을 돌리기 위한 패키지(libvdpau-va-gl)인 것입니다.


솔직히 어떤 프로그램이 VAAPI를 지원하고 VDPAU를 지원하는지는 굳이 알 필요가 없는 것이 우분투는 알아서 이를 적용하기 때문입니다. 그러니까 끙끙 싸매지 마시고 그냥 그렇다고 하시면 됩니다.


VLC나 MPlayer를 사용하실 때 출력 드라이버가 어쩌고 하는 것을 보실수 있는데 그냥 자신의 그래픽칩셋에 맞춰서 선택하시면 됩니다.



INTEL

 VAAPI 혹은 libVA

 Nvidia

 VDPAU

 AMD

 VDPAU 혹은 VAAPI 혹은 libVA



참고 VDPAU https://www.freedesktop.org/wiki/Software/VDPAU/

VAAPI https://www.freedesktop.org/wiki/Software/vaapi/

,

hwp를 싫어하신다면 어쩔 수 없지만 또 그렇다고 하기엔 너무 편리하게 잘 만들어서 참 계륵인 그 물건 한글2008입니다.


사실 한글2008은 지금은 구하기 어려운 아시아눅스 데스크탑에 맞추어서 만들어진 물건이기 때문에 우분투에서 이를 설치하고 실행하기엔 너무 어려웠습니다. 구글검색을 해보면 rpm으로 만들어진 한글2008을 어떻게든 설치하려고 우분투가 나올 때마다 삽질에 삽질을 연속하는 것을 볼 수 있습니다. 사실 라이브러리만 잘 맞춰주면 되는 것이라서 그렇게 어렵다고 보지는 않지만 10년이 지나가는 요즘에는 호환성이 심각해져서 설치해야 하는 라이브러리가 부쩍 늘었습니다. 저 역시 16.04에 한글2008을 설치하기 위해서 엄청난 삽질을 동원했습니다.


8.04시절에는 3개만 링크 걸면 그만이었던 것이 10.04에는 5개로 늘어나고 이후에는 줄줄이...


이러고 나니 너무 귀찮더군요. 차라리 구버전 우분투나 아시아눅스를 설치한 다음 한글2008을 사용하는 것이 더 낫겠다는 생각이 들었습니다. 그렇다고 이 시점에서 10년전 배포판을 설치하는 것은 무리입니다. 하지만 Docker를 사용한다면 이야기는 달라집니다.




사실 도커가 많이 쓰이는 곳은 서버프로그램으로 서버마다 PHP버전과 MySQL등의 버전 혹은 경로가 다르다는 문제가 생기거나 배포판마다 조금씩 다르기도 하므로 시스템부터 컨테이너식으로 서버를 가상화하는 것에 가까운 물건입니다. 반가상화이기 때문에 성능 저하는 거의 없고 서버 시스템이 고대로 컨테이너화 되기 때문에 시스템 구축 문제로 머리 싸맬일이 없습니다.


즉, 우분투 구버전 혹은 아시아눅스 데스크탑을 도커에 이미지화 해서 올린다음 필요할 때마다 한글2008을 설치한 컨테이너를 올리게 되면 우분투 버전 올라갈때마다 삽질을 줄일 수 있게 되는 겁니다!!!!!!


아시아눅스의 Docker베이스가 있기는한데 아시아눅스 데스크탑이 아닌 서버버전이라 이쪽은 아니라는 생각이 들었습니다. 그래서 우분투 10.04를 기반으로 하기로 했습니다. 8.04에서는 느려서 못 써먹었던 것으로 기억하거든요.


제일 중요한 Dockerfile과 한글2008(평가판) 및 라이브러리는 아래 링크에서 받으실 수 있습니다. (MEGA이용 구글 드라이브 추후 추가 예정)


아래 링크에서 브라우저를 통해 다운로드를 누르면 된다.




https://mega.nz/#!uFMDHKxT!wSaTs6M3cp-rM-0xZkScw9RD7d2HaRbpd8o7mB-Q8ik


(Mega를 처음 쓰시는 분들은 브라우저를 통해 다운로드 받기를 누르시면 편합니다.)




우선은 Docker를 설치해야 합니다. 우분투에서 Docker는 두가지 방법으로 설치할 수 있습니다.


1. 우분투 공식 저장소를 이용

sudo apt-get install docker.io

sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker


2. Docker 저장소를 이용

https://docs.docker.com/engine/installation/linux/ubuntu/


여기를 보시면 우분투에서 어떻게 설치하는지 나오는데 순서는 다음과 같습니다. 이쪽이 버전도 높고 정리가 잘 되어있다는 느낌이라서 이쪽을 추천합니다.


sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


그냥 이걸 쭉 긁어다가 터미널에 착 얹어 주시면 되겠습니다.


그리고


sudo apt-get update

sudo apt-get install docker-ce


Docker는 docker-ce와 docker-ee가 있는데 ce는 Comunity Edition(개인용)이란 의미고 ee는 Enterprise Edition으로 대규모 사업자 용입니다. 당연히 우린 CE를 쓰는게 맞겠지요.


위의 링크파일의 압축을 푸시면 아래 스크린샷 같은 파일들이 튀어나오게 됩니다.


뭔가 좀 쓸데없이 많아 보이지만 한글2008평가판 deb과 라이브러리 묶음과 호환성패치 일부와 도커 이미지 생성을 위한Dockerfile이다.

정말 쓸데없이 많지만 다 필요합니다. 여기서 제일 중요한 것은 Dockerfile과 start.sh입니다.


Dockerfile은 여기있는 파일들을 이용해서 우분투 10.04 기반의 한글2008이 설치된 이미지를 만들고 start.sh는 만들어진 Docker이미지를 이용해서 한글2008을 실행하는 역할을 합니다.


그렇다면 여기서 도커이미지를 만들어야겠지요.


압축을 푼곳에서 터미널을 이용합니다.


cd {압축푼곳}

sudo docker build ./ -t hwp7


도커 명령어 일부를 볼 수 있는데 build는 Dockerfile이란 파일을 이용해서 이미지를 만들라는 의미고 ./는 현재 폴더를 -t hwp7은 이미지 이름을 hwp7으로 하라고 한겁니다.


시간이 꽤 걸릴 겁니다. 우분투 10.04 베이스 파일을 Dockerhub에서 받아오고 한글2008 DEB을 설치하고 old-release.ubuntu.com(우분투 구버전 저장소)에서 필요한 라이브러리를 받아와야 하기 때문에 그렇습니다.

중간에 오류가 없으면 아무 문제없이 진행이 되었을 겁니다.


다 되었으면 start.sh 파일을 실행해봅시다.



여기서 터미널에서 실행을 누르셔야 합니다. 왜냐하면 sudo명령을 요구하기 때문에 터미널에서 실행후 sudo 패스워드를 입력해야 합니다.


이것이 마음에 안 드시면 Docker를 유저 권한으로 할 수 있게 미리 그룹에 넣으시고 start.sh 파일 제일 앞의 sudo를 지워주시면 됩니다. (하지만 관리자 권한으로 하는 것이 보안상 낫지요)


조금 기다리면 사용기간이 어쩌고 하는 메시지가 뜨는데 여기서 확인을 누르시면 한글2008이 실행이 됩니다.


시스템의 거의 왠만한 폰트는 사용할 수 있게 볼륨링크를 해놓았고 파일-불러오기-/home/hwp

에 들어가시면 호스트의 홈폴더접근이 가능합니다. 홈폴더 외에 접근을 할리는 없으니 이렇게만 해 놓았습니다.


/home/hwp 를 통해 내 홈폴더에 접근이 가능하다.

주의 사항으로는 이런저런 설정을 해 놓아봐야 설정 저장이 안 됩니다. 즉, 설치후 완전 기본 상태라는 것입니다. docker commit을 한번 하면 되긴하는데 이건... 나중에 자세히 보고 알려드리겠습니다.


참고로 프린트는 지원되지 않습니다. 한글2008이 죽어버리더군요. 아마도 cups관련 문제인 것으로 보입니다. 하지만 문제없지요. 왜냐하면 우리에겐 우분투용 한컴뷰어가 있잖아요!


한글2008은 어디까지나 구버전이므로 HWP의 편집이 필요한 경우에만 쓰고 문서보기나 프린트는 한컴뷰어로 때우시는 것을 추천합니다.


참고로 이건 Docker를 이용한 것이므로 Arch든 CentOS든 RHEL이든 Debian이든 상관없이 Docker만 설치하면 한글2008 구동이 된다는 것을 의미합니다. 참 편하죠?


데스크탑의 정리가 필요하다면 start.sh 파일만 잘 복사해뒀다가 써도 좋습니다. 일단 이미지 만들어진 다음에는 start.sh파일 외에는 필요가 없거든요. 링크정도로 만들어서 바탕화면에 놓는다거나 하면 되겠지요.




P.S 생각보다 요구하는 라이브러리가 많이서 깜짝 놀랐습니다. Docker이미지가 1기가가 넘습니다. 이 정도일 줄은 몰랐는데...


P.S-2 커널 4.5 이상을 쓰실 때 Docker 설치가 어려우시면 aufs가 문제입니다. 4.5에선 aufs지원이 삭제되었다고 들었거든요. overlay라는 가상 파일 시스템을 쓴다고 합니다. 보통은 Docker가 알아서 한다고 설치중 오류가 난다면


/etc/docker/daemon.json


여기에 해당 파일을 만들어서



{
  "storage-driver": "overlay2"
}

요렇게 적으면 된다고 합니다.


물론 파일은 관리자 권한으로 만들어야겠지요.

,


사실 우분투 사용자 여러분들도 크롬은 많이 사용하실겁니다. 구글크롬이 개인정보획득이나 꺼림칙한 구글의 행보로인하여 거슬리는 것도 사실이지만 구글의 서비스를 적극적으로 이용하는 사람이라면 구글크롬만한 브라우저도 사실 없습니다.


그리고 크롬의 이용률은 전세계에서 어마어마한 양을 차지하고 있지요. 우분투에서 사용할 수 있는 Firefox나 Midori같은 브라우저와 비교했을 때 대다수 웹페이지들이 크롬을 기준으로 하고 있기에 점유율도 상당하다는 것은 짐작하실 수 있을 겁니다.


어쨌거나 이에 대한 반등으로 크롬을 공격하는 악성코드들이 활개를 치고 있다고 합니다. 대표적인 것이 시작페이지 바꾸기나 나도 모르는 확장이 설치되었을 때가 있습니다.




뭔가 이상하다고 느껴질때 혹시 동기화기능을 쓰신다면 금방 알아내실수 있는데요. 아무리 동기화를 해도 동기화가 되지 않을 때가 있습니다. 심지어 구글 로그인을 하면 로그인이 금방 풀려버리지요. 이유는 해당 악성코드가 구글에게 걸리지 않기 위해서 동기화를 못하게 하는 것으로 보입니다. 무엇보다 자동 업데이트가 안 되는 것이 가장 중요한 악성코드 증상입니다.


시작페이지 바꾸기는 IE시절에도 꾸준했고 많은 악성코드들이 사용한 방식인데 생각보다 많은 분들이 증상을 호소합니다. 주로 알 수 없는 광고 서버를 통해 코드가 침입을 하고 이에 증상이 나타나기 시작합니다. 크롬을 시작하자마자 이상한 광고가 뜬다면 100% 악성코드 증상입니다. 


방법은 생각보다 간단한데요. 동기화 기능을 사용하신다면 구글 서버에 악성코드가 걸리기 전의 상태가 저장되어 있을겁니다. 그렇다면 우분투 기준으로 (윈도우는 이미 다른 곳에서 많이 다루고 있으므로 PASS) 구글 크롬을 완전히 삭제한다음 다시 설치하면 쉽게 해결이 됩니다.


그리고 다시 동기화를 하면 악성코드가 들어오기 전의 상태로 회복이 되는 것이지요. 북마크나 크롬스토어를 통해 설치한 확장등이 다시 돌아오게 됩니다. (일부 확장은 다시 재실행을 해줘야 할 수도 있습니다. 하지만 이때 문제 많은 확장을 삭제 가능합니다.)

sudo apt-get purge google-chrome-stable

위 명령어로 크롬을 삭제합니다.


그 다음

~/.confg/google-chrome

해당 폴더를 완전히 삭제해주시면 크롬의 초기화가 끝납니다. 이제


https://www.google.co.kr/intl/ko/chrome/browser/desktop/index.html


여기서 다시 크롬을 설치해 주시면 끝.


만약 동기화를 사용하지 않으셨다면 아쉽게도 처음부터 다시 설정을 해주실 수밖에는 없습니다.


그러니까 제일 중요한 것은 위험해보인다고 하는 사이트는 왠만해선 피하는 것이 좋고 자동업데이트는 켜두셔야 정신건강에 이롭습니다.


P.S 이럴 줄 알았으면 미리 스크린샷좀 찍어둘 걸 그랬습니다. 크롬은 메모리는 많이 먹을지언정 샌드박스 가상화를 하기 때문에 시스템에 영향을 주지 않습니다. 따라서 IE처럼 악성코드에 의해 시스템이 바보가 되는 경우는 많지 않습니다. 하지만 만에하나 무슨일이 생길지는 모르므로 크롬이 이상하다 싶으면 이렇게 초기화 및 재설치를 하는 것이 좋다고 생각합니다.

,



http://moordev.tistory.com/131


AMD의 GPU를 사용할 때 오픈소스 드라이버에서 Overdrive 기능을 활성화 하는 방법을 올린 글입니다.


커널 4.5 이상에서 성공했고 실제로 성능향상을 어느정도 체감해서 좋다고 올린 글이었습니다.


글의 날짜를 보시면 2016년 8월로 되어있습니다.


하지만 그동안 해당 글을 보신분을 없으셨을 겁니다.


왜냐하면 멍청하게도 "공개"를 하지 않았습니다.




오늘 간만에 블로그 글 정리하면서 둘러 보고 있는데 비공개로 되어있는 글 중에서(비공개로 되어있는 글이 의외로 좀 있습니다. 확인이 덜 되었거나 더 쉬운 방법이 나타나서 이제는 쓸모없다고 판단된 글들이지요.) "이게 왜 비공개지?" 하는 글이 있더군요.


생각해보니 그 당시 저는 자주 배탈이 나곤 했는데 아마도 글을 쓰다가 화장실로 달려갔던듯 합니다. 그리곤 나중에 마저 쓰고 공개한다고 해놓고 까먹고 있다가 이제서야 발견한겁니다.


네...... 원인은 급똥이 문제였습니다. 멍청하게도 6개월간 묻어두었다가 오늘 급하게 공개를 했습니다. 당시에 커널4.8이 나왔던 시기지만 지금은 안정커널이 4.11....


뭐... 지금이라도 알았으니 됐지요. 2~3년 뒤에 알았으면 뭐가 얼마나 달라졌을지...어휴.

,



이번에는 Unity에 대해 말할까 합니다.


Unity라고 하면 우분투 사용자분들은 2017년부로 사망하신 Unity Desktop을 생각하실것 같은데 

http://moordev.tistory.com/134

"Unity 게임개발을 우분투에서"


여기에 나온 Unity3D 게임엔진 개발툴을 말하는 것입니다.


https://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/


Unity3D 엔진은 아마도 전세계에서 사랑받는 엔진이라고 볼 수 있을 것입니다. 가격도 저렴하고 사용자층도 넓어서 도움받기도 쉽기 때문입니다. 게다가 지원하는 디바이스도 많아서 Windows, Mac, Linux 같은 PC영역외에도 Android, iOS, PS4, Web, Xbox One 등 생각할 수있는 대부분 기기는 다 지원을 합니다.


그리고 개발툴이라고 할 수 있는 Unity Editor의 경우 Windows와 Mac을 정식지원하고 있고 Linux는 테스트버전으로 배포중입니다.


내가 굳이 두가지 버전을 다 다운로드 받은이유는?? 읽어보시면 압니다.



네... 테스트버전입니다. 테스트버전이라서 문제가 이래저래 많습니다.


2017년 6월 6일 Unity Editor 2017.1 b8버전이 배포되었습니다.

그런데 이 물건... 중요한 버그가 있습니다.


라이센스 확인이 안 됩니다. 개인용이든 기업용이든 Unity홈페이지에서 회원 가입후 인증을 해야하는데 인증이 진행이 안 되는 중요한 버그가 있습니다.


포럼에 문의하니 이전 버전인 5.6.1버전을 설치한 후 라이센스를 인증하고 업데이트를 하라고 합니다.


그런데 말입니다...



패키지 용량이 3GiB나 된단 말입니다!!!! 게다가 다운로드 속도도 너무 느려서 1시간이 걸리는 경우도 많습니다!!!!!!!


그러니까 5.6.1버전도 다운로드 받고 2017.1b8버전도 다운로드 받으란 의미입니다.


그리고 이걸 우분투 소프트웨어 센터나 Gdebi로 설치하면....


한참 동안 말이 없습니다. 패키지 크기가 어마어마하기 때문에 검사가 오래걸리거든요. 그냥 터미널에서 dpkg를 써도 느립니다.


어쨌건 5.6.1버전을 설치하고 라이센스를 인증한 다음 2017.b8버전을 설치해서 업데이트를 했습니다. 그랬더니...


한가지 더 버그가 더 나오는데 프로젝트를 만들면서 에셋을 추가하면 진행이 안 됩니다. 아니 기본 에셋을 제외한 추가 에셋을 추가하면 에디터가 시스템을 사살(!)합니다.


보통 테스트버전이면 프로그램만 죽고 마는게 보통인데 이 쪽은 그냥 커널패닉을 일으키네요. 중대한 버그를 뛰어 넘었습니다.


이건 그냥 지뢰에요 지뢰.


여기서 프로젝트를 여는 순간 넌 이미 죽어있다. 프로젝트 버전에 2017.1이라고 써있을 것이다...

그러니까 이 버그가 해결되기 전까진 5.6.1버전을 쓰거나 이후에 업데이트된 버전을 쓰시는 것을 추천드립니다.


저도 Xorg가 죽어버릴 줄은 몰랐습니다. 아직도 테스트버전만 나오는 이유를 알 것도 같습니다.


정식버전은 언제 나오는거야

,
 

http://moordev.tistory.com/175


이 포스팅 바로전에 슬픈 굴림이야기라는 포스팅을 잠시 했었습니다. 내용은 대충 Wine으로 실행 되는 프로그램중에 굴림을 지정해서 사용하는 경우가 있으며 해당 프로그램을 위해 Windows에서 Gulim.ttc 파일을 추출한 후 설치해야 한다라는 것이 요지였습니다. 물론 Wine프로그램이 아니더라도 문서에서 굴림을 쓰는 경우에도 비슷한 문제가 생기게 됩니다. 우분투는 그래도 나눔고딕으로 대신해주는 기능이 있지만 다른 리눅스는 해당 기능이 없는 경우도 있습니다.


어쨌건 굴림이 필요하다면 굴림체를 설치하면 그만인데 문제는 EULA입니다. Windows라이센스 없이 해당 폰트를 사용한다는 것은 법적으로 문제가 될 수 있다는 것입니다.


물론 Microsoft가 미쳤다고 개인사용자들의 라이센스를 일일이 확인 할 것 같지는 않지만 이런 라이센스가 박힌 물건에대해 꺼림칙하게 생각하는 사람도 있는 것이 사실입니다.


그렇다면 어떻게 해야할까요?

정답은 http://egloos.zum.com/einmong/v/5885619 여기에서 찾을 수 있었습니다.


gulim.ttc파일을 분해하고 나눔고딕과 나눔고딕코딩, 나눔바른고딕, D2Coding 등 무료로 사용이 가능한 폰트로 각각 대체해버리는 것입니다.


이름만 굴림이고 실제로는 나눔고딕으로 대체해버린다면 문제될 것은 전혀 없는 것이지요. Microsoft가 저작권을 갖고 있는 것은 굴림폰트의 형태이지 해당 파일 그 자체인 것은 아닙니다. 그러니까 나눔고딕을 그냥 굴림으로 지정해버리고 굴림을 대체해버리는 것입니다.


나눔고딕을 대체한 굴림이 필요하시다면 이 글 아래에 올려놓았으니 받아서 사용하시면 됩니다.


위의 이글루스의 글을 보면 unitettc라는 프로그램과 ttfname3이란 프로그램을 사용합니다. 두 프로그램 모두 일본에서 제작된 프로그램인데 unitettc는 리눅스도 지원합니다. ttfname3은 Windows만 지원하지만 wine으로 아무 문제없이 구동이 가능했습니다.


unitettc는 http://yozvox.web.fc2.com/unitettc.zip

이곳에서 받을 수 있고 ttfname3은 위의 블로그에서 다운로드 가능합니다.


일단 gulim.ttc 파일을 unitettc로 분해해서 4개의 ttf로 만들고(굴림, 굴림체, 돋움, 돋움체) ttf에서 ttfname3으로 폰트정보를 빼낸다음 대체할 폰트에 각 폰트정보를 대신 입히고 다시 ttc로 묶는 것을 마무리를 짓는 것입니다. 자세한 내용은 위 블로그에서 다 찾을 수 있지만 일부 명령이 다르겠지요.


준비물은 UniteTTC, TTFname3.exe (위 이글루스에서 구할 수 있음)

gulim.ttc (Windows에서 추출)

NanumGothic.TTF, NanumGothic_Coding.TTF, NanumBarunGothic.TTF, D2Coding.TTF (보통 우분투에 설치되어있음)


이들이 모두 한 폴더에 있다고 가정하겠습니다.


뒤의 4개의 폰트는 /usr/share/fonts를 뒤지면 구할 수 있습니다. D2Coding의 경우는 https://github.com/naver/d2codingfont/releases

여기서 집어오시거나 fonts-naver-d2coding패키지를 설치하시면 됩니다. (17년 현재 아직 저장소에 등록이 되지는 않았네요)


UniteTTC압축을 풀면 파일이 이것저것 많이 나오는데 우리가 쓸 것은 unitettc64 혹은 unitettc32 만 있으면 됩니다. 자신의 PC환경에 맞는 버전을 쓰면 됩니다.


sudo chmod +x unitettc64

./unitettc64 ./gulim.ttc


이렇게 하시면 gulim001.ttf ~ gulim004.ttf 파일이 나옵니다. 각가 굴림, 굴림체, 돋움, 돋움체입니다.


그다음 폰트 정보를 빼냅니다. xml형태로 나오더군요.


wine ttfname3.exe gulim001.ttf -o gulim001.xml

wine ttfname3.exe gulim002.ttf -o gulim002.xml

wine ttfname3.exe gulim003.ttf -o gulim003.xml

wine ttfname3.exe gulim004.ttf -o gulim004.xml


이렇게 빼낸 폰트정보를 이제 대체 폰트에 덮어 씌웁니다.

기존의 gulim001.ttf~ gulim004.ttf 파일은 삭제해주세요. gulim.ttc 파일도 삭제해주셔도 됩니다.


wine ttfname3.exe NanumGothic.TTF gulim001.xml -o gulim001.ttf

wine ttfname3.exe NanumGothic_Coding.TTF gulim002.xml -o gulim002.ttf

wine ttfname3.exe NanumBarunGothic.TTF gulim003.xml -o gulim003.ttf

wine ttfname3.exe D2Coding.TTF gulim004.xml -o gulim004.ttf


이렇게 함으로서 이름만 굴림이고 돋움인 나눔고딕과 D2코딩폰트가 만들어지게 됩니다. 이들을 그대로 설치해도 굴림과 돋움으로 인식하지만 Wine으로 굴리는 프로그램중에서 gulim.ttc가 아니면 안 되는 녀석도 있더군요. 그러니까 gulim.ttc로 다시 묶어야 합니다.


./unitettc64 gulim.ttc gulim001.ttf gulim002.ttf gulim003.ttf gulim004.ttf


이렇게 하시면 이제 Gulim.TTC파일이 만들어지게 됩니다. 이걸 그냥 설치하시면 됩니다. 글꼴보기에서 글꼴 설치 버튼을 누르면 됩니다. 기존에 gulim.ttc가 설치되어 있었다면 먼저 삭제를 해주시는 것이 좋습니다. 보통 ~/.fonts에 설치되어있을 것입니다.


그리고 fc-cache -f -v 명령으로 폰트 캐시를 다시 만들어 주세요. 그 다음 로그아웃 했다가 다시 로그인 해주시면 기존으로 굴림으로 나오던 모든 부분이 나눔고딕으로 바뀌어져 있을 것입니다.


이게 바로 그 결과물입니다.


Gulim_NANUM.ttc.tar.7z


안에 있는 압축을 풀면 gulim.ttc라는 파일이 나오는데 이름만 굴림이고 내용물은 나눔고딕들 입니다. 이것은 법적으로 전혀 문제가 되지 않습니다. 한양정보통신이라고 써있는 것이 조금 거슬리기는 하는데 나눔고딕을 그대로 넣었으므로 이름만 굴림인 셈입니다.




Lubuntu님이 나에게 보내주셨던 스크린샷이다. 원인을 알아냈을때의 그 허무함이란.

굴림체가 없는 경우 스타크래프트 배틀넷에 들어가면 이렇게 한글이 깨지게 됩니다. 왜냐하면 여기서는 굴림을 지정했기 때문입니다. 하지만 굴림을 설치하면 아래와 같이 한글이 나오게 됩니다.


이것은 마이크로소프트의 굴림을 이용한 스크린샷입니다. 기존하고 다른 것은 보이지 않습니다. 왜냐하면 Windows에서 쓰던 그 폰트니까요.


그리고 이 것이 나눔고딕으로 바뀌치기한 굴림을 설치한 후 입니다. 큰 차이는 보이지 않지만 확대하면 미묘하게 다르답니다. 물론 나눔글꼴이 영문 글꼴이 별로라곤 하는데 한국어 사용자에게 영문은 보조일 뿐입니다.


어쨌건 제 시스템에서 이제 굴림을 쫓아냈습니다. 이제 굴림으로 들어오는 모든 것은 나눔고딕으로 바뀌어져서 볼 수 있어요!!!! 참고로 이건 Windows에서도 쓸 수 있다고 하네요!

,


굴림은 한글윈도가 발매되며 한국마이크로소프트가 한양폰트에 의뢰하여 만든 글꼴입니다. 즉 대한민국에 윈도95란 것이 발매되고 시장을 점유함과 동시에 대한민국에서 제일 많이 쓰인 글꼴이 됩니다. 일단 기본 한국어 인터페이스가 이 글꼴을 기준으로 만들어졌고 Windows의 기본 글꼴이기 때문에 아무런 저작권 문제없이 각종 문서에 사용될 수 있었습니다. (저작권이 Free인 것은 아니고 Windows의 라이센스를 가지고 있다면 누구나 사용이 가능했다는 점입니다.)


윈도95가 발매되던 당시에는 640x480가 주력 해상도 취급을 받던 시절입니다. 이 당시에는 VGA해상도라고 따로 이름을 붙였고 1024x768은 XGA라 해서 모니터에서나 볼 수 있는 해상도 취급이었습니다. 당시에 1024x768해상도는 글씨가 작다고 불평불만이 많았다고 합니다. 굴림글꼴은 이때의 해상도에 맞추어서 만들어진 글꼴로 비트맵방식을 기본으로 하고 있습니다. 당시에 지금과 같은 벡터글리프 방식을 사용했다면 컴퓨터 성능이 남아나지 않았을겁니다. 실제로 한글 윈도95와 영문 윈도95는 성능차이가 눈에 보였었고 한글 윈도95는 요구 메모리가 영문판의 2배를 요구했습니다. 원인은 어마어마한 크기의 한글 글꼴 때문이었지요.


상황이 이 모양이었기 때문에 고해상도의 비트맵을 사용하거나 벡터글리프는 사용할 수 없었고 Bold와 Italic체를 따로 만들어 넣을 수 없어서 Fakebold라 불리는 글꼴 변형작업을 해야 했습니다. 그러니까 굴림글꼴은 당시 어쩔 수 없었던 성능상 문제와의 타협이었던 것이지요.


시대는 변하고 변해 2000년대 초반 WindowsXP가 발매되고 유니코드가 사용되기 시작합니다. 그 전에는 아스키코드를 기반으로 남는 공간에다 글꼴을 할당하는 방식을 사용했기에 국가설정마다 글꼴을 읽는 방법이 달랐습니다. 지금도 많이 보이는 괡괩체가 그것입니다. 하지만 유니코드는 국가설정 관계없이 전세계의 모든 글꼴을 표현할 수 있었고 그에따라 모든 언어를 표현할 수 있게끔 해당 글꼴들을 모두 기본으로 넣어야 했습니다. 이 당시부터는 한글 사용을 위해 굳이 한글판 윈도를 설치할 필요는 없게 된 것입니다.


그래서 영문판을 쓰던 사람들도 한글이 나오게 되면 자연스럽게 굴림으로 표현이 되어 한글이 깨지지 않게 되었습니다. 문제는...


굴림이 영문폰트에 비해 너무 못생겼다는 것입니다. 시대가 HD시대가 되면서 도트가 눈에 띄게 되어버렸는데 고해상도에서도 예쁘게 표현되는 영문글꼴에 갑자기 투박한 한글폰트가 나오면 비교가 될 수밖에 없지요. 한글판 사용자들은 영문이나 한글이나 굴림을 표현되어 이를 못 느꼈지만 영문판 사용자들은 비교가 너무 된다고 아우성이었습니다.


굴림글꼴 자체가 저해상도에 맞춰져서 만들어진 탓에 지나치게 가늘게 만들어졌고 AA따위는 당연히 없었으며 AA도 적용이 제대로 안 되니 힌팅? 그런것 따윈 없었던 것이지요. 즉, 글꼴이 너무 많은 탓에 고해상도 고려를 하지 못한 것입니다.


이 상황을 보던 한국 마이크로소프트에서는 WindowsXP후속작에 새로운 한글글꼴을 넣기로 하고 맑은 고딕이라는 새로운 글꼴을 산돌커뮤니케이션에 의뢰합니다. 그리고 기본 인터페이스에 이를 이용하기로 했습니다.


하지만...WindowsXP의 후속작인 WindowsVista는 말그대로 망해버렸고 WindowsXP는 그대로 장수만세를 외치며 생명을 연장하게 됩니다. 물론 한국마이크로소프트는 WindowsXP용 맑은 고딕을 함께 배포했지만 귀찮은 것을 싫어하던 이용자들은 그런것이 있는줄도 몰랐지요. 게다가 맑은 고딕을 설치한다고 한들 기본 인터페이스가 굴림이니 별다른 차이를 못 느꼈고요.


이렇게 굴림이 한글글꼴에 여기저기 사용되면서 그 폐해가 드러나게 됩니다. GUI프로그램을 만드는 사람은 특정 인터페이스를 제외하곤 GUI의 글꼴을 따로 지정하지 않고 시스템의 글꼴을 사용하도록 하는 것이 좋습니다. 2000년대 유니코드시대가 오면서 전세계의 모든 글꼴을 필요로 하게 되었고 WindowsXP이후에는 시스템폰트만으로도 전세계 글꼴을 표현하도록 할 수 있기 때문이지요. 하지만 구닥다리 방식으로 만들어진 프로그램은 당당하게 "굴림"글꼴을 사용하게 하드코딩을 했고 굴림글꼴이 없으면 폰트가 깨지게되는 그런 UI병신의 프로그램을 만들게 됩니다. (현재진행형으로 일본이 아직도 이따위 프로그램들이 많습니다. 만약 일본산 프로그램중에 MSMincho가 없다고 오류를 뿜는다면 100% 이따위인 것입니다.)


그러니까 한국어 사용자라면 당연히 "굴림"글꼴이 있을 것이라고 판단하고 그렇게 만든 것입니다. 만약 시스템폰트를 쓰게 했다면 WindowsVista이후로는 맑은 고딕으로 나오게 되었을 것이고 깔끔한 인터페이스가 가능했을 것입니다. 하지만 WindowsXP가 너무 오래사용되면서 "굴림"을 지정하고 만든 프로그램이 너무 많아졌고 지금도 골칫거리입니다.


우분투에서 Wine으로 프로그램을 실행했을 때 우분투의 인터페이스 글꼴과 동일한 글꼴로 표현된다면 마이크로소프트의 가이드라인을 잘 준수한 프로그램이라고 할 수 있습니다. 즉, 시스템폰트를 사용하기 때문에 우분투의 시스템 폰트를 받아와서 사용할 수 있는 것입니다. 하지만 특정폰트를 지정한다면? 그 폰트가 없는 곳에서는 ☐ ☐ ☐ 로 표현되어 글씨가 보이지 않게 됩니다. 이 때 해결방법은? 해당폰트를 설치하는 수밖에는 없습니다. 아니면 그 다른 폰트를 그 폰트라고 대체하거나요.


하지만 아직도 굴림을 필요로 하는 프로그램은 많이 있고 그냥 한국어라고 "굴림"을 지정해버리는 경우가 아직도 있습니다. 그냥 시스템폰트를 사용하는 것으로 하면 될 것을 왜 이렇게 지정하는 것일까요? 그나마도 맑은 고딕도 아닌 구닥다리 굴림을 말이지요. 사실 저는 굴림이 굉장히 싫습니다. 서울남산체나 나눔바른고딕같은 꽤 예쁜 글꼴도 있고 NotoSans같은 가늘면서도 고해상도에서도 읽기 좋은글꼴도 있습니다. 이런 프로그램들을 위해 굳이 Gulim.ttc파일을 설치해야 한다는 사실이 슬프군요.


P.S https://gigglehd.com/zbxe/13364057

여기에 보시면 그냥 gulim.ttc 파일을 분해해서 나눔고딕과 다른 폰트로 대체한 후 다시 짜맞춰서 넣음으로서 굴림을 대체해버립니다. 사실 우분투에서 굴림사용은 EULA가 거슬렸는데 이름만 굴림으로 해버리고 사용이 자유로운 글꼴로 대체한다면 해당 문제가 사라질 것을 보입니다.

굴림 - 나눔고딕

굴림체 - 나눔고딕코딩

돋움 - 나눔바른고딕

돋움체 - D2 Coding


이렇게 하면 나눔글꼴로 완전 대체가 가능 할 것 같습니다. 바탕체나 궁서체는 따로 지정하는 경우가 적으므로 신경을 크게 안 써도 될 것 같고요. 빠른 시일내에 이름만 굴림이고 내용물은 나눔글꼴인 gulim.ttc파일을 만들어봐야겠습니다.


저부터 제 시스템에서 굴림을 쫓아내보도록 하겠습니다.

,

나만의 우분투를 만드는 Customizer. 이 프로그램으로 작업을 한다는 것은 꽤 삽질을 요합니다. 하지만 Customizer로 하는 작업이 어떤 커스터마이징을 하더라도 그 순서는 거기서 거기입니다.


1. Customizer로 ISO파일을 열고

2. 패키지를 받아오는 서버를 바꾼다음

3. Customizer의 터미널을 열고 명령어를 이용해서 이런저런 설정을 합니다.

4. 다시 ISO로 묶은 다음 가상머신에서 테스트.

5. 마음에 안 들면 다시 3번으로


여기서 다른 것은 중간에 터미널을 이용해서 어떤 패키지를 설치하고 어떤 패키지를 뺄 것인지 정도입니다. 나머지는 다 똑같지요.


제가 만들었던 것을 몇가지 나열하자면


- 제 누님을 위해 만든 한글2008+리브레오피스+Chromium Browser+한글입력기만을 넣은 LXDE기반 배포판(총 용량 240MB)


- 우분투 기린 한국어판


- 졸업작품 구동용 Openbox기반 USB전용 라이브버전


- 졸업논문용 실험을 위해 만든 시리얼통신+MATLAB구동 전용 라이브 USB버전


등이 있습니다.


이중에서 제가 제일 걸작으로 보는 것은 제일 첫번째로 있는 한글2008을 넣어서 만든 버전입니다. 누님이 쓰는 고물 노트북에서도 원활하게 구동될 수 있도록 심혈을 기울여(?)만든 커스텀버전입니다. 당연히 따로 배포할 생각도 없고 배포 할 수도 없습니다.(한글2008 때문에) 하지만 이것도 결국 apt-get이나 dpkg로 패키지를 설치하고 지운 것은 동일합니다. 결국 딱히 무언가 특별한 방법을 쓴 것은 아니란 뜻이지요.


SUSE Studio의 모습 자신이 선택한 프로그램과 저장소 위치등을 지정할 수 있게 만들어져 있다. 출처 : https://en.wikipedia.org/wiki/SUSE_Studio#/media/File:SUSE_Studio.png



Debian, Redhat, Slackware와 함께 리눅스 배보판계의 살아있는 조상님인 SUSE에서는 SUSE Studio란 서비스를 하고 있습니다.

https://susestudio.com/


이것이 어떤 서비스냐면 SUSE리눅스를 기반으로 자신이 원하는 소프트웨어를 웹상에서 추가하고 빼는 것으로 자신만의 SUSE기반 배포판을 만드는 서비스입니다. 즉, 웹으로 하는 커스터마이징이라고 볼 수 있습니다.


이는 굉장히 혁신적이고 재미있는 서비스라고 할 수 있습니다. 사람에 따라서는 무조건 설치하는 프로그램도 있지만 필요없는 프로그램도 많습니다. 특히 우분투는 미리 설치해주는 프로그램이 많기 때문에 취향에 맞춰 이후 손을 대는 사람도 많습니다.


하지만 이런 서비스를 이용한다면? 배포판을 다운로드 받기전에 해당 프로그램을 미리 추가할 수도 있고 필요없는 프로그램을 뺄 수도 있는 것입니다. 단점은 저장소에 없는 프로그램은 미리 넣을 수가 없다는 것입니다. 하지만 PPA가 활발하게 만들어져 있는 우분투 특성상 저장소 걱정은 거의 없다고 볼 수 있겠지요.


실제로 저는 우분투 설치후 바로 하는 작업이 한글설정+한글입력기 설치입니다. 기본으로 주는 ibus가 저는 마음에 들지 않거든요. fcitx나 Nimf, Uim같이 훌륭한 입력기가 있기 때문에 ibus를 지우고 바로 해당 입력기를 설치합니다. 그런데 SUSE Studio같은 서비스가 있다면 배포판을 다운로드 받기전에 미리 웹상에서 작업을 할 수 있겠지요. 게다가 2017년 현재에는 설치에 필요한 USB메모리의 용량이 넉넉하기 때문에 GIMP같이 거대한 프로그램도 미리 넣어서 설치와 동시에 사용할 수도 있을 것이고요.


이외에도 Lubuntu나 Xubuntu같은 배포판말고도 Openbox+tint2+conky등으로 가볍게 배포판을 꾸리고 싶으신 분들도 있을 겁니다. 그런 분들도 웹에서 패키지를 설정하는 것으로 만들 수 있을 것입니다.


하지만 아직 우분투는 그런 서비스를 하고 있지 않습니다. 우분투는 이런 방법대신 여러개의 배포판을 만드는 것으로 대신했지요. Lubuntu, Xubuntu, Kubuntu 등.


우분투방법도 선택권을 넓히는 것으로 나쁜 것은 아니었지만 약간 아쉽다는 생각이 듭니다. ubuntu studio란 이름을 쓴 무언가가 했지만 그것은 이런 것이 아니었습니다.


그런데 결국 apt-get 이라는 것은 서버상에서 Customizer를 이용해서 ISO를 만들고 해당 ISO를 최종 사용자에게 전송하는 것은 그렇게 어렵지는 않겠다는 생각도 듭니다. python-CGI나 서버어플리케이션에서 자주 사용하는 방법이니까요. 하지만 문제는누가 이런 귀찮은 서비스를 하겠냐는 것과 캐노니컬조차 관심이 없다는 것이 가장 큰 문제가 아닐까 생각합니다.


이런 것, 저만 희망하는 걸까요?

,



Docker란 프로그램을 들어보신적이 있으실겁니다. 이놈의 정제가 뭐냐하면 특정 리눅스 컨테이너를 만들고 필요에 따라서 가상화하여 올렸다 내렸다 하는 총체적인 솔루션입니다.


기본적으로 lxc를 이용하고 있고 여기에 관리용 hub를 덧붙여서 이용하고 있습니다. VirtualBox나 VMware의 저수준 가상화가 아닌 일종의 Sandbox가상화입니다.


한번 컨테이너를 만들어 놓으면 해당 컨테이너를 쓰다가 그냥 컨테이너를 내리는 것으로 초기화를 한번에 할 수 있어서 편합니다. 그리고 Sandbox가상화이기 때문에 성능상 손해가 없다고 봐야 합니다.


그런데 이런건 보통 서버에서 필요한 것인데 데스크탑인 우분투에서 대체 어떤 용도로 이 녀석이 필요한 것일까요?


여러가지가 있지만 대표적인 몇가지만 알려드리겠습니다.


우분투에서 소스 컴파일을 통해 설치를 하려고 하면 이것저것 패키지를 많이 설치해야하고 설치후에도 이것 저것 쓰레기가 많이 남습니다. 그리고 컴파일한 패키지를 배포하려고 해도 우분투의 버전이 좀 많습니까? 각각의 배포판에 맞게 패키징을 해야하는데 그럼 각각의 버전을 또 설치해야합니다. 이걸 하나하나 한다고 생각해보세요. 미쳐 돌아갈 지경입니다.


또 다른 것으로는 바이너리 형태로 배포되는 프로그램 중에서 특정 배포판만을 지원하는 경우가 있습니다. 지금은 억지로나마 설치를 하지만 어쨌건 삽질하면서 설치하는 한글2008이나 Redhat 계열만을 지원하는 Abacus, 혹은 우분투와 페도라만을 지원하는 구글 크롬등이 있습니다. 이런 경우에는 해당 배포판을 설치해야하지만 Docker를 이용해서 해당 프로그램을 설치한다면 아무런 문제없이 설치를 할 수 있게 됩니다.


하지만 이런 Docker사용시 한가지 문제가 있는데 GUI 프로그램을 쓰려면 Xorg가 호스트에서 실행되고 있어야 한다는 것입니다. 당연하다면 당연한 이야기입니다.


하지만 컨테이너에서는 Xorg가 없어도 됩니다. 호스트의 Xorg가 모든 것을 대신해 주거든요. 그 말은 호스트의 자원을 이용할 수 있다는 의미입니다.


docker를 설치하고 설정하고 컨테이너를 빌드하는 것은 다른 곳에 더 좋은 내용이 많기 때문에 이 부분은 넘어가고 저는 컨테이너에 설치된 GUI프로그램을 실행하는 방법에 대해 알려드리겠습니다.


docker의 컨테이너를 실행할 때 대부분 여러분들은 이 명령으로 시작할 겁니다.


sudo docker run ~~ /bin/bash


그런데 GUI를 하시려면 여기에 몇가지가 더 들어가야 합니다.


sudo docker run --rm -it -v /run/user/1000:/run/user/1000 -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix:ro --privileged --ipc=host --shm-size=256m --net=host -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 /bin/bash


이렇게 하시면 pid 1000으로 Docker가 실행되면서 X가 함께 실행이 되고 256m의 공유메모리가 함께 만들어지며 쉘로 bash가 실행되게 됩니다.


그럼 바로 GUI 프로그램의 명령을 내려볼까요? firefox같은 것이 좋겠네요.


그럼 데스크탑을 못 찾는다면서 에러가 날 겁니다.


호스트에서도 한가지 더 설정을 해야 하거든요. 호스트 컴퓨터에서 터미널을 열고 다음 명령을 내리도록 합시다.


xhost +local:docker


이렇게 하면 docker로 실행되는 프로그램이 호스트의 X를 통해서 실행이 되게 됩니다. 이제 한번 다시 컨테이너에서 명령을 내려보세요. 컨테이너의 설정에 맞춰서 프로그램이 실행될겁니다. 자그마치 호스트 프로그램과 함께 말이지요!


복잡하게 움직이기는 했지만 생각보단 쉽지 않나요? 이렇게 사용하시면 Docker의 프로그램에서 어떤짓을 하더라도 깔끔하게 다시 돌아올 수 있답니다. 참 쉽죠?


P.S 우분투에서 Docker 설치는 굉장히 쉽습니다.

sudo apt-get update
sudo apt-get install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker 

Windows에서 설치하려들면 미쳐돌아가는 반면 우분투는 리눅스라 Docker가 굉장히 쉽지요. 책에서보면 몇 페이지에 걸쳐서 설명하던데 Docker는 역시 리눅스에서 돌리는 것이 가장 좋습니다.


P.S-2 Docker가 굉장히 유용한 배포판으로 Arch와 FreeBSD가 있습니다. Arch는 롤링릴리즈 특성상 구버전 설치가 힘든데 구버전을 길게 지원하는 Debian이나 Ubuntu LTS를 Docker에 올려놓고 해당 배포판용 프로그램을 사용하는 경우가 많다고 합니다. FreeBSD는 Linux가 아닌 BSD이므로 Linux전용 프로그램을 요구할 때 사용한다고 합니다.


P.S-3 호스트의 X를 사용하는 것으로 굉장한 강점이 있는데 컨테이너에서 그래픽가속도 됩니다. 보통 가상화는 오버헤드가 많은데 이쪽은 오버헤드 자체가 없습니다.

,