탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 소프트웨어 패키지 추가 및 업데이트 Oracle Solaris 11.1 Information Library (한국어) |
소프트웨어에는 선택적 구성 요소와 상호 배타적인 구성 요소가 포함될 수 있습니다. 선택적 구성 요소의 예로는 로켈과 설명서가 있습니다. 상호 배타적 구성 요소의 예로는 SPARC 또는 x86 및 디버그 또는 비디버그 이진이 있습니다. IPS에서는 선택적 구성 요소를 페이싯이라 하고 상호 배타적 구성 요소를 변형이라고 합니다.
페이싯 및 변형은 이미지에 설정된 특수한 등록 정보이고 패키지 내의 작업에 설정된 태그입니다. 대부분의 변형 태그는 값이 다양할 수 있습니다. 작업에 설정된 페이싯 태그는 true 값만 가질 수 있습니다. 작업의 페이싯 및 변형 태그 값을 이미지에 설정된 페이싯 및 변형 값과 비교한 결과에 따라, 패키지 작업을 설치할 수 있는지 여부가 결정됩니다. 예를 들어, 특정 로케일 페이싯을 false로 설정하는 경우 해당 페이싯을 지정하는 파일 또는 기타 작업은 설치되지 않고 해당 페이싯을 지정하는 현재 설치된 파일은 제거됩니다.
이미지에 설정된 페이싯과 변형의 현재 값을 보려면 pkg facet 및 pkg variant 명령을 사용합니다. 이미지에 설정된 페이싯과 변형의 값을 수정하려면 pkg change-facet 및 pkg change-variant 명령을 사용합니다. pkg(1) 매뉴얼 페이지와 아래 예제를 참조하십시오.
각 페이싯 및 변형 태그에는 이름과 값이 있습니다. 단일 작업에 페이싯 및 변형 태그를 여러 개 지정할 수 있습니다. 페이싯 및 변형 태그를 여러 개 가진 구성 요소의 예로는 개발자가 사용하는 아키텍처 관련 헤더 파일이나 SPARC 전역 영역 전용 구성 요소가 있습니다.
변형 태그의 예는 variant.arch=sparc입니다. 페이싯 태그의 예는 facet.devel=true입니다. 페이싯과 변형은 종종 앞에 facet. 및 variant. 없이 지칭되기도 합니다.
페이싯은 부울이므로 true(사용) 또는 false(사용 안함)로만 설정할 수 있습니다. 기본적으로 모든 페이싯은 이미지에 true로 설정된 것으로 간주됩니다. 작업의 페이싯 태그는 true 값만 가져야 합니다. 다른 값은 정의되지 않은 동작을 일으킵니다. 이미지에 설정된 페이싯은 doc.man과 같은 전체 페이싯이거나 locale.*와 같은 패턴일 수 있습니다. 이러한 유연성은 페이싯 이름 공간의 일부분을 사용 안함으로 설정하고 그 안의 개별 페이싯만 사용으로 설정하려는 경우 유용합니다. 예를 들어, 다음 예제에 표시된 대로 모든 로켈을 사용 안함으로 설정한 후 한두 개의 특정 로켈만 사용으로 설정할 수 있습니다.
$ pfexec pkg change-facet 'locale.*=false' [output about packages being updated] $ pfexec pkg change-facet locale.en_US=true [output about packages being updated]
대부분의 변형은 원하는 수의 값을 가질 수 있습니다. 예를 들어, arch 변형을 i386, sparc, ppc, arm 또는 배포판이 지원하는 어떤 구조로든 설정할 수 있습니다. (i386 및 sparc만 Oracle Solaris에 사용됩니다.) 한가지 예외는 debug 변형입니다. debug 변형은 true 또는 false로만 설정할 수 있습니다. 다른 값은 정의되지 않은 동작을 일으킵니다. 파일 작업에 비디버그 및 디버그 버전이 모두 있는 경우, 다음 예제에 표시된 대로 양쪽 버전에 적용 가능한 debug 변형을 명시적으로 설정해야 합니다.
file group=sys mode=0644 overlay=allow owner=root \ path=etc/motd pkg.csize=115 pkg.size=103 preserve=true \ variant.debug.osnet=true file group=sys mode=0644 overlay=allow owner=root \ path=etc/motd pkg.csize=68 pkg.size=48 preserve=true \ variant.debug.osnet=false
변형을 사용하여 패키지가 설치되도록 하려면 변형 값을 이미지에 설정해야 합니다. arch 및 zone 변형은 이미지를 만들어 초기 컨텐츠를 설치하는 프로그램에 의해 설정됩니다. debug.* 변형은 기본적으로 이미지에서 false입니다.
다음 알고리즘에서는 이미지에 설정된 페이싯 및 변형이 특정 작업의 설치 여부에 어떤 영향을 주는지 설명합니다.
페이싯 또는 변형 태그가 없는 작업은 항상 설치됩니다.
페이싯 태그가 있는 작업은 태그와 일치하는 모든 페이싯 또는 페이싯 패턴이 이미지에 false로 설정되지 않는 한 설치됩니다. 어떤 페이싯이 true로 설정되거나 명시적으로 설정되지 않은 경우(true가 기본값) 작업이 설치됩니다.
변형 태그가 있는 작업은 모든 변형 태그의 값이 이미지에 설정된 값과 동일한 경우에만 설치됩니다.
페이싯 및 변형 태그가 모두 있는 작업은 페이싯과 변형이 모두 작업 설치를 허용하는 경우 설치됩니다.
고유의 페이싯 및 변형 태그를 만들 수 있습니다. 다음은 Oracle Solaris에서 흔히 사용되는 태그입니다.
|
다음 목록은 Oracle Solaris에서 사용되는 페이싯 태그의 작은 샘플을 보여줍니다.
facet.devel facet.doc facet.doc.html facet.doc.info facet.doc.man facet.doc.pdf facet.locale.de facet.locale.en_GB facet.locale.en_US facet.locale.fr facet.locale.ja_JP facet.locale.zh_CN
현재 이미지에 설정된 변형 및 페이싯의 값을 표시할 수 있으며 현재 이미지의 변형 및 페이싯을 변경할 수 있습니다. 변형과 페이싯을 변경하면 다수의 패키지가 업데이트될 수 있으며 이 경우 새로운 BE가 필요할 수도 있습니다. 변경하기 전에 어떻게 변경될지 검토하려면 -nv를 사용합니다.
설정된 변형의 값을 표시하려면 pkg variant 명령을 사용합니다.
/usr/bin/pkg variant [-H] [variant_nsmr ...]
$ pkg variant VARIANT VALUE variant.opensolaris.zone global variant.arch i386 $ pkg variant -H variant.arch variant.arch i386
pkg change-variant 명령을 사용하여 변형의 값을 변경할 수 있습니다.
/usr/bin/pkg change-variant [-nvq] [-C n] [-g path_or_uri ...] [--accept] [--licenses] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] variant_name=value ...
다음 명령은 대량의 출력 결과를 생성하는데 이는 영향을 받는 패키지가 너무 많기 때문입니다. 새 BE는 기본적으로 생성되지 않지만 대신 백업 BE가 생성됩니다. BE 생성 시점에 대한 자세한 내용은 부트 환경 정책 이미지 등록 정보를 참조하십시오.
n개 비전역 영역의 변형을 전역 영역과 동시에 변경하려면 -C 옵션을 사용합니다. -C 옵션 사용 예는 여러 비전역 영역을 동시에 업데이트를 참조하십시오.
-n을 사용하지 않고 작업을 수행할 경우 어떻게 변경될지 확인하려면 -n 옵션을 사용합니다. 실제로 변경하는 것은 없습니다.
$ pfexec pkg change-variant -nv --accept 'variant.debug.*=true' Packages to update: 851 Variants/Facets to change: 3 Estimated space available: 49.88 GB Estimated space to be consumed: 270.57 MB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed variants/facets: variant variant.debug.*: true facet facet.locale.en_US: None facet facet.locale.*: None Changed packages: solaris ...
pkg facet 명령을 사용하여 설정된 페이싯의 값을 표시할 수 있습니다.
/usr/bin/pkg facet [-H] [facet_name ...]
$ pkg facet FACETS VALUE facet.locale.en_US True facet.locale.en True facet.locale.* False $ pkg facet -H 'facet.locale.*' facet.locale.* False
pkg change-facet 명령을 사용하여 페이싯의 값을 변경할 수 있습니다.
/usr/bin/pkg change-facet [-nvq] [-C n] [-g path_or_uri ...] [--accept] [--licenses] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] facet_name=[True|False|None] ...
n개 비전역 영역의 페이싯을 전역 영역과 동시에 변경하려면 -C 옵션을 사용합니다. -C 옵션 사용 예는 여러 비전역 영역을 동시에 업데이트를 참조하십시오.
-n을 사용하지 않고 작업을 수행할 경우 어떻게 변경될지 확인하려면 -n 옵션을 사용합니다. 실제로 변경하는 것은 없습니다.
페이싯 값이 None으로 설정되어 있으면 페이싯 사양이 현재 이미지에서 제거됩니다.
다음 명령은 대량의 출력 결과를 생성하는데 이는 영향을 받는 패키지가 너무 많기 때문입니다. 이 작업은 완료되는 데 많은 시간이 필요할 수 있으며 이 이미지와 패키지 저장소 간에 대량의 네트워크 전송이 발생할 수 있습니다. 새 BE는 기본적으로 생성되지 않지만 대신 백업 BE가 생성됩니다. BE 생성 시점에 대한 자세한 내용은 부트 환경 정책 이미지 등록 정보를 참조하십시오.
$ pfexec pkg change-facet -nv 'facet.locale.*=true' Packages to update: 851 Variants/Facets to change: 1 Estimated space available: 49.88 GB Estimated space to be consumed: 3.13 GB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed variants/facets: facet facet.locale.*: True Changed packages: solaris ...