JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
이미지 패키징 시스템 매뉴얼 페이지     Oracle Solaris 11 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

사용자 명령

packagemanager(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkglint(1)

pkgmerge(1)

pkgmogrify(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pm-updatemanager(1)

시스템 관리 명령

표준, 환경 및 매크로

pkgmerge

- 이미지 패키징 시스템 패키지 병합 유틸리티

개요

/usr/bin/pkgmerge [-n] -d dest_repo
    -s variant=value[,...],src_repo ...
    [pkg_fmri_pattern ...]

설명

pkgmerge는 다중 변형 패키지를 만드는 데 사용되는 패키지 게시 도구입니다. 이 과정에서는 동일한 이름 및 버전(시간 기록 제외)과 패키지를 병합하고, 주어진 소스에 대해 지정된 변형 이름 및 값과 병합하려는 버전에서 고유한 작업의 태그를 지정한 후 대상 저장소에 새 패키지를 게시합니다. 각 소스의 패키지마다 최신 버전만 사용됩니다.

각 작업의 pkg.merge.blend 속성이 병합하려는 변형의 이름으로 설정된 경우 최종 출력에 표시되는 작업에 추가된 변형 태그가 나타나지 않도록 해당 작업은 병합 전에 다른 매니페스트에 복사됩니다. pkg.merge.blend 속성 자체가 출력 매니페스트의 작업에서 제거됩니다. 여러 패스 병합에 다른 값을 사용하여 이 속성을 반복할 수 있습니다.

입력 매니페스트의 동일한 경로로 전달되는 작업이 다를 경우 오류와 함께 pkgmerge가 종료됩니다.

옵션

다음 옵션이 지원됩니다.

-d dest_repo

병합된 패키지를 게시할 대상 저장소의 파일 시스템 경로 또는 URI입니다. 대상 저장소가 존재해야 합니다. pkgrepo(1)를 사용하여 새 저장소를 만들 수 있습니다.

-n

대상 저장소에 변경 사항을 적용하지 않은 상태로 테스트 실행을 수행합니다.

-s variant= value[,...],src_repo

이 소스의 패키지에 사용할 변형 이름 및 값으로, 이 뒤에는 패키지를 검색할 소스 저장소나 패키지 아카이브의 파일 시스템 경로 또는 URI가 옵니다. 여러 개의 변형은 쉼표로 구분하여 지정할 수 있습니다. 모든 소스에 대해 동일한 변형이 명명되어야 합니다. 이 옵션은 여러 번 지정할 수 있습니다.

--help 또는 -?

사용법 메시지를 표시합니다.

환경 변수

지원되는 환경 변수는 다음과 같습니다.

TMPDIR

프로그램 실행 중 임시 데이터가 저장될 디렉토리의 절대 경로입니다. 설정하지 않을 경우 기본적으로 /var/tmp에 임시 데이터를 저장합니다.

예 1 변형 이름 및 값 지정

검색 소스에 대해 지정된 주어진 변형 이름 및 값을 사용하여 지정된 소스에서 발견된 각 패키지의 태그를 지정합니다.

$ pkgmerge -s arch=sparc,http://src.example.com \
-d http://dest.example.com

샘플 패키지:

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
dir group=sys mode=0755 owner=root path=usr

작업 후 샘플 패키지:

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
set name=variant.arch value=sparc
dir group=sys mode=0755 owner=root path=usr

예 2 패키지 병합 및 게시

지정된 소스의 각 패키지에 대한 최신 버전을 병합하고 대상 저장소에 새 패키지를 게시합니다.

$ pkgmerge -s arch=sparc,http://src1.example.com \
-s arch=i386,http://src2.example.com \
-d /path/to/target/repository

소스 1의 샘플 패키지(SPARC):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121410Z
file id mode=0555 owner=root group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

소스 2의 샘플 패키지(i386):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
file id mode=0555 owner=root group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

병합된 패키지:

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
set name=variant.arch value=sparc value=i386
file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=sparc
file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=i386
dir group=sys mode=0755 owner=root path=usr

예 3 i386 및 SPARC 시스템용 디버그 및 비디버그 패키지 병합

i386 및 SPARC 시스템용의 일련의 디버그 및 비디버그 저장소에 있는 각 패키지의 최신 버전을 병합합니다.

$ pkgmerge -s arch=sparc,debug=false,/repo/sparc-nondebug \
-s arch=sparc,debug=true,/repo/sparc-debug \
-s arch=i386,debug=false,/repo/i386-nondebug \
-s arch=i386,debug=true,/repo/i386-debug \
-d /path/to/target/repository

소스 1의 샘플 패키지(SPARC 비디버그):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121410Z
file id mode=0555 owner=root group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

소스 2의 샘플 패키지(SPARC 디버그):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121411Z
file id mode=0555 owner=root group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

소스 3의 샘플 패키지(i386 비디버그):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
file id mode=0555 owner=root group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

소스 4의 샘플 패키지(i386 디버그):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163428Z
file id mode=0555 owner=root group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

병합된 패키지:

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163428Z
set name=variant.arch value=sparc value=i386
set name=variant.debug value=false value=true
file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=sparc variant.debug=false
file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=sparc variant.debug=true
file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=i386 variant.debug=false
file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=i386 variant.debug=true
dir group=sys mode=0755 owner=root path=usr

예 4 pkg.merge.blend를 사용하여 병합

pkg.merge.blend 속성을 사용하여 충돌하지 않는 두 구조에 대한 패키지를 병합합니다.

$ pkgmerge -s arch=sparc,http://src1/example.com \
-s arch=i386,http://src2.example.com \
-d /path/to/target/repository

소스 1의 샘플 패키지(SPARC):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121410Z
file 1d5eac1aab628317f9c088d21e4afda9c754bb76 mode=0555 owner=root \
    group=bin path=usr/bin/sparc/foo pkg.merge.blend=arch
file d285ada5f3cae14ea00e97a8d99bd3e357caadc0 mode=0555 owner=root \
    group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

소스 2의 샘플 패키지(i386):

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
file a285ada5f3cae14ea00e97a8d99bd3e357cb0dca mode=0555 owner=root \
    group=bin path=usr/bin/i386/foo pkg.merge.blend=arch
file d285ada5f3cae14ea00e97a8d99bd3e357caadc0 mode=0555 owner=root \
    group=bin path=usr/bin/foo
dir group=sys mode=0755 owner=root path=usr

병합된 패키지:

set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z
set name=variant.arch value=sparc value=i386
file d285ada5f3cae14ea00e97a8d99bd3e357caadc0 mode=0555 owner=root \
    group=bin path=usr/bin/foo
file a285ada5f3cae14ea00e97a8d99bd3e357cb0dca mode=0555 owner=root \
    group=bin path=usr/bin/i386/foo
file 1d5eac1aab628317f9c088d21e4afda9c754bb76 mode=0555 owner=root \
    group=bin path=usr/bin/sparc/foo
dir group=sys mode=0755 owner=root path=usr

종료 상태

다음 종료 값이 반환됩니다.

0

명령이 성공했습니다.

1

오류가 발생했습니다.

2

잘못된 명령줄 옵션이 지정되었습니다.

99

예상치 않은 예외가 발생했습니다.

속성

다음 속성에 대한 설명은 attributes(5)를 참조하십시오.

속성 유형
속성 값
Availability
package/pkg
Interface Stability
커밋되지 않음

참조

pkgrepo(1), pkg(5)

http://hub.opensolaris.org/bin/view/Project+pkg/