Handbook:X86/Portage/Files/ko

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:X86/Portage/Files and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
X86 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


포티지 파일

설정 지시문

포티지 기본 설정은 /usr/share/portage/config/make.globals에 저장합니다. 모든 포티지 설정은 변수에 저장합니다. 어떤 변수들을 포티지에서 살펴보는지 이들이 나중에 어떤 의미를 지니고 있는지는 나중에 설명하겠습니다.

수많은 설정 지시문이 아키텍처에 따라 다르듯이, 포티지에서는 여러분의 프로파일의 일부로서 기본 설정 파일을 지니고 있습니다. 이 프로파일은 /etc/portage/make.profile 심볼릭 링크를 가리키며, 포티지 설정내용은 여러분의 프로파일의 make.defaults와 모든 상위 프로파일에 있습니다. 앞으로 프로파일과 /etc/portage/make.profile 디렉터리를 설명하겠습니다.

설정 변수를 바꾸려면 /usr/share/portage/config/make.globals 또는 make.defaults를 바꾸지 마십시오. 앞의 두 파일에 우선하는 /etc/portage/make.conf를 대신 활용하십시오. /usr/share/portage/config/make.conf.example에서도 내용을 찾아볼 수 있습니다. 이름으로 의미를 함축한 바와 같이, 이런 경우는 거의 예제 파일일 뿐입니다. 포티지에서는 이 파일을 읽지 않습니다.

포티지 설정 변수를 환경 변수처럼 설정할 수 있지만, 추천하지 않습니다.

프로파일별 정보

이미 앞에서 /etc/portage/make.profile 디렉터리를 언급했습니다. 음, 정확히는 디렉터리는 아니고, 다른 어딘가에 여러분 자신의 프로파일을 만들 수 있다 하더라도 기본적으로 /usr/portage/profiles에 있는 프로파일의 심볼릭 링크이며, 기본 프로파일을 가리킵니다. 이 프로파일 심볼릭 링크는 시스템이 속한 프로파일을 가리킵니다.

프로파일에는 해당 프로파일에 속한 시스템의 꾸러미 목록, 프로파일 상에서 동작하지 않는 (또는 가려놓은) 꾸러미 등과 같은 아키텍처별 포티지 정보를 포함합니다.

사용자별 설정

소프트웨어 설치와 관련한 포티지 동작의 우선 설정이 필요할 때, /etc/portage에 있는 파일을 편집해서 끝낼 수 있습니다. /etc/portage 에 있는 파일 사용을 강력히 권장하며, 웬만하면 환경 변수로 우선 설정하지 마십시오!

/etc/portage에서 다음과 같은 파일을 만들 수 있습니다:

  • package.mask : 포티지로 설치하지 말아야 하는 꾸러미 목록 파일
  • package.unmask : 젠투 개발자들이 이머징하는 것을 강력히 만류하지만 그래도 설치할 수 있게 하는 꾸러미 목록 파일
  • package.accept_keywords : 시스템 또는 아키텍처에서 (아직) 꾸러미를 설치하는데 적당함을 발견하지 못했지만, 그래도 설치할 수 있도록 한 꾸러미 목록
  • package.use : 전체 시스템에서 USE 플래그를 사용하도록 제각각의 꾸러미 사용하려는 USE 플래그 목록

이들 요소가 꼭 파일일 필요는 없습니다. 꾸러미 각각에 포함한 단 하나의 파일이어도 됩니다. /etc/portage 디렉터리와 이곳에 만들 수 있는 모든 파일 목록에 대한 더 많은 내용은 포티지 맨페이지에 있습니다.

user $man portage

포티지 파일 및 디렉터리 위치 바꾸기

이전에 언급한 설정 파일은 아무데나 저장할 수 없습니다 - 포티지에서는 항상 정확한 위치에서 설정 파일을 찾습니다. 그러나 포티지에서는 다른 위치를 디렉터리를 구성하고, 소스코드를 저장하며, 젠투 저장소 위치로 활용하는 등 다양한 목적으로 활용합니다.

이들 목적은 잘 알려진 기본 위치를 보유하지만 /etc/portage/make.conf에서 개인 취향에 따라 바꿀 수 있습니다. 이 절의 나머지 부분에서는 어떤 특수 목적의 위치를 포티지에서 사용하는지 파일 시스템의 해당 위치를 어떻게 바꾸는지 설명합니다.

이 문서는 단순히 참고서로서의 의미가 아닙니다. 100% 활용하려면 포티지 및 make.conf의 맨 페이지를 참고하십시오.

user $man portage
user $man make.conf

파일 저장

젠투 저장소

젠투 저장소의 기본 위치는 /usr/portage 입니다. /usr/share/portage/config/repos.confrepos.conf 파일에 지정합니다. 기본 값을 바꾸려면 이 파일을 /etc/portage/repos.conf/gentoo.conf로 복사하고 location 변수값 설정을 바꾸십시오. (변수 값을 바꿔서) 다른 곳에 젠투 저장소를 저장하려면, 바뀐 위치에 따라 /etc/portage/make.profile 심볼릭 링크를 바꿔주는 과정을 잊지 마십시오.

/etc/portage/repos.conf/gentoo.conflocation 변수 값을 바꾸고 나면, 포티지에서 다룰 /etc/portage/make.conf 파일의 PKGDIR, DISTDIR, RPMDIR 변수값들 역시 바꿔야 합니다.

미리 빌드한 바이너리

기본적으로 포티지에서 미리 빌드한 바이너리를 사용하지 않지만, 이를 위해 더 광범위한 지원을 제공합니다. 포티지에 미리 빌드한 꾸러미로 작업하라고 요청하면, /usr/portage/packages에서 꾸러미를 찾습니다. 이 위치는 PKGDIR 변수에 정의되어 있습니다.

소스 코드

프로그램 소스코드는 기본적으로 /usr/portage/distfiles에 저장합니다. 이 위치는 DISTDIR 변수에 정의합니다.

포티지 데이터베이스

포티지는 (어떤 꾸러미를 설치했는지, 꾸러미에 어떤 파일이 속해있는지 등) 시스템의 상태를 /var/db/pkg에 저장합니다.

경고
이 파일을 직접 수정하지 마십시오! 여러분의 시스템에 대한 포티지의 내부 정보가 깨집니다.

포티지 캐시

포티지 캐시(수정 일시, 가상 꾸러미, 의존성 트리 정보 등)는 /var/cache/edb에 저장합니다. 이 위치는 말 그대로 캐시 입니다. 포티지 관련 프로그램이 돌아가고 있는 잠깐 동안의 상태가 아니라면 이 디렉터리를 비울 수 있습니다.

프로그램 빌드

임시 포티지 파일

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

디렉터리 구성

포티지는 이머지할 각각의 꾸러미에 대해 /var/tmp/portage 안에 각각의 빌드 디렉터리를 만듭니다. 이 위치는 BUILD_PREFIX 변수에 지정합니다.

라이브 파일 시스템 위치

기본적으로 포티지는 현재 파일시스템(/)에 모든 파일을 설치하지만, 여러분은 ROOT 환경 변수를 설정하여 위치를 바꿀 수 있습니다. 이는 여러분이 새로운 빌드 이미지를 만들 때 유용합니다.

로깅 기능

Ebuild 로깅

포티지는 각각의 ebuild 에 대해 로그 파일을 만들 수 있지만, PORT_LOGDIR 변수에 설정한 위치가 포티지에서(portage 사용자가) 기록할 수 있을 때 가능합니다. 이 변수는 기본적으로 설정이 되어 있지 않습니다. PORT_LOGDIR을 설정하지 않으면, 새로운 elog로부터 어떤 로그를 받았다 할 지라도 현재 로깅 시스템에서 빌드 로그에 대한 어떤 내용도 받을 수 없습니다.

PORT_LOGDIR 변수를 지정하지 않고 elog를 사용한다면, 아래에서 설명한 바와 같이 빌드 로그와 elog가 저장한 로그를 보실 수 있습니다.

포티지는 elog를 사용하여 세밀한 단위의 기록 기능을 제공합니다:

  • PORTAGE_ELOG_CLASSES: 사용자가 어떤 메시지를 기록할 지 설정할 수 있는 변수입니다. 공백으로 구분할 수 있으며, info, warn, error, log, qa가 있습니다.
    • info: ebuild가 출력하는 "einfo" 메시지를 기록합니다
    • warn: ebuild가 출력하는 "ewarn" 메시지를 기록합니다
    • error: ebuild가 출력하는 "eerror" 메시지를 기록합니다
    • log: 일부 빌드에서 나타나는 "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: custom 모듈을 활성화했을때만 사용합니다. 로그 메시지를 처리할 명령을 지정하는 곳입니다. 참고로 두가지 변수를 사용하도록 할 수 있습니다. ${PACKAGE}는 꾸러미의 이름과 버전이고, ${LOGFILE}은 로그 파일의 절대 경로입니다. 사용 예는 다음과 같습니다:
코드 PORTAGE_ELOG_COMMAND 정의 예제
PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI: 이 변수에는 주소, 사용자, 암호, 메일서버, 포트 번호와 같은 설정 내용을 포함합니다. 기본 설정은 "root@localhost localhost" 입니다. 다음은, 사용자 이름 및 암호 기반의 인증을 개별적인 포트(기본 포트는 25번입니다)에서 필요로 하는 smtp 서버에 대한 사용 예시 입니다.
코드 예제 PORTAGE_ELOG_MAILURI 정의
PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
  • PORTAGE_ELOG_MAILFROM: 로그 메일의 "발신" 주소를 설정하는 변수입니다. 이 변수를 설정하지 않았을 경우 기본값은 "portage"입니다.
  • PORTAGE_ELOG_MAILSUBJECT: 로그 메일의 제목 줄을 만들 수 있게 하는 변수입니다. 참고로, 두가지 변수를 사용할 수 있습니다. ${PACKAGE} 에서 꾸러미 이름과 버전을 표시하며, ${HOST}는 포티지가 실행중인 호스트의 완전한 자격을 갖춘 도메인 이름을 표시합니다. 사용 예는 다음과 같습니다:
코드 예제 PORTAGE_ELOG_MAILSUBJECT 정의
PORTAGE_ELOG_MAILSUBJECT="package \${PACKAGE} was merged on \${HOST} with some messages"
중요
Portage-2.0.* 의 enotice 사용자는 elog와 호환되지 않는 enotice를 완전히 제거해야합니다.