예전에 이런 글을 올린적이 있었지요. UCK vs U-customzier http://moordev.tistory.com/42


UCK라는 도구와 U-Customizer란 도구였습니다.


그중 UCK는 우분투 공식 커스터마이징 도구였고 사용은 편하지만 조금 자세한 커스터마이징은 힘들었다고 했었지요.


U-Customizer란 도구는 chroot를 사용해서 굉장히 다양한 커스터마이징이 가능한 도구지만 그만큼 초보자에겐 고역인 물건이라고 소개를 해었습니다. 특히 GUI로 Gambas를 이용했는데 이놈의 설치가 문제가 많아서 특히나 고역이었습니다.


하지만 시간은 흐르고 흘러서 새로운 소스로 U-Customizer(이후 Customizer로 통일하겠습니다.)가 새로 나오게 되었습니다.


Github주소도 바뀌었습니다. 이전의 gambas기반의 소스는 따로 보관하고 PyQT를 기반으로 새로운 GUI를 만들었습니다. 덕분에 반응 속도가 좋아졌습니다.


https://github.com/kamilion/customizer


다만 아쉬운 것이 있다면 PPA를 운영하거나 바이너리를 제공했으면 하는데 예나 지금이나 소스만 내주더군요. 게다가 github의 마스터브랜치의 소스는 말이좋아 마스터 브랜치지 지뢰밭입니다. 버그가 여기저기 산개해 있습니다. 차라리 최신버전의 우분투를 커스터마이징 하지 않는다면 Release페이지(https://github.com/kamilion/customizer/releases)의 소스를 사용하는 것을 추천합니다.


여기서 zip으로 다운로드 받던지 tar.gz로 다운받던지 마음대로 하자. 어쨌건 둘 다 압축 푸는 것은 문제 없다.



만약 자신만의 우분투를 만들기 위해 Customzier에 입문하시는 분들이라면 소스코드를 보자마자 난감해 하실 겁니다. 그도 그럴것이 요구하는 패키지에 대해 설명을 안 해 놓았더군요.


sudo apt-get install git build-essential fakeroot make binutils g++ \
python python-dev python-qt4 pyqt4-dev-tools squashfs-tools \
xorriso x11-xserver-utils xserver-xephyr qemu-kvm dpkg-dev \
debhelper qt4-dev-tools qt4-linguist-tools

이겁니다. 사실 Customizer는 python3와 QT5를 이용해서 새로 만들고 있기 때문에 위의 패키지 중에서 pyqt4와 python2.7을 대신하려고 하고 있습니다. 하지만 2017년 7월 기준으로 마스터 브랜치가 아직 문제가 많습니다. Python3와 QT5를 이용해서 컴파일 했는데 (소스 루트에 있는 Makefile을 수정하면 됩니다.) ISO를 도로 묶는 것이 안 되거나 chroot가 안 되면서 파일 시스템을 꼬아버리는 문제가 있습니다. 그런데 그게 같은 상황에서 일어나면 이해하겠는데 가끔 그런 일이 일어나니 그게 더 머리 아플 지경입니다. 버그 리포팅을 하고 싶어도 언제 그런 일이 벌어지는지 설명을 할 수가 없어요. 버그 상황 재현이 안 된다고 할까요.


그래서 2017년 7월 현재 아직은 Python2.7과 QT4를 기반으로 한 버전을 사용하겠습니다.


이제 설치를 어떻게 할까요? Installer.py를 실행하면 될까요? 이것을 써도 되는데 우리는 바로 DEB을 만들어서 설치를 하도록 합시다.


터미널 작업 당연히 들어갑니다. Customzer로 chroot 작업하는 것도 순전 터미널 삽질이니 터미널에는 친해져야 합니다. 더군다나 소스 컴파일이라 터미널이 어쩔 수가 없더군요. (훗날 누군가가 제대로 된 GUI 도구를 만들어 줬으면 합니다. 그런데 이놈의 make 옵션 들 때문에...)


cd 소스압축 푼 곳

make deb


끝입니다.


이러면 소스코드가 있던 곳 상위 폴더에 (그러니까 소스 코드를 ~/SRC/Customizer에 풀었다면 ~/SRC 여기)에 DEB 파일이 하나 생성 됩니다. 우리는 우분투를 쓰고 있고 DEB파일이 있다?

그냥 설치하면 그만이겠지요. Gdebi나 소프트웨어 센터나 dpkg나 아무거나 쓰고 싶은거 쓰세요.


그러면 메뉴에 Customizer라고 생기는데...


이거 문제 많습니다. 사실 chroot를 사용해야 하기 때문에 관리자 권한이 필요하고 GUI에는 진행 상황이 제대로 뜨지 않기 때문에 굉장히 답답합니다. 그러니까 저걸 아직 선택하지는 말아주세요.


그냥 터미널을 열고 다음과 같이 입력하시는 것을 추천합니다.


sudo customizer-gui


이렇게 하면 터미널에 진행상황이 전부 다 뜨고 답답함이 많이 줄어듭니다. 단점이라면 이후 커스터마이징 중에 사용하는 chroot기반 터미널하고 헷갈린다는 것 정도?


하지만 chroot기반은 사용자 이름이 root 일테니 구분하면 편합니다.


이후 작업은 커스터마이징을 할 배포판의 ISO를 선택하고(우분투 기반이 아닌 다른 배포판도 모두 가능하다고 합니다. 어차피 chroot를 이용해서 패키지를 설치하거나 삭제하는 것으로 작업하는 것이라...)


터미널 버튼을 통해서 chroot로 들어간 뒤에 이런저런 작업을(/etc/apt/source.list 파일의 서버를 한국 서버로 바꾼다거나 이런저런 패키지를 추가하거나 미리 업데이트를 해버리거나 한국어 입력기를 설치하거나) 진행하고 ISO가 풀린 곳에 (주로 /home/Filesystem)관리자 권한으로 파일 매니저로 열어서 이런 저런 파일을 넣어주거나 삭제하고 Filesystem/etc/skel 내부에 이런저런 작업을해서 유저모드 설정을 마무리를 지으면 커스터 마이징이 끝나게 됩니다.

그리고 ISO다시 빌드 버튼을 누르면 세팅이 완료된 ISO가 만들어지게 되는 것이지요.


자세한 것은 다음에 알려드리도록 하고 이번에는 Customizer를 설치하는 것까지만 하기로 했으니까요. 이상 Customizer 설치법에 대해 알려드렸습니다.


다음에는 Customizer로 특정 배포판을 미리 한국어 설정으로 해보도록 하겠습니다. 우분투는 UCK로 하는 것이 너무 쉽기 때문에 UCK가 먹히지 않는 LinuxMint나 ElementaryOS를 가지고 해보겠습니다.


그럼 다음에는 Customizer로 한국어 설정을 미리 완료한 배포판을 만들어보도록 하겠습니다.

,

나만의 우분투를 만드는 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나 서버어플리케이션에서 자주 사용하는 방법이니까요. 하지만 문제는누가 이런 귀찮은 서비스를 하겠냐는 것과 캐노니컬조차 관심이 없다는 것이 가장 큰 문제가 아닐까 생각합니다.


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

,



Ubuntu Customization

Kit

 VS

 

Customizer


가끔 여러분들은 나만의 OS를 만들고 싶다는 생각이 들었던 적이 있으셨나요? 저는 졸업작품을 만들 때 제 작품 구동용 전용 OS를 우분투를 이용해서 만든 적이 있습니다. 거의 임베디드화 했다고 생각하시면 되는데요. 사실 PC기반이었기에 그냥 기존의 우분투를 고쳐서 쓰는 수준에 불과한 물건이었습니다. 하지만, 아무도 그것이 우분투였는지 모르더군요. 어쨌건 저는 저만의 OS를 하나 만든 셈이었고, 이리저리 고쳐가며 만든 것이 상당히 재미있었습니다.


우분투를 이용하여 할 수 있는 많은 것 중에서 나만의 OS만들기는 상당히 짜릿한 느낌이었습니다. 제가 사용한 방법은 2가지가 있었는데, 이 두 가지를 비교하며 이야기 해보도록 하겠습니다. (사실 한 가지 더 있었는데, 프로젝트가 문을 닫아버렸습니다. Remastersys라고 상당히 특이한 물건이었는데 아쉽더군요.)


1. Ubuntu Customization Kit


 Ubuntu Customization Kit (이하 UCK)는 공식 우분투 커스터마이징 도구입니다. 우분투에서 공식적으로 지원하는 물건이기 때문에 간단한 언어설정+추가 패키지를 하실 생각이라면 이 도구 만큼 좋은 것은 없습니다. 또한 대화상자 형태로 동작하기 때문에 차근차근 묻는대로만 하면 정말 쉽습니다. 


사실 이 도구가 나오게 된 계기는 기존 우분투 배포버전은 무조건 영문 라이브 환경으로 들어가다보니 다른 언어권 사람들이 자신의 언어를 기본으로 하는 배포판을 만들어 내기 시작했습니다.(특히 일본이 가장 열성이었다고 하지요. 우리나라에서도 부러워 할 정도로 거의 완벽한 일본어 로컬라이징을 보여줬다고 합니다. 8.04시절이야기 입니다.) 그런데 어차피 영문배포판에 해당 언어를 기본으로 넣어주는 것에 불과한데도 삽질을 하는 것이 안 쓰러웠던 것인지 이러한 물건이 탄생하게 됩니다. 이것을 이용해서 데스크탑 환경도 바꾸고, 기본 언어도 바꾸고 할 수 있는 것이지요.


그런데 이 물건은 한 가지 문제를 가지고 있었습니다. 바로 우분투에서 배포한 iso를 기본 바탕으로 사용해야만 했다는 것입니다. 사실 우분투 데스크탑 환경에 언어설정만 하고 몇가지 추가 패키지만 설치하는 정도면 이것만큼 좋은 것도 없습니다. 그런데 그 이상이라면 이야기가 달라지지요. Wayland나 리눅스민트 수준의 마개조를 필요로 한다면 UCK가지고 커스터마이징 하는 것은 많이 어려워 보입니다. 즉, UCK는 공식 커스터마이저라서 호환성도 확보되었고, 사용도 쉽지만 그만큼 제약도 심하다는 의미지요.


2. Customizer (통칭 U-customizer)


이 물건은 UCK가 나오기 전부터 만들어졌던 물건입니다. (https://github.com/clearkimura/Customizer) 그런데 중간에 업데이트가 중단 된 듯하여서 조금 걱정을 했는데, 다행히도 github에서 소스를 커밋할 수 있더군요. 최근 업데이트가 3월...이라서 조금 걸리기는 하지만 아직까지는 14.04도 되는 듯 합니다. 


설치방법이 바뀌었군요. 그냥 컴파일 삽질입니다!!! (PPA가 중단되었습니다!)

아래 주소로 소스코드를 우선 다운로드 받습니다.


https://github.com/clearkimura/Customizer/archive/master.zip


sudo apt-get install git build-essential fakeroot make binutils g++ python python-dev python-qt4 pyqt4-dev-tools squashfs-tools xorriso x11-xserver-utils xserver-xephyr qemu-kvm dpkg-dev debhelper qt4-dev-tools qt4-linguist-tools qttools5-dev-tools --no-install-recommends


위의 명령어로 필요한 패키지를 설치합시다.

그리고 다음 명령어를 씁시다.


make deb

이러면 여러분의 소스폴더 바로 상위폴더에 새로운 deb이 생기는데요. 이놈을 보통 deb 설치하듯이 설치하면 됩니다. GUI가 gambas에서 QT로 바뀌었습니다...


특히 다른 것보다 이 도구가 좋은 것이 우분투 배포판 중에서 Ubuntu Mini Remix (http://www.ubuntu-mini-remix.org/)라는 것이 있는데, 이 배포판은 특징이 Debian처럼 가장 최소한의 구동부분만 들어있어서 GUI도 없고 다른 패키지도 존재하지 않습니다. 오로지 구동에 필요한 패키지만 있는 것이지요. 이 mini-remix를 이용해서 커스터마이징하기 아주 좋다는 것입니다. README.md에 이 mini-remix가 언급이 되어있을 정도로 이 도구는 최적화된 가벼운 OS를 만들기에 정말 좋습니다.


정말 Advanced한 커스터마이징 도구이다. 졸업작품도 이 물건 없었으면 조금 힘들었을지도?

또 QEMU 버튼을 달아서 QEMU를 설치 했다면 바로 QEMU를 통해 만들어진 라이브OS를 확인 가능하게 했다는 것도 큰 특징입니다. UCK와 비교했을 때 커스터마이징의 범위가 상당히 넓어 진것도 상당히 점수를 많이 딴 항목입니다.


그런데 이 물건도 상당히 큰 단점이 있습니다. 바로 Gambas로 만들어진 GUI입니다. Gambas는 현재 약간의 버그로 인하여 GTK-3.0을 이용할 시 클릭이 한번에 먹히지 않는 버그가 있습니다. 이 버그가 상당히 사람 짜증나게 하는데, 보통 ISO를 여는데 버튼을 두세번 누르고, 배포판 이름을 바꾸는데 클릭 두세번, LiveCD User name 바꾸는데 클릭 두세번, 그리고 커스터마이징되는 OS의 파일을 확인하려면 또 클릭 두세번(Directories메뉴를 클릭 하면 됩니다.) 하다보면 짜증이 당연히 밀려옵니다. 한번에 입력이 되면 좋을 텐데, 그게 전혀 되지를 않고 있는 것입니다. 이 버그가 gambas의 버그인지 GTK-3.0의 버그인지는 잘 모르겠지만, 작업중에 혈압상승을 동반하게 됩니다.


보통 이 도구를 이용해서 커스터마이징을 하는데에는 순서가 있습니다.(굳이 똑같이 할 필요는 없지만)


1) Select ISO 버튼으로 수정할 배포판 iso선택( 우분투 공식 배포판이나 우분투 미니리믹스 iso를 선택하시면 됩니다.)


2) Distribution Name 수정 (그냥 Ubuntu로 두셔도 됩니다.)

3) LiveCD User name 수정(live도 나쁘지는 않습니다. 아니면 root를 쓰시는 분도 계십니다. 버전에 따라 안 된다고 하지만)

4) Hostname 수정 (보통 바꾸지 않습니다.)

5) Release notes URL 보통 바꾸지 않지만 만약 리눅스민트 수준으로 전혀 다른 수정을 하시고 공식 홈페이지를 만드셨다면 여기에 적으셔도 됩니다.


6) Terminal 버튼을 누르고, CLI작업 시작(apt-get 으로 추가 패키지 설치 및 기타 설정 파일 수정)

(6의 작업이 제일 중요합니다.)


7) Desktop버튼은 보통 이용하지 않고 Terminal에서 일련의 작업을 마칩니다. (Install DEB은 apt-get 이나 dpkg -i 명령을 이용하여 처리힙니다.)

8) ReBuild ISO 버튼으로 커스터마이징된 ISO 생성 기본으로 /home 안에 있습니다. 찾아보세요.

9) QEMU로 확인


(참 쉽죠?)


보통 이런 식으로 작업해서 어느정도 끝내면 충분히 작업이 완료 됩니다. 남은 것은 혹시나 모를 버그에 대비해서 준비를 하는 것 뿐입니다. UCK에 비해 조금 어렵기는 하지만 커스터마이징 할 수 있는 것이 워낙 넓으니 약간 전문적인 느낌이 들기는 합니다.


그나저나 느린 반응이 참 안타깝기는 합니다. gambas로 되어있는 것을 PyGTK로 포팅이라도 하면 이 문제가 해결 될 것 같기는 합니다만, 아무도 그럴 생각이 없는 것 같아서 안타깝네요. 심지어 이 도구는 공식저장소에서 퇴출 되었습니다. 더더욱 안타깝습니다. 아마도 Gambas가 업데이트 되는 동안 정작  Customizer가 업데이트 되지 않아서 작동이 안 되자 없애버린 것이 지금까지 남은 듯 합니다. 어쩔수 없습니다. 그냥 github에서 받아서 따로 복사해서 쓰는 수 밖에요. chroot기능을 이용하기 때문에 GUI.gambas 파일을 관리자 권한으로 실행하는 것은 필수입니다.


3, 비운의 Customizer 하지만 그만큼 특이했던 Remastersys

사실 위의 UCK나 Customizer는 모두 별도의 ISO를 이용해서 만드는 커스터마이저였습니다. 그래서 14.04에서 12.04의 커스터마이징도 가능했고, 반대로 다른 버전의 ISO를 이용하는 것이 가능했습니다. 하지만, GUI의 혜택은 전혀 받지 못했습니다. 터미널 작업은 필수였지요. 하지만 Remastersys는 좀 달랐습니다. 괜찮은 방법이라고 생각하면서 애용하기 했던 물건입니다.


더 이상 포럼에 글이 올라오지 않아서 프로젝트를 중단했다는 글이다. 사실 나도 이 프로그램을 쓰면서 포럼에 글 한번 올리지 않아서 좀 찔리는 감이 있다.

Remastersys는 사실 Customizer라기 보다는 Norton Ghost같은 백업 프로그램에 가까운 물건입니다. 즉, 지금 사용하는 시스템을 그대로 라이브DVD화 한다는 것이 특징이었습니다. 여러분이 지금까지 쓰면서 이리저리 끼워넣고 삽질하고 했던 시스템을 라이브DVD(혹은 라이브USB)화 해서 쓸 수 있도록 한 것입니다. 여기에 설치프로그램도 넣어서 그대로 설치하듯이 복구 가능하도록 한 것도 독특한 물건이었습니다. 게다가 사용자 환경도 같이 가져가서 설정도 함께 설치 된다는 것도 특이한 사항이었습니다. (백업이 완벽하게 되어서 기본 옵션으로 하면 그냥 사용자이름과 패스워드까지 백업이 됩니다. -dist옵션을 넣어야 비로소 기존 라이브 환경이 됩니다.)


하지만 이 프로그램은 12.04까지만 지원하고 이후 개발을 중단 했습니다. 만약 소스를 원한다면 기부금을 보내달라고 하네요. 특이하고 마음에 들었지만, 제가 필요로 할 정도는 아니었습니다. Customizer나 UCK로도 어느정도 가능한 작업이었으니까요. 만약 복잡한 OS설치 및 수정이 싫었다면 샀을 지도 모를 일이기는 합니다. 2년이나 지나도록 다시 개발이 되지 않는 것으로 봐서는 그냥 이렇게 사라지는 듯 합니다. 비슷한 컨셉의 오픈소스가 나오기를 희망합니다.


이상 우분투 커스터마이징 도구들을 살펴보았습니다. 초보자에게도 친절하면서 사용하기도 쉬운 UCK, 조금 불편하지만, 커스터마이징 범위가 상당히 많은 Customizer 저는 특성 상 Customizer를 이용했지만, UCK도 상당히 좋은 도구임에는 분명합니다. 여러분들도 나만의 OS 하나 만들어 보시는 것은 어떠신가요?

,