Watch Video on Youtube! : http://www.youtube.com/watch?v=waP-Fn64ddk
강분도 Kang Bundo - K.E.L.P. 공개세미나
Seminar Info (http://kelp.or.kr/notice/776)
Watch Spaeker's Slide! /*URL*/
Place / Date - 한성대학교 미래관 지하1층 DLC / 2012Y 11M 10D 요일
~ About Speaker ~
강분도 Kang Bundo
Video Capture : 장태희 (jang0913@gmail.com)
본 영상 녹화는 발표 진행 전 발표자와의 동의 하에 진행되었습니다.
What is Ubuntu Linux?
Ubuntu is an ancient African word meaning 'humanity to others'.
It also means 'I am what I am because of who we all are'.
The Ubuntu operating system brings the spirit of Ubuntu to the world of computers.
http://www.ubuntu.com
Why don't you stop by Ubuntu Korea Community?
Forum (http://www.ubuntu-kr.org/)
Facebook (https://www.facebook.com/groups/ubunt...)
Wiki (http://mwiki.ubuntu.or.kr/index.php/%...)
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 | 배포판 만들기
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 중요 명령
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 | 배포판 만들기
다양한 배포판의 필요성 ?