본문 바로가기

StoreHouse/Server

Gentoo ebuild 사용법

패키지를 설치할 때 주로 emerge를 사용합니다.
emerge로 설치하는 과정에서 특히 컴파일에러가 났을 때,
다시 빌드를 시도하면 패키지 소스를 푸는 작업을 다시 합니다.
Mozilla나 xfree 처럼 덩치 큰 패키지를 빌드할 때 소스 푸는 시간도 꽤 됩니다.
또 압축을 푼 소스에서 소스를 고치거나 개별 패치를 할 필요가 있습니다.
(개인적인 패치는 /var/tmp/portage/패키지명/work/매키지명 아래에서 하면 됩니다.)

이럴 때 유용한 것이 바로 ebuild 명령입니다. ebuild 명령은 다음처럼 사용합니다.

# ebuild ebuild_file_name command [command]

ebuild의 각 command 설명은 다음과 같습니다.

digest 파일 생성
ebuild 파일의 SRC_URI에 있는 파일의 md5um 목록을 만듭니다.
개인이 ebuild 파일을 만들거나 다운받을 ebuild로 빌드를 하려면
빌드전에 반드시 이 명령을 사용해야 합니다.

# ebuild ebuild_file_name digest

파일 다운로드
소스파일과 패치 따위를 다운로드 합니다.

# ebuild ebuild_file_name fetch

압축 풀기 패치
압축을 풀고 패치를 합니다. 이 단계가 끝나면 컴파일할 수 있는 모든 준비가 끝납니다.
일반적으로 소스는 다음 디렉토리에 풀립니다.
/var/tmp/portage/패키지명/work/패키지명

# ebuild ebuild_file_name unpack

컴파일 수행
configure를 실행하고 컴파일을 수행합니다.
emerge로 실패했다면 이 과정을 다시 실행하면 됩니다.

# ebuild ebuild_file_name compile

이미지 파일 생성
컴파일된 바이너리 따위를 /var/tmp/portage/패키지명/image/ 디렉토리로 옮기는 과정입니다.

# ebuild ebuild_file_name install

실제 파일 시스템으로 복사
이미지 디렉토리에서 실제 파일시스템으로 복사하고 패키지를 등록하는 과정입니다.

# ebuild ebuild_file_name qmerge

merge
fetch, unpack, compile, install 그리고 qmerge 를 순차적으로 실행합니다.

# ebuild ebuild_file_name merge

package
/usr/portage/package 디렉토리에 설치할 수 있는 패키지를 생성합니다.

# ebuild ebuild_file_name package

소스파일 지우기
패키지 빌드에 필요한 파일을 지웁니다.

# ebuild ebuild_file_name clean


저는 컴파일 에러가 났을 때, 소스를 확인해 보고 다음과 같은 순서대로 다시 빌드를 시도합니다.

compile -> install -> qmerge -> clean

상세한 사용법은 man ebuild 를 보시기 바랍니다. 이 팁은 man ebuild 요약본이라고 할 수 있습니다.




출처 http://usr.gentoo.or.kr/forum/read.php?table=tip&no=335&page=4&o[sc]=t&o[ss]=ebuild&o[st]=a&o[at]=s&o[sct]=s&o[stt]=s