배포판 만들기 김 용일 와우리눅스
nalabi (at) wowlinux.com nalabi (at) formail.org
이 종준 와우리눅스
junilove (at) wowlinux.com
허 태을 와우리눅스
kohty (at) wowlinux.com kohty (at) hanmail.net
$Date: 2002/09/28 07:04:48 $ 2002 GNU GPL 0.1 2002-04-16 junilove 최초 작성 0.2 2002-05-09 kohty 수정/추가 template 이 문서는 레드헷의 아나콘다를 이용하여 배포판을 만드는 방법에 대하여 설명합니다.
CD 만들기 필요사항(파일) Anaconda, anaconda-runtime 패키지 Anaconda-runtime이 설치된 경로를 PATH에 추가한다. export PATH=$PATH;/usr/lib/anaconda-runtime 부팅 관련 이미지 만들기 레드헷의 시디를 마운트 하면 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 는 레드햇 빌드 스크립트를 이용하면 만들수 있다. 작업 순서 rpm저장소 생성 comps 작성 초기 hdlist 작성 패키지순서 파일 및 img파일 생성 iso파일 생성 및 크기 분할 분할된 크기에 맞는 hdlist재 생성 * 2~3 번까지는 4번의 buildinstall 작업을 위한 선행작업으로, hdlist와 comps는 밀접한 관계가 있다. /작업 디렉토리/i386/RedHat/RPMS/*.rpm /base/comps 파일만 있으면 빌드 스크립트를 이용해서 배포판에 필요한 모든 작업을 하여 iso 를 만들어 준다. rpm저장소 생성 배포판 생성에 필요한 rpm들을 특정 저장소에 위치 시킨다. rpm의 초기 위치는 /임의 작업디렉토리/i386/RedHat/RPMS로 변경 할 수 없다. * 여기서는 임의의 작업 디렉토리를 /home/work/로 가정한다. 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 를 확인 한다. 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# 패키지순서 파일 및 크기분할 가상의 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 부터 추가 되어 하위 버전의 경우는 수동으로 작업처리해야 한다. 크기 분할에 맞춘 확정 hdlist 재작성 iso 크기에 맞는 패키지들의 목록을 다시 작성한다. # genhdlist 옵션 --fileorder pkgorder파일 분할작업디렉토리1 ...n 예) genhdlist --withnumbers --fileorder ./pkgorder `pwd`/i386-disc1/ `pwd`/i386-disc2/ 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 가 자동으로 만들어 줍니다. 그래서 읽고, 쓰기가 가능해야 합니다. 확인하기 mount [화일 형식] 옵션 [iso 화일] [iso 내용이 들어갈 디렉토리] mount -t auto -o loop paran.iso /root/test/ 시디굽기 cdrecord --scanbus 를 실행해서 장치명을 알아낸다. cdrecord -v -eject -speed=12 dev=1,0,0 paran.iso RPM 사용하기 패키지 디렉토리 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 소스 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 설치하기 -U 옵션 기존의 것을 삭제하고 업그레이드하며 아무 메시지도 보여주지 않는다. root@wow:~# rpm -U cpp-2.95.3-7.i686.rpm -Uv 옵션 기존의 것을 삭제하고 업그레이드하며 패키지 이름을 보여준다. root@wow:~# rpm -Uv gcc-2.95.3-7.i686.rpm 설치할 패키지를 준비하고 있습니다... gcc-2.95.3-7 -Uvh 옵션 기존의 것을 삭제하고 업그레이드하며 그 설치 진행과 과정 # 표시로 자세히 보여준다. root@wow:/usr/src/redhat/RPMS/i386# rpm -Uvh hanterm-xf-p19-16wl.i386.rpm Preparing... ########################################### [100%] 1:hanterm-xf ########################################### [100%] -i 기존의 것을 삭제하고 처음 설치한다. root@wow:/usr/src/redhat/RPMS/i386# rpm -i hanterm-xf-p19-16wl.i386.rpm --nodeps 의존성관계에 있는 다른 패키지가 설치되어 있지 않다해도 강제 설치한다 root@wow:/usr/src/redhat/RPMS/i386# rpm -Uvh hanterm-xf-p19-16wl.i386.rpm --nodeps Preparing... ########################################### [100%] 1:hanterm-xf ########################################### [100%] --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%] 지우기 -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 --test 실제로 삭제를 하지 않고 잘지워지는가 연습을 하는 옵션이다. --nodeps 의존성에 관여하지 않고 지우는 옵션이다. 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 rpm 이 스크립트 에러 인하여 지워지지 않을 경우 rpm -e tux --noscripts 패키지 정보 알아내기 -q 질의한 패키지가 설치 되어 있는지 알아본다. root@wow:~# rpm -q ntsysv ntsysv-1.2.22-1 -qa 설치 되어 있는 모든 패키지를 알아본다. root@wow:~# rpm -qa gsm-devel-1.0.10-2 ....... -qa | grep 질의한 패키지가 설치 되어 있는지 알아본다. root@wow:~# rpm -qa | grep sysv tksysv-1.3-2 ntsysv-1.2.22-1 -qa | grep -i 질의한 패키지를 찾을 때 대소문자를 구분하지 않는다. root@wow:~# rpm -qa | grep -i sysv SysVinit-2.78-15 tksysv-1.3-2 ntsysv-1.2.22-1 -qa | wc -l 현재 설치 되어 있는 총패키지 수 nalabi@wow:~/wowmake$ rpm -qa | wc -l 646 -qf 설치 되어 있는 화일이 어느 패키지에 속해 있는지 알아본다. root@wow:~# rpm -qf /bin/ls fileutils-4.0.36-4 -q --whatprovides module-info 모듈이 설치 되어 있는 패키지 알아보기 root@wow:~# rpm -q --whatprovides module-info kernel-2.4.2-3 kernel-2.4.16-7wl -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. -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 -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 -qc /etc/ 밑에 설치 되는 설정 화일만 알아보기 root@wow:/aaa/RPMS# rpm -qc hpoj /etc/ptal-start.conf /etc/ptal-stop.conf /etc/rc.d/init.d/hpoj -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 -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# -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 -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 -q --queryformat 패키지의 정보를 알아볼때 문자열을 출력해준다. root@wow:/aaa/RPMS# rpm -q --queryformat 'This is a test\n' dump This is a test --querytags 문자열 출력시에 사용되는 태그 값을 알아 본다. root@wow:/aaa/RPMS# rpm --querytags HEADERIMAGE HEADERSIGNATURES HEADERIMMUTABLE -qcf 화일과 관련된 설정 화일을 알아본다. root@wow:/aaa/RPMS# rpm -qcf /bin/bash /etc/bashrc /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc -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 -qf 화일로 패키지 알아내기 rpm -qf /usr/bin/X11/mkfontdir XFree86-xfs-4.0.3-5 -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 비교하기 -K md5 체크를 한다. root@wow:/aaa/RPMS# rpm -K big-cursor-3.0-0wl.i386.rpm big-cursor-3.0-0wl.i386.rpm: md5 OK -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 -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 검사하기 -V 설치된 패키지 검사하기. 설치 후 어떤 파일이 어떻게 바꼈는지 알 수 있다. root@wow:/usr/src/redhat/RPMS/i386# rpm -V setup S.5....T c /etc/printcap S.5....T c /etc/profile -Va --nofiles 설치된 모든 패키지를 검사하여 의존성에 문제가 있는 것을 찾아낸다. root@wow:/usr/src/redhat/RPMS/i386# rpm -Va --nofiles Unsatisfied dependencies for hanterm-xf-p19-16wl: ttfonts-ko spec 화일 spec 화일 정책 변수명과 정의 한 부분과의 간격은 탭(4) 3칸이동 으로 이동한다. 소스나 스펙 화일을 수정하지 않을시는 wow 을 붙이지 않는다 리릴즈 버전은 수정을 할때 마다 하나씩 올려준다. 소스는 어디에서 구했는지 url 을 꼭 적어 준다. 빌드 머신 호스트 이름 : wow 매크로 정의 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 ........................ ........................ 다음은 스펙정보의 예제 이다. 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 : 상세한 설명을 적어 둔다. 소스 부분 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 ... 이런식으로 쭉 적어 주면 된다. setup 이부분은 /usr/src/redhat/BUILD 디렉토리에 소스를 화일을 푼다. patch %patch -p0 라는 형식으로 패치를 적용한다. 또한 패치가 여러개일 경우는 %patch0 -p0, %patch1 -p0 ... 과 같이 사용한다. build 컴파일 시키는 소스가 있다면 ./configure 와 make 를 해주는 부분이다. install make install 을 해주는 부분이다. 일반적으로 매크로가 정의 되어 있는 부분은 이용해서 사용한다. 예) make prefix=$RPM_BUILD_ROOT%{prefix} install clean 꾸러미 빌드중 임시 디렉토리가 생성 되는 데 이 빌드 디렉토리를 삭제한다. 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 화일을 작성해 넣어야 합니다. if spec 화일에서는 또한 if 문을 사용할수가 있어 여러개의 spec 화일 만들 필요없이 if 문을 사용해서 꾸러미를 만들수가 있다. 예제 gcc_i386=1 %if%{gcc_i386} 루틴 ( 0 일때 ) %else 루틴 ( 1 일때 ) %endif Requires rpm 설치시 필요한 패키지 및 화일 Buildprereq rpm 을 만들때만 필요 rpm 만들기 -bp %prep 에 있는 곳만 실행한다. rpm -bp gqview.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.64362 ................. -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 ....................... -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 ................................ -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 ...................... -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 ........................... -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 --rebuild 소스 rpm 을 가지고 다시 빌드를 하는 방법 rpm --rebuild gqview-0.10.1-2wl.src.rpm rpm2cpio 사용하기 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 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 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 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 ................................. 패치를 적용하고 빌드를 해준다. 패키지 그룹 커널 smp : 다중 CPU가 지원 화일 시스템 : ext3, reiserfs, xfs 지원 lvm : 로지컬 볼륨 메니저가 지원 unicon 패치 : http://www.okpos.com/wiki/pos/Unicon 아나콘다 분석 개요 아나콘다와 관련된 패키지는 다음과 같다. 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 여기에 있다. 변경사항 이미지 변경 메시지 번역 1024가 해결 되도록 수정한다. anaconda-runtime /usr/lib/anaconda-runtime 에 배포판 만들때 필요한 스크립트가 들어 있다. buildinstall : 전체적으로 배포판 빌드를 해주는 스크립트 genhdlist : pkorder 만들어 주는 스크립트 mk-images.i386 : images/*.img 를 만들어 주는 스크립트 splitdistro : 배포판을 1장 , 2장 ... 만들어 주는 스크립트 upd-instroot : RedHat/base/stage2.img 를 만들어 주는 스크립트 base 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 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 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 wow-release /etc/ 밑에 있는 화일들의 정보를 바꾼다 /etc/issue /etc/issue.net /etc/redhat-release /etc/wow-release wow-menus 아래의 곳의 메뉴 화일과 이미지를 추가한다. /usr/share/gnome/wow /usr/share/pixmaps/* wow-logos 아래의 곳의 메뉴 화일과 이미지를 추가한다. /usr/share/pixmaps/wow bzip2 glibc gzip tar lilo mount pam passwd libuser gdbm gdbm-devel openlap-devel sysrus-sasl rpm bash apt-rpm 진보된 패키지 관리툴 telnet ncftp initscripts kernel-pcmica-es man mkinitrd 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 KDE 의존성관계 QT libpng libmng + cups + arts + libxml2 + QT + kdelibs | + kdebase | + kdebase-devel | + kde-i18n-<nation> | + kdeadmin | + kdeaddons | + kdemultimedia + perl + python + qt 304 온더스팟패치 qt-3.0.4 에 kor_onthespot.patch 적용 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에서 기본 메뉴를 변경해야 한다. gdk, gtk 의존성 관계 gdk-pixbuf gdk-pixbuf + libpng + libungif + libjpeg + libtiff + libjpeg + libtiff + libjpeg + libpng + libtiff gtk+ gtk+ + XFree86-libs | + freetype-devel | + freetype + perl 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 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 를 해준다. 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 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 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 wow-faq 0.1 - 한글이 깨지지 않게 태그를 추가한다. <head> 섹션에 <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-KR"> 테그를 추가하면 브라우져에서 한글이 깨지지 않는다. wow-menus 1.4.1.1 - 메뉴 한글 번역 Name=Program Name[ko]=프로그램 형식으로 하면 된다. 메뉴의 순서를 바꾸고 싶다면 .order 에서 순서를 바꾸어 주면 된다. - 경로 변경 /usr/share/gnome/wow gnome-utils gfontsel control-center 그놈 설정 도구 sawfish 단축키 설정 gnome-applets 작은 명령 실행기 등등 xinitrc 3.22 - 아미와 그놈 패널과의 문제점 해결을 위한 패치를 한다. /etc/X11/xinput 에서 #execute XIM_PROGRAM 이후에 줄을 모두 주석처리한다. gedit 0.9.7 - 한글 지원 패치 gedit-0.9.7/src/prefs.c 파일에서 한글폰트 정보를 추가한다. 유틸 hanterm Haterm 리소스 화일을 wow 에 맞는 것으로 바꾼다. Hanterm.ad.ko 기타 vim : 편집기 AcrobatReader : pdf 읽는 화일 big-cursor : 커서를 크게 하기 hpoj : hp 스캐너 사용 하기 libptal0 libptal0-devel libusb mkCDrec : 시스템 배업툴 (cd-rom, dat, nfs, disk) FlashPlayer : 플래쉬 사용하기 edic : 한영사전 rdate : 시간 맞추는 프로그램 ntpdate : 부팅할때 시간 맞추는 프로그램 wget : 자동으로 다운 받는 프로그램 printool : 프린터 설정 도구 mutt: 메일 클라이언트 인터넷 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"); -----------------------> evolution 1.0.5 db3 패키지 버전 의존성 패치 evolution-db3-version.patch 기타 gaim xchat galeon gftp ssh 멀티미디어 xmms 1.2.7 의존성 libogg, libvorbis 한글 지원 폰트 패치 xmms-1.2.7/xmms/main.c 에서 한글 폰트 정보를 추가한다. xmms-fontset.patch 플레이리스트창 크기 조정 재생기와 플레이리스트간에 창크기 같도록 수정 한다. xmms-conf.path 기타 soribada : mp3 공유 프로그램입니다. 듣고 싶은 노래가 있으면 이프로그램을 설치해서 다운받아서 사용하면 됩니다. grip lame ogg ogle xawtv mplayer : avi 화일 보는 프로그램 xine mmsdizent grecord 그래픽 GIMP 1.2.3 빌드할때 요구되는 꾸러미 - GIMP-perl 꾸러미를 빌드하기 위해 Gtk-Perl, perl-PDL, perl-Parse-RecDescent 꾸러미가 설치되어 있어야 한다. 기타 gqview gv dia 개발툴 의존성 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 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 기타 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 로 응용 프로그램 개발해주는 툴이다. 서버 관련 mysql Apache Bind Sendmail Samba PHP Webmin : 웹관리툴, 시스템을 웹으로 관리를 하는 툴 ppp 기타 패키지 Perl Python Tcl/Tk Paranmail Zboard Ghostscript mrtg engdic : 영한 사전 webalizer : 웹사이트 분석 프로그램 보안 1) nessus : 네트워크 스캐너, 네트워크 취약성 프로그램 2) tripwire : 시스템 무결성 검사 도구 무슨 화일이 변경 되었는가를 체크 3) nmap : 시스템에서 열려 있는 포트를 네트워크를 통해서 스캔하는 프로그램 4) nmapfe : nmap 의 GUI 도구 5) stunnel : ssl 보안 도구 6) snort : 네트워크 포트 상으로 누가 침입을 했는가를 체크(ids) 7) gfcc : ipchains 설정해주는 GUI 툴 오락 gnome-games 1.4.0.1 - 경로 수정 실행파일의 경로가 /usr/games 로 되어있는 것을 /usr/bin 으로 되로록 configure옵션과 스> 펙을 수정한다. apt 사용 저장소 만들기 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 !! apt-get 사용 소스리스트 /etc/apt/sources.list rpm ftp://210.181.87.2/wow 7.3-debak/i386 os 목록 새로작성 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. 설치 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%] 업그레이드 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%] 설치한후 설정값 변경 kde 에서 X 띄울때 한글 locale 띄우기 /etc/sysconfig/i18n -----> LANG="ko_KR" -----> 윈도우메니저 바꾸기 /etc/sysconfig/desktop -----> DESKTOP="KDE" -----> 네트워크 , 호스트이름 설정하기 /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 init 스크립트 amazing wowlinux 바꾸기 /etc/rc.d/rc.sysinit ----> Red Hat -> amazing wowlinux ---->