우분투 개발환경과
커스터 마이징 방법
강분도
제 12 회 KELP 세미나
2 | 배포판 만들기
1. 우분투 활동
2. 우분투 개발환경
3. 우분투 배포판 커스터 마이징
1) 가상환경과 UCK
2) UCK 사용법 & UCK 중요 명령 & UCK 가 만든 디렉의 구조
3) 환경 수정 ( 개인 환...
3 | 배포판 만들기
우분투 활동
• 우분투한국커뮤니티우분투한국커뮤니티
도메인 : http://ubuntu-kr.org
한국 로코팀 : https://launchpad.net/~ubuntu-ko
포럼 : http://u...
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+...
6 | 배포판 만들기
에디터
• Gedit
많은 플러그인, 문법 하이라이트 지원,
다양한 언어셋 지원(여러 언어 코드 지원)
FTP, SSH 지원
단점 : 여러 파일 편집 / 관리 불편
• Geany
http://www...
7 | 배포판 만들기
Integrated Development Environment, IDE
• GTK+ 의 Anjuta, Glade
• C# 의 Monodevelop
• Qt 의 Kdevelop, & ...
• jav...
8 | 배포판 만들기
배포만 만들기에 편한 환경을 제공 하는 것
1. 가상환경과 USB 메모리는 배포판 테스트가 용이함 .
Chroot, 버추얼 박스 , Vmware 그리고 USB 메모리
2. UCK
http://uck...
9 | 배포판 만들기
설치 1 sudo apt-get install uck
설치 2
svn export https://uck.svn.sourceforge.net/svnroot/uck/trunk/uck
기본 실행
# uc...
10 | 배포판 만들기
$./uck-gui
1. 초기 환영 말
2. 설치 언어 선택
3. 라이브 CD 언어선택
4. 부팅언어 선택
5. 테스크탑 환경선택
6. ISO 선택
7. 만드려는 CD 이름 입력
8. 콘솔작업 할...
11 | 배포판 만들기
SQUASHFS 란 ?
• Squashfs : 리눅스를 위한 압축 읽기 전용 파일 시스템 .
• 우분투 CD 용량 700 메가를 지키기 위해 squashfs 를 이
용하여 부팅시 압축을 풀며 라이...
12 | 배포판 만들기
1. 패키지매니저 이용 하기
무엇이 뜨는가 ? ^^;
그리고 알아야 할 것은 무엇인가 ?
2. rootFS (chroot) 이용하기
터미널의 강력함이여 ?
무엇이 다른가 ?
3. 그리고 ISO 만...
13 | 배포판 만들기
1. 설명파일
doc 에 맨페이지와 html 제공
2. building script & remastering backend
uck-gui 의 정체는 uck 스크립을 순차적으로 실행 해주는 구조 ....
14 | 배포판 만들기
uck-remaster-chroot-rootfs
사용법
# uck-remaster-chroot-rootfs [remaster-dir] [what-to-
execute]
예 1)
$ sudo ./u...
15 | 배포판 만들기
uck-remaster-pack-rootfs
루트 가상시스템을 ISO 디렉의 Squashfs 이미지 파일로 만들어 준다 .
~/tmp/remaster-iso/casper/filesystem.squ...
16 | 배포판 만들기
uck-remaster-pack-iso
ISO 디렉의 환경으로 ISO 이미지를 만든다 .
사용법
# uck-remaster-pack-iso [iso-file-name.iso] [remaster-d...
17 | 배포판 만들기
customization-scripts ( 커스텀 환경과 빌드 로그등 )
remaster-apt-cache ( 패키지 설치시 캐시 디렉 )
remaster-iso (iso 풀어 놓은 디렉 )
re...
18 | 배포판 만들기
/etc 에서의 변경은 전역 설정이 변경된다
기본 글꼴 , 키보드 종류 , 프로그램의 환경 등을 변경 가능 하며
/etc/skel 을 이용 만들어 지는 사용자 환경도 변경 할수 있다 .
바탕화면에...
19 | 배포판 만들기
●
Gconf-editor ?
●
보통 GUI 환경의 설정 파일은 xml 로 만들어져 있다 .
Gconf 를 이용하여 환경설정을 뻬낸 후 다시 rootFS (chroot) 환경에서 전체
설정에 적...
20 | 배포판 만들기
●
/usr/share 의 여러 프로그램 파일들의 변경으로 다른 환경을 제공할 수 있다
.
●
번역파일들 ( 번역파일 교체 )
/usr/share/locale/ko/LC_MESSAGES
/usr/...
21 | 배포판 만들기
●
remaster-iso/preseed/ubuntu.seed 이용 저장소 변경
d-i apt-setup/use_mirror boolean true
d-i mirror/http/mirror str...
22 | 배포판 만들기
●
패키지 만들기
참고 링크 :
1) 컴파일을 해보자 http://www.ubuntu.or.kr/viewtopic.php?t=1527
2) deb 패키징 하우투 문서 : http://ubuntu....
23 | 배포판 만들기
●
PPA 란 ?
자신이 만든 패키지를 launchpad에 올려서 배포해 보기
코분투 런치패드와 PPA https://launchpad.net/~cobuntu
●
PPA 의 장점
PPA 서로간에 ...
24 | 배포판 만들기
●
우분투의 종류는 왜 많은가 ?
●
사용 환경에 따른 최적화 우분투의 제작
1) eBuntu ( 임베디드 개발용 ) 제작 (2012 년 )
https://launchpad.net/~ebuntu
...
25 | 배포판 만들기
질의 응답
• 감사합니다 .
Upcoming SlideShare
Loading in...5
×

3.ubuntu custom

307

Published on

발표자 강분도 UCK 를 이용한 나만의 배포판 만들기

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
307
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

3.ubuntu custom

  1. 1. 우분투 개발환경과 커스터 마이징 방법 강분도 제 12 회 KELP 세미나
  2. 2. 2 | 배포판 만들기 1. 우분투 활동 2. 우분투 개발환경 3. 우분투 배포판 커스터 마이징 1) 가상환경과 UCK 2) UCK 사용법 & UCK 중요 명령 & UCK 가 만든 디렉의 구조 3) 환경 수정 ( 개인 환경 , 전체 환경 ) ( /etc, gconf 이용 , /usr/share, 설치 환경의 변경 , 패키지 ) 4) PPA 운영 4. 마치며 ! 발표 순서
  3. 3. 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 •
  4. 4. 4 | 배포판 만들기 우분투에서의 개발환경 구축 sudo apt-get install build-essential
  5. 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. 6. 6 | 배포판 만들기 에디터 • Gedit 많은 플러그인, 문법 하이라이트 지원, 다양한 언어셋 지원(여러 언어 코드 지원) FTP, SSH 지원 단점 : 여러 파일 편집 / 관리 불편 • Geany http://www.geany.org 자동 태그 ( xml , html 자동 폐쇠 ) , 컴파일 및 빌드 가능, 프로젝트 관리 기능 & 코드 탐색, 플러그인 지원 & 사용자 환경설정의 다양함 • Bluefish html 태그 , 다이얼로그를 비롯하여 다양한 언어 (C, Java, PHP, Python, XML, JSP 심지어는 SQL 까지 ...등등 문법등을 지원) 단점 : 확장 완성형 한글 미지원 , 무거움 (java) •
  7. 7. 7 | 배포판 만들기 Integrated Development Environment, IDE • GTK+ 의 Anjuta, Glade • C# 의 Monodevelop • Qt 의 Kdevelop, & ... • java, 기타등등의 이클립스 .........
  8. 8. 8 | 배포판 만들기 배포만 만들기에 편한 환경을 제공 하는 것 1. 가상환경과 USB 메모리는 배포판 테스트가 용이함 . Chroot, 버추얼 박스 , Vmware 그리고 USB 메모리 2. UCK http://uck.sourceforge.net Ubuntu Customization Kit 가상환경과 UCK
  9. 9. 9 | 배포판 만들기 설치 1 sudo apt-get install uck 설치 2 svn export https://uck.svn.sourceforge.net/svnroot/uck/trunk/uck 기본 실행 # uck-gui ※ 주의점 : 배포판 말들때 여유공간이 5 기가 이상 이어야 한다 UCK 사용법 1
  10. 10. 10 | 배포판 만들기 $./uck-gui 1. 초기 환영 말 2. 설치 언어 선택 3. 라이브 CD 언어선택 4. 부팅언어 선택 5. 테스크탑 환경선택 6. ISO 선택 7. 만드려는 CD 이름 입력 8. 콘솔작업 할지 결정 (chroot 콘솔 ) 9. 우비 , 오토런 추가 삭제 여부 10. ISO 풀고 CHROOT 환경 만들고 .. 등등 알아서 … 11. 항목설정 ( 패키지 매니저 & 콘솔 ) 계속 진행 해 완성으로 가도 되나 여기서 멈추는 이유는 좀더 세밀한 작업을 위해 멈추며 뒤에 가서 추가 설명 ... UCK 사용법 2
  11. 11. 11 | 배포판 만들기 SQUASHFS 란 ? • Squashfs : 리눅스를 위한 압축 읽기 전용 파일 시스템 . • 우분투 CD 용량 700 메가를 지키기 위해 squashfs 를 이 용하여 부팅시 압축을 풀며 라이브 및 설치 환경을 구성 ( 이로 인해 라이브 부팅이 느리다 ) • http://squashfs.sourceforge.net/
  12. 12. 12 | 배포판 만들기 1. 패키지매니저 이용 하기 무엇이 뜨는가 ? ^^; 그리고 알아야 할 것은 무엇인가 ? 2. rootFS (chroot) 이용하기 터미널의 강력함이여 ? 무엇이 다른가 ? 3. 그리고 ISO 만들기 UCK 사용법 3
  13. 13. 13 | 배포판 만들기 1. 설명파일 doc 에 맨페이지와 html 제공 2. building script & remastering backend uck-gui 의 정체는 uck 스크립을 순차적으로 실행 해주는 구조 . uck-remaster-chroot-rootfs uck-remaster-pack-rootfs uck-remaster-pack-iso UCK 중요 명령
  14. 14. 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-gtk UCK 중요 명령 -1
  15. 15. 15 | 배포판 만들기 uck-remaster-pack-rootfs 루트 가상시스템을 ISO 디렉의 Squashfs 이미지 파일로 만들어 준다 . ~/tmp/remaster-iso/casper/filesystem.squashfs 사용법 # uck-remaster-pack-rootfs [remaster-dir] [-c|--clean- desktop-manifest] 예 ) $ sudo ./uck-remaster-pack-rootfs /home/bundo ISO 디렉은 무엇과 같은 구조인가 ? UCK 중요 명령 -2
  16. 16. 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 UCK 중요 명령 -3
  17. 17. 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 의 네임을 보여준다 . UCK 가 만든 TMP 의 디렉터리들
  18. 18. 18 | 배포판 만들기 /etc 에서의 변경은 전역 설정이 변경된다 기본 글꼴 , 키보드 종류 , 프로그램의 환경 등을 변경 가능 하며 /etc/skel 을 이용 만들어 지는 사용자 환경도 변경 할수 있다 . 바탕화면에 프로그램 또는 문서 바로가기 등을 추가하려면 /etc/skel/Desktop 에 심볼릭 링크 또는 ?????.desktop 파일을 만들어 준다 . 예 ) 리듬박스 한글 제목명 문제 /etc/skel/.profile 에 아래 내용 추가 export GST_ICY_TAG_ENCODING=cp949 위 작업이 이루어 져야 할 환경은 ? 심볼릭 링크의 주의 점 ※ /etc 의 각 프로그램에 따른 환경 설정 파일의 이해가 필요 환경 수정 1) /etc
  19. 19. 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 프로 그램의 환경을 미리 변경할 수 있다 . 환경 수정 2) gconf
  20. 20. 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 ● 더 좋은 방법은 ? 환경 수정 3) /usr/share
  21. 21. 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 저장소 추가 환경 수정 4) 설치 환경의 변경
  22. 22. 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) ● 패키지를 만드는 이유 ? 환경 수정 5) 패키지
  23. 23. 23 | 배포판 만들기 ● PPA 란 ? 자신이 만든 패키지를 launchpad에 올려서 배포해 보기 코분투 런치패드와 PPA https://launchpad.net/~cobuntu ● PPA 의 장점 PPA 서로간에 패키지 공유 가능 ( 모으기 !) 새 배포판용 패키지 자동 만들기 가능 ( 쉽게 업데이트 ) ● PPA 운영과 새 오픈 소스 프로그램 개발을 통해 우분투 MOTU 그리고 메인 개 발자등이 나오길 희망합니다 . PPA 운영
  24. 24. 24 | 배포판 만들기 ● 우분투의 종류는 왜 많은가 ? ● 사용 환경에 따른 최적화 우분투의 제작 1) eBuntu ( 임베디드 개발용 ) 제작 (2012 년 ) https://launchpad.net/~ebuntu 2) 수학용 프로그램 설치 분투 ? 등 사용자에게 딱 필요한 환경을 미리 제공하 여 환경 구축 시간 절약 및 동일 환경 제공 ● 스크립트만으로 가능한가 ? ● 버그 보고 & 패치 & 새 프로그램의 개발 다양한 배포판의 필요성 ?
  25. 25. 25 | 배포판 만들기 질의 응답 • 감사합니다 .
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×