pkg verify 명령을 사용하여 이미지의 패키지 설치를 검증할 수 있습니다. 관련 게시자에 대한 현재 서명 정책이 ignore가 아니면 정책을 기반으로 각 패키지의 서명이 검증됩니다. 서명 정책을 적용하는 방법에 대한 설명은 서명된 패키지에 필요한 이미지 등록 정보를 참조하십시오. 설치된 패키지 컨텐츠에 대한 검증은 사용자 정의 컨텐츠 분석을 기반으로 수행되며 사용자 정의 컨텐츠 분석은 다른 프로그램과는 다른 결과를 반환할 수 있습니다.
패키지 이름을 제공하지 않으면 모든 설치된 패키지를 검사합니다. -v 옵션은 각 설치된 패키지마다 한 줄 이상 정보 메시지를 제공합니다. 다음 예제는 작은 출력 샘플만 보여줍니다. pkg/depot 패키지 설치에 오류가 있습니다.
$ pkg verify -v
PACKAGE STATUS
pkg://solaris/archiver/gnu-tar OK
pkg://solaris/audio/audio-utilities OK
pkg://solaris/benchmark/x11perf OK
...
pkg://solaris/package/pkg/depot ERROR
dir: var/cache/pkg/depot
Group: 'pkg5srv (97)' should be 'bin (2)'
file: var/log/pkg/depot/access_log
editable file has been changed
file: var/log/pkg/depot/error_log
editable file has been changed
...
pkg://solaris/security/sudo OK
file: etc/sudoers
editable file has been changed
...
pkg://solaris/x11/xlock OK
pkg://solaris/x11/xmag OK
pkg://solaris/x11/xvidtune OK
pkg fix 명령을 사용하여 pkg verify 명령이 보고한 패키지 오류를 수정할 수 있습니다.
pkg verify 출력에는 설치된 sudo 패키지의 구성 요소가 패키지된 구성 요소와 다르다고 나타나지만 이러한 차이점이 검증 오류로 보고되지 않았습니다. pkg fix는 아무것도 변경하지 않습니다. /etc/sudoers 파일이 교체되지 않습니다.
$ pkg fix pkg://solaris/security/sudo No repairs for this image.
/etc/sudoers 파일을 제거하면 패키지 검증을 실패하고 pkg fix가 파일을 교체합니다.
$ pkg fix pkg://solaris/security/sudo
Verifying: pkg://solaris/security/sudo ERROR
file: etc/sudoers
Missing: regular file does not exist
Created ZFS snapshot: 2014-03-13-22:05:42
Repairing: pkg://solaris/security/sudo
Creating Plan (Evaluating mediators):
DOWNLOAD PKGS FILES XFER (MB) SPEED
Completed 1/1 1/1 0.0/0.0 990B/s
PHASE ITEMS
Updating modified actions 1/1
Updating package state database Done
Updating package cache 0/0
Updating image state Done
Creating fast lookup database Done
한 파일을 다운로드하고 한 작업(file 작업)을 수정한다고 언급했듯이, 누락된 파일만 교체합니다. 다른 sudo 패키지 내용은 건드리지 않습니다. 이 작업은 복구를 수행하기 전에 현재 설치의 스냅샷을 저장했습니다. pkg fix 출력에서 “Created ZFS snapshot” 행을 살펴보십시오. 현재 이미지에 복구가 수행되었습니다.
$ zfs list -r rpool/ROOT/s11 NAME USED AVAIL REFER MOUNTPOINT rpool/ROOT/s11 16.3G 22.5G 26.1G / rpool/ROOT/s11@2014-03-13-23:52:19 249M - 26.1G -
pkg verify 출력에서 설치된 pkg/depot 패키지의 디렉토리 소유권에 오류가 있음을 알 수 있습니다. pkg fix 출력은 “Verifying” 섹션의 오류만 보여줍니다. 패키지된 구성 요소와 다른 차이점은 표시되지 않습니다.
$ ls -ld /var/cache/pkg/depot
drwxr-xr-x 3 pkg5srv pkg5srv 3 Dec 2 19:47 /var/cache/pkg/depot/
$ pkg fix pkg://solaris/package/pkg/depot
Verifying: pkg://solaris/package/pkg/depot ERROR
dir: var/cache/pkg/depot
Group: 'pkg5srv (97)' should be 'bin (2)'
Created ZFS snapshot: 2014-03-13-22:18:52
Repairing: pkg://solaris/package/pkg/depot
Creating Plan (Evaluating mediators):
PHASE ITEMS
Updating modified actions 1/1
Updating package state database Done
Updating package cache 0/0
Updating image state Done
Creating fast lookup database Done
다음 출력은 오류가 수정되었음을 보여줍니다. 설치된 구성 요소와 패키지된 구성 요소 간의 다른 차이점은 그대로입니다.
$ ls -ld /var/cache/pkg/depot
drwxr-xr-x 3 pkg5srv bin 3 Dec 2 19:47 /var/cache/pkg/depot/
$ pkg verify -v pkg://solaris/package/pkg/depot
PACKAGE STATUS
pkg://solaris/package/pkg/depot OK
file: var/log/pkg/depot/access_log
editable file has been changed
file: var/log/pkg/depot/error_log
editable file has been changed