· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
GentooX86 Handbook_Ko_3-1

1. 파일과 디렉토리

1.1. 포티지 파일

1.1.1. 환경설정 지시문

포티지는 /etc/make.globals에 들어있는 기본 환경설정이 딸려옵니다. 이것을 볼때 모든 포티지 환경설정은 변수를 통해 조작된다는 것을 알아채실 것입니다. 포티지가 어떤 변수를 참조하고 그 변수의 의미가 무엇인지는 나중에 설명하겠습니다.

각각의 아키텍처들간에 수많은 환경설정 지시문들간 차이가 있어서 포티지는 독자여러분의 프로파일의 부분으로서 기본 환경설정 파일을 지니고 있습니다. 독자여러분이 지닌 프로파일은 /etc/make.profile 심볼릭 링크가 가리키고 있습니다. 독자 여러분의 make.defaults 와 모든 부모 프로파일에서의 make.default 파일들에 포티지 환경설정 요소들이 설정되어 있습니다. 우리는 이들 프로파일들에 대해 설명할 것이며 /etc/make.profile 디렉토리는 그 다음에 설명될 것입니다.

환경설정 변수를 변경하려 한다면 /etc.make.globals나 make.defaults를 대체하지 마십시오! 대신 이 앞에서 언급된 파일들보다 더 우선시되는 /etc/make.conf를 사용하십시오. 이를 사용하기위해 /usr/share/portage/config/make.conf.example를 찾을 것입니다. 이름에서 볼 수 있듯이 이건 단지 예제파일일 뿐입니다. 포티지는 이 파일을 읽어들이지 않습니다.

또한 포티지 환경설정 변수를 환경변수와 같이 정의할 수 있지만 이는 우리가 추천 하지 않습니다.

1.1.2. 프로파일 지정 정보

우리는 이미 /etc/make.profile 디렉토리를 언급했습니다. 음, 이건 정확한 디렉토리는 아니지만 프로파일을 심볼릭링크 하며 기본적으로 독자 여러분이 자신의 프로필을 어디에든가 만들어서 그것들을 가리키는 대신에 /usr/portage/profiles 중 하나의 기본을 사용합니다. 프로파일의 심볼릭 링크는 시스템에 붙는(맞는) 프로파일을 가리킵니다.

프로파일은 포티지를 위한 아키텍처 지정 정보를 지니고 있는데, 프로파일을 위해 동작하지 않는(masked-out) 패키지 목록, 그리고 프로파일에 상응하는 시스템을 따르는 패키지 목록 등이 이에 포함됩니다.

1.1.3. 사용자 지정 정보

프로그램을 설치하는데 관련된 포티지의 동작을 새로이 재적용하려면 /etc/portage내부의 파일들을 편집해야 할 것입니다. /etc/portage에 있는 파일들의 사용이 강력히 요구되고, 환경 변수를 통해 기능을 새로이 재적용하는것은 "비추"입니다. =)

/etc/portage 에서 다음 파일들을 만들 수 있습니다.

  • 포티지로 절대 설치하고 싶어하지 않는 패키지들의 목록 package.mask
  • 비록 젠투 개발자들이 극단적으로 emerge하는걸 말리지만 그래도!? 설치하고 싶어하는 패키지들의 목록package.unmask
  • 독자여러분의 시스템이나 아키텍처를 위해 (아직) 패키지가 만족스럽게 돌아가는것은 아니지만 설치하고 싶은 패키지들의 목록 package.keywords
  • USE 플래그를 사용할때 전체 시스템에 영향을 주지 않고 각각의 패키지에 사용하기 원할 경우의 USE 플래그 목록 package.use

이것들은 파일들로 꼭 있어야 하진 않습니다. 패키지별로 하나의 파일을 포함하는 디렉토리가 될 수도 있습니다. /etc/portage 디렉토리에 대한 이 이상의 정보와 가능한 파일들의 전체 목록을 보려면 포티지 맨 페이지에서 이것들을 찾아 볼 수 있습니다.

예제 1-1: 포티지 맨 페이지 보기
$ man portage

1.1.4. 포티지 파일과 디렉토리 위치 변경

앞에서 제시된 환경 설정 파일들은 다른 어떤 곳에 저장될 수 없습니다. 포티지는 항상 그 환경설정 파일들을 정확한 위치에서 찾을 것입니다. 하지만 포티지는 다양한 목적으로 다른 많은 경로를 사용합니다. 디렉토리를 만들고, 소스코드를 저장하며, 포티지 트리 경로를 등등...

이들 모든 용도는 잘 알려진 기본 위치에 있지만, 독자 여러분의 취향에 따라 /etc/make.conf를 통해 대체할 수 있습니다. 남은 이 챕터에서는 어떤 특별한 목적으로 포티지가 해당 위치를 사용하는지 이들 독자여러분 시스템에서 어떻게 대체하는지에 대해 설명합니다.

이 문서는 참고자료임에도 불구하고 참고자료처럼 사용된다는 의미는 아닙니다. 만약 완전한 내용이 필요하다면, 포티지와 make.conf 맨페이지를 참조하시기 바랍니다.

예제 1-2: 포티지와 make.conf 맨페이지 보기
$ man portage
$ man make.conf

1.2. 파일 저장

1.2.1. 포티지 트리

포티지 트리의 기본 경로는 /usr/portage 입니다. 이는 PORTDIR 변수에 의해 정의되었습니다. 포티지 트리를 (이 변수의 값을 대체하여) 다른 어느곳에 저장하려면, /etc/make.profile 심볼릭 링크를 바뀐 위치에 따라 즉시 바꿔주는 것을 잊지 마세요.

PORTDIR변수 값을 바꿨다면, PORTDIR이 변경되었다는 것을 알아차리지 못하는 다음 변수들의 값을 변경하고 싶을 것입니다. 이는 포티지가 변수를 다루는 방법 때문입니다. : PKGDIR, DISTDIR, RPMDIR.

1.2.2. 미리 빌드된 바이너리

비록 포티지가 기본적으로 미리 빌드된 바이너리를 사용하진 않겠지만 이를 광범위한 영역에 걸쳐 지원합니다. 미리 빌드된 패키지를 다루도록 포티지에게 요청할때 포티지는 /usr/portage/packages에서 패키지들을 찾을 것입니다. 이 위치는 PKGDIR 변수에 의해 정의되었습니다.

1.2.3. 소스 코드

어플리케이션 소스코드는 기본적으로 /usr/portage/distfiles에 저장됩니다. 이 위치는 DISTDIR변수에 정의됩니다.

1.2.4. 포티지 데이터베이스

독자여러분의 시스템 상황에 대한정보(어떤 패키지가 설치되었고 어떤 파일들이 패키지에 속해있는가 등등)를 포티지는 /var/db/pkg에 저장합니다. 이 파일들을 직접 변경하지 마십시오!! 이로 하여금 독자여러분의 시스템의 포티지의 인식체계가 깨질 것입니다.

1.2.5. 포티지 캐시

포티지 캐시(저장시간, 가상,의존트리정보 등...)는 /var/cache/edb에 저장됩니다. 이 실 위치가 캐시입니다. 어떤 포티지 관련 어플리케이션이 동작중이 아니라면, 이곳을 비울 수 있습니다.

1.3. 소프트웨어 빌드

1.3.1. 임시 포티지 파일

포티지 임시 파일들은 /var/tmp에 기본적으로 저장됩니다. 이는 PORTAGE_TMPDIR 변수에 지정되어 있습니다.

PORTAGE_TMPDIR의 값을 바꾼다면 PORTAGE_TMPDIR 가 바뀌는걸 알아채지못하는 다음 변수들의 값을 대체하고 싶을 것입니다. 이는 포티지가 변수를 다루는 방법 때문입니다. : BUILD_PREFIX.

1.3.2. 디렉토리 생성

포티지는 /var/tmp/portage내에 emerge할 각각의 패키지들을 위한 특정 빌드 디렉토리를 생성합니다. 이는 BUILD_PREFIX변수에 정의 되어 있습니다.

1.3.3. 라이브 파일시스템 위치

기본적으로 포티지는 현재 파일시스템(/)에 모든 파일들을 설치합니다만 ROOT환경변수를 설정하여 경로를 변경할 수 있습니다. 이는 새로이 빌드이미지를 생성하고 싶을때 유용합니다.

1.4. 로깅 특징

1.4.1. ebuild 로깅

포티지는 개개의 ebuild에 대한 로그파일들을 생성할 수 있지만, PORT_LOGDIR변수로 지정한 경로가 포티지(사용자 portage)에 의해 기록가능한 곳일때 가능합니다. 기본적으로 이 변수는 설정되어 있는것이 아닙니다. 만약 이것을 설정하지 않으면 비록 새로운 elog로부터 어떤 로그를 받았다 할지라도 현재 로깅 시스템에 대한 빌드로그를 받지 못할 것입니다. PORT_LOGDIR를 정의했고 elog를 사용한다면, 빌드로그를 받을 수 있고, 아래 설명한바와 같이 elog에 의해 저장된 어떤 로그도 받을 수 있습니다.

포티지는 elog의 사용을 통해 로깅에 대한 잘 다듬어진 제어를 제공합니다.

  • PORTAGE_ELOG_CLASSES: 어떤 메세지가 어디에 기록이 될지 결정합니다. 공백으로 구분된 정보, 경고, 오류, 로그 그리고 QA의 조합을 사용할 수 있습니다.
    • info: ebuild가 출력한 "einfo" 메세지를 기록
    • warn: ebuild가 출력한 "ewarn" 메세지를 기록
    • error: ebuild가 출력한 "eerror" 메세지를 기록
    • log: ebuild가 출력한 "elog" 메세지를 기록
    • qa: ebuild가 출력한 "QA Notice" 메세지를 기록

  • PORTAGE_ELOG_SYSTEM: 로그메세지를 처리할 모듈을 선택합니다. 빈 상태로 내버려두면 로깅 기능이 동작하지 않습니다. 공백으로 구분된 save, custom, syslog, mail, save_summary, mail_summary의 조합을 사용할수 잇습니다. elog를 사용하려면 적어도 하나 이상의 모듈을 선택해야 합니다.
    • save: $PORT_LOGDIR 가 정의되지 않았을 경우 $PORT_LOGDIR/elog 혹은 /var/log/portage/elog에 패키지별로 어떤 하나의 로그를 저장합니다.
    • custom: $PORTAGE_ELOG_COMMAND에 사용자정의된 명령으로 모든 메세지를 전달합니다. 이에 대해서는 나중에 논의될 것입니다.
    • syslog: 설치된 시스템로거로 모든 메세지를 보냅니다.
    • mail: $PORTAGE_ELOG_MAILURI의 사용자정의된 메일 서버로 모든 메세지를 전달합니다. 이 또한 나중에 논의될 것입니다. elog의 메일 기능을 쓰려면 >=portage-2.1.1 가 필요합니다.
    • save_summary: save와 유사하지만, $PORT_LOGDIR가 정의되지 않았을때 $PORT_LOGDIR/elog/summary.log혹은 /var/log/portage/elog/summary.log에 있는 모든 메세지를 병합합니다.
    • mail_summary: mail과 유사하지만 emerge 가 존재할때 단일 메일로 모든 메세지를 전달합니다.
  • PORTAGE_ELOG_COMMAND: 커스텀 모듈이 사용가능하게 되었을때만 사용됩니다. 여기 이것은 로그 메세지를 처리할 명령을 정의할 곳입니다. 유의할 점은 다음 두 변수를 사용하게 할 수 있다는 것입니다. ${PACKAGE}는 패키지 이름과 버전을, ${LOGFILE}은 로그 파일의 절대 주소를 나타냅니다. 다음은 가능한 사용 방법을 나타냅니다.
    • PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI: 여기에는 주소, 사용자, 암호, 메일서버, 포트번호와 같은 메일 모듈을 위한 설정사항을 포함합니다. 기본 설정 내용은 "root@localhost localhost" 입니다..
  • 다음은 개별포트상에서 사용자 이름과 암호를 기반으로 하는 인증을 요구하는 smtp서버를 위한 예제 입니다. (기본포트는 25입니다.)
    • PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
  • PORTAGE_ELOG_MAILFROM: 로그 메일에서 from에 해당하는 주소를 설정하도록 합니다. 만약 이 항목이 설정되어있지 아니하면 "portage" 가 기본값이 됩니다.
  • PORTAGE_ELOG_MAILSUBJECT: 로그 메일을 위한 제목 줄을 생성할 수 있도록 합니다. 유의할 점은 다음 두 변수를 사용하게 할 수 있다는 것입니다. ${PACKAGE}는 패키지 이름과 버전을 표시하게 할 것이고 ${HOST}는 포티지가 실행되고 있는 적당한 완전한 도메인 이름을 나타낼 것입니다.
  • 여기 가능한 예제가 있습니다
    • PORTAGE_ELOG_MAILSUBJECT="package \${PACKAGE} was merged on \${HOST} with some messages"

[http]이전으로 가기



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-02-22 22:24:34
Processing time 0.0018 sec