목차

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의 다른 버전들이 존재할 것입니다.
왜냐하면 버전에 상관없이 특정 패키지의 모든 ebuild들은 /usr/portagemycat/mypkg와 같은 형태의 폴더를 공유하기 때문입니다.

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

1. The files Directory

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

2. Ebuild scripts

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

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

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