RedHat 배포판에 보면 기본적인 디렉토리가 있다. 배포판마다 CD 장수가 다르지만 기본적으로 모든 배포판에는 RedHat이라는 디렉토리가 존재한다. 이 디렉토리가 RedHat 배포판에 핵심이다.
우선 1번 CD의 구조를 보면 여러개의 디렉토리로 이루어져 있다. 그중에서 우리가 눈여겨 보아야 할 디렉토리는 두 가지이다. (사실은 다른 디렉토리가 무슨 역할을 하는지 잘 모름..-_-;;)
하나는 isolinux라는 디렉토리이다. 이 디렉토리에는 부팅 이미지가 들어있다. 여기에 있는 부팅이미지로 CD를 넣고 부팅하면 아나콘다가 뜨는 것이다. 이 디렉토리는 그냥 하는 역할만 알 뿐 건드리지 않는 디렉토리이다.
다른 하나는 RedHat이라는 디렉토리이다. RedHat으로 기반으로 나오는 리눅스들은 다른 이름을 쓰지만 똑같은 역할을 하는 디렉토리가 반드시 존재한다. RedHat의 기본 배포판에서는 그냥 RedHat이다. igetlinux에서는 나오는 리눅스 배포판을 IGET으로 되어있다. 이 디렉토리는 다시 두개의 디렉토리로 나누어 진다. 하나는 base이고 하나는 RPMS이다. RPMS에는 말 그대로 설치하여하는 모든 프로그램들의 RPM들이 들어있다. 따라서 별도의 설명은 필요하지 않다.
여기 핵심적인 설명을 할 것이 base의 있는 파일들이다. 여기 있는 파일들이 RPM들을 각 카테고리에 맞게끔 분리해주는 역할을 한다. 그 결정적인 역할을 하는 것이 comps.xml이다. 다른 파일들을 CD들을 만들 때 명령어들을 통해서 자동적으로 생성되므로 신경쓰지 않아도 된다.
오늘은 이 파일에 대해서 간단하게 설명하는 글을 쓰고자 한다.
<group>
<id>authoring-and-publishing</id>
<name>Authoring and Publishing</name>
<name xml:lang="ko">제작과 출판</name>
<description>These tools allow you to create documentation in the DocBook format and convert them to HTML, PDF, Postscript, and text.</description>
<description xml:lang="ko">이 도구를 사용하여 DocBook 형식의 문서를 생성할 수 있으며 생성된 문서를 HTML, PDF, Postscript와 텍스트 형식으로 변환할 수 있습니다.</description>
<default>false</default>
<uservisible>true</uservisible>
<grouplist>
<groupreq>base</groupreq>
</grouplist>
<packagelist>
<packagereq type="mandatory">docbook-simple</packagereq>
<packagereq type="mandatory">docbook-slides</packagereq>
<packagereq type="mandatory">docbook-style-dsssl</packagereq>
<packagereq type="mandatory">docbook-style-xsl</packagereq>
<packagereq type="mandatory">docbook-utils</packagereq>
<packagereq type="mandatory">docbook-utils-pdf</packagereq>
<packagereq type="mandatory">linuxdoc-tools</packagereq>
<packagereq type="mandatory">tetex</packagereq>
<packagereq type="mandatory">tetex-afm</packagereq>
<packagereq type="default">tetex-xdvi</packagereq>
<packagereq type="default">xhtml1-dtds</packagereq>
<packagereq type="mandatory">xmlto</packagereq>
</packagelist>
</group>
위의 내용을 comps.xml 파일을 일부이다. 이 부분은 필자가 이미 한번 편집한 상태이므로 CentOS 4.2 버전의 내용과 조금 다를 수 있다. id는 이 카테고리의 ID이다. 이 ID로 다른 카테고리들과 분류한다. 그 다음의 name은 아나콘다에서 설치할 때 보여주는 이름이다. lang="ko"이라는 부분은 설치할 때 사용하는 언어에 따라 다른 메시지를 보여주기 위해서 있는 것이다. 이것은 설치언어가 한글일 때 다음의 메시지로 보여주는 의미이다.
description은 말 그대로 이 카테고리에 대한 설명이다. 여기서도 xml:lang="ko"는 언어를 의미한다. 여기에는 다른 언어들도 있는데 다른 언어는 사용할 일이 없기 때문에 삭제했다.
default는 사용자 정의로 설치할 때 기본적으로 이 카테고리가 선택이 되어있는지를 보여주는 것이다. 이것은 false이므로 기본적으로 선택되어 있지 않다.
uservisible은 이 카테고리를 사용자가 카테고리를 선택할 때 보여줄 것인가를 나타낸다. 별로 신경쓰지 않아도 되지만 false로 되어 있어서 설치할 때 볼 수 없는 것들도 있다.
grouplist는 이 카테고리를 사용하기 위해서 필요한 다른 카테고리들의 리스트를 보여준다. 위에서 보는 바와 같이 이 카테고리를 사용하기 위해서는 base라는 카테고리가 선택되어 있어야 한다. 그 다음의 group은 이 카테고리를 이루는 RPM들을 목록을 보여주는 것이다.
<packagereq type="default">xhtml1-dtds</packagereq>
이 RPM의 이름은 xhtml11-dtds이다. type에는 default, optional, mandatory 세가지가 올 수 있다.
default와 mandatory의 차이점은 잘 모르겠다. 아무튼 이 두가지는 기본적으로 선택이 되어 있는 항목들이다. 둘 중에 하나는 선택을 해지할 수 없고 하나는 선택을 해지할 수 있는데 둘 중에 어떤건지는 잘 기억이 안난다. 아마 mandatory가 선택을 해지 할 수 없는 항목일 것이다. optional은 기본적이 이 카테고리가 선택되더라도 필수적으로 선택되지 않는다. 이 RPM들을 설치하려면 강제적으로 RPM을 체크해주어야 한다. 리눅스를 설치해 본 사람이라면 무슨 의미인지 알것이라 생각한다.
comps.xml 파일에는 이런 항목들이 약 2000줄이 넘게 들어있다. 이 파일을 잘 찾아보고 anaconda설치에서 카테고리 선택하는 항목과 잘 맞추어보면 어떤 내용인지 쉽게 알 수 있을 것이다.
'Programming > Technic' 카테고리의 다른 글
CentOS 5.3에서 아파치 개인 사용자별 설정 (2) | 2009.08.28 |
---|---|
crontab 설정 (0) | 2009.07.06 |
xen 컴파일 하기~ (0) | 2009.06.29 |
C++ 헤더파일에서 전역변수 선언하여 사용하기 (0) | 2009.01.14 |
Cent OS 4를 이용한 RedHat Linux 배포판 만들기 - 1 (0) | 2008.10.21 |