SlideShare a Scribd company logo
1 of 25
Download to read offline
우분투 개발환경과 
커스터 마이징 방법 
강분도 
제12회 KELP 세미나
1. 우분투 활동 
2. 우분투 개발환경 
3. 우분투 배포판 커스터 마이징 
1) 가상환경과 UCK 
2) UCK 사용법 & UCK 중요 명령 & UCK가 만든 디렉의 구조 
3) 환경 수정 (개인 환경, 전체 환경) 
( /etc, gconf 이용, /usr/share, 설치 환경의 변경, 패키지) 
4) PPA 운영 
4. 마치며! 
2 | 배포판 만들기 
발표 순서
우분투 활동 
• 우우분분투투한한국국커커뮤뮤니니티티 
도메인 : http://ubuntu-kr.org 
한국 로코팀 : https://launchpad.net/~ubuntu-ko 
포럼 : http://ubuntu.or.kr 
한글 위키 : http://wiki.ubuntu.or.kr 
메일링 : http://lists.ubuntu.com/mailman/listinfo/ubuntu-ko 
IRC channel : irc.ubuntu.com #ubuntu-ko 
한국어 번역팀 : https://launchpad.net/~ubuntu-l10n-ko 
• 
3 | 배포판 만들기
4 | 배포판 만들기 
우분투에서의 개발환경 구축 
sudo apt-get install build-essential
5 | 배포판 만들기 
sudo apt-get install build-essential 
• 의존성 
• dpkg-dev (>= 1.13.5) 데비안 패키지 개발 도구 
• dep: g++ (>= 4:4.3.1) GNU C++ 컴파일러 
• dep: libc6-dev 
• make
에디터 
• Gedit 
많은 플러그인, 문법 하이라이트 지원, 
다양한 언어셋 지원(여러 언어 코드 지원) 
FTP, SSH 지원 
단점 : 여러 파일 편집 / 관리 불편 
• Geany 
http://www.geany.org 
자동 태그 ( xml , html 자동 폐쇠 ) , 컴파일 및 빌드 가능, 
프로젝트 관리 기능 & 코드 탐색, 플러그인 지원 & 사용자 환경설정의 다양함 
• Bluefish 
html 태그 , 다이얼로그를 비롯하여 다양한 언어 
(C, Java, PHP, Python, XML, JSP 심지어는 SQL 까지 ...등등 문법등을 지원) 
단점 : 확장 완성형 한글 미지원 , 무거움 (java) 
• 
6 | 배포판 만들기
Integrated Development Environment, IDE 
• GTK+ 의 Anjuta, Glade 
• C# 의 Monodevelop 
• Qt 의 Kdevelop, & ... 
• java, 기타등등의 이클립스 ......... 
7 | 배포판 만들기
배포만 만들기에 편한 환경을 제공 하는 것 
1. 가상환경과 USB메모리는 배포판 테스트가 용이함. 
Chroot, 버추얼 박스 , Vmware 그리고 USB 메모리 
2. UCK 
http://uck.sourceforge.net 
Ubuntu Customization Kit 
8 | 배포판 만들기 
가상환경과 UCK
설치 1 sudo apt-get install uck 
설치 2 
svn export https://uck.svn.sourceforge.net/svnroot/uck/trunk/uck 
기본 실행 
# uck-gui 
※ 주의점 : 배포판 말들때 여유공간이 5기가 이상 이어야 한다 
9 | 배포판 만들기 
UCK 사용법 1
$./uck-gui 
1. 초기 환영 말 
2. 설치 언어 선택 
3. 라이브CD 언어선택 
4. 부팅언어 선택 
5. 테스크탑 환경선택 
6. ISO 선택 
7. 만드려는 CD이름 입력 
8. 콘솔작업 할지 결정 (chroot 콘솔) 
9. 우비, 오토런 추가 삭제 여부 
10. ISO 풀고 CHROOT 환경 만들고.. 등등 알아서 … 
11. 항목설정 ( 패키지 매니저 & 콘솔 ) 
계속 진행 해 완성으로 가도 되나 여기서 멈추는 이유는 좀더 세밀한 작업을 
위해 멈추며 뒤에 가서 추가 설명 ... 
10 | 배포판 만들기 
UCK 사용법 2
11 | 배포판 만들기 
SQUASHFS 란 ? 
• Squashfs : 리눅스를 위한 압축 읽기 전용 파일 시스템. 
• 우분투 CD 용량 700메가를 지키기 위해 squashfs를 이 
용하여 부팅시 압축을 풀며 라이브 및 설치 환경을 구성 
(이로 인해 라이브 부팅이 느리다) 
• http://squashfs.sourceforge.net/
1. 패키지매니저 이용 하기 
무엇이 뜨는가 ? ^^; 
그리고 알아야 할 것은 무엇인가 ? 
2. rootFS (chroot) 이용하기 
터미널의 강력함이여? 
무엇이 다른가? 
3. 그리고 ISO 만들기 
12 | 배포판 만들기 
UCK 사용법 3
1. 설명파일 
doc 에 맨페이지와 html 제공 
2. building script & remastering backend 
uck-gui 의 정체는 uck 스크립을 순차적으로 실행 해주는 구조 . 
uck-remaster-chroot-rootfs 
uck-remaster-pack-rootfs 
uck-remaster-pack-iso 
13 | 배포판 만들기 
UCK 중요 명령
uck-remaster-chroot-rootfs 
사용법 
# uck-remaster-chroot-rootfs [remaster-dir] [what-to-execute] 
예 1) 
$ sudo ./uck-remaster-chroot-rootfs /home/bundo/tmp 
예 2) 
$ sudo uck-remaster-chroot-rootfs /home/bundo/tmp 
synaptic 
예 3) 
$ sudo uck-remaster-chroot-rootfs /home/bundo/tmp software-properties- 
14 | 배포판 만들기 
gtk 
UCK 중요 명령 -1
UCK 중요 명령 -2 
uck-remaster-pack-rootfs 
루트 가상시스템을 ISO 디렉의 Squashfs 이미지 파일로 만들어 준다 . 
~/tmp/remaster-iso/casper/filesystem.squashfs 
사용법 
# uck-remaster-pack-rootfs [remaster-dir] [-c|--clean-desktop- 
15 | 배포판 만들기 
manifest] 
예 ) 
$ sudo ./uck-remaster-pack-rootfs /home/bundo 
ISO 디렉은 무엇과 같은 구조인가 ?
uck-remaster-pack-iso 
ISO 디렉의 환경으로 ISO 이미지를 만든다 . 
사용법 
# uck-remaster-pack-iso [iso-file-name.iso] [remaster-dir] [- 
g|--generate-md5] [-a|--arch=x86,x86_64,ia64,ppc] [-d|-- 
description=CD_description] 
예 ) 
$ sudo ./uck-remaster-pack-iso kangbuntu-11.04-i386.iso 
/home/bundo -g 
ISO 파일이 만들어 지는 곳 ? 
~/tmp/remaster-new-files 
16 | 배포판 만들기 
UCK 중요 명령 -3
customization-scripts ( 커스텀 환경과 빌드 로그등 ) 
remaster-apt-cache ( 패키지 설치시 캐시 디렉 ) 
remaster-iso (iso 풀어 놓은 디렉 ) 
remaster-root (root FS 환경 ) 
remaster-root-home (root 작업에 따른 환경 파일 ) 
remaster-new-files (새 iso 만들어 지는 곳 ) 
customization-scripts 디렉터리 파일 중 
desktop_types , language_packs, livecd_locales , 
run_manual_customizations , desktop_type, environment, 
iso_description, livecd_locale, remove_win32_files 등에 uck-gui 에서 
정한 것들이 기록 되어 있는데 그중 iso_description 파일 내용은 라이브 
CD 의 네임을 보여준다. 
17 | 배포판 만들기 
UCK가 만든 TMP의 디렉터리들
/etc 에서의 변경은 전역 설정이 변경된다 
기본 글꼴, 키보드 종류, 프로그램의 환경 등을 변경 가능 하며 
/etc/skel 을 이용 만들어 지는 사용자 환경도 변경 할수 있다 . 
바탕화면에 프로그램 또는 문서 바로가기 등을 추가하려면 
/etc/skel/Desktop 에 
심볼릭 링크 또는 ?????.desktop 파일을 만들어 준다 . 
예) 리듬박스 한글 제목명 문제 
/etc/skel/.profile 에 아래 내용 추가 
export GST_ICY_TAG_ENCODING=cp949 
위 작업이 이루어 져야 할 환경은 ? 
심볼릭 링크의 주의 점 
※ /etc의 각 프로그램에 따른 환경 설정 파일의 이해가 필요 
18 | 배포판 만들기 
환경 수정 1) /etc
● Gconf-editor ? 
● 보통 GUI 환경의 설정 파일은 xml 로 만들어져 있다. 
Gconf 를 이용하여 환경설정을 뻬낸 후 다시 rootFS (chroot)환경에서 전체 
설정에 적용되게 넣어 준다. 
● 예) 동영상플레이어(토템)의 자막문제 UHC 
1) gconftool-2 --dump /apps/totem > ~/totem.xml ( 설정 뻬내기) 
2) rootFS 환경으로 복사 후 
3) gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults 
--load /totem.xml (넣기 ) 
● 위 같은 방법으로 시간대 , gedit의 cp949파일 읽어 오는 문제 등 GUI 프로 
그램의 환경을 미리 변경할 수 있다 . 
19 | 배포판 만들기 
환경 수정 2) gconf
● /usr/share의 여러 프로그램 파일들의 변경으로 다른 환경을 제공할 수 있다 
. 
● 번역파일들 (번역파일 교체) 
/usr/share/locale/ko/LC_MESSAGES 
/usr/share/locale-langpack/ko/LC_MESSAGES 
● 배경그림 
/usr/share/backgrounds 
● 환경 파일들 
예) /usr/share/diffuse/syntax , /usr/share/vim/addons/syntax 
● 더 좋은 방법은? 
20 | 배포판 만들기 
환경 수정 3) /usr/share
● remaster-iso/preseed/ubuntu.seed 이용 저장소 변경 
d-i apt-setup/use_mirror boolean true 
d-i mirror/http/mirror string ftp.daum.net 
d-i mirror/http/hostname string ftp.daum.net 
● gfxboot 를 수정 재컴파일 하여 부트 선택 화면과 기본 언어의 변경 
sudo apt-get build-dep gfxboot ( 컴파일 의존 패키지의 설치) 
apt-get source gfxboot-theme-ubuntu ( 소스 다운) 
cd gfxboot-theme-ubuntu*/ ( 이동) 
make DEFAULT_LANG=ko ( 한국어 기본으로 컴파일) 
sudo cp -af boot/* ~/tmp/remaster-iso/isolinux/ ( 복사) 
● /etc/localtime 과 timezone 파일의 GMT+9 와 서울로 교체 
● Gconf 이용하여 GUI 시간대 변경 
gconftool-2 --dump /schemas/apps/clock_applet/prefs > ~/timecities.xml 
● 부트스플래쉬의 변경 (plymouth) , PPA 저장소 추가 
21 | 배포판 만들기 
환경 수정 4) 설치 환경의 변경
● 패키지 만들기 
참고 링크 : 
1) 컴파일을 해보자 http://www.ubuntu.or.kr/viewtopic.php?t=1527 
2) deb패키징 하우투 문서 : http://ubuntu.or.kr/viewtopic.php?f=6&t=1405 
3) 소스 패키징과 PPA 에 업로드하기 : 
http://www.ubuntu.or.kr/viewtopic.php?f=9&t=11541 
● 환경이 수정된 새 패키지 제작시 주의점은 debian/changelog 파일에서 버전을 올려 주어야 기존 
패키지가 새로 덥으며 재설치 되지 않는데 보통 기존 버전은 그대로 하고 끝에 추가하는 식으로 버 
전을 올려 주는게 적장하다. 
예) gimp (2.6.11-1ubuntu6.1) 경우 gimp (2.6.11-1ubuntu6.1-01) 또는 gimp (2.6.11- 
1cobuntu6.1-01) 
● 패키지를 만드는 이유? 
22 | 배포판 만들기 
환경 수정 5)패키지
● PPA란? 
자신이 만든 패키지를 launchpad에 올려서 배포해 보기 
코분투 런치패드와 PPA https://launchpad.net/~cobuntu 
● PPA의 장점 
PPA 서로간에 패키지 공유 가능 (모으기!) 
새 배포판용 패키지 자동 만들기 가능 (쉽게 업데이트) 
● PPA 운영과 새 오픈 소스 프로그램 개발을 통해 우분투 MOTU 그리고 메인 개 
발자등이 나오길 희망합니다. 
23 | 배포판 만들기 
PPA 운영
● 우분투의 종류는 왜 많은가? 
● 사용 환경에 따른 최적화 우분투의 제작 
1) eBuntu (임베디드 개발용) 제작 (2012년) 
https://launchpad.net/~ebuntu 
2)수학용 프로그램 설치 분투 ? 등 사용자에게 딱 필요한 환경을 미리 제공하 
여 환경 구축 시간 절약 및 동일 환경 제공 
● 스크립트만으로 가능한가? 
● 버그 보고 & 패치 & 새 프로그램의 개발 
24 | 배포판 만들기 
다양한 배포판의 필요성 ?
25 | 배포판 만들기 
질의 응답 
• 감사합니다.

More Related Content

More from Ubuntu Korea Community

Memory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesMemory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesUbuntu Korea Community
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationUbuntu Korea Community
 
케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들Ubuntu Korea Community
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티Ubuntu Korea Community
 
우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고Ubuntu Korea Community
 
새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조Ubuntu Korea Community
 
스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기Ubuntu Korea Community
 
지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기Ubuntu Korea Community
 
VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기Ubuntu Korea Community
 
HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표Ubuntu Korea Community
 
Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디
Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디
Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디Ubuntu Korea Community
 

More from Ubuntu Korea Community (20)

Usage of the MQTT
Usage of the MQTTUsage of the MQTT
Usage of the MQTT
 
Open Source and the License
Open Source and the LicenseOpen Source and the License
Open Source and the License
 
Memory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesMemory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack Techniques
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop Application
 
나의 우분투 이야기
나의 우분투 이야기나의 우분투 이야기
나의 우분투 이야기
 
Malware Dataset & Ubuntu
Malware Dataset & UbuntuMalware Dataset & Ubuntu
Malware Dataset & Ubuntu
 
케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티
 
우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고
 
새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조
 
스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기
 
기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT
 
모바일에 딥러닝 심기
모바일에 딥러닝 심기모바일에 딥러닝 심기
모바일에 딥러닝 심기
 
지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기
 
VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기
 
HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표
 
Ubuntu 18.04 Release Party @ Daejeon
Ubuntu 18.04 Release Party @ DaejeonUbuntu 18.04 Release Party @ Daejeon
Ubuntu 18.04 Release Party @ Daejeon
 
What's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSWhat's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTS
 
Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디
Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디
Hanjp-IM 프로젝트 - 한글 오토마타 이론 스터디
 

강분도 - 우분투 개발환경과 우분투 배보판 커스터마이징 방법 (2012Y11M10D)

  • 1. 우분투 개발환경과 커스터 마이징 방법 강분도 제12회 KELP 세미나
  • 2. 1. 우분투 활동 2. 우분투 개발환경 3. 우분투 배포판 커스터 마이징 1) 가상환경과 UCK 2) UCK 사용법 & UCK 중요 명령 & UCK가 만든 디렉의 구조 3) 환경 수정 (개인 환경, 전체 환경) ( /etc, gconf 이용, /usr/share, 설치 환경의 변경, 패키지) 4) PPA 운영 4. 마치며! 2 | 배포판 만들기 발표 순서
  • 3. 우분투 활동 • 우우분분투투한한국국커커뮤뮤니니티티 도메인 : http://ubuntu-kr.org 한국 로코팀 : https://launchpad.net/~ubuntu-ko 포럼 : http://ubuntu.or.kr 한글 위키 : http://wiki.ubuntu.or.kr 메일링 : http://lists.ubuntu.com/mailman/listinfo/ubuntu-ko IRC channel : irc.ubuntu.com #ubuntu-ko 한국어 번역팀 : https://launchpad.net/~ubuntu-l10n-ko • 3 | 배포판 만들기
  • 4. 4 | 배포판 만들기 우분투에서의 개발환경 구축 sudo apt-get install build-essential
  • 5. 5 | 배포판 만들기 sudo apt-get install build-essential • 의존성 • dpkg-dev (>= 1.13.5) 데비안 패키지 개발 도구 • dep: g++ (>= 4:4.3.1) GNU C++ 컴파일러 • dep: libc6-dev • make
  • 6. 에디터 • Gedit 많은 플러그인, 문법 하이라이트 지원, 다양한 언어셋 지원(여러 언어 코드 지원) FTP, SSH 지원 단점 : 여러 파일 편집 / 관리 불편 • Geany http://www.geany.org 자동 태그 ( xml , html 자동 폐쇠 ) , 컴파일 및 빌드 가능, 프로젝트 관리 기능 & 코드 탐색, 플러그인 지원 & 사용자 환경설정의 다양함 • Bluefish html 태그 , 다이얼로그를 비롯하여 다양한 언어 (C, Java, PHP, Python, XML, JSP 심지어는 SQL 까지 ...등등 문법등을 지원) 단점 : 확장 완성형 한글 미지원 , 무거움 (java) • 6 | 배포판 만들기
  • 7. Integrated Development Environment, IDE • GTK+ 의 Anjuta, Glade • C# 의 Monodevelop • Qt 의 Kdevelop, & ... • java, 기타등등의 이클립스 ......... 7 | 배포판 만들기
  • 8. 배포만 만들기에 편한 환경을 제공 하는 것 1. 가상환경과 USB메모리는 배포판 테스트가 용이함. Chroot, 버추얼 박스 , Vmware 그리고 USB 메모리 2. UCK http://uck.sourceforge.net Ubuntu Customization Kit 8 | 배포판 만들기 가상환경과 UCK
  • 9. 설치 1 sudo apt-get install uck 설치 2 svn export https://uck.svn.sourceforge.net/svnroot/uck/trunk/uck 기본 실행 # uck-gui ※ 주의점 : 배포판 말들때 여유공간이 5기가 이상 이어야 한다 9 | 배포판 만들기 UCK 사용법 1
  • 10. $./uck-gui 1. 초기 환영 말 2. 설치 언어 선택 3. 라이브CD 언어선택 4. 부팅언어 선택 5. 테스크탑 환경선택 6. ISO 선택 7. 만드려는 CD이름 입력 8. 콘솔작업 할지 결정 (chroot 콘솔) 9. 우비, 오토런 추가 삭제 여부 10. ISO 풀고 CHROOT 환경 만들고.. 등등 알아서 … 11. 항목설정 ( 패키지 매니저 & 콘솔 ) 계속 진행 해 완성으로 가도 되나 여기서 멈추는 이유는 좀더 세밀한 작업을 위해 멈추며 뒤에 가서 추가 설명 ... 10 | 배포판 만들기 UCK 사용법 2
  • 11. 11 | 배포판 만들기 SQUASHFS 란 ? • Squashfs : 리눅스를 위한 압축 읽기 전용 파일 시스템. • 우분투 CD 용량 700메가를 지키기 위해 squashfs를 이 용하여 부팅시 압축을 풀며 라이브 및 설치 환경을 구성 (이로 인해 라이브 부팅이 느리다) • http://squashfs.sourceforge.net/
  • 12. 1. 패키지매니저 이용 하기 무엇이 뜨는가 ? ^^; 그리고 알아야 할 것은 무엇인가 ? 2. rootFS (chroot) 이용하기 터미널의 강력함이여? 무엇이 다른가? 3. 그리고 ISO 만들기 12 | 배포판 만들기 UCK 사용법 3
  • 13. 1. 설명파일 doc 에 맨페이지와 html 제공 2. building script & remastering backend uck-gui 의 정체는 uck 스크립을 순차적으로 실행 해주는 구조 . uck-remaster-chroot-rootfs uck-remaster-pack-rootfs uck-remaster-pack-iso 13 | 배포판 만들기 UCK 중요 명령
  • 14. uck-remaster-chroot-rootfs 사용법 # uck-remaster-chroot-rootfs [remaster-dir] [what-to-execute] 예 1) $ sudo ./uck-remaster-chroot-rootfs /home/bundo/tmp 예 2) $ sudo uck-remaster-chroot-rootfs /home/bundo/tmp synaptic 예 3) $ sudo uck-remaster-chroot-rootfs /home/bundo/tmp software-properties- 14 | 배포판 만들기 gtk UCK 중요 명령 -1
  • 15. UCK 중요 명령 -2 uck-remaster-pack-rootfs 루트 가상시스템을 ISO 디렉의 Squashfs 이미지 파일로 만들어 준다 . ~/tmp/remaster-iso/casper/filesystem.squashfs 사용법 # uck-remaster-pack-rootfs [remaster-dir] [-c|--clean-desktop- 15 | 배포판 만들기 manifest] 예 ) $ sudo ./uck-remaster-pack-rootfs /home/bundo ISO 디렉은 무엇과 같은 구조인가 ?
  • 16. uck-remaster-pack-iso ISO 디렉의 환경으로 ISO 이미지를 만든다 . 사용법 # uck-remaster-pack-iso [iso-file-name.iso] [remaster-dir] [- g|--generate-md5] [-a|--arch=x86,x86_64,ia64,ppc] [-d|-- description=CD_description] 예 ) $ sudo ./uck-remaster-pack-iso kangbuntu-11.04-i386.iso /home/bundo -g ISO 파일이 만들어 지는 곳 ? ~/tmp/remaster-new-files 16 | 배포판 만들기 UCK 중요 명령 -3
  • 17. customization-scripts ( 커스텀 환경과 빌드 로그등 ) remaster-apt-cache ( 패키지 설치시 캐시 디렉 ) remaster-iso (iso 풀어 놓은 디렉 ) remaster-root (root FS 환경 ) remaster-root-home (root 작업에 따른 환경 파일 ) remaster-new-files (새 iso 만들어 지는 곳 ) customization-scripts 디렉터리 파일 중 desktop_types , language_packs, livecd_locales , run_manual_customizations , desktop_type, environment, iso_description, livecd_locale, remove_win32_files 등에 uck-gui 에서 정한 것들이 기록 되어 있는데 그중 iso_description 파일 내용은 라이브 CD 의 네임을 보여준다. 17 | 배포판 만들기 UCK가 만든 TMP의 디렉터리들
  • 18. /etc 에서의 변경은 전역 설정이 변경된다 기본 글꼴, 키보드 종류, 프로그램의 환경 등을 변경 가능 하며 /etc/skel 을 이용 만들어 지는 사용자 환경도 변경 할수 있다 . 바탕화면에 프로그램 또는 문서 바로가기 등을 추가하려면 /etc/skel/Desktop 에 심볼릭 링크 또는 ?????.desktop 파일을 만들어 준다 . 예) 리듬박스 한글 제목명 문제 /etc/skel/.profile 에 아래 내용 추가 export GST_ICY_TAG_ENCODING=cp949 위 작업이 이루어 져야 할 환경은 ? 심볼릭 링크의 주의 점 ※ /etc의 각 프로그램에 따른 환경 설정 파일의 이해가 필요 18 | 배포판 만들기 환경 수정 1) /etc
  • 19. ● Gconf-editor ? ● 보통 GUI 환경의 설정 파일은 xml 로 만들어져 있다. Gconf 를 이용하여 환경설정을 뻬낸 후 다시 rootFS (chroot)환경에서 전체 설정에 적용되게 넣어 준다. ● 예) 동영상플레이어(토템)의 자막문제 UHC 1) gconftool-2 --dump /apps/totem > ~/totem.xml ( 설정 뻬내기) 2) rootFS 환경으로 복사 후 3) gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --load /totem.xml (넣기 ) ● 위 같은 방법으로 시간대 , gedit의 cp949파일 읽어 오는 문제 등 GUI 프로 그램의 환경을 미리 변경할 수 있다 . 19 | 배포판 만들기 환경 수정 2) gconf
  • 20. ● /usr/share의 여러 프로그램 파일들의 변경으로 다른 환경을 제공할 수 있다 . ● 번역파일들 (번역파일 교체) /usr/share/locale/ko/LC_MESSAGES /usr/share/locale-langpack/ko/LC_MESSAGES ● 배경그림 /usr/share/backgrounds ● 환경 파일들 예) /usr/share/diffuse/syntax , /usr/share/vim/addons/syntax ● 더 좋은 방법은? 20 | 배포판 만들기 환경 수정 3) /usr/share
  • 21. ● remaster-iso/preseed/ubuntu.seed 이용 저장소 변경 d-i apt-setup/use_mirror boolean true d-i mirror/http/mirror string ftp.daum.net d-i mirror/http/hostname string ftp.daum.net ● gfxboot 를 수정 재컴파일 하여 부트 선택 화면과 기본 언어의 변경 sudo apt-get build-dep gfxboot ( 컴파일 의존 패키지의 설치) apt-get source gfxboot-theme-ubuntu ( 소스 다운) cd gfxboot-theme-ubuntu*/ ( 이동) make DEFAULT_LANG=ko ( 한국어 기본으로 컴파일) sudo cp -af boot/* ~/tmp/remaster-iso/isolinux/ ( 복사) ● /etc/localtime 과 timezone 파일의 GMT+9 와 서울로 교체 ● Gconf 이용하여 GUI 시간대 변경 gconftool-2 --dump /schemas/apps/clock_applet/prefs > ~/timecities.xml ● 부트스플래쉬의 변경 (plymouth) , PPA 저장소 추가 21 | 배포판 만들기 환경 수정 4) 설치 환경의 변경
  • 22. ● 패키지 만들기 참고 링크 : 1) 컴파일을 해보자 http://www.ubuntu.or.kr/viewtopic.php?t=1527 2) deb패키징 하우투 문서 : http://ubuntu.or.kr/viewtopic.php?f=6&t=1405 3) 소스 패키징과 PPA 에 업로드하기 : http://www.ubuntu.or.kr/viewtopic.php?f=9&t=11541 ● 환경이 수정된 새 패키지 제작시 주의점은 debian/changelog 파일에서 버전을 올려 주어야 기존 패키지가 새로 덥으며 재설치 되지 않는데 보통 기존 버전은 그대로 하고 끝에 추가하는 식으로 버 전을 올려 주는게 적장하다. 예) gimp (2.6.11-1ubuntu6.1) 경우 gimp (2.6.11-1ubuntu6.1-01) 또는 gimp (2.6.11- 1cobuntu6.1-01) ● 패키지를 만드는 이유? 22 | 배포판 만들기 환경 수정 5)패키지
  • 23. ● PPA란? 자신이 만든 패키지를 launchpad에 올려서 배포해 보기 코분투 런치패드와 PPA https://launchpad.net/~cobuntu ● PPA의 장점 PPA 서로간에 패키지 공유 가능 (모으기!) 새 배포판용 패키지 자동 만들기 가능 (쉽게 업데이트) ● PPA 운영과 새 오픈 소스 프로그램 개발을 통해 우분투 MOTU 그리고 메인 개 발자등이 나오길 희망합니다. 23 | 배포판 만들기 PPA 운영
  • 24. ● 우분투의 종류는 왜 많은가? ● 사용 환경에 따른 최적화 우분투의 제작 1) eBuntu (임베디드 개발용) 제작 (2012년) https://launchpad.net/~ebuntu 2)수학용 프로그램 설치 분투 ? 등 사용자에게 딱 필요한 환경을 미리 제공하 여 환경 구축 시간 절약 및 동일 환경 제공 ● 스크립트만으로 가능한가? ● 버그 보고 & 패치 & 새 프로그램의 개발 24 | 배포판 만들기 다양한 배포판의 필요성 ?
  • 25. 25 | 배포판 만들기 질의 응답 • 감사합니다.