Trans:GentooX86Handbook2-2

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기

USE 플래그

USE 플래그란?

USE 플래그 이면의 아이디어

젠투 (또는 다른 배포판이나 이런 운영체제들)을 설치할 때, 여러분이 일을 할 환경에 따라 결정합니다. 서버 설정은 워크스테이션 설정 과는 다릅니다. 게임 워크스테이션은 3D 렌더링 워크스테이션과는 다릅니다.

이는 여러분이 설치하고 싶은 꾸러미를 선택할 때 뿐만 아니라 각각의 꾸러미에서 어떤 기능을 지원해야 하는지에 대해 선택할 때에도 맞는 이야기입니다. OpenGL이 필요 없다면 왜 OpenGL을 설치하고 대부분의 꾸러미에서 지원하는 OpenGL을 빌드하는 것에 신경을 쓰시는가요? KDE를 쓰기 싫다면, KDE 없이도 멀쩡하게 돌아가는 꾸러미들인데 왜 KDE 지원을 포함하여 꾸러미를 컴파일 하는 것에 신경을 쓰시는가요?

사용자들이 어떤 꾸러미를 설치하고 활성화할지 결정하는 것을 돕기 위해, 사용자가 그(녀)의 환경을 쉽게 지정하길 원했습니다. 이러한 수단을 통해 사용자들이 정말 원하는 것이 무엇인지 결정하고 포티지에 대한 처리 과정을 단순화 하도록 강제했습니다.

USE 플래그의 정의

USE 플래그를 입력해보십시오. 각각의 플래그는 지원요소와 제각각의 개념에 대한 의존성 정보를 포함하는 키워드입니다. 제각각의 USE 플래그를 정의했다면 포티지는 선택한 키워드에 대해 여러분이 원하는 지원 요소를 알게 됩니다. 물론 꾸러미에 대한 의존성 정보를 대체하기도 합니다.

일부 예를 들어보도록 하겠습니다. kde 키워드가 있습니다. USE변수에 이 키워드를 넣지 않았다면 선택적으로 KDE를 지원하는 모든 꾸러미를 KDE지원 없이 컴파일 할 것입니다. 선택적인 KDE 의존성을 지닌 모든 꾸러미는 (의존성에 따라) KDE 라이브러리를 설치하지 않고 설치될 것입니다. kde키워드를 정의했다면 이 꾸러미들은 KDE 지원을 포함해서 컴파일 할 것이고, 의존성에 따라 KDE 라이브러리를 설치할 것입니다.

키워드를 올바르게 설정하면 여러분이 원하는대로 잘 짜여진 시스템을 가지게 될 것입니다.

어떤 USE 플래그가 있을까요?

전역지역 USE 플래그 방식이 있습니다.

  • 전역 USE 플래그는 시스템 범위에서 수많은 꾸러미들이 사용합니다. 이는 대부분의 사람들이 USE 플래그로 보는 것입니다.
  • 지역 USE 플래그는 패키지별 결정을 하기 위해 단일 패키지에서 사용합니다.

사용할 수 있는 전역 USE 플래그는 온라인이나 /usr/portage/profiles/use.desc에서 시스템 자체적으로 보실 수 있습니다.

로컬에서 사용할 수 있는 지역 USE 플래그는 /usr/portage/profiles/use.local.desc에서 보실 수 있습니다.

USE 플래그 사용하기

영구 USE 플래그 선언하기

개별 꾸러미에 대한 USE 플래그 선언

임시 USE 플래그 선언하기

가끔 여러분은 USE 설정을 한번만 설정하고 싶을 때가 있습니다. (USE 설정을 변경하고 되돌리기 위해) /etc/portage/make.conf를 두 번 편집하는 대신, 그냥 USE 변수를 환경 변수에 선언할 수 있습니다. 여러분이 이머지를 다시 하거나 (분명히 또는 시스템 업데이트의 일부로서) 프로그램을 업데이트하면 여러분이 바꾼 내용을 잃을 것입니다!

예제에서는 seamonkey를 설치 할 때 USE 설정으로부터 java를 임시로 없앨 것입니다.


코드 예제 3.5: USE 를 환경 변수로 사용하기
# USE="-java" emerge seamonkey


먼저 할 일

물론 USE를 설정하기 전에 먼저 할 설정에 대해 일부 할 일이 있습니다. 높은 우선순위를 가지고 있는 설정 때문에 여전히 사용중인 java를 확인하려고 USE="-java"를 설정하시고 싶진 않을 것입니다. USE 설정에 대해 먼저 할 일은 우선순위에 따라 순서가 정해집니다. (첫 번째가 낮은 우선순위입니다)

1. 여러분의 프로파일의 일부인 make.defaults 파일에 선언한 기본 USE 설정
2. /etc/portage/make.conf에 지정한 USE 설정
3. /etc/portage/package.use에 지정한 USE 설정
4. 환경 변수에 지정한 USE 설정

포티지에서 본 것과 같은 최종 USE 설정을 보려면 emerge --info를 실행합니다. 이 방법은 포티지가 사용하는 내용과 함께 (USE변수를 포함하여) 모든 관련 변수를 나열할 것입니다.


코드 예제 2.6: emerge --info 실행하기
# emerge --info


새 USE 플래그로 전체 시스템 적용하기

USE 플래그 내용을 바꾸었고 USE 플래그를 사용하기 위해 전체 시스템을 업데이트 하려면 emerge--newuse옵션을 사용합니다.


코드 예제 2.7: 전체 시스템 다시 빌드
# emerge --update --deep --newuse world


그 다음 여러분의 "이전의" 시스템에 이머지했지만 새로운 USE 플래그로 인해 한물간 경우에 따른 의존성을 제거하기 위해 포티지의 depclean을 실행합니다.


주의: emerge --depclean을 실행하는 것은 위험한 작업이며 조심해서 다루어야 합니다. 여러분이 필요한 꾸러미를 지우지 않게 "한물간" 패키지를 알려주는 목록을 다시 확인해보시기 바랍니다. 다음 예제에서는 여러분이 필요로 하는 꾸러미를 제거하지 않고 depclean을 진행하기 위해 꾸러미 목록만 보도록 -p스위치를 넣었습니다.



코드 예제 2.8: 한물간 꾸러미 제거하기
# emerge -p --depclean


depclean이 끝나면, 아마도 제거되었을지도 모르는 꾸러미에서 제공하는 공유 객체에 대해 동적으로 연결된 프로그램을 다시 빌드하기 위해 revdep-rebuild를 실행합니다. revdep-rebuildgentoolkit 꾸러미의 일부입니다.


코드 예제 2.9: revdep-rebuild 실행하기
# revdep-rebuild


모든 일을 완료했다면 여러분의 시스템은 새로운 USE 플래그 설정을 사용하는 것입니다.

꾸러미 지정 USE 플래그

사용할 수 있는 USE 플래그 보기

seamonkey 예제를 보도록 하겠습니다. 어떤 USE 플래그가 반응하려나요? 이걸 확인해보기 위해 --pretend--verbose옵션과 함께 emerge명령을 사용합니다.


코드 예제 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


이제 제각각의 패키지에서 사용하는 USE 플래그를 보기 위해 uses인자를 넣어서 equery를 실행합니다. 예를 들어 gnumetric 패키지에 대해


코드 예제 3.2: 사용하는 USE 플래그를 보기 위한 equery 사용하기
{{{2}}}