· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
GentooX86 Handbook_Ko_2-2


1. USE 플래그

1.1. USE 플래그가 뭐죠?

1.1.1. USE 플래그에 숨겨진 아이디어

젠투를 설치할 때 (혹은 어떤 다른 배포판, 아니면 다른 운영체제라든지) 작업할 환경에 따른 결정을 하게 됩니다. 서버를 위한 설치는 웍스테이션을 위한 설정과는 차이가 있습니다. (같은 웍스테이션이라 해도) 게임 웍스테이션은 3D 웍스테이션과 차이가 있고요.

이 얘기는 어떤 패키지를 설치할지 선택하는것 뿐만 아니라 지원할 몇몇 패키지의 특징을 선택하는 것에도 또한 해당됩니다. OpenGL이 필요하지 않다면 왜 그 많은 패키지들을 지원하는 OpenGL을 빌드하고 설치하는걸 싫어할까요? 만약 KDE를 사용하기 싫다면 흠잡을데 없이 동작하는 패키지들을 지원하는 KDE와 함께 컴파일되는 패키지들을 왜 싫어할까요?

사용자들로 하여금 어떤 것을 설치하고 활성화하느냐 그렇지 않느냐 돕기 위해 우리는 쉬운 방법으로 그들 환경을 설정하게 하는 것이 필요했습니다. 이는 유용한 결정을 내리도록 하는 패키지 관리 시스템인 포티지로 하여금 절차를 간편하게 수행하고 사용자들이 진정 원하는 결정을 하도록 힘이 됩니다.

1.1.2. USE 플래그의 정의

USE 플래그들을 입력하세요. 각각의 플래그들은 몇몇 개념들을 위해 의존 정보를 지원하는 구현물들입니다. 몇몇 USE 플래그들을 정의하면 포티지는 선택한 키워드들을 통해 독자여러분이 원하는 지원사항이 무엇인지 알게 될 것입니다. 물론 이는 패키지를 위한 의존정보의 대안수단이 되기도 합니다.

이제 특정한 예를 보도록 합니다. kde키워드가 있습니다. USE 변수에 이 키워드가 없다면 선택적으로 KDE를 지원하는 모든 패키지는 KDE지원 없이 컴파일 될 것입니다. 선택적으로 KDE에 의존하는 모든 패키지들은 (의존하는)KDE라이브러리 들을 설치하지 않고 설치될 것입니다. kde키워드를 정의했다면 이런 패키지들은 KDE지원과 더불어 컴파일 될 것이며 KDE 라이브러리들은 의존대상으로서 설치될 것입니다.

올바른 키워드 정의를 통하여, 독자여러분의 필요성에 따라 확실하게 맞춰진 시스템을 받게 될 것입니다.

1.1.3. 어떤 USE 플래그가 있나요?

USE 플래그에는 두가지 유형이 있습니다. 전역 타입과 지역 타입입니다.

  • 전역 USE 플래그는 시스템범위에서 대부분의 패키지에 사용됩니다. 이는 대부분의 사람들이 USE 플래그로 보는 것들입니다.
  • 지역 USE 플래그는 패키지의 특정 목적을 결정하기 위해 개별 패키지에 의해 사용됩니다.

사용가능한 전역 USE플래그 목록을 보려면 온라인에서 찾아보거나 /usr/portage/profiles/use.desc 에서 찾아볼 수 있습니다.

사용가능한 지역 USE플래그 목록을 보려면 /usr/portage/profiles/use.local.desc 에서 찾아볼 수 있습니다.

1.2. USE 플래그 활용

1.2.1. 영구적인 USE 플래그 선언

USE플래그의 중요성을 알았기를 바라면서, 이제 USE플래그를 어떻게 선언하는지 알려주도록 하겠습니다.

이미 앞에서 알아차렸듯이, 모든 USE플래그들은 USE변수안에서 선언됩니다. 사용자들로 하여금 이 USE플래그들을 쉽게 찾고 건져내기 위해 우린 또한 기본 USE 설정을 제공합니다. 이 설정은 젠투 사용자들에 의해 일반적으로 사용되는 것으로 우리가 생각하는 USE플래그의 USE플래그들의 모음입니다. 이 기본 설정은 사용자 여러분의 프로파일중 일부인 make.defaults에 선언되어 있습니다.

독자여러분의 시스템이 들춰보게될 프로파일은 /etc/make.profile 심볼릭 링크가 가리킵니다. 각각의 프로파일은 다른 큰 프로파일의 최상단에서 동작하며 결국 그 결과물은 모든 프로파일의 합이 됩니다. 최상단 프로파일은 페이스 프로파일입니다 (/usr/portage/profiles/base).

2004.3 프로파일의 기본설정을 (예로 들어)보도록 합시다.

예제 2-1 : 2004.3 프로파일의 make.defaults내부의 누적성 USE 변수
(This example is the sum of the settings in base, default-linux,
 default-linux/x86 and default-linux/x86/2004.3)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
     foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
     mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
     quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"

보시는 바와 같이 이 변수는 좀 많은 키워드를 포함하고 있습니다. 어떤 make.default파일이라도 USE 변수를 사용자 여러분에게 맞게 대체하지 마십시오. 포티지를 업데이트할때 이 파일을 변경함으로써 완료되지 않을 것입니다.

이 기본설정을 바꾸려면 USE 변수에 추가 혹은 제거할 필요가 있습니다. 이는 /etc/make.conf에 USE 변수를 정의함으로서 전역적으로 마무리됩니다. 이 변수에서 독자여러분이 필요로 하는 추가적 USE 플래그를 더하거나, 원하지 않는 USE 플래그를 제거합니다. 이 다음에는 키워드 앞에 음수기호 ("-")를 앞에 붙여서 마무리지을 수 있습니다.

예를 들어 KDE와 QT의 지원사항을 제거하지만 ldap를 지원하기 위해서라면 다음 USE를 /etc/make.conf 에 정의할 수 있습니다.

예제 2-2 : /etc/make.conf의 USE 설정 예제
USE="-kde -qt3 -qt4 ldap"

1.2.2. 개개별 패키지를 위한 USE 플래그 선언

때때로 독자여러분들은 시스템 범위가 아닌 어플리케이션 하나(혹은 둘?)을 위해 어떤 USE 플래그를 선언하고 싶어할 것입니다. 이렇게 하려면, /etc/portage디렉토리를 만들(아직 없다면!)고 /etc/portage/package.use를 편집해야 할 필요가 있을 것입니다. 이는 종종 단일 파일이지만 디렉토리가 될 수도 있습니다. 더 자세한 정보를 보려면 포티지 맨페이지를 보세요. 다음 예제는 단일 파일인 portage.use에 대한 것입니다.

예를 들어 전역적 berkdb지원을 원하지 않지만 mysql을 위해 따로 원한다면 다음처럼 추가할 것입니다.

예제 2-3 : /etc/portage/package.use 예제
dev-db/mysql berkdb

물론 또한 어떤 어플리케이션을 위해서 USE 플래그를 명확하게 사용못하게 할 수 있습니다. 예를 들어 PHP 에서 java지원을 원치 않는다면...

예제 2-4 : /etc/portage/package.use 두번째 예제
dev-php/php -java

1.2.3. 임시적 USE 플래그 선언

때론 어떤 USE 설정을 단 한번 하고 싶을때가 있습니다. /etc/make.conf를 두번(USE 변경을 했다가 되돌리는)편집하는 대신 환경변수로서의 USE 변수를 선언하기만 할 수 있습니다. 기억해야 할것은 다시 emerge를 하거나 이 어플리케이션을 갱신할때 (시스템 업데이트 때나 명시적으로 직접 할때나)변경사항을 잃을지도 모릅니다!

다음 예제에서 우리는 seamonkey 설치동안 USE 설정으로부터 java를 임시로 빼낼 것입니다.

예제 2-5 : 환경변수로서의 USE 사용
# USE="-java" emerge seamonkey

1.2.4. 선행사항

물론 USE 설정을 하는데 있어 그것보다 어떤 설정을 하든지 우선순위가 존재하는 명백한 선행사항이 있습니다. 더 높은 우선순위를 가진 설정사항때문에 java가 사용되는 것을 보기만 하려 USE="-java"를 선언하는건 원치 않을 것입니다. USE 설정에 있어 선행사항은 우선순위에 따라 정리되었습니다. (먼저 할일이 덜 중요합니다.):

  1. 프로파일의 일부로 존재하는 make.defaults파일에 있는 기본 USE 설정
  2. /etc/make.conf에 있는 사용자정의된 USE 설정.
  3. /etc/portage/package.use에 있는 사용자정의된 USE 설정.
  4. 환경 변수처럼 존재하는 사용자정의된 USE 설정

최종 USE 설정을 Portage에 의해 보려면, emerge --info를 실행하시면 됩니다. 이는 포티지에 의해 사용된 내용과 더불어 모든 관련된 변수들을 나열합니다. (USE변수 포함)

예제 2-6 : emerge --info 실행
# emerge --info

1.2.5. 전체 시스템을 새로운 USE 플래그에 맞추기

USE 플래그들을 대체하였고 전체 시스템을 새로운 USE 플래그를 사용하여 갱신하고자 할 때, emerge의 --newuse 옵션을 사용합니다.

예제 2-7 : 전체 시스템 리빌드
# emerge --update --deep --newuse world

다음, 포티지의 depclean을 실행하여 "오래된" 시스템에서 emerge되었지만 더이상 USE플래그에 의해 사용되지 않는 상태적 의존성을 제거합니다.

#red 경고!! 경고!! : emerge --depclean을 실행하는 것은 위험하고 조심스럽게 다루어져야 할 것입니다. "쓸모 없게 된" 패키지를 다시한번 점검하시고 필요한 패키지를 제거하지는 않는지 확인해보시기 바랍니다. 다음 예제를 통해 우리는 -p 스위치를 붙여서 depclean 목록만 받고 그들 패키지들을 제거하지 않도록 합니다.

예제 2-8 : 쓸모없게 된 패키지 제거
# emerge -p --depclean

depclean이 끝났을때 revdep-rebuild을 실행하여 가능한 제거된 패키지에 의해 제공되는 공유 객체에 동적으로 연결된 어플리케이션을 리빌드하도록 합니다. revdep-rebuild는 gentoolkit 패키지의 일부입니다. 이걸 먼저 emerge 하는것을 잊지 마시기 바랍니다.

예제 2-9 : revdep-rebuild 실행
# revdep-rebuild

이게 다 되었다면, 독자여러분의 시스템은 새로운 USE 플래그 설정을 사용하고 있는 것입니다.

1.3. 패키지별 특정 USE 플래그

1.3.1. 사용가능한 USE 플래그 보기

seamonkey의 예제를 보도록 합시다. 어떤 USE 플래그가 따를까요? 이걸 찾으려면 emerge 명령에 --pretend 와 --verbose 옵션을 덧붙여 사용합니다.

예제 3-1 : 사용된 USE 플래그 보기
# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] www-client/seamonkey-1.0.7  USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB

emerge는 이 작업을 위해 홀로 존재하는 도구가 아닙니다. 우리는 gentoolkit 패키지에 있는 equery라고 부르는 패키지 정보 도구를 제공합니다. 우선 gentoolkit을 설치합니다.

예제 3-2 : gentoolkit 설치
# emerge gentoolkit

이제 equery를 일정한 패키지의 USE 플래그를 보기 위해 인자와 함께 실행해봅니다. 예에서는 gnumeric 패키지를 들었습니다.

예제 3-3 : 사용된 USE 플래그를 보기 위한 equery 활용
# equery --nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column  (U) - USE flags from make.conf              ]
[        : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
 U I
 - - debug  : Enable extra debug codepaths, like asserts and extra output.
              If you want to get meaningful backtraces see
              http://www.gentoo.org/proj/en/qa/backtraces.xml .
 + + gnome  : Adds GNOME support
 + + python : Adds support/bindings for the Python language
 - - static : !!do not set this during bootstrap!! Causes binaries to be
              statically linked instead of dynamically




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-02-22 21:58:40
Processing time 0.0083 sec