PKG_VERSION(1)

명칭
pkg_version - 인스톨 된 package 의 버젼을 요약 표시

서식
pkg_version [-cdhv] [-l limchar] [-L limchar] [-s string] [index] pkg_version [-t version1 version2]

해설
pkg_version 명령은, pkg_add(1) 명령을 사용해 인스톨 된, 기본 소프트웨어 이외의 소프트웨어 package (역주: FreeBSD 의 package system 에 있어서의 패키지를 가리키는 경우에 이렇게 표기합니다) 에 관한 리포트를 작성하기 위해서 사용합니다.

각 package 의 버젼 번호는, 2 개의 정보원 중 1 개로 조회되어 이 package 의 갱신이 필요가 아닌가가 판단됩니다. package 중에 FreeBSD ports 트리에 있어서의 기원 정보를 포함해, port 의 Makefile (으)로부터 버젼 번호를 판정 가능한 경우, Makefile 의 버젼 번호를 사용해, 인스톨제의 package 가 최신일까 갱신요점인지를 판정합니다.

package 의 기원이 없는 경우인가, port 의 Makefile 하지만 발견되지 않는 경우, pkg_version (은)는 ports collection 인덱스 파일 (전형적으로는 /usr/ports/INDEX )(으)로부터 package 를 찾습니다. 매치 하는 버젼 번호 (복수가능)를 사용해, 인스톨제의 package 가 최신일까 갱신요점인지를 판정합니다.

일반적으로, port 의 Makefile 의 버젼 번호를 사용하는 것으로써, 보다 정확한 결과가 됩니다. 이것은, 인덱스 파일과는 달라, 현재의 버젼 번호를 엄밀하게 제공하기 위해(때문에)여, 이것은 복수의 버젼의 port 가 ports collection 중에 있는 경우에서도 성립합니다. 더욱, ports collection 인덱스 파일의 갱신은 간격이 열리기 때문에, ports collection 에 포함되는 소프트웨어의 버젼 번호를 완전하게 반영하고 있는 것이 아닙니다.

각 package 명이, 다음에 나타내는 1 캐릭터의 스테이터스 플래그와 함께 표시됩니다:

=   인스톨 되고 있는 package 의 버젼은, 최신입니다.

<   인스톨 되고 있는 package 의 버젼은, 최신 버젼보다 낡은 것입니다.

>   인스톨 되고 있는 package 의 버젼은, 최신 버젼보다 새로운 것입니다. 이 상황은, 인덱스가 낡은 경우인가, 신규 port 를 테스트중에 발생합니다.

?   인스톨 된 package 가 인덱스중에 발견되지 않았습니다. 원인으로서는, 인덱스가 낡은 일인가, 위탁되어 있지 않은 package 를 PR 로부터 취득했던 적이 있습니다.

*   어느 특정의 소프트웨어 package 로 복수 버젼이 인덱스에 열거되고 있는 것이 있습니다. FreeBSD port 콜렉션을 예에 취하면(자), Tcl 툴 킷이나 EMACS 하지만 해당합니다.

!   인스톨 된 package 가 인덱스중에 있습니다만, 하등의 이유로, 인스톨 된 package 의 버젼 번호와 인덱스중의 대응하는 엔트리를 pkg_version 하지만 비교할 수 없었습니다.

옵션
pkg_version 유틸리티는, 몇개의 명령행 인수를 서포트하고 있습니다:

-c  명령 출력을 가능하게 합니다. 명령 출력은, 인스톨이 끝난 package 를 port 시스템에 대해 최신 버젼의 것에 갱신하기 위해서, 당신이 몰두할 필요가 있는 명령을 포함하고 있습니다. 이 기능은, package 를 자동적으로 갱신하는 시스템을 구성(뜻)이유에서는 선 본명령의 출력은, 인스톨제의 package 간의 의존관계(dependencies)를 부수지 않기 위해(때문에), 편집한다 필요 (이)가 있습니다.

-d  디버그 출력을 유효하게 합니다.

-h  헬프 메세지를 표시합니다.

-l  출력하는 package 를, 스테이터스 플래그가 캐릭터 limchar 에 매치 하는 것에 제한합니다. 매치에 사용하는 캐릭터를, 복수개 limchar (으)로 지정 가능합니다. 스테이터스 플래그의 캐릭터에는 쉘의 특수 캐릭터이기도 한 것이 존재하기 위해(때문에), limchar (을)를 싱글 쿼트로 괄의 것이 최선손입니다.

-L  출력하는 package 를, 스테이터스 플래그가 limchar 에 매치 하지 않는 것에 제한합니다. 복수의 매치 대상의 캐릭터를 limchar (으)로 지정 가능합니다. 스테이터스 플래그의 캐릭터에는 쉘의 특수 캐릭터이기도 한 것이 존재하기 위해(때문에), limchar (을)를 싱글 쿼트로 괄의 것이 최선손입니다.

-s  출력하는 package 를, 지정된 캐릭터 라인 string 에 이름이 매치 하는 것에 제한합니다.

-t  버젼 번호 캐릭터 라인의 조를 테스트해, 종료합니다. 다음의 단일 캐릭터의 어느쪽이든을 표준 출력에 출력합니다: = (동일하다), < (우측의 번호가 크다), > (좌측의 번호가 크다). 본플래그는, 스크립트나 테스트에 유용합니다.

-v  장황 출력을 유효하게 합니다. 장황 출력은 영문에 의한, 버젼 번호 비교에 관한 약간의 설명과 각 package 의 비교에 사용된 버젼 번호의 설명이 포함되어 있습니다. 스크립트나 프로그램으로 처리하려면 , 아마 장황하지 않은 출력이 간단하겠지요.

index
    비교의 기준으로서 이용하는 인덱스를 지정합니다. 인덱스로서 파일명 (로컬인 파일 시스템내) 또는 URL 를 지정할 수가 있습니다. fetch(1) 하지만 해석 가능한 URL 이면, 어떠한 것에서도 지정할 수가 있습니다. 명령행으로 index 파일이 지정되어 있지 않은 경우는 /usr/ports/INDEX 하지만 이용됩니다.

관련 항목
fetch(1), pkg_add(1), pkg_create(1), pkg_delete(1), pkg_info(1)

관련 파일
/usr/ports/INDEX
    디폴트의 인덱스 파일.

사용예
이하는 pkg_version 명령의 전형적인 기동 방법입니다. 인스톨이 끝난 package 를 로컬의 port 인덱스 파일과 조합합니다:

    % pkg_version -v

아래의 명령은, 온라인의 port 콜렉션에 있어서의 버젼 번호에 대해서 리포트를 생성합니다:

    % pkg_version ftp://ftp.FreeBSD.org/pub/FreeBSD/ports-current/INDEX

아래의 명령은, 인스톨 된 파일의 갱신을 실시하기 위해서(때문에) 실행하는 명령군의 파일을 생성합니다. 명령은, 적절히 편집하는 일 없이 실행 하지 말아 주세요 제안으로서 취급해야 하는 것이어, 인스톨제 package 간의 의존관계(dependencies)를 고려에 넣기 위해서(때문에) 순서를 바꿔 넣을 필요가 있을지도 모르고, 복수의 인스톨제 package 를 공존시키기 위해서(때문에) 무시할 필요가 있을지도 모릅니다. 본명령의 출력을 내용을 확인하지 않고 사용하면(자), 시스템이 사용할 수 없게 되는 일이 있습니다.

    % pkg_version -c > do_update

다음의 명령은, 2 개의 package 버젼 캐릭터 라인을 비교합니다:

    % pkg_version -t 1.5 1.5. 1

저자
Bruce A. Mah <bmah@FreeBSD.org>

기증자
Nik Clayton <nik@freebsd.org>, Dominic Mitchell <dom@palmerharvey.co.uk>, Mark Ovens <marko@FreeBSD.org>, Doug Barton <DougB@gorean.org>, Akinori MUSHA <knu@FreeBSD.org>

버그
명령 출력 기능은, ports/packages 의 자동 갱신 시스템에서는 없습니다 인스톨제의 packages 간의 의존관계(dependencies)를 올바르게 취급하려고조차 하지않고, 시스템상에 복수의 버젼의 package 가 공존하는 경우에는 올바르지 않은 결과를 출력합니다.

명령 출력은, pkg_add(1) (을)를 사용하는 것이 아니라, port 시스템을 사용해 새로운 소프트웨어를 인스톨 하면(자) 가정하고 있습니다.