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)

시스템 관리 명령

표준, 환경 및 매크로

pkglint

- 이미지 패키징 시스템 패키지 Lint

개요

/usr/bin/pkglint [-c dir] [-r uri] [-p regexp]
    [-f rcfile] [-b build_no] [-v]
    [-l uri] | manifest ...
/usr/bin/pkglint -L [-v]

설명

pkglint는 선택적으로 다른 저장소를 참조하는 하나 이상의 패키지 매니페스트에 대해 일련의 검사를 실행합니다.

pkglint는 패키지를 게시하기 전 패키지 작성 프로세스 도중에 사용해야 합니다. pkglintpkgsend(1) 또는 pkg.depotd(1M)의 일반 작업 중 수행하기에는 너무 부담이 될 수 있는 매니페스트에 대한 철저한 테스트를 수행합니다. pkglint 검사에는 중복 작업, 누락된 속성 및 비정상적인 파일 권한에 대한 테스트가 포함됩니다.

명령줄에서 공백으로 구분된 로컬 파일 목록으로 Lint 실행을 위한 매니페스트를 전달할 수도 있고, 저장소에서 매니페스트를 검색할 수도 있습니다.

저장소에서 매니페스트를 검색하면 첫번째 pkglint 실행 시 지정된 캐시 디렉토리에 pkg(5) 사용자 이미지가 만들어지고 채워집니다. -r 옵션을 제공할 경우 참조 저장소에 대해 이름이 cache_dir/ref_image인 사용자 이미지가 만들어집니다. -l 옵션을 제공할 경우 Lint 저장소에 대해 이름이 cache_dir/lint_image인 사용자 이미지가 만들어집니다. 해당 이미지에는 컨텐츠가 설치되지 않습니다. 해당 이미지는 pkglint가 저장소에서 매니페스트를 검색하는 데만 사용됩니다.

나중에 pkglint를 호출하면 캐시 디렉토리를 재사용할 수 있으며 -r 또는 -l 인수를 생략할 수 있습니다.

pkglint는 캐시 디렉토리에서 게시자를 구성하는 데 필요한 제한된 지원을 제공합니다. pkg(1)를 사용하면 해당 이미지에 대해 보다 복잡한 게시자 구성을 수행할 수 있습니다.

pkglint는 패키지 작성인이 지정된 매니페스트 또는 작업에 대한 검사를 무시할 수 있도록 허용합니다. True로 설정된 pkg.linted 속성을 포함하는 매니페스트 또는 작업은 해당 매니페스트 또는 작업에 대한 Lint 출력을 생성하지 않습니다.

pkglint 검사 이름의 하위 문자열을 사용하여 보다 세부적인 pkg.linted 설정을 지정할 수 있습니다. 예를 들어, pkg.linted. check.idTrue로 설정하면 지정된 매니페스트 또는 작업에 대해 이름이 check.id 인 모든 검사가 무시됩니다.

pkglintrc 파일을 지정하여 pkglint의 동작을 구성할 수 있습니다. 기본적으로 pkglint/usr/share/lib/pkg/pkglintrc$HOME/.pkglintrc에서 구성 옵션을 검색합니다. -f 옵션을 사용하여 다른 구성 파일을 지정할 수 있습니다.

Lint 실행 중 발생한 오류 또는 경고는 stderr에 인쇄됩니다.

옵션

다음 옵션이 지원됩니다.

-b build_no

Lint 및 참조 저장소에서 Lint 실행 중 사용되는 패키지 목록을 제한하는 데 사용할 빌드 번호를 지정합니다. -b 옵션을 지정하지 않을 경우 패키지의 최신 버전이 사용됩니다. version.pattern 구성 등록 정보도 참조하십시오.

-c cache_dir

Lint 및 참조 저장소의 패키지 메타 데이터를 캐싱하는 데 사용할 로컬 디렉토리를 지정합니다.

-l lint_uri

Lint 저장소의 위치를 나타내는 URI를 지정합니다. HTTP 및 파일 시스템 기반 게시가 모두 지원됩니다. -l을 지정할 경우 -c도 지정해야 합니다.

-L

알려진 Lint 검사 및 제외된 Lint 검사를 나열한 후 종료합니다. 각 검사에 대한 짧은 이름 및 설명을 표시합니다. -v 플래그와 함께 사용할 경우 설명 대신 검사 구현 방법을 표시합니다.

-f config_file

config_file 구성 파일을 사용하여 pkglint 세션을 구성합니다.

-p regexp

Lint 저장소에서 확인할 패키지 목록을 제한하는 데 사용할 정규 표현식을 지정합니다. -b에 대한 값(제공된 경우)과 일치한다는 가정하에 이 패턴을 무시하여 참조 저장소의 모든 매니페스트가 로드됩니다.

-r repo_uri

참조 저장소의 위치를 나타내는 URI를 지정합니다. -r을 지정할 경우 -c도 지정해야 합니다.

-v

구성 파일의 모든 log_level 설정을 대체하여 pkglint를 Verbose 모드로 실행합니다.

--help 또는 -?

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

파일

pkglintrc 구성 파일에 사용되는 키/값 인수는 다음과 같습니다.

log_level

Lint 메시지를 내보낼 최소 레벨입니다. 이 레벨보다 낮은 Lint 메시지는 무시됩니다. 기본값은 INFO입니다.

로그 레벨은 DEBUG, INFO, WARNING, ERRORCRITICAL(가장 사소한 것부터 심각한 순으로)입니다.

do_pub_checks

True인 경우 게시된 패키지에 대해서만 처리될 수 있는 검사를 수행합니다. 기본값은 True입니다.

pkglint.ext.*

pkglint의 플러그인 방식은 런타임에 다른 Lint 모듈이 추가될 수 있도록 허용합니다. pkglint.ext.로 시작하는 키에 사용되는 값은 완전하게 지정된 Python 모듈이어야 합니다. 자세한 내용은 "개발자" 절을 참조하십시오.

pkglint.exclude

수행될 일련의 검사에서 생략할 완전하게 지정된 Python 모듈, 클래스 또는 함수 이름의 공백으로 구분된 목록입니다.

use_progress_tracker

True인 경우 Lint 실행 중 매니페스트에 대해 반복될 때 진행 추적기를 사용합니다. 기본값은 True입니다.

version.pattern

Lint를 실행할 빌드 번호를 지정할 때 사용되는 버전 패턴입니다(-b). 구성 파일에서 지정되지 않은 경우 -b 옵션은 분기 접두어가 0이며 5.11 빌드의 모든 구성 요소와 일치하는 *,5.11-0. 패턴을 사용합니다.

개발자

pkglint와 하위 클래스 pkg.lint.base.Checker, 해당 하위 클래스 ManifestChecker, ActionCheckerContentChecker에서 수행하는 일련의 검사를 확장합니다. 구성 파일의 새 pkglint.ext. 키에 해당 클래스를 포함하는 Python 모듈 이름을 추가합니다.

이러한 새 하위 클래스의 인스턴스는 시작 시 pkglint가 만듭니다. 특수한 키워드 인수 pkglint_id가 있는 각 하위 클래스 내 메소드가 Lint 세션 도중 호출됩니다. 이러한 메소드의 서명은 수퍼 클래스 내 해당 check() 메소드의 서명과 동일해야 합니다. pkglint -L이 인쇄한 설명으로 사용되는 pkglint_desc 속성에도 메소드가 지정되어야 합니다.

Checker 하위 클래스에 매개변수를 사용하여 동작을 조정할 수 있습니다. 권장되는 매개변수 이름 지정 규약은 pkglint_id.name입니다. 매개변수 값은 구성 파일에 저장되거나 LintEngine.get_param() 메소드를 사용하여 검색된 매니페스트 또는 작업에서 액세스될 수 있습니다. 매니페스트에서 매개변수에 액세스하면 pkglint 매개변수가 기존 작업 또는 매니페스트 값과 겹치지 않도록 접두어 pkg.lint가 키 이름 앞에 추가됩니다.

예 1 특정 저장소에 대한 첫번째 실행

지정된 저장소에 대해 pkglint 세션을 처음 실행합니다.

$ pkglint -c /space/cache -r http://localhost:10000 mymanifest.mf

예 2 동일한 저장소에 대한 후속 실행

예 1에 사용된 것과 동일한 저장소에 대해 후속 세션을 실행합니다.

$ pkglint -c /space/cache mymanifest-fixed.mf

예 3 제한된 매니페스트 세트에 Lint 저장소 사용

Lint 저장소를 사용하여 pkglint 세션을 실행하고 확인할 일부 매니페스트를 지정합니다.

$ pkglint -c /space/othercache -l http://localhost:10000 \
-p '.*firefox.*'

예 4 빌드 지정

지정된 빌드에 대해 Verbose 모드로 pkglint 세션을 실행합니다.

$ pkglint -c /space/cache -r http://localhost:10000 \
-l http://localhost:12000 -b 147 -v

예 5 구성 파일 수정

일부 검사가 제외된 새 Lint 모듈에 대한 구성 파일입니다.

$ cat ~/.pkglintrc
[pkglint]

log_level = DEBUG
# log_level = INFO

pkglint.ext.mycheck = org.timf.mychecks
pkglint.ext.opensolaris = pkg.lint.opensolaris
pkglint.exclude: pkg.lint.opensolaris.OpenSolarisActionChecker
pkg.lint.pkglint.PkgActionChecker.unusual_perms pkg.lint.pkglint.PkgManifestChecker
pkg.lint.opensolaris.OpenSolarisManifestChecker

종료 상태

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

0

명령이 성공했습니다.

1

하나 이상의 Lint 검사가 출력을 내보냈습니다.

2

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

99

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

속성

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

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

참조

pkg(1), pkg.depotd(1m), pkgsend(1), pkg(5)

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