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"
}

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


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

,