ebuild란?

1. The Portage tree

Portage tree는 /usr/portage에서 찾을 수 있고, 패키지에 따른 카테고리 디렉토리로 이루어진 계층구조를 가지고 있습니다. 예를 들어, /usr/portage/sys-apps/util-linux 에서 util-linux-2.11y.ebuild 를 찾는다고 해보자. 아마 그곳에는 util-linux-2.11y.ebuild를 기준으로 util-linux의 다른 버전들이 존재할 것입니다. 왜냐하면 버전에 상관없이 특정 패키지의 모든 ebuilds는 /usr/portage 의 mycat/mypkg와 같은 형태의 폴더를 공유하기 때문입니다.

일반적으로 Portage tree는 .ebuild 파일과 패치, 샘플 configure파일들과 같이 동반되는 작은 파일들을 이용합니다. 이런 파일들은 /usr/portage/mycat/mypkg/files 에 저장됩니다. 20kb가 넘는 큰 파일들에 대해서는 상용자의 하드디스크를 낭비하지 않기 위해 Gentoo mirror에 올리도록 되어있습니다.

1.a The files Directory

앞에서 언급하였듯이 각각의 패키지의 하위 디렉토리는 files/ 디렉토리입니다. 패키지의 패치파일, configuration 파일 또는 부수적인 파일들이 이 디렉토리에 추가됩니다. 20kb가 넘는 파일들은 mirror서버에서 다운로드를 받아야됩니다.

2. Ebuild scripts

Ebuild 스크립트는 portage system 전체를 기반으로 합니다. Ebuild는 다운로드, 언팩, 컴파일, 설치에 관한 모든 정보를 포함하고 있으며 설치전 후 또는 구성 과정을 어떻게 수행하는 지에 대한 정보를 가지고 포함하고 있습니다. 대부분의 Portage가 Python으로 작성되어 있는 반면에 ebuild 슼크립트는 bash로 작성되어있습니다.

ebuild 스크립트는 'ebuild' 와 'emerge'에 의해 인터프리트됩니다. 'ebuild' 명령어는 low-level building tool으로써 하나의 ebuild만 빌드할 수 있습니다. 의존성이 만족하는지만 체크할 뿐, 의존성이 만족하지 않는 부분에 대해 자동으로 해결하지 않습니다.

emerge 스크립트는 ebuild의 위한 high-level 엔진으로 의존성이 있다면 자동으로 문제를 해결해줍니다.

(참조) http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=1



출처 : 보리 OS wiki page (http://borios.co.kr/wiki)