Handbook:Parts/Working/USE/ko

USE 플래그 개념
젠투(또는 기타 배포판이나 어떤 운영체제든)를 설치할 때, 사용자는 다룰 환경에 따라 몇가지 선택을 하고 싶어합니다. 서버에 대한 설정은 워크스테이션에 대한 설정과 다릅니다. 게임용 워크스테이션은 3D 렌더링 워크스테이션과 다릅니다.

꾸러미를 설치할 때만 그런게 아니며 각각의 꾸러미에서 어떤 기능을 선택해야 하느냐를 따질때도 마찬가지입니다. OpenGL이 필요하지 않은데, 왜 대부분 꾸러미에서의 OpenGL의 설치 및 관리, 빌드 지원이 우릴 귀찮게 할까요? KDE를 쓰고 싶지 않은데, 왜 굳이 없어도 완벽하게 돌아가는 KDE 지원이 꾸러미 컴파일 과정에서 귀찮게 할까요?

사용자가 어떤 꾸러미를 설치하고 활성화 해야 할 지 말지 결정하는 일련의 과정을 돕기 위해, 젠투에서는 사용자가 쉬운 방법으로 환경을 지정하길 원했습니다. 이런 일련의 사고를 통해 사용자가 정말 원하는게 무엇인지 결정하도록 사용자를 끌어넣었고, 쓸모있는 결정을 만드는 포티지의 처리 과정을 쉽게 만들었습니다.

USE 플래그 정의
USE 플래그를 입력하십시오. 각각의 플래그는 지원 기능과 각각의 개념에 대한 의존성 정보를 포함하는 키워드입니다. 어떤 USE 플래그를 지정하면, 포티지에서는 선택한 키워드에 대해 사용자가 어떤 지원 기능을 원하는지 알아차립니다. 물론 이 과정에서 꾸러미에 대한 의존성 정보로 바꾸기도 합니다.

몇가지 특정 예를 살펴보겠습니다: kde 키워드가 있습니다. 이 키워드를 USE 변수에 넣지 않으면, 모든 꾸러미는 KDE 지원 없이 선택적인 KDE 지원을 컴파일합니다. 선택적 KDE 의존성을 지닌 모든 꾸러미는 KDE 라이브러리를 (의존 요소로) 설치하지 않고 설치합니다. kde 키워드를 지정하면 이 꾸러미에 KDE 지원 기능을 함께 컴파일하며 KDE 라이브러리를 의존 요소로 설치합니다.

올바르게 키워드를 지정하면 사용자의 요구에 맞춰 시스템의 모양새가 갖춰집니다.

USE 플래그에 있는 것
USE 플래그에는 두가지 방식이 있습니다. 하나는 전역, 하나는 지역입니다.


 * 전역 USE 플래그는 다양한 꾸러미에서 시스템 전체적으로 사용합니다. 대부분 사람들이 USE 플래그로 보는 키워드입니다.
 * 지역 USE 플래그는 단일 꾸러미에서 꾸러미별 결정을 내릴때 사용합니다.

사용할 수 있는 전역 USE 플래그는 온라인 또는 로컬 위치의 에서 찾아볼 수 있습니다.

사용할 수 있는 지역 USE 플래그는 온라인이나 로컬 위치의 에서 찾아볼 수 있습니다.

영구 USE 플래그 선언
앞에서 이야기한 바와 같이, 모든 USE 플래그는 USE 변수에 선언합니다. 사용자가 USE 플래그를 쉽게 검색하고 고를 수 있도록 하기 위해 기본 USE 설정을 제공합니다. 이 설정은 젠투 사용자가 보통 사용한다고 간주하는 USE 플래그의 모음입니다. 이 기본 설정은 선택한 프로파일의 일부인 파일에 선언했습니다.

시스템이 살펴보는 프로파일은 이 가리킵니다. 각각의 프로파일은 다른 프로파일의 상위에서 동작하며 최종 결과는 모든 프로파일의 합입니다. 최상위 프로파일은 베이스 프로파일입니다.

현재 활성화 한 (전체) USE 플래그를 보려면 emerge --info 를 사용하십시오:

보시는 바와 같이, 변수에 수많은 키워드가 있습니다. 개인적인 용도로 USE 변수를 새로 뜯어고칠 목적으로 파일의 내용을 어떤 부분이든 바꾸지 마십시오. 이 파일의 내용을 바꾸면 포티지 트리를 업데이트했을때 되돌릴 수 없습니다!

기본 값을 바꾸려면 USE 변수에서 키워드를 추가하거나 제거하십시오. 에서 전역 범위의 USE 변수값을 지정하시면 됩니다. 이 변수에서 필요한 추가 USE 플래그를 추가하거나 더 이상 필요하지 않은 USE 플래그를 제거할 수 있습니다. 플래그 제거는 키워드 앞에 음수 부호를 붙이시면 됩니다.

KDE와 QT 지원을 제거하고 ldap 지원을 추가한다면, 에서 USE 값을 다음처럼 지정할 수 있습니다:

개별 꾸러미당 USE 플래그 선언
사용자가 시스템 범위가 아닌 하나(이상의) 프로그램에 대한 각각의 USE 플래그를 지정하려고 하는 경우가 있습니다. 이럴 때는 를 편집하십시오. 보통 단일 파일이지만 디렉터리일 수도 있습니다: 더 많은 내용은 를 살펴보십시오. 다음 예제에서 는 단일 파일로 간주합니다.

mysql에 대해 berkdb 지원만 포함한다면:

이와 비슷하게 각각의 프로그램에 대해 USE 플래그를 분명히 비활성화할 수 있습니다. PHP에 대한 java 지원을 비활성화할 경우(하지만 의 USE 플래그 지정을 통해 다른 꾸러미에는 활성화할 경우):

임시 USE 플래그 선언
Sometimes users need to set a USE flag for a brief moment. Instead of editing twice (to do and undo the USE changes) just declare the USE variable as an environment variable. Remember that this setting only applies for the command entered - re-emerging or updating this application (either explicitly or as part of a system update) will undo the changes that were triggered through the (temporary) USE flag definition.

The following example temporarily removes java from the USE setting during the installation of seamonkey:

우선처리
Of course there is a certain precedence on what setting has priority over the USE setting. The precedence for the USE setting is, ordered by priority (first has lowest priority):
 * 1) Default USE setting declared in the  files part of your profile
 * 2) User-defined USE setting in
 * 3) User-defined USE setting in
 * 4) User-defined USE setting as environment variable

To view the final USE setting as seen by Portage, run. This will list all relevant variables (including the USE variable) with their current definition as known to portage.

전체 시스템에 새 USE 플래그 적용
After having altered USE flags, the system should be updated to reflect the necessary changes. To do so, use the  option with  :

Next, run portage's depclean to remove the conditional dependencies that were emerged on the "old" system but that have been obsoleted by the new USE flags.

When depclean has finished, run  to rebuild the applications that are dynamically linked against shared objects provided by possibly removed packages. is part of the package; don't forget to emerge it first.

모든 과정을 끝나면 시스템에서는 새 USE 플래그를 사용합니다.

사용할 수 있는 USE 플래그 보기
Let's take the example of seamonkey: what USE flags does it listen to? To find out, we use  with the   and   options:

isn't the only tool for this job. In fact, there is a tool dedicated to package information called  which resides in the  package

Now run equery with the uses argument to view the USE flags of a certain package. For instance, for the gnumeric package: