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


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

,