· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Making_WOW Linux-KLDP

배포판 만들기

배포판 만들기

김용일

와우리눅스

이종준

허태을

$Date: 2003/10/16 09:50:10 $

이 문서는 레드헷의 아나콘다를 이용하여 배포판을 만드는 방법에 대하여 설명합니다.

고친 과정
고침 0.12002-04-16고친이 junilove
최초 작성
고침 0.22002-05-09고친이 kohty
수정/추가

차례
1. CD 만들기
1.1. 필요사항(파일)
1.2. 부팅 관련 이미지 만들기
1.3. 작업 순서
1.4. rpm저장소 생성
1.5. comps 파일 작성법
1.6. hdlist 작성
1.7. 패키지순서 파일 및 크기분할
1.8. 크기 분할에 맞춘 확정 hdlist 재작성
1.9. ISO 만들기
1.10. 확인하기
1.11. 시디굽기
2. RPM 사용하기
2.1. 패키지 디렉토리
2.2. 소스 rpm 풀어서 rpm 만들기
2.3. 설치하기
2.3.1. -U 옵션
2.3.2. -Uv 옵션
2.3.3. -Uvh 옵션
2.3.4. -i
2.3.5. --nodeps
2.3.6. --force
2.4. 지우기
2.4.1. -evv 옵션
2.4.2. --test
2.4.3. --nodeps
2.4.4. rpm 이 아래와 같이 중복으로 설치 되어 있을 경우 해결 방법
2.4.5. rpm 이 스크립트 에러 인하여 지워지지 않을 경우
2.5. 패키지 정보 알아내기
2.5.1. -q
2.5.2. -qa
2.5.3. -qa | grep
2.5.4. -qa | grep -i
2.5.5. -qa | wc -l
2.5.6. -qf
2.5.7. -q --whatprovides module-info
2.5.8. -qi
2.5.9. -ql
2.5.10. -qlv
2.5.11. -qc
2.5.12. -qdf
2.5.13. -q -requires
2.5.14. -ql --dump
2.5.15. -q -scripts
2.5.16. -q --queryformat
2.5.17. --querytags
2.5.18. -qcf
2.5.19. -qpil
2.5.20. -qf
2.5.21. -q --whatrequires
2.6. 비교하기
2.6.1. -K
2.6.2. -Kv
2.6.3. -Kvv
2.7. 검사하기
2.7.1. -V
2.7.2. -Va --nofiles
2.8. spec 화일
2.8.1. spec 화일 정책
2.8.2. 매크로 정의
2.8.3. 다음은 스펙정보의 예제 이다.
2.8.4. 소스 부분
2.8.5. setup
2.8.6. patch
2.8.7. build
2.8.8. install
2.8.9. clean
2.8.10. files
2.8.11. if
2.8.12. Requires
2.8.13. Buildprereq
2.9. rpm 만들기
2.9.1. -bp
2.9.2. -bc
2.9.3. -bi
2.9.4. -bb
2.9.5. -ba
2.9.6. -bs
2.9.7. --rebuild
2.10. rpm2cpio 사용하기
2.10.1. cpio -t
2.10.2. cpio -E list --quiet -iumd
2.10.3. cd imsi; cpio -E ../list --quiet -iumd
2.11. 3.7 패치 적용하기
3. 패키지 그룹
3.1. 커널
3.2. 아나콘다 분석
3.2.1. 개요
3.2.2. 변경사항
3.2.3. anaconda-runtime
3.3. base
3.3.1. base 목록
3.3.2. stage2.img를 만들기 위한 목록
3.3.3. setup
3.3.4. wow-release
3.3.5. wow-menus
3.3.6. wow-logos
3.3.7. bzip2
3.3.8. glibc
3.3.9. gzip
3.3.10. tar
3.3.11. lilo
3.3.12. mount
3.3.13. pam
3.3.14. passwd
3.3.15. rpm
3.3.16. bash
3.3.17. apt-rpm
3.3.18. telnet
3.3.19. ncftp
3.3.20. initscripts
3.3.21. kernel-pcmica-es
3.3.22. man
3.3.23. mkinitrd
3.4. XFree86
3.5. KDE
3.5.1. 의존성관계
3.5.2. qt 304 온더스팟패치
3.5.3. kdebase
3.6. gdk, gtk
3.6.1. 의존성 관계
3.7. GNOME
3.7.1. gnome 띄우기
3.7.2. gnome-core
3.7.3. gdm 2.2.5.5
3.7.4. doorman 1.0.9
3.7.5. wow-faq 0.1
3.7.6. wow-menus 1.4.1.1
3.7.7. gnome-utils
3.7.8. control-center
3.7.9. sawfish
3.7.10. gnome-applets
3.7.11. xinitrc 3.22
3.7.12. gedit 0.9.7
3.8. 유틸
3.8.1. hanterm
3.8.2. 기타
3.9. 인터넷
3.9.1. mozilla
3.9.2. evolution 1.0.5
3.9.3. 기타
3.10. 멀티미디어
3.10.1. xmms 1.2.7
3.10.2. 기타
3.11. 그래픽
3.11.1. GIMP 1.2.3 빌드할때 요구되는 꾸러미
3.11.2. 기타
3.12. 개발툴
3.12.1. 의존성
3.12.2. docbook
3.12.3. 기타
3.13. 서버 관련
3.14. 기타 패키지
3.15. 보안
3.16. 오락
3.16.1. gnome-games 1.4.0.1
4. apt 사용
4.1. 저장소 만들기
4.2. apt-get 사용
4.2.1. 소스리스트
4.2.2. 목록 새로작성
4.2.3. 설치
4.2.4. 업그레이드
5. 설치한후 설정값 변경
5.1. kde 에서 X 띄울때 한글 locale 띄우기
5.2. 윈도우메니저 바꾸기
5.3. 네트워크 , 호스트이름 설정하기
5.4. init 스크립트 amazing wowlinux 바꾸기

1. CD 만들기

1.1. 필요사항(파일)

Anaconda, anaconda-runtime 패키지

Anaconda-runtime이 설치된 경로를 PATH에 추가한다.

export PATH=$PATH;/usr/lib/anaconda-runtime
  


1.2. 부팅 관련 이미지 만들기

레드헷의 시디를 마운트 하면 RedHat/base/ 각종 이미지 화일이 들어가 있다.

stage2.img 화일은 시디가 부팅이 되고 램디스크에 리눅스의 기본 디렉토리, 기본 화일, 아나콘다가 들어 있다.

tmp 에 디렉토리를 만들고 다음과 같이 마운트를 한다.

mount -o loop stage2.img /tmp/stage/
  

그러면 다음과 같은 디렉토리가 압축이 되어 있다.

etc lib lost+found modules proc usr var

이곳에 usr/bin 에 anaconda 실행 화일이 들어 있고, 나머지 화일들은 /usr/lib/anaconda 에 들어 있다.

stage2.img 는 레드햇 빌드 스크립트를 이용하면 만들수 있다.


1.3. 작업 순서

  1. rpm저장소 생성

  2. comps 작성

  3. 초기 hdlist 작성

  4. 패키지순서 파일 및 img파일 생성

  5. iso파일 생성 및 크기 분할

  6. 분할된 크기에 맞는 hdlist재 생성

* 2~3 번까지는 4번의 buildinstall 작업을 위한 선행작업으로, hdlist와 comps는 밀접한 관계가 있다.

/작업 디렉토리/i386/RedHat/RPMS/*.rpm
                        /base/comps
  

파일만 있으면 빌드 스크립트를 이용해서 배포판에 필요한 모든 작업을 하여 iso 를 만들어 준다.


1.4. rpm저장소 생성

배포판 생성에 필요한 rpm들을 특정 저장소에 위치 시킨다. rpm의 초기 위치는 /임의 작업디렉토리/i386/RedHat/RPMS로 변경 할 수 없다.

* 여기서는 임의의 작업 디렉토리를 /home/work/로 가정한다.


1.5. comps 파일 작성법

comps 파일은 설치 과정에서 패키지들이 어떻게 꾸려지는지를 정의하며, 기본 위치는 /i386/RedHat/base이며 이 위치에 파일을 작성/저장한다.

이 파일은 패키지들을 기능에 따라 분리/정의 한다. 아래의 예 :

  • X Window System

  • GNOME

  • Mail/WWW/News Tools

  • Kernel Development

설치하는 도중에 사용자는 "설치 유형" 과 "패키지 선택" 화면을 보고 받게 된다. 어떠한 패키지(컴포넌트)들은 미리 선택되어 있고 어떤 것들은 그렇지 않다.

comps 형식 버전

[1|0] [--hide] [패키지명] {
	? [패키지명] { 
		rpm명
	}
	@ 정의된 패키지명, 
	[(lang language명) : | 아키텍쳐명 : rpm명]
	...
}
  

comps 파일은 첫번째 줄에-최초 한번-현재 comps 양식의 버전을 기술하는 것으로 시작한다.

comps형식버젼과 패키지명, 패키지명과 패키지명 사이는 반드시 공란으로 비워야 하며, “{ }” 로 패키지를 묶어 구분한다.

패키지명과 "{}" 사이는 하나의 공백이 존재한다.

4

1 Base {
  MAKEDEV
  SysVinit
  alpha: aboot
  anacron
  i386: apmd
  ash
  ...
  (lang ko) : han2
}

1 Printer Support {
  a2ps
  psutils
  ...
  chkfontpath
}

0 Kernel Development {
  @ Development
  kernel-source
}

0 Emacs {
  ? X Window System {
    emacs-X11
  }
  ? Authoring/Publishing {
   psgml
  }
  emacs
  emacs-nox
  tamago
  (lang ko): semi
}

0 --hide Server {
  @ Mail/WWW/News Tools
  @ ProFTPD Server
  @ Printer Support
  @ Networked Workstation
  @ Dialup Workstation
  @ Network Server
  @ Network Management Workstation
  @ Development
  @ Utilities
}
  

각 컴포넌트의 이름 앞 기본 선택을 나타내는 1이나 0이 주어진다. 1은 그 컴포넌트가 기본적으로 선택된다는 것을, 0은 선택되지 않음을 의미한다.

첫번째 컴포넌트는 Base이고, 반드시 존재해야 하며 대화상자에 나타나지 않는다는 점에서 특별하다. 당연히 기본 설치는 선택하지 않을 수 없다.

다음에는 그 컴포넌트에 해당하는 rpm 패키지들의 목록이 나온다. 이름들이 rpm 파일 안에 저장되어 있는 이름이 라는 점에 주의하여야 한다.

--hide 옵션은 expert 설치과정을 선택하지 않는다면 목록을 볼 수 없음을 의미한다. (설치유형에서만 보여진다.)

? 는 컴포넌트를 설치할 때 지정한 컴포넌트가 선택되어 있다면 추가로 설치할 패키지를 지정할 수 있다. 위의 예제를 보자면 Emacs 컴포넌트를 설치하는데 X윈도우가 선택되어 있다면 emacs-X11 패키지를 설치하는 것이다.

@ 은 미리 정의한 컴포넌트를 다른 컴포넌트에서 사용하고자 할때 사용된다.

(lang ko) : 은 설치환경이 한글(ko) 일 경우에만 설치되는 패키지를 지정해 줄 수 있다.

i386 : 와 같이 플랫폼 환경에 따라 설치할 패키지를 선택해 줄수 있다. !386 과 같이하면 i386 플랫폼을 뺀 나머지 플랫폼에 설치된다.

* 참고 : 이 파일이 어떻게 parse 되는지 알고 싶다면 /usr/lib/anaconda/comps.py 를 확인 한다.


1.6. hdlist 작성

# genhdist 옵션 작업초기디렉토리

예)

/usr/lib/anaconda-runtime/genhdlist --withnumbers /home/work/i386
  

초기 hdlist, hdlist2를 생성한다.

예)

root@wow:/home/work/i386/RedHat/base# l
total 101160
-rw-r--r--    1 root    root        12216 Jun 13  2001 comps
-rw-r--r--    1 root    root      1382180 Apr  9 10:18 hdlist   <- 생성
-rw-r--r--    1 root    root     10846360 Apr  9 10:18 hdlist2  <- 생성
root@wow:/home/work/i386/RedHat/base#
  


1.7. 패키지순서 파일 및 크기분할

가상의 Evrething설치로 패키지 설치 순서를 정하여 pkgorder파일을 생성하며,

이때 설치에 필요한 파일들을 모아 boot 관련 img파일을 생성한다.

# buildinstall --pkgorder 패키지순서목록 작업초기디렉토리

예)

/usr/lib/anaconda-runtime/buildinstall --pkgorder /home/work/pkgorder ./i386/

배포판 images를 생성한다.

iso파일 생성 및 크기 분할

# splitdistro --fileorder 패키지순서목록 --release 릴리즈명 작업초기디렉토리 아키텍처타입

예)

/usr/lib/anaconda-runtime/splitdistro --fileorder `pwd`/pkgorder --release "WOWLINUX" . i386

* splitdistro 스크립트는 anaconda-runtime 버전 7.2 부터 추가 되어 하위 버전의 경우는 수동으로 작업처리해야 한다.


1.8. 크기 분할에 맞춘 확정 hdlist 재작성

iso 크기에 맞는 패키지들의 목록을 다시 작성한다.

# genhdlist 옵션 --fileorder pkgorder파일 분할작업디렉토리1 ...n

예)

 genhdlist --withnumbers --fileorder ./pkgorder `pwd`/i386-disc1/ `pwd`/i386-disc2/  


1.9. ISO 만들기

1) ftp 일 경우

ftp 에 있는 i386 디렉토리안에 있는 내용을 /home/disk 다운받습니다.

2) 배포판 시디 일경우

/mnt/cdrom 마운트 한것을 /home/disk로 카피를 합니다.

(이때 /home/disk에 화일을 작성해야 하기 때문에 read only 상태이면 안됩니다.)

3) 다음과 같이 실행 합니다.

mkisofs 옵션 볼륨레이블 부트 이미지 화일 카타로그 화일 iso 이미지 부트이미지, 카타로그 화일의 디폴트 디렉토리]

mkisofs -R -T -V "Wowlinux 7.1 " -b images/boot.img -c boot.cat -o /root/paran.iso /home/disk
  

* 옵션 설명

  • -R : 8.3이 넘는 긴 화일명을 사용

  • -T : 디렉토리별로 TRANS>TBL 화일을 만들어 줍니다.

  • -V : 볼륨명

  • -b : boot.img 의 위치를 적어줍니다. (상대 경로)

  • -c : 이미지 화일을 적어 줍니다.

  • 마지막 경로 : 기본 디렉토리의 절대 경로입니다.

이때 boot.cat 을 만들어 줍니다. 이 화일은 없어도 mkisofs 가 자동으로 만들어 줍니다. 그래서 읽고, 쓰기가 가능해야 합니다.


1.10. 확인하기

mount [화일 형식] 옵션 [iso 화일] [iso 내용이 들어갈 디렉토리]

mount -t auto -o loop paran.iso /root/test/


1.11. 시디굽기

cdrecord --scanbus 를 실행해서 장치명을 알아낸다.

cdrecord -v -eject -speed=12 dev=1,0,0 paran.iso


2. RPM 사용하기

2.1. 패키지 디렉토리

rpm 만들때 사용하는 디렉토리는 다음과 같습니다.

/usr/src/redhat/BUILD : 꾸러미 만들때 압축 되어 있는 소스를 풀고, 패치를 적용해서 컴파일 하는 것

/usr/src/redhat/RPMS : 꾸러미가 만들어 지는 곳

/usr/src/redhat/SOURCES : 원본 소스, 패치, 아이콘 화일이 있는 곳

/usr/src/redhat/SPECS : 꾸러미를 만드는데 사용이 되는 명세표 화일이 있는 곳

/usr/src/redhat/SRPMS : 소스 꾸러미가 저장 되는 곳

   /usr/src/redhat/RPMS/athlon
  		 i386
		 i486
		 i586
		 i686
		 noarch
  


2.2. 소스 rpm 풀어서 rpm 만들기

다음과 같은 명령어로 소스 rpm 을 풉니다.

      [root@nalabi nalabi]# rpm -ivh xinitrc-3.6-2wl.src.rpm 
      1:xinitrc                ########################################### [100%]
  

그럼 다음과 같이 소스가 설치 됩니다.

      /usr/src/redhat/SOURCES/xinitrc-3.6.tar.gz
      /usr/src/redhat/SPECS/xinitrc.spec
  

다음과 같이 소스를 압축을 풉니다.

      [root@nalabi SOURCES]# tar xvfz xinitrc-3.6.tar.gz
  

소스를 수정하거나, spec 화일을 수정을 합니다.

수정을 한후 다음과 같이 spec 화일이 있는 곳이나, 경로를 지정해서 rpm 화일을 만듭니다.

      rpm -ba xinitrc.spec
  

그럼 역시 다음과 같은 곳에 rpm 이 만들어 집니다.

      /usr/src/redhat/RPMS/noarch/xinitrc-3.6-2wl.noarch.rpm
  


2.3. 설치하기

2.3.1. -U 옵션

기존의 것을 삭제하고 업그레이드하며 아무 메시지도 보여주지 않는다.

root@wow:~# rpm -U cpp-2.95.3-7.i686.rpm


2.3.2. -Uv 옵션

기존의 것을 삭제하고 업그레이드하며 패키지 이름을 보여준다.

root@wow:~# rpm -Uv gcc-2.95.3-7.i686.rpm
설치할 패키지를 준비하고 있습니다...
gcc-2.95.3-7


2.3.3. -Uvh 옵션

기존의 것을 삭제하고 업그레이드하며 그 설치 진행과 과정 # 표시로 자세히 보여준다.

root@wow:/usr/src/redhat/RPMS/i386# rpm -Uvh hanterm-xf-p19-16wl.i386.rpm 
Preparing...                ########################################### [100%]
   1:hanterm-xf             ########################################### [100%]


2.3.4. -i

기존의 것을 삭제하고 처음 설치한다.

root@wow:/usr/src/redhat/RPMS/i386# rpm -i hanterm-xf-p19-16wl.i386.rpm


2.3.5. --nodeps

의존성관계에 있는 다른 패키지가 설치되어 있지 않다해도 강제 설치한다

root@wow:/usr/src/redhat/RPMS/i386# rpm -Uvh hanterm-xf-p19-16wl.i386.rpm --nodeps
Preparing...                ########################################### [100%]
   1:hanterm-xf             ########################################### [100%]


2.3.6. --force

버전을 무시하고 강제로 설치한다.

rpm 버전을 다운 그레이드 할때 사용한다. (이때는 다른 패키지에 문제가 없는가를 주의 해야 한다)

root@wow:/usr/src/redhat/RPMS/i386# rpm -Uvh hanterm-xf-p19-16wl.i386.rpm  --force --nodeps
Preparing...                ########################################### [100%]
   1:hanterm-xf             ########################################### [100%]


2.4. 지우기

2.4.1. -evv 옵션

아래와 같이 삭제를 하는 동안에 상세한 설명을 보여준다.

root@wow:~# rpm -evv FlashPlayer
D: opening db index       /var/lib/rpm/Packages  mode=0x82
D: locked  db index       /var/lib/rpm/Packages
D: opening db index       /var/lib/rpm/Name  mode=0x82
D: opening db index       /var/lib/rpm/Requirename  mode=0x82
D: getting list of mounted filesystems
D: opening db index       /var/lib/rpm/Basenames  mode=0x82
D: opening db index       /var/lib/rpm/Group  mode=0x82
D: opening db index       /var/lib/rpm/Providename  mode=0x82
D: opening db index       /var/lib/rpm/Conflictname  mode=0x82
D: opening db index       /var/lib/rpm/Triggername  mode=0x82
D: opening db index       /var/lib/rpm/Depends create mode=0x82
D: will remove files test = 0
D:    file: /usr/lib/mozilla/plugins/libflashplayer.so action: remove
D:    file: /usr/lib/mozilla/plugins/ShockwaveFlash.class action: remove
D: running postuninstall script (if any)
D:   ---       1042 FlashPlayer-5.0r48-0wl
D: removing "FlashPlayer" from Name index.
D: removing 2 entries from Basenames index.
D: removing "Applications/Internet" from Group index.
D: removing 3 entries from Requirename index.
D: removing 2 entries from Providename index.
D: closed  db index       /var/lib/rpm/Depends
D: closed  db index       /var/lib/rpm/Triggername
D: closed  db index       /var/lib/rpm/Conflictname
D: closed  db index       /var/lib/rpm/Providename
D: closed  db index       /var/lib/rpm/Requirename
D: closed  db index       /var/lib/rpm/Group
D: closed  db index       /var/lib/rpm/Basenames
D: closed  db index       /var/lib/rpm/Name
D: closed  db index       /var/lib/rpm/Packages


2.4.2. --test

실제로 삭제를 하지 않고 잘지워지는가 연습을 하는 옵션이다.


2.4.3. --nodeps

의존성에 관여하지 않고 지우는 옵션이다.


2.4.4. rpm 이 아래와 같이 중복으로 설치 되어 있을 경우 해결 방법

root@wow:/home/work/test# rpm -qa | grep tux
tux-2.1.0-2
tux-2.1.0-2

root@wow:/home/work/test# rpm -e tux 
error: "tux" specifies multiple packages
root@wow:/home/work/test# rpm -e tux --allmatches


2.5. 패키지 정보 알아내기

2.5.1. -q

질의한 패키지가 설치 되어 있는지 알아본다.

root@wow:~# rpm -q ntsysv     
ntsysv-1.2.22-1


2.5.2. -qa

설치 되어 있는 모든 패키지를 알아본다.

root@wow:~# rpm -qa 
gsm-devel-1.0.10-2
.......


2.5.3. -qa | grep

질의한 패키지가 설치 되어 있는지 알아본다.

root@wow:~# rpm -qa | grep sysv
tksysv-1.3-2
ntsysv-1.2.22-1


2.5.4. -qa | grep -i

질의한 패키지를 찾을 때 대소문자를 구분하지 않는다.

root@wow:~# rpm -qa | grep -i sysv
SysVinit-2.78-15
tksysv-1.3-2
ntsysv-1.2.22-1


2.5.5. -qa | wc -l

현재 설치 되어 있는 총패키지 수

nalabi@wow:~/wowmake$ rpm -qa | wc -l 
    646


2.5.6. -qf

설치 되어 있는 화일이 어느 패키지에 속해 있는지 알아본다.

root@wow:~# rpm -qf /bin/ls       
fileutils-4.0.36-4


2.5.7. -q --whatprovides module-info

모듈이 설치 되어 있는 패키지 알아보기

root@wow:~# rpm -q --whatprovides module-info
kernel-2.4.2-3
kernel-2.4.16-7wl


2.5.8. -qi

패키지 정보 알아보기

root@wow:~# rpm -qi setup                   
Name        : setup                        Relocations: (not relocateable)
Version     : 2.4.7                             Vendor: (none)
Release     : 1wl                           Build Date: Fri Jun 22 13:18:38 2001
Install date: Mon Sep  3 21:08:45 2001      Build Host: jhkim.wowlinux.com
Group       : System Environment/Base       Source RPM: setup-2.4.7-1wl.src.rpm
Size        : 28589                            License: public domain
Summary     : A set of system configuration and setup files.
Description :
The setup package contains a set of important system configuration and
setup files, such as passwd, group, and profile.


2.5.9. -ql

패키지 목록 알아보기

root@wow:~# rpm -ql setup  
/etc/csh.cshrc
/etc/csh.login
/etc/exports
/etc/filesystems
/etc/group
/etc/host.conf
/etc/hosts.allow
/etc/hosts.deny
/etc/inputrc
/etc/motd
/etc/passwd
/etc/printcap
/etc/profile
/etc/profile.d
/etc/protocols
/etc/securetty
/etc/services
/usr/share/doc/setup-2.4.7
/usr/share/doc/setup-2.4.7/uidgid
/var/log/lastlog


2.5.10. -qlv

패키지 목록 자세한 정보 알아보기

root@wow:~# rpm -qlv setup 
-rw-r--r--    1 root    root              380 Jul 26  2000 /etc/csh.cshrc
-rw-r--r--    1 root    root              517 Mar 28  2001 /etc/csh.login
-rw-r--r--    1 root    root                0 Jan 13  2000 /etc/exports
-rw-r--r--    1 root    root               46 Jun 28  2000 /etc/filesystems
-rw-r--r--    1 root    root              290 Jan 13  2000 /etc/group
-rw-r--r--    1 root    root               17 Jul 24  2000 /etc/host.conf
-rw-r--r--    1 root    root              161 Jan 13  2000 /etc/hosts.allow
-rw-r--r--    1 root    root              347 Jan 13  2000 /etc/hosts.deny
-rw-r--r--    1 root    root              546 Apr  8  2001 /etc/inputrc
-rw-r--r--    1 root    root                0 Jan 13  2000 /etc/motd
-rw-r--r--    1 root    root              508 Jun 22  2001 /etc/passwd
-rw-r--r--    1 root    root              289 Jan 13  2000 /etc/printcap
-rw-r--r--    1 root    root              627 Jan 30  2001 /etc/profile
drwxr-xr-x    1 root    root               48 Jun 22  2001 /etc/profile.d
-rw-r--r--    1 root    root             5809 Jan 30  2001 /etc/protocols
-rw-------    1 root    root              114 Mar 29  2000 /etc/securetty
-rw-r--r--    1 root    root            17639 Mar  1  2001 /etc/services
drwxr-xr-x    1 root    root               72 Jun 22  2001 /usr/share/doc/setup-2.4.7
-rw-r--r--    1 root    root             1179 Feb 16  2001 /usr/share/doc/setup-2.4.7/uidgid
-rw-r--r--    1 root    root                0 Jun 22  2001 /var/log/lastlog


2.5.11. -qc

/etc/ 밑에 설치 되는 설정 화일만 알아보기

root@wow:/aaa/RPMS# rpm -qc hpoj
/etc/ptal-start.conf
/etc/ptal-stop.conf
/etc/rc.d/init.d/hpoj


2.5.12. -qdf

문서 화일을 보는 옵션이다.

root@wow:/aaa/RPMS# rpm -qdf /sbin/dump
/usr/share/doc/dump-0.4b21/CHANGES
/usr/share/doc/dump-0.4b21/COPYRIGHT
/usr/share/doc/dump-0.4b21/KNOWNBUGS
/usr/share/doc/dump-0.4b21/MAINTAINERS
/usr/share/doc/dump-0.4b21/README
/usr/share/doc/dump-0.4b21/REPORTING-BUGS
/usr/share/doc/dump-0.4b21/THANKS
/usr/share/doc/dump-0.4b21/TODO
/usr/share/doc/dump-0.4b21/dump.lsm
/usr/share/man/man8/dump.8.gz
/usr/share/man/man8/rdump.8.gz
/usr/share/man/man8/restore.8.gz
/usr/share/man/man8/rrestore.8.gz


2.5.13. -q -requires

패키지가 필요한 모듈 (의존성)

root@wow:/aaa/RPMS# rpm -q -requires dump
rmt  
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
ld-linux.so.2  
libc.so.6  
libcom_err.so.2  
libe2p.so.2  
libext2fs.so.2  
libreadline.so.4.1  
libtermcap.so.2  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
rpmlib(CompressedFileNames) <= 3.0.4-1
root@wow:/aaa/RPMS# 


2.5.14. -ql --dump

패키지 덤프 화일 보기

root@wow:/aaa/RPMS# rpm -ql --dump dump
/etc/dumpdates 0 982172352 d41d8cd98f00b204e9800998ecf8427e 0100664 root disk 1 0 3393 X
/sbin/dump 50140 982172354 6c57678dd26a765ed08e1391d037677f 0100755 root root 0 0 3406 X
/sbin/rdump 4 982172352  0120777 root root 0 0 20372 dump
/sbin/restore 72348 982172354 ff8ae2e4631de1fccd822de888722491 0100755 root root 0 0 7715 X
/sbin/rrestore 7 982172352  0120777 root root 0 0 7713 restore
/usr/share/doc/dump-0.4b21 4096 982172354  040755 root root 0 0 20376 X
/usr/share/doc/dump-0.4b21/CHANGES 27209 979411835 7a851ca3e9ee5f2e028572c85b640639 0100644 root root 0 1 20373 X
/usr/share/doc/dump-0.4b21/COPYRIGHT 2080 975944595 963d90fbeea4272f49e9f88cb01df1b6 0100644 root root 0 1 3409 X
/usr/share/doc/dump-0.4b21/KNOWNBUGS 652 943143432 dd0e6e2b7d193bac42caadc819069c89 0100644 root root 0 1 506 X
/usr/share/doc/dump-0.4b21/MAINTAINERS 527 975944595 d2122fbfa2d61bea97213a9a6a5290ca 0100644 root root 0 1 20352 X
/usr/share/doc/dump-0.4b21/README 353 939648664 7ea33b6ab167e746b61d06c695f9922f 0100644 root root 0 1 2562 X
/usr/share/doc/dump-0.4b21/REPORTING-BUGS 2491 975944595 a553ad81c2415f876a03a3019e6bd0b2 0100644 root root 0 1 3411 X
/usr/share/doc/dump-0.4b21/THANKS 2997 977397292 477772fd2b8cc709d8f8b1640e8b2a6e 0100644 root root 0 1 3394 X
/usr/share/doc/dump-0.4b21/TODO 1613 959884208 056f7dde4660874f9537fedc46289c2a 0100644 root root 0 1 3412 X
/usr/share/doc/dump-0.4b21/dump.lsm 611 979411835 3ab7a18193ddfeb5d7a784008a44b006 0100644 root root 0 1 3413 X
/usr/share/man/man8/dump.8.gz 6112 982172351 1898b0f6d96c9efb471ab9258b204536 0100644 root root 0 1 20374 X
/usr/share/man/man8/rdump.8.gz 9 982172353  0120777 root root 0 1 20285 dump.8.gz
/usr/share/man/man8/restore.8.gz 6292 982172351 f7aa2c9dca172530ff21acaa434a9712 0100644 root root 0 1 20377 X
/usr/share/man/man8/rrestore.8.gz 12 982172353  0120777 root root 0 1 7720 restore.8.gz


2.5.15. -q -scripts

패키지가 설치 되기전 또는 설치 된후에 실행되는 스크립트를 알아본다.

root@wow:/aaa/RPMS# rpm -q -scripts XFree86
preinstall script (through /bin/sh):
# here, we put things that we have moved around (like directories)
# that need to be cleaned up prior to the RPM's installation.
# Ugly. Necessary.
if [ ! -L /usr/X11R6/lib/X11/xkb/compiled ]; then
   if [ -d /usr/X11R6/lib/X11/xkb/compiled ]; then
      mkdir -p /var/lib/xkb 2>/dev/null
      mv -f /usr/X11R6/lib/X11/xkb/compiled/* /var/lib/xkb 2>/dev/null || :
      rmdir /usr/X11R6/lib/X11/xkb/compiled 2> /dev/null
      ln -sf ../../../../../var/lib/xkb /usr/X11R6/lib/X11/xkb/compiled 2>/dev/null || :
   fi
fi
postinstall script (through /bin/sh):
for dir in lbxproxy proxymngr rstart xserver ; do
  [ ! -L /usr/X11R6/lib/X11/$dir -a ! -d /usr/X11R6/lib/X11/$dir ] &&
     ln -snf ../../../../etc/X11/$dir /usr/X11R6/lib/X11/$dir || :
done


2.5.16. -q --queryformat

패키지의 정보를 알아볼때 문자열을 출력해준다.

root@wow:/aaa/RPMS# rpm -q --queryformat 'This is a test\n' dump
This is a test


2.5.17. --querytags

문자열 출력시에 사용되는 태그 값을 알아 본다.

root@wow:/aaa/RPMS# rpm --querytags
HEADERIMAGE
HEADERSIGNATURES
HEADERIMMUTABLE


2.5.18. -qcf

화일과 관련된 설정 화일을 알아본다.

root@wow:/aaa/RPMS# rpm -qcf /bin/bash
/etc/bashrc
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc


2.5.19. -qpil

원하는 패키지로 부터 패키지 정보와 설치되는 곳의 정보를 알아본다.

root@wow:/aaa/RPMS# rpm -qpil setup-2.4.7-2wl.noarch.rpm
Name        : setup                        Relocations: (not relocateable)
Version     : 2.4.7                             Vendor: (none)
Release     : 2wl                           Build Date: Thu Apr 11 17:04:15 2002
Install date: (not installed)               Build Host: localhost
Group       : System Environment/Base       Source RPM: setup-2.4.7-2wl.src.rpm
Size        : 28659                            License: public domain
Summary     : A set of system configuration and setup files.
Description :
The setup package contains a set of important system configuration and
setup files, such as passwd, group, and profile.
/etc/csh.cshrc
/etc/csh.login
/etc/exports
/etc/filesystems
/etc/group
/etc/host.conf
/etc/hosts.allow
/etc/hosts.deny
/etc/inputrc
/etc/motd
/etc/passwd
/etc/printcap
/etc/profile
/etc/profile.d
/etc/protocols
/etc/securetty
/etc/services
/usr/share/doc/setup-2.4.7
/usr/share/doc/setup-2.4.7/uidgid
/var/log/lastlog


2.5.20. -qf

화일로 패키지 알아내기

rpm -qf /usr/bin/X11/mkfontdir
XFree86-xfs-4.0.3-5


2.5.21. -q --whatrequires

의존성 걸린 패키지 알아내기

rpm -q  --whatrequires  xmms
xmms-gnome-1.2.4-2wl
xmms-devel-1.2.4-2wl
xmms-esd-1.2.4-2wl
xmms-gl-1.2.4-2wl
xmms-mikmod-1.2.4-2wl


2.6. 비교하기

2.6.1. -K

md5 체크를 한다.

root@wow:/aaa/RPMS# rpm -K big-cursor-3.0-0wl.i386.rpm 
big-cursor-3.0-0wl.i386.rpm: md5 OK


2.6.2. -Kv

md5 체크를 해서 자세하게 보여준다.

root@wow:/aaa/RPMS# rpm -Kv big-cursor-3.0-0wl.i386.rpm 
big-cursor-3.0-0wl.i386.rpm:
MD5 sum OK: 00e39f57b2d202fbf17366430a7592c4


2.6.3. -Kvv

md5 체크를 해서 좀더 자세하게 보여준다.

root@wow:/aaa/RPMS# rpm -Kvv big-cursor-3.0-0wl.i386.rpm 
D: Expected size:         8647 = lead(96)+sigs(100)+pad(4)+data(8447)
D:   Actual size:         8647
big-cursor-3.0-0wl.i386.rpm:
MD5 sum OK: 00e39f57b2d202fbf17366430a7592c4


2.7. 검사하기

2.7.1. -V

설치된 패키지 검사하기. 설치 후 어떤 파일이 어떻게 바꼈는지 알 수 있다.

root@wow:/usr/src/redhat/RPMS/i386# rpm -V setup
S.5....T c /etc/printcap
S.5....T c /etc/profile


2.7.2. -Va --nofiles

설치된 모든 패키지를 검사하여 의존성에 문제가 있는 것을 찾아낸다.

root@wow:/usr/src/redhat/RPMS/i386# rpm -Va --nofiles 
Unsatisfied dependencies for hanterm-xf-p19-16wl: ttfonts-ko


2.8. spec 화일

2.8.1. spec 화일 정책

변수명과 정의 한 부분과의 간격은 탭(4) 3칸이동 으로 이동한다.

소스나 스펙 화일을 수정하지 않을시는 wow 을 붙이지 않는다

리릴즈 버전은 수정을 할때 마다 하나씩 올려준다.

소스는 어디에서 구했는지 url 을 꼭 적어 준다.

빌드 머신 호스트 이름 : wow


2.8.2. 매크로 정의

spec 화일에서 사용하는 변수나 매크로 정의는 /usr/lib/rpmrc 에 정의 되어 있다.

/etc/rpmrc 의 화일에 자신이 정의한 매크로를 만들어 사용할수 있다.

rpm --showrc 를 하면 spec 화일을 만들때 사용되는 매크로를 볼수 있다.

abi@wow:~/wowmake$ rpm --showrc | more 
ARCHITECTURE AND OS:
build arch            : i386
compatible build archs: athlon i686 i586 i486 i386 noarch
build os              : Linux
compatible build os's : Linux
install arch          : athlon
install os            : Linux
compatible archs      : athlon i686 i586 i486 i386 noarch
compatible os's       : Linux
........................
........................


2.8.3. 다음은 스펙정보의 예제 이다.

Summary:        GNU Compiler Collection
Name:           gcc
Version:        2.95.3
Release:        1wow

License:        GPL
URL:            http://gcc.gnu.org/
Source:         http://gcc.gnu.org/gcc-2.95/%{name}-%{version}.tar.gz
Group:          Development/Languages
Requires:       glibc
BuildRoot:      /var/tmp/%{name}-%{version}

Vendor:         WOWLiNUX co., Ltd <http://www.wowlinux.com>
Distribution:   WOWLiNUX 7.3 DeBak
Packager:       Kim Yong Il <nalabi@formail.org>

%description
A compiler aimed at integrating all the optimizations and features
necessary for a high-performance and stable development environment.

%package -n cpp
Summary: The C Preprocessor.
Group: Development/Languages
Prereq: /sbin/install-info

%description -n cpp
Cpp (or cccp) is the GNU C-Compatible Compiler Preprocessor.
.......................
......................


0) define		: 변수를 사용한다. name 이라는 변수를 gcc 로 치환을 해서 사용한다.
1) Summary		: 간단하게 요약을 해주는 부분
2) Name			: 꾸러미 이름을 지정한다	
3) Version		: 꾸러미 버전을 나타낸다.
4) Release		: 발표한 수를 나타낸다.
5) License		: 허가증을 적어 준다.
6) Group		: 어디에 묶여 있는지를 나타낸다. 
7) Source		: 원본 화일이 어디 있는지 적어 둔다.
8) URL			: 꾸러미 홈페이지를 적어 둔다.
9) Distribution		: 배포본을 나타낸다.
10) Vendor		: 매각인을 표시한다.
11) Packager		: 꾸러미 만든 사람을 적어둔다.
12) description		: 상세한 설명을 적어 둔다.


2.8.4. 소스 부분

Source: gcc-2.95.3.tar.gz

or

Source: http://gcc.gnu.org/gcc-2.95/gcc-2.95.3.tar.gz

이와 같이 Source 라는 부분에 /usr/src/redhat/SOURCES 에 놓여져 있는 소스 이름을 적어 준다.

또는 그 소스를 구한 곳의 전체 경로를 적어 주어도 된다.

rpm spec 화일은 마지만 소스 화일 이름과 버전 만을 참고 해서 꾸러미를 만들어 준다.

또한 원본 화일이 여러개가 있는 경우는 Source0, Source1 ... 이런식으로 쭉 적어 주면 된다.


2.8.5. setup

이부분은 /usr/src/redhat/BUILD 디렉토리에 소스를 화일을 푼다.


2.8.6. patch

%patch -p0 라는 형식으로 패치를 적용한다.

또한 패치가 여러개일 경우는 %patch0 -p0, %patch1 -p0 ... 과 같이 사용한다.


2.8.7. build

컴파일 시키는 소스가 있다면 ./configure 와 make 를 해주는 부분이다.


2.8.8. install

make install 을 해주는 부분이다.

일반적으로 매크로가 정의 되어 있는 부분은 이용해서 사용한다.

예) make prefix=$RPM_BUILD_ROOT%{prefix} install


2.8.9. clean

꾸러미 빌드중 임시 디렉토리가 생성 되는 데 이 빌드 디렉토리를 삭제한다.


2.8.10. files

/var/tmp/패키지이름-버전 디렉토리이 일반적으로 생기는데 여기서 임시로 바이너리및 패키지에 필요한 화일 들은 생성한다

여기에 생성된 화일들을 rpm 으로 묶어 준다.

%{_prefix}/bin/gcc 이런식으로 적어주면 /var/tmp 에 있는 바이너리 gcc 가 rpm 으로 묶인다.

%doc AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO 이와같이 하면 해당 문서들이

/usr/doc/이름-버전-릴리즈 라는 디렉토리로 묶인다.

%config /etc/sendmail.cf 를 지정하면 설치할때 .prmsave 가 붙어서 백업 됩니다.

%dir /usr/lib/sendmai 로 해주면 단지 그 디렉토리만 포함 합니다.

또한 %files -n cpp 하면

cpp 라는 또하나의 화일이름으로 rpm 이 만들어집니다.

이와같이 하면 한번의 rpm 꾸러미 생성 명령으로 여러개의 prm 을 만들어 낼수 있습니다.

또한 이명령을 사용할려면 %package -n cpp 이라고 정의를 해놓고 필요한 spec 화일을 작성해 넣어야 합니다.


2.8.11. if

spec 화일에서는 또한 if 문을 사용할수가 있어 여러개의 spec 화일 만들 필요없이 if 문을 사용해서 꾸러미를 만들수가 있다.

예제

gcc_i386=1

%if%{gcc_i386}
루틴 ( 0 일때 )
%else
루틴 ( 1 일때 )
%endif


2.8.12. Requires

rpm 설치시 필요한 패키지 및 화일


2.8.13. Buildprereq

rpm 을 만들때만 필요


2.9. rpm 만들기

2.9.1. -bp

%prep 에 있는 곳만 실행한다.

rpm -bp gqview.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.64362
.................


2.9.2. -bc

%prep, %build 에 있는 곳만 실행한다.

rpm -bc gqview.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.58496
........................
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.58496
.......................


2.9.3. -bi

%prep, %build, %install 에 있는 곳만 실행한다.

rpm -bi  gqview.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.75805
........................
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.34175
............................
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.74757
................................


2.9.4. -bb

%prep, %build, %install, package (bin) 에 있는 곳만 실행한다.

rpm -bb  gqview.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.75805
........................
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.34175
............................
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.74757
................................
Wrote: /usr/src/redhat/RPMS/i386/gqview-0.10.1-2wl.i386.rpm
......................


2.9.5. -ba

%prep, %build, %install, package (bin, src) 에 있는 spec 화일에 있는 모든 것을 실행한다.

rpm -bb  gqview.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.75805
........................
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.34175
............................
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.74757
................................
Wrote: /usr/src/redhat/SRPMS/gqview-0.10.1-2wl.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/gqview-0.10.1-2wl.i386.rpm
...........................


2.9.6. -bs

소스 rpm (src.rpm) 을 만들어 준다.

root@wow:/usr/src/redhat/SPECS# rpm -bs anaconda.spec
Wrote: /usr/src/redhat/SRPMS/anaconda-7.1-8wl.src.rpm


2.9.7. --rebuild

소스 rpm 을 가지고 다시 빌드를 하는 방법

rpm --rebuild gqview-0.10.1-2wl.src.rpm 


2.10. rpm2cpio 사용하기

2.10.1. cpio -t

rpm에 묶여 있는 바이너리를 보여준다.

root@wow:/home/work/debak/skipjack# rpm2cpio syslinux-1.52-2.i386.rpm | cpio -t  
./usr/bin/syslinux
./usr/share/doc/syslinux-1.52
./usr/share/doc/syslinux-1.52/COPYING
./usr/share/doc/syslinux-1.52/NEWS
./usr/share/doc/syslinux-1.52/README
./usr/share/doc/syslinux-1.52/distrib.doc
./usr/share/doc/syslinux-1.52/keytab-lilo.doc
./usr/share/doc/syslinux-1.52/pxelinux.doc
./usr/share/doc/syslinux-1.52/syslinux.doc
156 blocks
	


2.10.2. cpio -E list --quiet -iumd

필요한 패키지를 축출한다.

list 라는 화일 목록에 축출할 화일이름들을 적어 넣은다음 cpio 명령어에서 list 라는 화일 이름을 부르면 된다.

root@wow:/home/work/debak/skipjack/imsi# l
합계 44
-rw-r--r--    1 root     root           19  4월 24 09:24 list
-rw-r--r--    1 root     root        37073  4월 24 08:54 syslinux-1.52-2.i386.rpm
root@wow:/home/work/debak/skipjack/imsi# cat list           
./usr/bin/syslinux
root@wow:/home/work/debak/skipjack/imsi# rpm2cpio syslinux-1.52-2.i386.rpm |( cpio -E list --quiet -iumd)
root@wow:/home/work/debak/skipjack/imsi# l
합계 48
-rw-r--r--    1 root     root           19  4월 24 09:24 list
-rw-r--r--    1 root     root        37073  4월 24 08:54 syslinux-1.52-2.i386.rpm
drwx------    3 root     root         4096  4월 24 09:31 usr
root@wow:/home/work/debak/skipjack/imsi# l usr/bin/syslinux 
-rwxr-xr-x    1 root     root        15132  6월 25  2001 usr/bin/syslinux


2.10.3. cd imsi; cpio -E ../list --quiet -iumd

imsi 라는 디렉토리를 말들어서 그곳에 모아 둘수도 있다.

rpm2cpio syslinux-1.52-2.i386.rpm |( cd imsi; cpio -E ../list --quiet -iumd)

# l imsi/usr/bin/syslinux 
-rwxr-xr-x    1 root     root        15132  6월 25  2001 imsi/usr/bin/syslinux


2.11. 3.7 패치 적용하기

  • 패치 화일 지정 하기

    꾸러미 이름 - 내용 - wow - 내용 . patch

    예) anaconda-wow-raid.patch

    기본 패치 옵션 : diff -Nur

    지미안 패치 옵션 : diff Ncr

    예) diff -Nur gaim-0.56-orig/src/test.c gaim-0.56/src/test.c > gaim-test-wow-fontset.patch

root@wow:/usr/src/redhat/BUILD# l
total 17
drwxr-xr-x   25 root     root         2344 Apr 15 11:45 anaconda-7.1
drwxr-xr-x   25 root     root         2344 Apr 11 22:55 anaconda-7.1-orig

anaconda-7.1 디렉토리는 변경 화일이고, anaconda-7.1-orig 은 원래 화일이다.

diff -Nur anaconda-7.1-orig/ anaconda-7.1 > anaconda-wow-raid.patch

root@wow:/usr/src/redhat/SPECS# vi anaconda.spec
.................................
Patch20: anaconda-raid.patch
.................................
%prep
.................................
# Reiserfs with raid Patch
%patch20 -p1
.................................

패치를 적용하고 빌드를 해준다.


3. 패키지 그룹

3.1. 커널

smp : 다중 CPU가 지원

화일 시스템 : ext3, reiserfs, xfs 지원

lvm : 로지컬 볼륨 메니저가 지원

unicon 패치 : http://www.okpos.com/wiki/pos/Unicon


3.2. 아나콘다 분석

3.2.1. 개요

아나콘다와 관련된 패키지는 다음과 같다.

anaconda-7.1-nas.i386.rpm

anaconda-7.1-nas.src.rpm

anaconda-runtime-7.1-nas.i386.rpm

다음과 같이 푼다.

rpm -ivh anaconda-7.1-nas.i386.rpm

화일이 어디에 설치가 되어 있는지 확인을 하려면

rpm -ql anaconda

다음과 같이 하면 테스트 모드로 들어 간다.

anaconda --test --method=nfs://fdsfdsa

실행 화일은 /usr/sbin/anaconda 여기 있다.

python 화일은 /usr/lib/anaconda 여기 있다.

python 이미지와 도움말은 /usr/share/anaconda 여기에 있다.


3.2.2. 변경사항

이미지 변경

메시지 번역

1024가 해결 되도록 수정한다.


3.2.3. anaconda-runtime

/usr/lib/anaconda-runtime 에 배포판 만들때 필요한 스크립트가 들어 있다.

buildinstall : 전체적으로 배포판 빌드를 해주는 스크립트

genhdlist : pkorder 만들어 주는 스크립트

mk-images.i386 : images/*.img 를 만들어 주는 스크립트

splitdistro : 배포판을 1장 , 2장 ... 만들어 주는 스크립트

upd-instroot : RedHat/base/stage2.img 를 만들어 주는 스크립트


3.3. base

3.3.1. base 목록

MAKEDEV-3.3-4.i386.rpm
SysVinit-2.84-2.i386.rpm
anacron-2.3-17.i386.rpm
apmd-3.0.2-10.i386.rpm
ash-0.3.7-2.i386.rpm
at-3.1.8-23.i386.rpm
atk-1.0.1-1.i386.rpm
authconfig-4.2.8-4.i386.rpm
authconfig-gtk-4.2.8-4.i386.rpm
basesystem-7.0-2.noarch.rpm
bash-2.05a-13.i386.rpm
bzip2-1.0.2-2.i386.rpm
bzip2-libs-1.0.2-2.i386.rpm
chkconfig-1.3.5-3.i386.rpm
console-tools-19990829-40.i386.rpm
cpio-2.4.2-26.i386.rpm
dev-3.3-4.i386.rpm
dev86-0.15.5-1.i386.rpm
diffutils-2.7.2-5.i386.rpm
dosfstools-2.8-1.i386.rpm
e2fsprogs-1.27-3.i386.rpm
eject-2.0.12-4.i386.rpm
file-3.37-5.i386.rpm
filesystem-2.1.6-2.noarch.rpm
fileutils-4.1-10.i386.rpm
findutils-4.1.7-4.i386.rpm
gawk-3.1.0-4.i386.rpm
glib-1.2.10-5.i386.rpm
glib10-1.0.6-10.i386.rpm
glib2-2.0.1-2.i386.rpm
glibc-2.2.5-34.i386.rpm
glibc-2.2.5-34.i686.rpm
glibc-common-2.2.5-34.i386.rpm
glibc-profile-2.2.5-34.i386.rpm
glibc-utils-2.2.5-34.i386.rpm
grep-2.5.1-1.i386.rpm
gzip-1.3.3-1.i386.rpm
lilo-21.4.4-14.i386.rpm
info-4.1-1.i386.rpm
initscripts-6.67-1.i386.rpm
kbdconfig-1.9.15-2.i386.rpm
kernel-2.4.18-3.i386.rpm
kernel-BOOT-2.4.18-3.i386.rpm
kernel-doc-2.4.18-3.i386.rpm
kernel-source-2.4.18-3.i386.rpm
kernel-pcmcia-cs-3.1.27-18.i386.rpm
gettext-0.11.1-2.i386.rpm
kernel-utils-2.4-7.4.i386.rpm
ksymoops-2.4.4-1.i386.rpm
krb5-libs-1.2.4-1.i386.rpm
kudzu-0.99.52-1.i386.rpm
less-358-24.i386.rpm
lesstif-0.93.18-2.i386.rpm
libstdc++-2.95.3-7.i686.rpm
libtermcap-2.0.8-28.i386.rpm
man-1.5j-6.i386.rpm
man-pages-1.48-2.noarch.rpm
man-pages-ko-20010321-2.noarch.rpm
mingetty-1.00-1.i386.rpm
mkbootdisk-1.4.3-1.i386.rpm
mkinitrd-3.3.10-1.i386.rpm
mktemp-1.5-14.i386.rpm
modutils-2.4.14-3.i386.rpm
mount-2.11n-13.i386.rpm
mouseconfig-4.25-1.i386.rpm
ncurses-5.2-26.i386.rpm
ncurses4-5.0-5.i386.rpm
net-tools-1.60-4.i386.rpm
openldap-2.0.23-4.i386.rpm
openldap-clients-2.0.23-4.i386.rpm
openldap-servers-2.0.23-4.i386.rpm
openldap12-1.2.13-3.i386.rpm
pam-0.75-32.i386.rpm
pam_krb5-1.55-1.i386.rpm
pam_smb-1.1.6-2.i386.rpm
passwd-0.67-1.i386.rpm
pciutils-2.1.9-2.i386.rpm
raidtools-1.00.2-1.3.i386.rpm
rootfiles-7.2-1.noarch.rpm
rpm-4.0.4-7x.18.i386.rpm
rpm-build-4.0.4-7x.18.i386.rpm
rpm-perl-4.0.4-7x.18.i386.rpm
rpm-python-4.0.4-7x.18.i386.rpm
rpm2html-1.7-6.i386.rpm
rpmdb-redhat-7.3-0.20020419.i386.rpm
rpmfind-1.7-7.i386.rpm
rpmlint-0.38-5.noarch.rpm
sed-3.02-11.i386.rpm
setserial-2.17-5.i386.rpm
setup-2.5.12-2wl.noarch.rpm
setuptool-1.8-2.i386.rpm
sh-utils-2.0.11-14.i386.rpm
shadow-utils-20000902-7.i386.rpm
slang-1.4.5-2.i386.rpm
slocate-2.6-1.i386.rpm
tcsh-6.10-6.i386.rpm
syslinux-1.52-2.i386.rpm
sysklogd-1.4.1-8.i386.rpm
tar-1.13.25-4.i386.rpm
termcap-11.0.1-10.noarch.rpm
textutils-2.0.21-1.i386.rpm
time-1.7-16.i386.rpm
timeconfig-3.2.7-1.i386.rpm
tmpwatch-2.8.3-1.i386.rpm
unzip-5.50-3.i386.rpm
utempter-0.5.2-7.i386.rpm
util-linux-2.11n-13.i386.rpm
vim-common-6.1-3.i386.rpm
vim-minimal-6.1-3.i386.rpm
vixie-cron-3.0.1-64.i386.rpm
which-2.13-3.i386.rpm
words-2-18.noarch.rpm
zlib-1.1.4-2.i386.rpm
wow-logos_1.0-2wl_noarch.rpm
wow-release_7.3-2wl_noarch.rpm
lvm-1.0.3-4.i386.rpm
db3-3.3.11-6.i386.rpm
db3-utils-3.3.11-6.i386.rpm
db3x-3.2.9-4.i386.rpm
procps-2.0.7-12.i386.rpm
procps-X11-2.0.7-12.i386.rpm
ttfonts-1.0-9.noarch.rpm
mtools-3.9.8-2.i386.rpm
openssl-0.9.6b-18.i386.rpm
pine-4.44-7.i386.rpm
rsh-0.17-5.i386.rpm
rsh-server-0.17-5.i386.rpm
traceroute-1.4a12-2.i386.rpm
db1-1.85-8.i386.rpm
popt-1.6.4-7x.18.i386.rpm
hwdata-0.14-1.noarch.rpm
apt-0.3.19cnc55-fr7.i386.rpm
iputils-20020124-3.i386.rpm
libuser-0.50.2-1.i386.rpm
wow-release_7.3-2wl_noarch.rpm
gdbm-1.8.0-14.i386.rpm
cyrus-sasl-1.5.24-25.i386.rpm
cyrus-sasl-md5-1.5.24-25.i386.rpm
cracklib-2.7-15.i386.rpm
cracklib-dicts-2.7-15.i386.rpm
newt-0.50.35-1.i386.rpm
pcre-3.9-2.i386.rpm
ncftp-3.1.3-3.i386.rpm
iproute-2.4.7-1.i386.rpm


3.3.2. stage2.img를 만들기 위한 목록

python-1.5.2-38.i386.rpm
python-clap-1.0.0-3.noarch.rpm
python-docs-1.5.2-38.i386.rpm
python-popt-0.8.8-7.x.2.i386.rpm
python-tools-1.5.2-38.i386.rpm
python-xmlrpc-1.5.1-7.x.3.i386.rpm
python2-2.2-16.i386.rpm
python2-docs-2.2-16.i386.rpm
XFree86-100dpi-fonts-4.2.0-8.i386.rpm
XFree86-3DLabs-3.3.6-44.i386.rpm
XFree86-4.2.0-8.i386.rpm
XFree86-75dpi-fonts-4.2.0-8.i386.rpm
XFree86-8514-3.3.6-44.i386.rpm
XFree86-AGX-3.3.6-44.i386.rpm
XFree86-FBDev-3.3.6-44.i386.rpm
XFree86-ISO8859-15-100dpi-fonts-4.2.0-8.i386.rpm
XFree86-ISO8859-15-75dpi-fonts-4.2.0-8.i386.rpm
XFree86-ISO8859-2-100dpi-fonts-4.2.0-8.i386.rpm
XFree86-ISO8859-2-75dpi-fonts-4.2.0-8.i386.rpm
XFree86-ISO8859-9-100dpi-fonts-4.2.0-8.i386.rpm
XFree86-ISO8859-9-75dpi-fonts-4.2.0-8.i386.rpm
XFree86-Mach32-3.3.6-44.i386.rpm
XFree86-Mach64-3.3.6-44.i386.rpm
XFree86-Mach8-3.3.6-44.i386.rpm
XFree86-Mono-3.3.6-44.i386.rpm
XFree86-P9000-3.3.6-44.i386.rpm
XFree86-S3-3.3.6-44.i386.rpm
XFree86-S3V-3.3.6-44.i386.rpm
XFree86-SVGA-3.3.6-44.i386.rpm
XFree86-VGA16-3.3.6-44.i386.rpm
XFree86-W32-3.3.6-44.i386.rpm
XFree86-Xnest-4.2.0-8.i386.rpm
XFree86-Xvfb-4.2.0-8.i386.rpm
XFree86-base-fonts-4.2.0-8.i386.rpm
XFree86-compat-libs-4.0.3-2.i386.rpm
XFree86-compat-modules-3.3.6-44.i386.rpm
XFree86-cyrillic-fonts-4.2.0-8.i386.rpm
XFree86-doc-4.2.0-8.i386.rpm
XFree86-font-utils-4.2.0-8.i386.rpm
XFree86-libs-4.2.0-8.i386.rpm
XFree86-tools-4.2.0-8.i386.rpm
XFree86-truetype-fonts-4.2.0-8.i386.rpm
XFree86-twm-4.2.0-8.i386.rpm
XFree86-xdm-4.2.0-8.i386.rpm
XFree86-xf86cfg-4.2.0-8.i386.rpm
XFree86-xfs-4.2.0-8.i386.rpm
XFree86-xtrap-clients-4.2.0-8.i386.rpm
Xconfigurator-4.10.7-1.i386.rpm
anaconda-7.3-7.i386.rpm
anaconda-images-7.3-6.noarch.rpm
anaconda-runtime-7.3-7.i386.rpm
anaconda-help-7.3-2.noarch.rpm
gtk+-1.2.10-15.i386.rpm
gtk+10-1.0.6-10.i386.rpm
kon2-0.3.9b-7.i386.rpm
kon2-fonts-0.3.9b-7.i386.rpm
pygnome-1.4.2-3.i386.rpm
pygnome-applet-1.4.2-3.i386.rpm
pygnome-capplet-1.4.2-3.i386.rpm
pygnome-gtkhtml-1.4.2-3.i386.rpm
pygnome-libglade-1.4.2-3.i386.rpm
pygtk-libglade-0.6.9-3.i386.rpm
pygtk-0.6.9-3.i386.rpm
pygtk-glarea-0.6.9-3.i386.rpm
pygtk2-1.99.8-7.i386.rpm
pygtk2-libglade-1.99.8-7.i386.rpm
gnome-libs-1.4.1.6-1wl.i386.rpm
gdk-pixbuf-0.14.0-8.i386.rpm
gdk-pixbuf-gnome-0.14.0-8.i386.rpm
gtk-engines-0.12-1wow.i386.rpm
imlib-1.9.13-3.7.x.i386.rpm
imlib-cfgeditor-1.9.13-3.7.x.i386.rpm
libjpeg-6b-19.i386.rpm
libjpeg6a-6a-8.i386.rpm
libpng-1.0.12-2.i386.rpm
libtiff-3.5.7-2.i386.rpm
audiofile-0.2.3-1.i386.rpm
esound-0.2.24-1.i386.rpm
krb5-workstation-1.2.4-1.i386.rpm
busybox-0.60.2-4.i386.rpm
busybox-anaconda-0.60.2-4.i386.rpm
parted-1.4.24-3.i386.rpm
reiserfs-utils-3.x.0j-3.i386.rpm
fonts-ISO8859-2-1.0-3.noarch.rpm
fonts-ISO8859-2-100dpi-1.0-3.noarch.rpm
fonts-ISO8859-2-75dpi-1.0-3.noarch.rpm
fonts-ISO8859-2-Type1-1.0-3.noarch.rpm
fonts-ISO8859-7-1.0-2.noarch.rpm
fonts-ISO8859-7-100dpi-1.0-2.noarch.rpm
fonts-ISO8859-7-75dpi-1.0-2.noarch.rpm
fonts-ISO8859-7-Type1-1.0-2.noarch.rpm
fonts-KOI8-R-1.0-1.noarch.rpm
fonts-KOI8-R-100dpi-1.0-1.noarch.rpm
fonts-KOI8-R-75dpi-1.0-1.noarch.rpm
mt-st-0.7-3.i386.rpm
hdparm-4.6-1.i386.rpm
gettext-0.11.1-2.i386.rpm
ttfonts-ko-1.0.11-9.noarch.rpm  
  


3.3.3. setup

/etc/profile 에 아래와 같은 부분을 추가한다.

PS1='\u@\h:\w\$ '

alias l='ls -l --color'
alias tarx='tar xvfz'
alias tarc='tar cvfz'
alias build='cd /usr/src/redhat/BUILD'
alias rpms='cd /usr/src/redhat/RPMS'
alias src='cd /usr/src/redhat/SOURCES'
alias spec='cd /usr/src/redhat/SPECS'
alias srpm='cd /usr/src/redhat/SRPMS'

export TERM=linux


3.3.4. wow-release

/etc/ 밑에 있는 화일들의 정보를 바꾼다

/etc/issue
/etc/issue.net
/etc/redhat-release
/etc/wow-release


3.3.5. wow-menus

아래의 곳의 메뉴 화일과 이미지를 추가한다.

/usr/share/gnome/wow

/usr/share/pixmaps/*


3.3.6. wow-logos

아래의 곳의 메뉴 화일과 이미지를 추가한다.

/usr/share/pixmaps/wow


3.3.14. passwd

libuser

gdbm

gdbm-devel

openlap-devel

sysrus-sasl


3.3.17. apt-rpm

진보된 패키지 관리툴


3.4. XFree86

XFree86 : 이곳에 startx 가 들어 있다.

의존성 관계

XFree86  
  + Glide3
  |  + XFree86-libs
  |  |  + freetype
  + Xfree86-xfs
  + Xfree-base-fonts
  |  + chkfontpath
  + Xfree86-font-utils
  + utempter
  + xaw3d-devel
	

Xconfigurator

Xconfigurator
  + XFree86
	+ kdbconfig
	+ gdk-pixbuf
	


3.5. KDE

3.5.1. 의존성관계

QT

libpng
libmng
 + cups
     + arts
     + libxml2
	+ QT
	  + kdelibs
	  |    + kdebase
	  |    + kdebase-devel
	  |       + kde-i18n-<nation>
	  |    	  + kdeadmin
	  |       + kdeaddons
	  |       + kdemultimedia
	  + perl
	  + python
 +
	


3.5.3. kdebase

ftp://ftp.kde.org/pub/kde/stable/latest/src/

  • 바탕 화면을 변경 한다.(www.kde-look.org)

    설정파일 : /usr/share/config/kdesktoprc 에서 변경

    전역파일 : /usr/share/wallpapers/

    지역파일 : ~$USERHOME/.kde/share/wallpapers/

  • 바탕 화면을 변경 한다.

    전역파일 : /usr/share/apps/kdesktop/DesktopLinks/

    지역파일 : ~$USERHOME/.kde/share/apps/kdesktop/DesktopLinks/

  • hanterm 메뉴를 추가 한다.

  • www.wowlinux.com 링크추가및 변경을 한다

  • kde splash 이미지 변경

    관련화일 : splash_top.png, splash_bottom.png, splash_active_bar.png, splash_inactive_bar.png

    전역설정 : /usr/share/apps/ksplash/pics

    지역설정 : ~$USERHOME/.kde/share/apps/ksplash/pics

  • kde side 이미지 변경

    관련파일 : kside.png(22x132), kside_title.png(22x1)

    전역설정 : /usr/share/apps/kicker/pics/

    지역설정: ~$USERHOME/.kde/share/apps/kickeer/pics/

  • kde hicolor 테마 변경

    관련파일 : go.png(16x16/22x22/32x32/48x48/64x64) - 시작아이콘

    전역설정 : /usr/share/icons/hicolor/*/apps/

    지역설정: ~$USERHOME/.kde/icons/hicolor/*/apps/

    * kde기본 아이콘 테마는 hicolor이며, 현제 설정중인 아이콘 테마는 "kde제어판-모양새와 쓰임새-아이콘"에 정의되어 있다.

  • kde 기본판넬아이콘 등록

    관련파일 : /usr/share/apps/kicker/default-apps

    kkicker.cpp에서 기본 메뉴를 변경해야 한다.


3.6. gdk, gtk

3.6.1. 의존성 관계

gdk-pixbuf

gdk-pixbuf
	+ libpng
	+ libungif
	+ libjpeg
	+ libtiff
	+ libjpeg
	+ libtiff
	+ libjpeg
	+ libpng
	+ libtiff

gtk+

gtk+
	+ XFree86-libs
	|   + freetype-devel
	|   + freetype
	+ perl


3.7. GNOME

gnome-core

gnome-core
  + libpanel-applet0            
  + wow-utils
  + scrollkeeper
  + gnome-libs
  +  ximian-menu = wowmenus
  |   + gnome-libs
  |   |   + imlib
  |   |   + libungif
  + wow-doorman
  |   + wow-wallpaper
  |   + gtk-engines-thinice
  |   + gtk-themes
  |   + sawfish-themes
  |   |    + sawfish
  |   |    |    + control-center
  |   |    |    |   + bonobo-conf
  |   |    |    |   |   + bonobo
  |   |    |    |   |   |   + oaf
  |   |    |    |   |   |   + libgnomeprint
  |   |    |    |   |   + GConf
  |   |    |    |   + libgal19
  |   |    |    |   + libcapplet
  |   |    |    |   + libgtkhtml20
  |   |    |    + librep
  |   |    |    |   + gmp
  |   |    |    + rep-gtk
  |   |    |    + rep-gtk-gnome

gnome-utils

gnome-utils
  + libgtop

http://gnome.org/

ftp://ftp.gnome.org/pub/GNOME/unstable/latest/sources/

와우리눅스 그놈은 지미안(Ximian) 그놈을 기반으로 하여 꾸러미를 만든다.

이 문서에서의 변경사항은 지미안 그놈 꾸러미에서 패치를 추가한 것이다.

더 자세한 사항은 src.rpm 꾸러미에 포함된 spec 과 patch 를 참고한다.

그놈에서 한글 폰트 설정 형식은 아래와 같다.

-adobe-courier-medium-r-normal-*-*-120-*-*-m-*-iso8859-1,-*-gulim-medium-r-normal--*-120-*-*-*-*-ksc5601.
1987-0

그놈 설치시에 요구되는 꾸러미

  • ImageMagick

  • fam

  • xinetd

그놈 빌드시에 요구되는 꾸러미

  • 그놈 개발 꾸러미들 (꾸러미-devel)

  • bison

  • sharutils


3.7.1. gnome 띄우기

apt-get install gnome-core

apt-get install XFree86

apt-get install Xconfigurator

apt-get install xinitrc

apt-get install ttfonts-ko

apt-get install XFree86-75dpi-fonts

위와 같은 프로 그램을 설치 하고 startx 를 해준다.


3.7.2. gnome-core

  • splash 화면에서 한글이 깨지는 것을 수정 한다.

    gnome-core-1.4.0.6/gsm/splash.c 에서 그림파일을 바꾸어 주면 되고 한글 폰트 정보를 추가해 준다.

    gnome-core-wow-splash.patch

    splash 화면에 들어갈 이미지를 변경 한다.

    spec 화일에 install -m 644 %{SOURCE4} pixmaps/wow-splash.uue를 추가한다.

    /usr/share/pixmaps/wow/wow-splash.png

  • 메시지를 번역 하여 추가 한다.

    1.4.0.8 에 포함된 ko.po 파일을 가져와서 와우그놈에 맞도록 수정 한다.

    gnome-core-ko.po

  • 지미안 그놈 메뉴 형태를 지원 한다.

    gnome-core-foobar-restructure.patch

  • 메뉴의 경로를 변경 한다.

    wow-menus 패키지와 의존하여 동작 하도록 한다.

    gnome-core-wow-desktop-fixup.patch

  • 그놈 힌트에서 한글 깨지는 현상을 수정 한다.

    gnome-core-1.4.0.6/gnome-hint/gnome-hint.c 에서 한글 글꼴 정보를 추가한다

    gnome-hint-font.patch

  • 패널 메뉴에서의 아이콘을 변경 한다.

    /usr/share/pixmaps/wow/wow-button-blue.png

    /usr/share/pixmaps/wow/wow-splsh.png


3.7.3. gdm 2.2.5.5

  • splash 화면을 변경 한다.

    gdm-wow-logo.patch

    /usr/share/pixmaps/wow/wow-gdm-screen.png

  • 한글 지원이 가능 하도록 패치를 한다.

    gdm-2.2.5.5./config.gdm.conf.in 파일에 한글 폰트 정보를 추가 한다

    gdm-conf-hangulfont.patch

  • 메시지 번역을 하여 판올림 하도록 한다.

    화면상에서 번역되지 않은 부분 번역

    gnome-ko.po


3.7.4. doorman 1.0.9

  • 한글 지원이 가능 하도록 패치를 하고 ko.po 화일을 작성 한다.

    doorman-1.0.9/src/doorman-gtkrc, doorman-1.0.9/src/page-config.c

    에서 한글 폰트 정보 추가, font -> fontset 변경, gdk_font_load -> gdk_fontset_load 변경

  • 배경과 테마를 추가 한다.

    doorman-1.0.9/src/doorman.c, doorman-1.0.9/src/theme-page-background.c

    doorman.c 에서는 doorman 실행시에 배경화면을 지정 한다.

    theme-page-background.c 에서 선택할 배경화면을 지정하며, 가장 처음에 있는 것이 기본값이 된다.

    배경화면은 wow-wallpaper 꾸러미에 의존 한다.

    배경화면은 wow-wallpaper 꾸러미에 의존 한다.

    /usr/share/pixmaps/backgrounds/wow/aad.jpeg

    /usr/share/pixmaps/backgrounds/wow/bluestripe.jpeg

    /usr/share/pixmaps/backgrounds/wow/nightjungle.jpeg

    /usr/share/pixmaps/backgrounds/wow/watermonkey.jpeg

    /usr/share/pixmaps/backgrounds/wow/woodmonkey.jpeg

  • 기본 패널 환경 설정

    기본 패널 환경 설정파일은 doorman-1.0.9/panel/ximian-default 에 두면 된다.

    기본 설정을 바꾸고 싶으면 ~/.gnome/panel 의 설정파일 참고 한다.

    /usr/share/doorman/misc/chillmonkey.png

    /usr/share/doorman/misc/monkey.png

    /usr/share/doorman/misc/welcome.png


3.7.5. wow-faq 0.1

- 한글이 깨지지 않게 태그를 추가한다.
<head> 섹션에 <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-KR"> 테그를 추가하면 브라우져에서 한글이 깨지지 않는다.


3.7.6. wow-menus 1.4.1.1

- 메뉴 한글 번역
Name=Program
Name[ko]=프로그램
형식으로 하면 된다.

메뉴의 순서를 바꾸고 싶다면 .order 에서 순서를 바꾸어 주면 된다.

- 경로 변경
/usr/share/gnome/wow


3.7.8. control-center

그놈 설정 도구


3.7.9. sawfish

단축키 설정


3.7.10. gnome-applets

작은 명령 실행기 등등


3.7.11. xinitrc 3.22

- 아미와 그놈 패널과의 문제점 해결을 위한 패치를 한다.
/etc/X11/xinput 에서 #execute XIM_PROGRAM 이후에 줄을 모두 주석처리한다.


3.7.12. gedit 0.9.7

- 한글 지원 패치
gedit-0.9.7/src/prefs.c 파일에서 한글폰트 정보를 추가한다.


3.8. 유틸

3.8.1. hanterm

Haterm 리소스 화일을 wow 에 맞는 것으로 바꾼다.

Hanterm.ad.ko


3.8.2. 기타

vim : 편집기

AcrobatReader : pdf 읽는 화일

big-cursor : 커서를 크게 하기

hpoj : hp 스캐너 사용 하기

libptal0

libptal0-devel

libusb

mkCDrec : 시스템 배업툴 (cd-rom, dat, nfs, disk)

FlashPlayer : 플래쉬 사용하기

edic : 한영사전

rdate : 시간 맞추는 프로그램

ntpdate : 부팅할때 시간 맞추는 프로그램

wget : 자동으로 다운 받는 프로그램

printool : 프린터 설정 도구

mutt: 메일 클라이언트


3.9. 인터넷

3.9.1. mozilla

기본폰트 변경

기본 페이지 및 북마크 설정

한글 프린터설정

l /usr/share/fonts/hangul/munhwa-cid
----------------------->
-rw-r--r--    1 root     root      4665003 10월 17  2000 Munhwa-Regular
-rw-r--r--    1 root     root          530 10월 17  2000 Munhwa-Regular-KSC-EUC-H.gsf
----------------------->

vi /usr/lib/mozilla/defaults/pref/unix.js
----------------------->
pref("print.postscript.nativecode.ko",             "euc-kr");
pref("print.postscript.nativefont.ko",             "Munhwa-Regular-KSC-EUC-H");
----------------------->


3.9.2. evolution 1.0.5

db3 패키지 버전 의존성 패치

evolution-db3-version.patch


3.9.3. 기타

gaim

xchat

galeon

gftp

ssh


3.10. 멀티미디어

3.10.1. xmms 1.2.7

  • 의존성

    libogg, libvorbis

  • 한글 지원 폰트 패치

    xmms-1.2.7/xmms/main.c 에서 한글 폰트 정보를 추가한다.

    xmms-fontset.patch

  • 플레이리스트창 크기 조정

    재생기와 플레이리스트간에 창크기 같도록 수정 한다.

    xmms-conf.path


3.10.2. 기타

soribada : mp3 공유 프로그램입니다. 듣고 싶은 노래가 있으면 이프로그램을 설치해서 다운받아서 사용하면 됩니다.

grip

lame

ogg

ogle

xawtv

mplayer : avi 화일 보는 프로그램

xine

mmsdizent

grecord


3.11. 그래픽

3.11.1. GIMP 1.2.3 빌드할때 요구되는 꾸러미

- GIMP-perl 꾸러미를 빌드하기 위해 Gtk-Perl, perl-PDL, perl-Parse-RecDescent 꾸러미가 
설치되어 있어야 한다.
	


3.11.2. 기타

gqview

gv

dia


3.12. 개발툴

3.12.1. 의존성

glibc-devel
autoconf
  + m4
automake
texinfo
gcc
  + zip

그놈응용 프로그램을 개발하려면 먼저 gnome-core 를 설치 하여 필요한 의존성 들을 모두 설치 한다.
gnome-libs-devel
gtk+-devel
  + XFree86-devel
ORBit-devel
  + indent
imlib
  + libtiff-devel
  + libjpeg-devel
  + zlib-devel
  + libungif-devel
  + esound-devel
  |   + audiofile-devel
  |   |   + pkgconfig
  + control-center-devel
 


3.12.2. docbook

jade
  + sgml_common
  + docbook-dtds
      + xml-common
docbook-style-dsssl

kldp.dsl 화일을 다운 받는다.

hcharacters.sty 화일을 다운 받는다.

cp kldp.dsl /usr/share/texmf/tex/jadetex/

html 화일 만들기

jade -t sgml -i html -d kldp.dsl#html wowmake.sgml

pdf 화일 만들기

jade -t tex -d kldp.dsl#print wowmake.sgml

vi wowmake.tex

---->

\usepackage{hfont, hcharacters}

---->

jadetex wowmake.tex <- 3번 실행

dvips -o wowmake.ps -t a4 wowmake.dvi

ps2pdf wowmake.ps

pdf 화일 보기 : acroread wowmake.pdf


3.12.3. 기타

gcc : 현재 안정 버전인 GCC 2.95.3 을 사용한다.(http://gcc.gnu.org/gcc-2.95/gcc-2.95.3.tar.gz)

srpm 에 spec 화일이 있다.

glade : gtkwidget 을 이용해서 gui 를 만들어주는 툴이다.

devhelp : gcc ,gtk 함수를 알려주는 도움말이다.

anjuta : gtk 기반에서의 gui 로 응용 프로그램 개발해주는 툴이다.

cvs : 개발 도구

kdevelop : qt 기반에서의 gui 로 응용 프로그램 개발해주는 툴이다.


3.13. 서버 관련

mysql

Apache

Bind

Sendmail

Samba

PHP

Webmin : 웹관리툴, 시스템을 웹으로 관리를 하는 툴

ppp


3.14. 기타 패키지

Perl

Python

Tcl/Tk

Paranmail

Zboard

Ghostscript

mrtg

engdic : 영한 사전

webalizer : 웹사이트 분석 프로그램


3.15. 보안

1) nessus : 네트워크 스캐너, 네트워크 취약성 프로그램

2) tripwire : 시스템 무결성 검사 도구 무슨 화일이 변경 되었는가를 체크

3) nmap : 시스템에서 열려 있는 포트를 네트워크를 통해서 스캔하는 프로그램

4) nmapfe : nmap 의 GUI 도구

5) stunnel : ssl 보안 도구

6) snort : 네트워크 포트 상으로 누가 침입을 했는가를 체크(ids)

7) gfcc : ipchains 설정해주는 GUI 툴


3.16. 오락

3.16.1. gnome-games 1.4.0.1

- 경로 수정
실행파일의 경로가 /usr/games 로 되어있는 것을 /usr/bin 으로 되로록 configure옵션과 스>
펙을 수정한다.
	


4. apt 사용

4.1. 저장소 만들기

makeapt.sh 저장소 새로만들고 패키지 업글 되었을때 사용하는 스크립트

#! /bin/sh

# 저장소 기본 경로

APTDIR=/var/ftp/wow


# first : 저장소 처음 만들때
# up    : 패키지 업그레이드 할때

if [ $# -ne 1 -o \( "$1" != "first" -a "$1" != "up" \) ]; then
        echo "Usage: $0 [ first | up ]"
        echo "        first : 저장소 처음 만들때"
        echo "        up    : 패키지 업그레이드 할때"
        exit 1
fi
MODE=$1

###########################################################################
#### REDHAT 7.3 I386 MAIN OS
###########################################################################

if [ "$MODE" = "first" ]; then
        # 디렉토리 생성 

        echo "$APTDIR/7.3-debak/SRPMS.os 디렉토리 생성"
        mkdir -p $APTDIR/7.3-debak/SRPMS.os || exit 1

        echo "$APTDIR/7.3-debak/i386/RPMS.os 디렉토리 생성"
        mkdir -p $APTDIR/7.3-debak/i386/RPMS.os || exit 1


        echo "$APTDIR/7.3-debak/i386/base 디렉토리 생성"
        mkdir -p $APTDIR/7.3-debak/i386/base || exit 1

        # 릴리즈 화일 생성 
        echo "$APTDIR/7.3-debak/i386/base/release.os 화일 생성"
        cat >$APTDIR/7.3-debak/i386/base/release.os ..EOF 
Archive: stable
Component: os
Version: 7.3
Origin: Wow
Label: Wow
Architecture: i386
EOF

fi

if [ "$MODE" = "first" -o "$MODE" = "up" ]; then
        # base 디렉토리에 패키지 정보를 업글 한다.
        echo "7.3-debak/i386 os 패키지를 업글 합니다."
        echo ""
        echo ""
        genbasedir --topdir=$APTDIR 7.3-debak/i386 os
fi
  

필요한 화일 (apt 프로 그램을 설치하면 자동으로 생성 된다)

/usr/bin/genbasedir

/usr/bin/genpkglist

/usr/bin/gensrclist

처음 저장소를 만들때

bash-2.04$ makeapt.sh first 

	

업글할때 사용방법

bash-2.04$ makeapt.sh up
7.3-debak/i386 os 패키지를 업글 합니다.


os: pkglist done
os: srclist done
os: hashfile done
All your base are belong to us !!
  


4.2. apt-get 사용

4.2.1. 소스리스트

/etc/apt/sources.list

rpm ftp://210.181.87.2/wow 7.3-debak/i386 os
	


4.2.2. 목록 새로작성

update : 꾸러미 목록을 새로작성한다.

root@wow:~# apt-get update
Get:1 ftp://210.181.87.2 7.3-debak/i386/base/pkglist.os [50.5kB]
Get:2 ftp://210.181.87.2 7.3-debak/i386 release.os
Ign ftp://210.181.87.2 7.3-debak/i386 release.os        
Fetched 50.5kB in 0s (199kB/s)                          
Processing File Dependencies... Done
Reading Package Lists... Done       
Building Dependency Tree... Done
W: ftp://210.181.87.2/wow/ will not be authenticated.
	


4.2.3. 설치

install : 새로운 꾸러미를 설치한다.

root@wow:~# apt-get install MPlayer
Processing File Dependencies... Done
Reading Package Lists... Done       
Building Dependency Tree... Done
The following NEW packages will be installed:
  MPlayer 
0 packages upgraded, 1 newly installed, 0 to remove(replace) and 60 not upgraded.
Need to get 1431kB of archives. After unpacking 4143kB will be used.
Get:1 ftp://210.181.87.2 7.3-debak/i386/os MPlayer 20020404-2wl [1431kB]
Fetched 1431kB in 0s (7581kB/s)
Executing RPM (-U)...
준비 중...                  ########################################### [100%]
   1:MPlayer                ########################################### [100%]
	


4.2.4. 업그레이드

upgrade : 설치되어 있는 패키지를 새로운 꾸러미로 판올림

root@wow:~# apt-get upgrade                  
Processing File Dependencies... Done
Reading Package Lists... Done       
Building Dependency Tree... Done
The following packages have been kept back
  bonobo-conf evolution gtkhtml gtkhtml-devel mozilla mozilla-devel mozilla-mail mozilla-nspr mozilla-nspr-devel mozilla-nss mozilla-nss-devel
  mozilla-psm xscreensaver 
The following packages will be upgraded
  ami ami-gnome audiofile audiofile-devel bonobo bonobo-devel bug-buddy esound esound-devel gdk-pixbuf gdk-pixbuf-devel gdk-pixbuf-gnome glade glib
  glib-devel gnome-audio gnome-audio-extra gnome-mime-data gnome-user-docs gnome-utils gqview gtk+ gtk+-devel gtk-engines imlib imlib-cfgeditor
  imlib-devel libghttp libghttp-devel libgtop libgtop-devel libole2 libole2-devel librep librep-devel librsvg librsvg-devel libunicode libunicode-devel
  nautilus nautilus-mozilla oaf oaf-devel rep-gtk rep-gtk-gnome rep-gtk-libglade xinitrc 
47 packages upgraded, 0 newly installed, 0 to remove(replace) and 13 not upgraded.
Need to get 48.8MB of archives. After unpacking 61.3MB will be used.
Do you want to continue? [Y/n] 
Get:1 ftp://210.181.87.2 7.3-debak/i386/os glib 1:1.2.10-5wl [244kB]
Get:2 ftp://210.181.87.2 7.3-debak/i386/os ami 1.0.11-9wl [412kB]
Get:3 ftp://210.181.87.2 7.3-debak/i386/os ami-gnome 1.0.11-9wl [96.6kB]
Get:4 ftp://210.181.87.2 7.3-debak/i386/os audiofile 1:0.2.3-2wl [173kB]
Get:5 ftp://210.181.87.2 7.3-debak/i386/os audiofile-devel 1:0.2.3-2wl [392kB]
Get:6 ftp://210.181.87.2 7.3-debak/i386/os bonobo 1.0.20-7wow [1685kB]
Get:7 ftp://210.181.87.2 7.3-debak/i386/os bonobo-devel 1.0.20-7wow [6206kB]
Get:8 ftp://210.181.87.2 7.3-debak/i386/os bug-buddy 1:2.0.8-1wl [239kB]
Get:9 ftp://210.181.87.2 7.3-debak/i386/os esound 1:0.2.25-1wl [131kB]
Get:10 ftp://210.181.87.2 7.3-debak/i386/os esound-devel 1:0.2.25-1wl [92.2kB]
Get:11 ftp://210.181.87.2 7.3-debak/i386/os gdk-pixbuf 1:0.17.0-1wow [638kB]
Get:12 ftp://210.181.87.2 7.3-debak/i386/os gdk-pixbuf-devel 1:0.17.0-1wow [914kB]
Get:13 ftp://210.181.87.2 7.3-debak/i386/os gdk-pixbuf-gnome 1:0.17.0-1wow [37.9kB]
Get:14 ftp://210.181.87.2 7.3-debak/i386/os glade 1:0.6.4-1wl [1356kB]
Get:15 ftp://210.181.87.2 7.3-debak/i386/os glib-devel 1:1.2.10-5wl [351kB]
Get:16 ftp://210.181.87.2 7.3-debak/i386/os gnome-audio 1.4.0-4wl [765kB]
Get:17 ftp://210.181.87.2 7.3-debak/i386/os gnome-audio-extra 1.4.0-4wl [675kB]
Get:18 ftp://210.181.87.2 7.3-debak/i386/os gnome-mime-data 1.0.5-1wl [685kB]
Get:19 ftp://210.181.87.2 7.3-debak/i386/os gnome-user-docs 1.4.1.1-2wl [6445kB]
Get:20 ftp://210.181.87.2 7.3-debak/i386/os gnome-utils 1:1.4.1.2-1wl [2812kB]
Get:21 ftp://210.181.87.2 7.3-debak/i386/os gqview 1.1.3-1wl [266kB]
Get:22 ftp://210.181.87.2 7.3-debak/i386/os gtk+ 1:1.2.10-25wl [1687kB]
Get:23 ftp://210.181.87.2 7.3-debak/i386/os gtk+-devel 1:1.2.10-25wl [4353kB]
Get:24 ftp://210.181.87.2 7.3-debak/i386/os gtk-engines 1:0.12-1wl [771kB]
Get:25 ftp://210.181.87.2 7.3-debak/i386/os imlib 1:1.9.14-1wl [614kB]
Get:26 ftp://210.181.87.2 7.3-debak/i386/os imlib-cfgeditor 1:1.9.14-1wl [252kB]
Get:27 ftp://210.181.87.2 7.3-debak/i386/os imlib-devel 1:1.9.14-1wl [1106kB]
Get:28 ftp://210.181.87.2 7.3-debak/i386/os libghttp 1:1.0.9-8wl [45.2kB]
Get:29 ftp://210.181.87.2 7.3-debak/i386/os libghttp-devel 1:1.0.9-8wl [73.0kB]
Get:30 ftp://210.181.87.2 7.3-debak/i386/os libgtop 1:1.0.13-2wl [365kB]
Get:31 ftp://210.181.87.2 7.3-debak/i386/os libgtop-devel 1:1.0.13-2wl [940kB]
Get:32 ftp://210.181.87.2 7.3-debak/i386/os libole2 0.2.4-3wl [97.7kB]
Get:33 ftp://210.181.87.2 7.3-debak/i386/os libole2-devel 0.2.4-3wl [85.3kB]
Get:34 ftp://210.181.87.2 7.3-debak/i386/os librep 1:0.15.2-1wl [913kB]
Get:35 ftp://210.181.87.2 7.3-debak/i386/os librep-devel 1:0.15.2-1wl [647kB]
Get:36 ftp://210.181.87.2 7.3-debak/i386/os librsvg 1.0.3-2wl [112kB]
Get:37 ftp://210.181.87.2 7.3-debak/i386/os librsvg-devel 1.0.3-2wl [157kB]
Get:38 ftp://210.181.87.2 7.3-debak/i386/os libunicode 0.4.gnome-4wl [65.5kB]
Get:39 ftp://210.181.87.2 7.3-debak/i386/os libunicode-devel 0.4.gnome-4wl [84.1kB]
Get:40 ftp://210.181.87.2 7.3-debak/i386/os nautilus 1.0.6-ximian.10 [9256kB]
Get:41 ftp://210.181.87.2 7.3-debak/i386/os nautilus-mozilla 1.0.6-ximian.10 [38.2kB]
Get:42 ftp://210.181.87.2 7.3-debak/i386/os oaf 0.6.9-1wl [291kB]
Get:43 ftp://210.181.87.2 7.3-debak/i386/os oaf-devel 0.6.9-1wl [17.6kB]
Get:44 ftp://210.181.87.2 7.3-debak/i386/os rep-gtk 1:0.15-7wl [1170kB]
Get:45 ftp://210.181.87.2 7.3-debak/i386/os rep-gtk-gnome 1:0.15-7wl [1063kB]
Get:46 ftp://210.181.87.2 7.3-debak/i386/os rep-gtk-libglade 1:0.15-7wl [3243B]
Get:47 ftp://210.181.87.2 7.3-debak/i386/os xinitrc 3.22-1wl [16.6kB]
Fetched 48.8MB in 4s (10.1MB/s)
Executing RPM (-U)...
준비 중...                  ########################################### [100%]
   1:gnome-audio-extra      ########################################### [  2%]
   2:xinitrc                ########################################### [  4%]
   3:librep                 ########################################### [  6%]
   4:gnome-mime-data        ########################################### [  8%]
   5:glib                   ########################################### [ 10%]
   6:gtk+                   ########################################### [ 12%]
   7:libgtop                ########################################### [ 14%]
   8:oaf                    ########################################### [ 17%]
   9:glib-devel             ########################################### [ 19%]
  10:gtk+-devel             ########################################### [ 21%]
  11:gnome-audio            ########################################### [ 23%]
  12:libunicode             ########################################### [ 25%]
  13:libgtop-devel          ########################################### [ 27%]
  14:imlib                  ########################################### [ 29%]
  15:gtk-engines            ########################################### [ 31%]
  16:imlib-devel            ########################################### [ 34%]
  17:libunicode-devel       ########################################### [ 36%]
  18:librsvg                ########################################### [ 38%]
  19:audiofile              ########################################### [ 40%]
  20:gnome-user-docs        ########################################### [ 42%]
  21:audiofile-devel        ########################################### [ 44%]
  22:gdk-pixbuf             ########################################### [ 46%]
  23:gqview                 ########################################### [ 48%]
  24:gdk-pixbuf-devel       ########################################### [ 51%]
  25:ami                    ########################################### [ 53%]
  26:oaf-devel              ########################################### [ 55%]
  27:librep-devel           ########################################### [ 57%]
  28:esound                 ########################################### [ 59%]
  29:gdk-pixbuf-gnome       ########################################### [ 61%]
  30:esound-devel           ########################################### [ 63%]
  31:glade                  ########################################### [ 65%]
  32:bug-buddy              ########################################### [ 68%]
  33:gnome-utils            ########################################### [ 70%]
  34:bonobo                 ########################################### [ 72%]
  35:bonobo-devel           ########################################### [ 74%]
  36:ami-gnome              ########################################### [ 76%]
  37:imlib-cfgeditor        ########################################### [ 78%]
  38:rep-gtk                ########################################### [ 80%]
  39:rep-gtk-gnome          ########################################### [ 82%]
  40:rep-gtk-libglade       ########################################### [ 85%]
  41:libole2                ########################################### [ 87%]
  42:libole2-devel          ########################################### [ 89%]
  43:librsvg-devel          ########################################### [ 91%]
  44:libghttp               ########################################### [ 93%]
  45:libghttp-devel         ########################################### [ 95%]
  46:nautilus               ########################################### [ 97%]
  47:nautilus-mozilla       ########################################### [100%]
		


5. 설치한후 설정값 변경

5.1. kde 에서 X 띄울때 한글 locale 띄우기

/etc/sysconfig/i18n
----->
LANG="ko_KR"
----->


5.2. 윈도우메니저 바꾸기

/etc/sysconfig/desktop
----->
DESKTOP="KDE"
----->


5.3. 네트워크 , 호스트이름 설정하기

/etc/sysconfig/network

[root@nalabi network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

[nalabi@nalabi network-scripts]$ cat ifcfg-eth0:0
DEVICE=eth0:0
USERCTL=no
ONBOOT=yes
BOOTPROTO=
BROADCAST=192.168.0.255
NETWORK=192.168.0.0
NETMASK=255.255.255.0
IPADDR=192.168.0.11


5.4. init 스크립트 amazing wowlinux 바꾸기

/etc/rc.d/rc.sysinit
---->
Red Hat -> amazing wowlinux
---->




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-10-16 18:50:10
Processing time 0.0277 sec