설치를 위한 소프트웨어 패키징
이 주제에서는 installp 명령으로 설치할 애플리케이션 준비에 대한 정보를 제공합니다.
이 절에서는 제품 개발자가 제공해야 하는 소프트웨어 제품 설치 패키지의 형식 및 내용에 대해 설명합니다. 소프트웨어 설치 또는 갱신 패키지의 파트인 필수 파일 및 선택적 파일에 대해서도 설명합니다.
소프트웨어 제품 설치 패키지는 소프트웨어 제품의 파일, 필수 설치 제어 파일 및 선택적 설치 조정 파일이 들어 있는 백업 형식의 파일입니다. Installp 명령은 소프트웨어 제품을 설치하고 업데이트하는 데 사용됩니다.
설치 패키지에는 개별적으로 설치할 수 있는 논리적으로 그룹이 지정되는 단위인 파일 세트가 하나 이상 있습니다. 패키지의 각 파일 세트는 동일한 제품에 속해야 합니다.
파일 세트 갱신 또는 갱신 패키지는 기존 파일 세트에 대한 수정사항을 포함하는 패키지입니다.
이 주제 전체에서 표준 시스템 용어는 디스크가 없는 시스템으로서 구성되지 않는 시스템을 말합니다.
설치 프로시저 요구사항
- 설치에는 사용자 상호작용이 필요하지 않습니다. 사용자 상호작용이 필요한 제품 구성은 설치 전후에 발생해야 합니다.
- 독립적인 파일 세트 또는 상호 의존적인 파일 세트에 대한 갱신사항 모두는 한 번의 설치로 설치될 수 있어야 합니다.
- 설치 시 시스템을 다시 시작해야 할 필요는 없습니다. 설치하면 설치와 관련된 시스템 부분이 정지되므로 설치를 전체적으로 적용하려면 설치 이후 시스템을 다시 시작해야 합니다.
패키지 제어 정보 요구사항
패키지 제어 정보로 다음을 수행해야 합니다.
- 파일 세트에 적용되는 모든 설치 요구사항을 기타 파일 세트에 지정합니다.
- 파일 세트 설치를 위한 모든 파일 시스템 크기 요구사항을 지정합니다.
소프트웨어 패키지 형식
설치 또는 업데이트 패키지는 설치 중에 installp 명령으로 복원할 수 있는 백업 형식의 단일 파일이어야 합니다. 이 파일을 테이프, 디스켓 또는 CD-ROM으로 배포할 수 있습니다.
패키지 분할 요구사항
디스크 없는 또는 데이터 없는 클라이언트 워크스테이션을 지원하려면, 패키지의 머신 고유 부분(루트 파트)을 패키지의 머신 공유 가능 부분(usr 파트)과 구분되어야 합니다. 패키지의 usr 부분에는 ' /usr ' 또는 ' /opt ' 파일 시스템에 있는 파일이 포함되어 있습니다.
패키지의 루트 파트 설치 시 /usr 파일 시스템이 있는 어떤 파일도 수정해서는 안 됩니다. /usr 파일 시스템은 디스크가 없거나 데이터가 없는 클라이언트 시스템의 루트 파트 설치 중에 작성할 수 없습니다. 머신별(루트) 부분에는 ' /usr ' 또는 ' /opt ' 파일 시스템에 없는 모든 것이 포함되어야 합니다.
워크로드 파티션을 위한 패키징
워크로드 분할(WPAR)을 위해 패키징되는 경우 일부 소프트웨어 제품에서는 특수한 사항을 고려해야 합니다. WPAR에서 소프트웨어 제품을 성공적으로 배치하려면, WPAR은 이러한 파일 시스템을 읽기 전용 모드에서 마운트하므로 루트 파트 처리 중 /usr 또는 /opt 파일 시스템에 쓰기를 시도하지 않는 방식으로 소프트웨어 제품을 패키징해야 합니다. 이와 유사하게 제품이 설치될 각 시스템에서 수행하는 모든 구성은 패키지의 루트 파트에서 수행되어야 합니다.
파일 세트를 워크로드 파티션에 설치하지 않으려는 경우, 패키지의 lpp_name 파일에서 PRIVATE 속성으로 지정해야 합니다.
WPAR에서 설치할 때 파일 세트를 다르게 구성해야 하는 경우, 패키징 스크립트는
INUWPAR 환경 변수를 점검하여 파일 세트가 WPAR 내에 설치 중인지 여부를 판별합니다.
WPAR에 설치될 때 파일 세트가 다르게 구성되면, 파일 세트가
원래 WPAR에 설치되지 않았으므로 시스템 사본에서 WPAR을 작성할 때 다시 구성됩니다. 파일 세트 소유자는 /usr/lib/wpars/wparconvert.d/usr 및
/usr/lib/wpars/wparconvert.d/root 디렉토리에서 프로그램을 작성할 수 있으며,
이는 시스템 사본 WPAR에서 실행할 파일 세트에서 usr 및 루트 파트를 변환할 때 실행됩니다. 해당 디렉토리 내의 모든 실행 파일은 시스템 사본 WPAR이 처음 시작되면 알파벳순(C 로케일)으로 실행됩니다.
소프트웨어 필수 제품 데이터
소프트웨어 제품 및 설치 가능한 옵션에 대한 정보는 소프트웨어 필수 제품 데이터(SWVPD) 데이터베이스에서 유지됩니다. SWVPD는 소프트웨어 제품 정보의 유지를 위한 오브젝트 데이터 관리자(ODM) 오브젝트 클래스와 명령 세트로 구성됩니다. SWVPD 명령은 사용자가 설치된 소프트웨어 제품을 조회(lslpp) 및 확인(lppchk)할 수 있도록 제공됩니다. ODM 오브젝트 클래스는 유지하는 소프트웨어 제품 정보의 유효범위와 형식을 정의합니다.
Installp 명령은 객체 데이터 관리자를 사용하여 SWVPD 데이터베이스에서 다음 정보를 유지 관리합니다:
- 소프트웨어 제품 이름(예제: bos.adt)
- 소프트웨어 제품 버전
- 소프트웨어 제품의 릴리스 레벨(소프트웨어 제품의 외부 프로그래밍 인터페이스에 대한 변경사항을 표시함)
- 소프트웨어 제품의 수정 레벨(소프트웨어 제품의 외부 인터페이스에 영향을 주지 않는 변경사항을 표시함)
- 소프트웨어 제품의 수정 레벨(나중에 정규 수정 레벨로 빌드될 사소한 갱신사항을 표시함)
- 소프트웨어 제품 또는 옵션을 구성하는 파일의 이름, 체크섬 및 크기
- 소프트웨어 제품 상태(사용 가능함, 적용 중, 적용됨, 확정 중, 확정됨, 거부 중 또는 파손)
- 테크놀로지 레벨 및 APAR 정보
- 비installp 패키지 소프트웨어의 대상 디렉토리 및 설치 프로그램(적용 가능한 경우)
소프트웨어 제품 패키징 파트
- usr
- 호환 가능한 하드웨어 아키텍처와 여러 머신에서 공유할 수 있는 제품 파트가 포함되어 있습니다. 표준 시스템의 경우 이러한 파일은 /usr 또는 /opt 파일 트리에 저장됩니다.
- root
- 여러 머신에서 공유할 수 없는 제품 파트가 포함되어 있습니다. 각 클라이언트에는 자체 사본이 있어야 합니다. 머신 각각에 대한 별도의 사본이 필요한 대부분의 이 소프트웨어는 머신 또는 제품의 구성과 연관되어 있습니다. 표준 시스템의 경우 루트 파트의 파일은 루트(/) 파일 트리에 저장됩니다. 파일 세트의 루트 파트는 파일 세트의 usr 파트와 동일한 패키지에 있어야 합니다. 파일 세트에 루트 파트가 포함되어 있으면 usr 파트도 포함되어야 합니다.
패키지 분할을 위한 샘플 파일 시스템 안내서
다음은 파일 시스템 및 디렉토리에 대한 간단한 설명입니다. 제품 패키지를 루트, usr 및 공유 파트로 분할하기 위한 안내서로 이를 사용할 수 있습니다.
일부 루트 파트 디렉토리 및 내용은 다음과 같습니다.
- /dev
- 로컬 머신 장치 파일입니다.
- /etc
- hosts 및 passwd와 같은 머신 구성 파일입니다.
- /sbin
- 시스템을 부팅하는 데 필요한 시스템 유틸리티입니다.
- /var
- 시스템 고유의 데이터 파일 및 로그 파일입니다.
일부 usr 파트 디렉토리 및 내용에는 다음이 포함됩니다.
- /usr/bin
- 명령 및 스크립트(일반 실행 파일)입니다.
- /usr/sbin
- 시스템 관리 명령입니다.
- /usr/include
- 포함 파일입니다.
- /usr/lib
- 라이브러리, 비사용자 명령 및 아키텍처 종속 데이터입니다.
- /opt
- 라이브러리, 비사용자 명령 및 일반적으로 비운영 체제 제품과 연관된 스크립트입니다.
패키지 및 파일 세트 이름 지정 규칙
- 패키지 이름(PackageName)은 제품 이름으로 시작되어야 합니다. 패키지에 설치 가능한 패키지가 하나만 있을 경우 파일 세트 이름은 PackageName과 같을 수 있습니다. 모든 패키지 이름은 고유해야 합니다.
- 파일 세트 이름의 양식은 다음과 같습니다.
where:ProductName.PackageName.FilesetName.extensionProductName은 제품 또는 솔루션 그룹을 식별합니다.PackageName은 제품 내의 기능 그룹을 식별합니다.FilesetName(선택사항)은 설치될 파일 및 라이브러리의 특정 기능 세트를 식별합니다.Extension(선택사항)은 내용을 자세히 설명합니다.
- 파일 세트 이름에는 둘 이상의 문자가 포함되고 문자로 시작됩니다.
- 파일 세트 이름의 모든 문자는 ASCII 문자여야 합니다. 유효한 문자는 대소문자, 숫자, 밑줄(_), 더하기 부호(+) 및 빼기 부호(-)입니다. 마침표(.)는 파일 세트 이름에서 구분자로 사용됩니다.
- 파일 세트 이름은 마침표 또는 점으로 끝날 수 없습니다.
- 파일 세트 이름의 최대 길이는 144바이트입니다.
- 모든 파일 세트 이름은 패키지 내에서 고유해야 합니다.
| 확장자 | 파일 세트 설명 |
|---|---|
| .adt | 애플리케이션 개발 툴킷입니다. |
| .com | 유사한 파일 세트에서 필요한 공통 코드입니다. |
| .compat | 향후 릴리스에서 제거될 수 있는 호환성 코드입니다. |
| .diag | 진단 프로그램 지원입니다. |
| .fnt | 폰트입니다. |
| .help. 언어 | 특정 언어용 공통 데스크탑 환경(CDE) 도움말 파일입니다. |
장치 드라이버 패키징의 특수 이름 지정 고려사항
devices.BusTypeID.CardID.Extensionwhere:BusTypeID는 카드가 접속되는 버스 유형(예: PCI의 경우 pci)을 지정합니다.CardID는 카드 유형과 연관된 고유 16진수 ID를 지정합니다.Extension은 포함되어 있는 드라이버 파트(예: rte는 실행시간용 확장자이고 diag는 진단 프로그램용 확장자임)를 지정합니다.
예를 들어, 이더넷 장치가 PCI 버스에 연결되고 구성 관리자가 다음과 같은 고유 카드 식별자를 가진 것으로 식별한다고 가정합니다1410bb02. 이 이더넷 장치와 관련된 파일 세트의 패키지 이름은 devices.pci.1410bb02. 이 패키지 내부의 실행시간 환경 파일 세트 이름은 devices.pci.1410bb02.rte입니다.
메시지 카탈로그 패키징을 위한 특수 이름 지정 고려사항
Product.msg.Language.SubProduct선택사항인 SubProduct 접미어는 제품에 같은 언어에 대한 복수의 메시지 카탈로그 파일 세트가 있는 경우 사용되며, 각각의 메시지 카탈로그 파일 세트는 다른 SubProduct에 적용됩니다. 전체 제품에 하나의 메시지 파일 세트가 있도록 선택할 수 있습니다.
For example, theSuper_Widget제품에는plastic및metal파일세트 옵션 집합입니다. 모두Super_Widget영어 미국 메시지 카탈로그는 다음과 같은 단일 파일 집합으로 패키지화할 수 있습니다Super_Widget.msg.en_US. 에 대해 별도의 메시지 카탈로그 파일 세트가 필요한 경우plastic및metal옵션을 사용하면 영어 미국 메시지 카탈로그 파일 집합의 이름이Super_Widget.msg.en_US.plastic및Super_Widget.msg.en_US.metal.
파일 이름
소프트웨어 패키지와 함께 전달되는 파일 이름에는 쉼표 또는 콜론이 포함될 수 없습니다. 쉼표 및 콜론은 소프트웨어 설치 프로세스에서 사용되는 제어 파일에 분리 문자로 사용됩니다. 파일 이름에는 비ASCII 문자가 포함될 수 있습니다. 파일 이름의 전체 경로는 128자를 초과할 수 없습니다.
파일 세트 개정 레벨 식별
Version.Release.Modification.FixLevelwhere:- Version은 버전 번호를 식별하는 1 - 2개의 숫자로 된 숫자 필드입니다.
- Release는 릴리스 번호를 식별하는 1 - 2개의 숫자로 된 숫자 필드입니다.
- Modification은 수정 레벨을 식별하는 1 - 4개의 숫자로 된 숫자 필드입니다.
- FixLevel은 수정 레벨을 식별하는 1 - 4개의 숫자로 된 숫자 필드입니다.
기본 파일 세트 설치 레벨은 파일 세트의 전체 초기 설치 레벨입니다. 이 레벨에는 파일 세트 갱신과 반대로 파일 세트의 모든 파일이 포함되어 있으며, 전체 파일 세트의 파일에 대한 서브 세트를 포함할 수 있습니다.
소프트웨어 패키지의 모든 파일 세트는 동일한 파일 세트 수준을 가져야 하지만, AIX® 4.1 패키지에는 필요하지 않습니다.
파일 세트의 모든 신규 레벨에서는 파일 세트 레벨을 올려야 합니다. installp 명령은 파일 세트 레벨을 사용하여 후속 설치 시 제품의 최신 레벨이 있는지를 검사합니다.
파일세트 수준 우선순위는 왼쪽에서 오른쪽으로 읽습니다(예,5.2.0.0보다 새로운 레벨입니다4.3.0.0).
소프트웨어 패키지 내용
이 절에서는 설치 또는 갱신 패키지에 포함되는 파일에 대해 설명합니다. 파일 경로 이름은 설치 패키지 유형별로 제공됩니다. 갱신 패키지의 경우 PackageName이 경로 이름의 파트인지 여부에 관계없이 PackageName/FilesetName/FilesetLevel로 대체됩니다.
- ./lpp_name: 이 파일은 설치되거나 갱신될 소프트웨어 패키지에 대한 정보를 제공합니다. 성능상의 이유로 lpp_name 파일은 소프트웨어 설치 패키지를 구성하는 백업 형식 파일에서 첫 번째 파일이어야 합니다.
- ./usr/lpp/PackageName/liblpp.a: 이 아카이브 파일에는 소프트웨어 패키지에 있는 usr 파트의 설치 또는 갱신을 위해 설치 프로세스에서 사용하는 제어 파일이 들어 있습니다.
- 소프트웨어 제품의 usr 파트를 설치하거나 갱신하기 위해 복원될, 루트와 관련되어 백업된 모든 파일입니다.
- ./usr/lpp/PackageName/inst_root/liblpp.a: 이 라이브러리 파일에는 소프트웨어 패키지에 있는 루트 파트의 설치 또는 갱신을 위해 설치 프로세스에서 사용하는 제어 파일이 들어 있습니다.
- 소프트웨어 패키지의 루트 파트를 설치하거나 갱신하기 위해 복원될 모든 파일입니다. 기본 파일 세트 설치 레벨의 경우 이러한 파일은 ./usr/lpp/PackageName/inst_root에 대한 상대 경로로 백업되어야 합니다.
소프트웨어 패키지의 예제 내용
/usr/bin/raisehog (in the usr part of the package)
/usr/sbin/sellhog
(in the usr part of the package)
/etc/hog
(in the root part of the package)./lpp_name
./usr/lpp/farm.apps/liblpp.a
./usr/lpp/farm.apps/inst_root/liblpp.a
./usr/bin/raisehog
./usr/sbin/sellhog
./usr/lpp/farm.apps/inst_root/etc/hog/usr/sbin/sellhog
/etc/hog./lpp_name
./usr/lpp/farm.apps/farm.apps.hog/4.1.0.3/liblpp.a
./usr/lpp/farm.apps/farm.apps.hog/4.1.0.3/inst_root/liblpp.a
./usr/sbin/sellhog
./usr/lpp/farm.apps/farm.apps.hog/4.1.0.3/inst_root/etc/hoglpp_name 패키지 정보 파일
각 소프트웨어 패키지에는 lpp_name 패키지 정보 파일이 포함되어야 합니다. lpp_name 파일은 패키지 및 패키지에 있는 각 파일 세트에 대한 installp 명령 정보를 제공합니다. 파일 세트 갱신 패키지에 대한 lpp_name 파일 예제는 그림을 참조하십시오. 그림에서 번호 및 화살표는 다음에 오는 표에서 설명하는 필드를 의미합니다.
| 필드 이름 | 형식 | 구분자 | 설명 |
|---|---|---|---|
| 1. 형식 | 정수 | 공백 문자 | 이 패키지가 빌드된 installp의 릴리스 레벨을
표시합니다. 값은 다음과 같습니다.
|
| 2. 플랫폼 | 문자 | 공백 문자 | 이 패키지가 빌드된 플랫폼을 표시합니다. 값은 다음과 같습니다.
|
| 3. 패키지 유형 | 문자 | 공백 문자 | 설치 패키지인지 갱신 패키지인지 여부 및 해당 유형을
표시합니다. 값은 다음과 같습니다.
|
| 4. 패키지 이름 | 문자 | 공백 문자 | 소프트웨어 패키지의 이름(PackageName)입니다. |
| { | 줄 바꾸기 | 파일 세트 특정 데이터가 들어 있는 반복 가능한 절의 시작을 표시합니다. | |
| 5. 파일 세트 이름 | 문자 | 공백 문자 | 파일 세트의 전체 이름입니다. 이 필드는 파일 세트 또는 파일 세트 갱신을 위한 표제 정보를 시작합니다. |
| 6. 레벨 | 설명 열에 표시됨 | 공백 문자 | 설치될 파일 세트의 레벨입니다. 형식은 다음과 같습니다. Version.Release.Modification.FixLevel 참고: <, >, = 조합 구문을 사용하여 레벨을 추가로 정의할 수 있습니다. 예를 들어,
*prereq bos.rte v<5 또는 *prereq bos.rte v=5
r=3입니다. |
| 7. 볼륨 | 정수 | 공백 문자 | 멀티볼륨 미디어에 제공된 경우 파일 세트가 있는 볼륨 번호를 표시합니다. |
| 8. Bosboot | 문자 | 공백 문자 | 설치 후에 bosboot가 필요한지의 여부를 표시합니다. 값은 다음과 같습니다.
|
| 9. 내용 | 문자 | 공백 문자 | 파일 세트 또는 파일 세트 갱신에 포함되는 파트를 표시합니다. 값은 다음과 같습니다.
|
| 10. 언어 | 문자 | 공백 문자 | C 로케일이 선택된 경우 표시되는 언어로 설정되어야 합니다. 일반적으로 en_US로 설정됩니다. |
| 11. 설명 | 문자 | # 또는 줄 바꾸기 | 파일 세트 설명입니다. 설명은 60자로 제한됩니다. |
| 12. 주석 | 문자 | 줄 바꾸기 | (선택사항) 추가 주석입니다. |
| [ | 줄 바꾸기 | 파일 세트 정보 본문의 시작을 표시합니다. | |
| 13. 필수 정보 | 다음 표에 설명됨 | 줄 바꾸기 | (선택사항) 파일 세트가 기타 파일 세트 및 파일 세트 갱신사항에 대해 가지는 설치 종속성입니다. 자세한 설명은 이 표 다음에 나오는 절을 참조하십시오. |
| % | 줄 바꾸기 | 필수사항과 크기 정보 간의 구분 표시입니다. | |
| 14. 크기 및 라이선스 계약 정보 | 이 주제에서 나중에 설명함 | 줄 바꾸기 | 디렉토리별 크기 요구사항 및 라이센스 계약 정보입니다. 자세한 설명은 나중에 이 주제에 있는 크기 및 라이센스 계약 정보 절을 참조하십시오. |
| % | 줄 바꾸기 | 크기와 라이센싱 정보 사이의 구분 표시입니다. | |
| % | 줄 바꾸기 | 라이센싱과 대체 정보 사이의 구분 표시입니다. | |
| 15. 대체 정보 | 나중에 주제에서 설명함 | 줄 바꾸기 | 이 파일 세트가 대체하는 이전 파일 세트에 대한 정보입니다. |
| % | 줄 바꾸기 | 라이센싱과 수정 정보 사이의 구분 표시입니다. | |
| 16. 수정사항 정보 | 나중에 주제에서 설명함 | 줄 바꾸기 | 파일 세트 갱신에 포함된 수정에 대한 정보입니다. 자세한 설명은 나중에 이 주제의 수정 정보 절을 참조하십시오. |
| ] | 줄 바꾸기 | 파일 세트 정보의 본문 끝을 표시합니다. | |
| } | 줄 바꾸기 | 파일 세트 고유 정보가 들어있는 반복 가능한 절 끝을 표시합니다. | |
|
필수사항 정보 절
필수사항 정보 절에는 기타 파일 세트 또는 파일 세트 갱신사항의 설치 종속성에 대한 정보가 들어 있습니다. 파일 세트 또는 파일 세트 갱신을 적용하려면 필수 규칙에 따라 필수 절에 나열된 각 필수사항을 만족시켜야 합니다.
설치 또는 갱신을 수행하기 전에 installp 명령은 lpp_name 파일에 나열된 요구사항과 설치할 파일 세트의 현재 상태를 비교합니다. -g 플래그가 installp 명령에서 지정된 경우, 설치할 파일 세트 리스트에 누락된 필수사항이 추가됩니다. 파일 세트는 모든 전제조건에 맞게 설치되도록 지정됩니다. 파일 세트를 설치하기 바로 전에 installp 명령은 다시 해당 파일 세트에 대한 필수사항을 검사합니다. 이 검사에서는 설치 프로세스에서 이전에 설치된 모든 필수사항이 성공적으로 설치되었는지와 모든 필수사항이 만족되었는지를 검증합니다.
다른 유형의 필수사항에 대한 다음 설명에서 RequiredFilesetLevel은 요구사항을 만족시키는 최소 파일 세트 레벨을 표시합니다. 대체 정보 섹션에 설명된 이유로 명시적으로 차단된 경우를 제외하고, 파일 세트의 새 레벨은 이전 레벨의 필수사항을 충족합니다. 예를 들어plum.tree 2.2.0.0파일 집합이plum.tree 3.1.0.0파일 집합입니다.
필수 소프트웨어
전제조건은 현재 파일 세트를 성공적으로 설치하려면 먼저 지정된 파일 세트 레벨 또는 그 이상의 레벨에서 지정된 파일 세트를 설치해야 함을 표시합니다. 전제조건 파일 세트가 설치되도록 예정된 경우 installp 명령은 전제조건이 충족되었는지를 확인하기 위해 설치할 파일 세트 리스트를 정렬합니다. 동일한 패키지 내에 있는 파일 세트에 대한 전제조건은 보장되지 않습니다.
*prereq Fileset RequiredFilesetLevelFileset RequiredFilesetLevel파일 세트 갱신에는 기본 레벨 파일 세트에 대한 내재적 전제조건이 포함되어 있습니다. 이 내재적 전제조건이 적절하지 않으면 다른 전제조건을 명시적으로 지정해야 합니다. 갱신 및 내재적 전제조건의 버전 및 릴리스는 같습니다. 업데이트의 FixLevel 0에서 암시적 전제 조건의 ' ModificationLevel '과 ' FixLevel '는 모두0. 그렇지 않으면 암시적 전제 조건은 업데이트의 ' ModificationLevel '와 동일한 ' ModificationLevel '을 가지며, ' FixLevel '은0. 예를 들어 4.1.3.2 레벨 업데이트를 하려면 업데이트 설치 전에 4.1.3.0 레벨이 설치되어 있어야 합니다. 4.1.3.0 레벨 갱신에서는 갱신 설치 이전에 4.1.0.0 레벨을 설치해야 합니다.
공동 조건
공통 필수사항은 현재 파일 세트가 올바르게 작동하기 위해 지정된 파일 세트를 반드시 설치해야 함을 표시합니다. 설치 프로세스를 종료할 때 installp 명령은 충족되지 않은 모든 공통 필수사항에 대해 경고 메시지를 발행합니다. 공통 필수사항은 동일한 패키지 내의 파일 세트간 필수사항을 표시하는 데 사용될 수 있습니다.
*coreq Fileset RequiredFilesetLevel필요한 경우
*ifreq plum.tree (1.1.0.0) 1.1.2.3*ifreq Fileset [(InstalledFilesetLevel)] RequiredFilesetLevelIf theplum.tree파일 집합이 이미 설치되어 있지 않은 경우 이 예제에서는 설치되지 않습니다. If theplum.tree파일 집합이 이미 다음 수준 중 하나에 설치되어 있는 경우 이 예제에서는1.1.2.3레벨을 설치합니다:
- 1.1.2.3
- 이 레벨은 RequiredFilesetLevel과 일치합니다.
- 1.2.0.0
- 이 레벨은 다른 기본 파일 세트 레벨입니다.
- 1.1.3.0
- 이 레벨은 RequiredFilesetLevel을 대체합니다.
If theplum.tree파일 집합이 이미 다음 수준 중 하나에 설치되어 있는 경우 이 예제에서는1.1.2.3레벨을 설치합니다:
- 1.1.0.0
- 이 레벨은 InstalledFilesetLevel과 일치합니다.
- 1.1.2.0
- 이 레벨은 InstalledFilesetLevel과 같은 기본 레벨이며 RequiredFilesetLevel보다 낮은 레벨입니다.
(InstalledFilesetLevel) 매개변수는 선택사항입니다. 매개변수가 누락되면 InstalledFilesetLevel 및 RequiredFilesetLevel의 Version 및 Release가 같은 것으로 간주합니다. RequiredFilesetLevel FixLevel 0에서 ' ModificationLevel '과 ' FixLevel '는 모두 ' InstalledFilesetLevel '의0. 그렇지 않으면 ' InstalledFilesetLevel '은 ' RequiredFilesetLevel '의 ' ModificationLevel '과 동일한 ' ModificationLevel '를 가지며 ' FixLevel '는0. 예를 들어 RequiredFilesetLevel 4.1.1.1로 설정하고 InstalledFilesetLevel 매개 변수를 제공하지 않으면 InstalledFilesetLevel 4.1.1.0. RequiredFilesetLevel 4.1.1.0로 설정하고 InstalledFilesetLevel 매개 변수를 제공하지 않으면 InstalledFilesetLevel 4.1.0.0.
설치된 필수사항
설치된 필수사항은 해당 파일 세트가 이미 설치되어 있거나 설치할 파일 세트 리스트에 있을 경우에만 지정된 파일 세트를 자동으로 설치해야 함을 표시합니다. 또한 설치된 필수사항은 사용자가 이를 설치하도록 명시적으로 요청할 경우에도 설치됩니다. 파일 세트 갱신에는 설치된 필수사항이 없을 수도 있습니다. 패키지의 일부 다른 파트를 설치하지 않고 특정 패키지의 메시지 파일을 포함하는 파일 세트를 자동으로 설치해서는 안되므로 메시지 파일 세트에는 항상 제품에 있는 다른 파일 세트에 대해 설치된 필수사항이 포함되어 있어야 합니다.
*instreq Fileset RequiredFilesetLevel그룹 필수 사항
그룹 필수사항은 다른 필수 조건이 해당 필수사항을 만족시킬 수 있음을 표시합니다. 그룹 필수사항에는 전제조건, 공통 필수사항, IF 필수사항 및 중첩된 그룹 필수사항이 포함될 수 있습니다. {RequisiteExpressionList} 앞에 오는 Number는 RequisiteExpressionList에 필요한 항목 수를 식별합니다. 예를 들면 다음과 같습니다.>2는 RequisiteExpressionList 최소 3개 이상의 항목이 필요하다고 명시합니다.
>Number { RequisiteExpressionList }필수사항 정보 절 예제
- 다음 예제는 공통 필수사항의 사용에 대해 설명합니다. 다음book.create 12.30.0.0파일 집합은layout.text 1.1.0.0및index.generate 2.3.0.0파일 세트가 설치되어 있으므로 필수 섹션인book.create
12.30.0.0를 포함합니다:
다음index.generate 3.1.0.0파일 세트는index.generate필수, 왜냐하면3.1.0.0는 필수 수준보다 새로운 수준입니다2.3.0.0레벨.*coreq layout.text 1.1.0.0 *coreq index.generate 2.3.0.0 - 다음 예제는 더욱 일반적인 필수사항 유형의 사용을
설명합니다. 파일 세트new.fileset.rte 1.1.0.0에는 다음과 같은 요구 사항이 포함되어 있습니다:
*prereq database.rte 1.2.0.0 *coreq spreadsheet.rte 1.3.1.0 *ifreq wordprocessorA.rte (4.1.0.0) 4.1.1.1 *ifreq wordprocessorB.rte 4.1.1.1다음database.rte파일 세트는 레벨에 설치해야 합니다1.2.0.0또는 그 이상의new.fileset.rte파일 집합을 설치할 수 있습니다. Ifdatabase.rte및new.fileset.rte가 동일한 설치 세션에 설치되어 있으면 설치 프로그램에서database파일세트 앞에new.fileset.rte파일 집합입니다.
다음spreadsheet.rte파일 세트는 레벨에 설치해야 합니다1.3.1.0이상의 경우new.fileset.rte파일 집합이 제대로 작동하도록 합니다. 다음spreadsheet.rte파일 집합을 설치할 필요가 없습니다new.fileset.rte파일 집합이 설치되며, 둘 다 동일한 설치 세션에 설치되어 있어야 합니다. 적절한 수준의spreadsheet.rte파일 집합이 설치 세션이 끝날 때까지 설치되지 않으면 핵심 요구 사항이 충족되지 않았다는 경고 메시지가 표시됩니다.
If thewordprocessorA.rte파일 세트가 설치되어 있거나new.fileset.rte) 레벨에서4.1.0.0를 클릭한 다음wordprocessorA.rte파일 세트 업데이트는 레벨에 설치해야 합니다4.1.1.1이상입니다.
If thewordprocessorB.rte파일 세트가 설치되어 있거나new.fileset.rte) 레벨에서4.1.1.0를 클릭한 다음wordprocessorB.rte파일 세트 업데이트는 레벨에 설치해야 합니다4.1.1.1이상입니다.
- 다음 예제는 설치된 필수사항을 설명합니다. 파일 세트Super.msg.fr_FR.Widget레벨2.1.0.0에는 다음 설치 요구 사항이 포함되어 있습니다:
*instreq Super.Widget 2.1.0.0다음Super.msg.fr_FR.Widget파일 집합을 자동으로 설치할 수 없는 경우Super.Widget파일 집합이 설치되지 않았습니다. 다음Super.msg.fr_FR.Widget파일 집합을 설치할 수 있습니다Super.Widget파일 세트가 설치될 파일 세트 목록에 명시적으로 나열되어 있으면 파일 세트가 설치되지 않습니다.
- 다음 예제는 그룹 필수사항을 설명합니다. 나열된 전제조건 파일 세트 중 최소한 하나 이상을 설치해야 합니다(둘 모두 설치할 수
있음). 설치된 경우spreadsheet_1.rte파일 세트는 레벨1.2.0.0이상 또는spreadsheet_2.rte파일 세트는 레벨1.3.0.0이상입니다.
>0 { *prereq spreadsheet_1.rte 1.2.0.0 *prereq spreadsheet_2.rte 1.3.0.0 }
크기 및 라이센스 계약 정보
크기 및 라이센스 계약 정보 절에는 파일 세트의 디스크 공간 및 라이센스 계약 요구사항에 대한 정보가 들어 있습니다.
크기 정보
Directory PermanentSpace [TemporarySpace]또한 제품 개발자는 전체 경로 이름 필드에서 PAGESPACE 또는 INSTWORK를 지정하여 설치 프로세스 도중 패키지 디렉토리에 필요한 작업 공간 및 페이징 공간의 디스크 공간 요구량을 표시할 수 있습니다.
- 디렉토리
- 크기 요구사항이 있는 디렉토리의 전체 경로 이름입니다.
- PermanentSpace
설치 또는 갱신에 필요한 영구적 공간의 크기(단위: 512바이트 블록)입니다. 영구적 공간은 설치 완료 후 필요한 공간입니다. 이 필드는 다음과 같은 경우에는 의미가 다릅니다.
Directory가 PAGESPACE이면 PermanentSpace는 설치를 수행하는 데 필요한 페이지 공간 크기(단위: 512바이트 블록)를 표시합니다.
Directory가 INSTWORK인 경우, PermanentSpace는 설치 도중 사용되는 제어 파일을 발췌할 때 필요한 512바이트 블록 수를 나타냅니다. 이러한 제어 파일은 liblpp.a 파일로 아카이브되는 파일입니다.
- TemporarySpace
설치에만 필요한 임시 공간의 크기(단위: 512바이트 블록)입니다. 임시 공간은 설치 완료 후 해제됩니다. TemporarySpace 값은 선택적입니다. 임시 공간에 대한 예로 실행 가능 오브젝트 파일을 다시 링크하는 데 필요한 공간을 들 수 있습니다. 다른 예제로 오브젝트 파일을 라이브러리에 아카이브하는 데 필요한 공간이 있습니다. 라이브러리로 아카이브하기 위해 installp 명령은 라이브러리 사본을 작성하고 복사된 라이브러리에 오브젝트 파일을 아카이브하며 복사된 라이브러리를 원래의 라이브러리로 이동시킵니다. 라이브러리 사본의 공간은 임시 공간으로 간주됩니다.
Directory가 INSTWORK이면 TemporarySpace는 발췌하지 않은 liblpp.a 파일에서 필요한 512바이트 블록 수를 표시합니다.
/usr/bin 30
/lib 40 20
PAGESPACE 10
INSTWORK 10 6디스크 파일 시스템이 파일 트리에 어떻게 마운트되는지를 예측하기가 어렵기 때문에 크기 정보 절의 디렉토리 경로 이름 항목은 가능하면 명확해야 합니다. 예를 들어 /usr/bin 및 /usr/lib는 모두 /usr에 마운트된 다른 파일 시스템에 있을 수 있으므로 /usr에 대한 결합 항목 대신 /usr/bin에 대한 항목과 /usr/lib에 대한 항목이 별도로 있는 것이 좋습니다. 일반적으로 파일이 설치되어 있는 디렉토리마다 항목을 포함시키는 것이 가장 좋습니다.
갱신 패키지의 경우에는 크기 정보에 save 디렉토리로 이동시킬 (대체할) 이전 파일이 포함되어야 합니다. 이러한 이전 파일은 나중에 갱신이 거부될 경우 복원됩니다. 이러한 크기 요구사항을 표시하기 위해 갱신 패키지는 다음과 같은 특수 디렉토리를 지정해야 합니다.
- /usr/lpp/SAVESPACE
- usr 파트 파일의 save 디렉토리입니다. 디폴트로 usr 파트 파일은 /usr/lpp/PackageName/FilesetName/FilesetLevel.save 디렉토리에 저장됩니다.
- /lpp/SAVESPACE
- 루트 파트 파일의 save 디렉토리입니다. 디폴트로 루트 파트 파일은 /lpp/PackageName/FilesetName/FilesetLevel.save 디렉토리에 저장됩니다.
라이센스 계약 정보
AIX 설치 프로세스에 대한 최신 추가 항목을 사용하여
제품 소유자는 고객이 제품을 설치하기 전에 라이센스 계약에
서명하도록 요구할 수 있습니다. ' installp ' 명령은 모든 이미지에 대해 평소와 같이 파일 세트의 lpp_name 파일을 읽습니다. Lpp_name 파일의 크기 섹션에 ' LAF ' 또는 ' LAR 항목이 있는 경우, ' installp ' 명령은 라이선스를 창에 표시하고 고객의 라이선스 수락을 기록하는 ' inulag ' 명령을 호출합니다. 고객이 라이센스 동의를 거부하면 해당 제품에 대한 설치가 정지됩니다.
라이센스 파일 배치 위치
라이센스 파일은 제품 소유자에 따라 다르게 배치됩니다. 그러나
라이센스를 /usr/swlag/LANG에 배치하는 것이 가장 좋습니다. 라이센스 계약 파일에 대해 제안하는 이름은 ProductName_VersionRelease.la입니다. 이 이름 또는 위치를 사용하기 위한 요구사항은 없습니다. ' installp ' 명령과 이 패키징은 단순히 고객에게 정보를 전달하는 방법을 제공하는 것입니다. 모든 도구 및 파일 내용이
제품을 통해 제공되어야 합니다.
라이센스 파일에 대한 변환 요구사항
라이센스 계약 파일을 지원되는 언어로 변환해야 하는 요구사항이 있을 경우 해당 파일을 언어별로 달리 분리하는 것이 좋습니다. 이 변환을 수행하려면 여러 파일을 작성해야 할 수 있습니다.
라이센스 파일 제공 방법
제품은 라이센스 파일을 주 제품의 일부로서 또는 제품의 별도 파일 세트에
제공할 수 있습니다. 많은 제품에서 라이센스 파일만 제공하는 별도 파일 세트를
작성하도록 선택하고 있습니다. 이렇게 하면 다양한 여러 기능이 있는
제품이 다른 여러 기능에 파일을 포함시키는 대신 각 기능에 필요한
모든 미디어에서 제공할 수 있는 하나의 라이센스 파일 및 파일 세트를 작성할 수
있습니다. 현재 제안되는 파일 세트 이름은
lpp.license 또는 lpp.loc.license입니다. 현재 대부분의 제품에서는
첫 번째 제안을 사용하고 있습니다. 표준 설치에서 라이센스 파일 세트를
고객이 보지 않게 숨기려면 lpp.loc.license를 사용하십시오. 그 이유는
설치 시 라이센스 파일 세트를 선택할 필요가 없기 때문입니다.
라이센스 파일 패키징 방법
- LAF
라이선스 계약 파일은' installp ' 명령에 이 특정 라이선스 파일이 이 파일 집합에 포함되어 있음을 알려줍니다.
라이센스 계약 파일은 다음과 함께 크기 절 항목을 통해 표시됩니다.LAF<lang>license_file size- 기간
- 의미
- LAF
- 라이센스 동의 파일(LAF)을 의미합니다.
- < lang>
- 파일이 번역되는 언어입니다. 이 항목은 일반적으로
en_US, fr_FR, Ja_JP 및 zh_TW와 같은 항목입니다.
<lang>이 지정되지 않으면, 동의 파일이 번역되지 않고 ASCII로 인코딩되는 것으로 간주합니다. 사용권 계약 파일이 번역되면 <lang>은 요구사항 항목이 파일과 연관될 수 있도록 경로의 일부이어야 합니다. - license_file
- 이미지에서 찾을 수 있고 시스템에 배치된 사용권 파일에 대한
전체 경로입니다. 제안된 경로에서는
/usr/swlag/en_US/ProductName_VersionRelease.la양식을 사용합니다. - 크기
- 이는 라이선스 파일의 실제 크기(512바이트 블록)로, ' installp 라이선스 파일을 시스템에 배치할 수 있는 충분한 공간을 확보할 수 있도록 하기 위한 것입니다.
- LAR
라이선스 계약 필요는' installp ' 명령에 이 파일 집합에 나열된 라이선스 계약 파일을 설치해야 한다는 것을 알려줍니다. 이는 파일 세트가 아닌 파일에 있으므로 전제조건과 같지 않습니다. 파일 및 파일 세트는 형식이 다르고 용도도 다릅니다. 이 둘을 혼동해서는 안 됩니다.
- 기간
- 의미
- LAR
- 라이센스 계약 필수사항(LAR)을 의미합니다.
- req_license_file
- 이 파일 세트를 설치하는 데 필요한 라이센스 파일의 전체 경로입니다. 일반적으로 이러한 항목은 실제 언어 이름 대신 경로에서
%L을 사용하여 고객이 모든 언어를 보지 않고 해당 파일을 볼 수 있게 합니다.
- 파일에 대한 요구사항을 찾습니다.
- 승인되었는지를 알아보기 위해 시스템을 검사합니다.
- 파일이 승인되지 않은 경우에는
- 파일을 제공하는 파일 세트를 찾습니다.
- BFF 이미지로부터 해당 파일만 발췌(복원)합니다.
- 파일을 고객에게 표시합니다.
LAF 파일 세트 예제
iced.tea.loc.license 03.01.0000.0000 1 N U en_US IcedTea Recipe License Information
[
%
INSTWORK 16 160
LAF/usr/swlag/de_DE/iced.tea.la 24
LAF/usr/swlag/DE_DE/iced.tea.la 24
LAF/usr/swlag/en_US/iced.tea.la 24
LAF/usr/swlag/EN_US/iced.tea.la 24
LAF/usr/swlag/es_ES/iced.tea.la 24
LAF/usr/swlag/ES_ES/iced.tea.la 24
LAF/usr/swlag/fr_FR/iced.tea.la 24
LAF/usr/swlag/FR_FR/iced.tea.la 24
LAF/usr/swlag/it_IT/iced.tea.la 24
LAF/usr/swlag/IT_IT/iced.tea.la 24
LAF/usr/swlag/ja_JP/iced.tea.la 24
LAF/usr/swlag/JA_JP/iced.tea.la 32
LAF/usr/swlag/Ja_JP/iced.tea.la 24
LAF/usr/swlag/ko_KR/iced.tea.la 24
LAF/usr/swlag/KO_KR/iced.tea.la 24
LAF/usr/swlag/pt_BR/iced.tea.la 24
LAF/usr/swlag/PT_BR/iced.tea.la 24
LAF/usr/swlag/ru_RU/iced.tea.la 24
LAF/usr/swlag/RU_RU/iced.tea.la 48
LAF/usr/swlag/zh_CN/iced.tea.la 16
LAF/usr/swlag/zh_TW/iced.tea.la 16
LAF/usr/swlag/Zh_TW/iced.tea.la 16
LAF/usr/swlag/ZH_TW/iced.tea.la 24
%
%
%
]LAR 파일 세트 예제
iced.tea.server 03.01.0000.0010 1 N B en_US Iced Tea Recipe Group
[
*prereq bos.net.tcp.client 5.1.0.10
*coreq iced.tea.tools 5.1.0.10
*coreq Java14.sdk 1.4.0.1
%
/usr/bin 624
/usr/lib/objrepos 24
/usr/include 16
/usr/include/sys 56
/usr/lpp/iced.tea 22
/usr/samples/iced.tea 8
/usr/samples/iced.tea/server 504
/usr/lpp/iced.tea/inst_root/etc/tea 8
/usr/iced.tea 8
/usr/lpp/iced.tea/inst_root/etc/tea/Top 8
INSTWORK 208 96
/lpp/iced.tea 104
/etc/tea 8
/etc/objrepos 8
/etc/tea/Top 8
/tmp 0 6
LAR/usr/swlag/%L/iced.tea.la 0
%
%
%
]대체 정보 절
대체 정보 절은 이 파일 세트 또는 파일 세트 갱신이 교체 항목으로 사용될 수(또는 사용되지 않을 수) 있는 파일 세트 또는 파일 세트 갱신 레벨을 표시합니다. 대체 정보는 선택적이며 AIX 4.1형식화된 파일 세트 기본 설치 패키지 및 AIX 3.2형식화된 파일 세트 갱신 패키지에만 적용 가능합니다.
새로운 파일 세트는 lpp_name 파일의 대체 절이 대체하는 해당 파일의 최신 레벨을 식별하지 않을 경우 해당 파일 세트의 이전 버전을 대체합니다. 드문 경우이지만 파일 세트가 해당 파일 세트에 대한 모든 이전 레벨을 대체하지 않는 경우 installp 명령은 대체 절에 나열된 파일 세트 레벨보다 이전인 레벨에 대한 필수사항을 만족시키기 위해 파일 세트를 사용하지 않습니다.
파일 세트 갱신은 모든 파일, 구성 처리 및 이전 파일 세트 갱신에 포함된 필수사항 정보를 포함할 경우에만 해당 파일 세트의 이전 갱신을 대체합니다. installp 명령은 파일 세트가 다음 조건에서 해당 파일 세트에 대한 다른 갱신을 대체하는지 판별합니다.
- 갱신에 대한 버전, 릴리스 및 수정사항 레벨이 같고 수정 레벨이 둘 모두 0이 아니며 상위 수정 레벨이 있는 갱신에는 하위 수정 레벨이 있는 갱신 레벨 이상인 파일 세트 레벨에 대한 전제조건이 없습니다.
- 갱신에 대한 버전 및 릴리스 레벨이 같고 상위 수정 레벨이 있는 갱신에 하위 수정 레벨이 있는 갱신 레벨 이상인 파일 세트 레벨에 대한 전제조건이 없습니다.
예를 들어, 파일 세트 업데이트farm.apps.hog 4.1.0.1의 업데이트를 제공합니다/usr/sbin/sellhog. 파일 세트 업데이트farm.apps.hog 4.1.0.3에 업데이트를 제공합니다/usr/sbin/sellhog파일과/etc/hog파일로 내보냅니다. 파일 세트 갱신사항farm.apps.hog 4.1.1.2에 업데이트를 전달합니다/usr/bin/raisehog파일로 내보냅니다.
업데이트farm.apps.hog 4.1.0.3교체farm.apps.hog 4.1.0.1동일한 파일을 전달하고 동일한 레벨에 적용되기 때문입니다,farm.apps.hog 4.1.0.0.
업데이트farm.apps.hog 4.1.1.2도 대체하지 않습니다farm.apps.hog 4.1.0.3또는farm.apps.hog 4.1.0.1동일한 파일을 포함하지 않고 다른 레벨에 적용되기 때문입니다,farm.apps.hog 4.1.1.0. 업데이트farm.apps.hog 4.1.1.0교체farm.apps.hog 4.1.0.1및farm.apps.hog 4.1.0.3.
파일 세트 설치 레벨(기본 레벨)의 대체 절
AIX 4.1형식 파일 세트 설치 패키지에는 다음과 같은 대체 항목이 포함될 수 있습니다.
- 배리어(barrier) 항목
- 주요 호환성 불일치가 발생한 파일 세트 레벨을 식별합니다. 이러한 호환성 불일치로 인해 현재 파일 세트가 지정된 레벨보다 이전인 파일 세트 레벨의 필수사항을 충족시키지 못합니다.
- 호환성 항목
- 파일 세트가 다른 파일 세트의 필수사항을 만족시키는 데 사용될 수 있음을 표시합니다. 호환성 항목은 파일 세트의 이름이 바뀌었거나 더 이상 사용되지 않을 때 사용됩니다. 하나의 파일 세트만 제공된 파일 세트를 대체할 수 있습니다. 파일 세트마다 하나의 호환성 항목만 지정할 수 있습니다.
lpp_name 파일에는 파일 세트에 대해 많아야 하나의 배리어(barrier) 항목과 하나의 호환성 항목이 있을 수 있습니다.
배리어(barrier) 항목은 호환성 불일치가 발생했을 때의 파일 세트 이름 및 파일 세트 레벨로 구성됩니다. 배리어(barrier) 항목은 파일 세트의 이전 레벨에 대한 필수사항을 충족시키지 못할 정도로 종속 파일 세트에 필요한 기능이 수정되거나 제거되는 파일 세트 레벨에서 호환성 불일치가 발생하는 드문 경우에만 파일 세트에 필요합니다. 배리어(barrier) 항목은 종속 파일 세트에 의해 필수사항이 충족되는 최신 파일 세트 레벨을 표시하는 파일 세트의 모든 후속 버전에 존재해야 합니다.
예를 들어, 파일 집합에 주요 비호환성이 도입된 경우Bad.Idea 6.5.6.0에 대한 정보 섹션을 대체합니다Bad.Idea파일세트 수준에서 파일세트 설치 패키지6.5.6.0이후에는Bad.Idea 6.5.6.0진입 장벽. 이 진입 장벽은 다음과 같은 요구 사항을 방지합니다Bad.Idea 6.5.4.0어떤 수준의Bad.Idea보다 크거나 같음6.5.6.0.
호환성 항목은 파일 세트 이름(패키지의 파일 세트와 다름) 및 파일 세트 레벨로 구성됩니다. 파일 세트 레벨은 지정된 파일 세트에 대한 필수사항(및 이 파일 세트의 이전 레벨)을 설치 패키지의 파일 세트가 만족시키는 레벨을 식별합니다. 호환성은 지정된 파일 세트가 더 이상 사용되지 않거나 이름이 바뀐 경우에 유용하며 지정된 파일 세트의 기능은 현재 파일 세트에 포함됩니다. 호환성 항목의 파일 세트 레벨은 지정된 파일 세트에 대해 존재하는 것으로 예상되는 레벨보다 상위 레벨이어야 합니다.
예를 들어, 다음과 같이 가정합니다Year.Full 19.91.0.0파일 집합은 더 이상 하나의 단위로 제공되지 않고 여러 개의 작은 개별 파일 집합으로 나뉩니다. 더 작은 결과 파일 세트 중 하나만, 아마도Winter 19.94.0.0의 호환성 항목이 포함되어야 합니다Year.Full 19.94.0.0. 이 호환성 항목을 사용하면Winter 19.94.0.0파일 집합에 종속된 파일 집합의 요구 사항을 충족하기 위해Year.Full레벨19.94.0.0그리고 더 일찍.
대체 처리
installp 명령은 다른 설치 또는 파일 세트 갱신사항을 대체할 파일 세트 및 파일 세트 갱신사항을 설치하는 다음과 같은 특수 기능을 제공합니다.
- 설치 미디어에 사용자가 설치하도록 요청한
파일 세트 또는 파일 세트 갱신이 포함되어 있지 않으면 설치 미디어에 있는
대체 파일 세트 또는 파일 세트 갱신을 설치할 수 있습니다.
예를 들어 사용자가 -g 플래그(필수 요구 사항 자동 설치)를 사용하여 installp 명령을 호출하여 다음을 설치한다고 가정해 보겠습니다farm.apps.hog 4.1.0.2파일 집합입니다. 설치 미디어에farm.apps.hog 4.1.0.4파일 세트만 설치하는 경우, installp 명령은farm.apps.hog 4.1.0.4파일 집합이 요청된 레벨을 대체하기 때문입니다.
- 시스템 및 설치 미디어에 필수 파일 세트 또는 파일 세트 갱신이 포함되어 있지 않으면 대체 파일 세트 또는 파일 세트 갱신이 필수사항을 만족시킬 수 있습니다.
- 설치을 위해 갱신을 요청하고 -g 플래그가 지정되면 설치 미디어의
최신 대체 갱신사항이 해당 요청을 만족시킵니다.
-g 플래그가 installp 명령에서 지정되면, 설치에서 요청되는 갱신(명시적 또는 암시적)은 설치 미디어에 있는 최신 대체 갱신으로 충족됩니다. 사용자가 특정 레벨의 갱신(반드시 최신 레벨은 아님)을 설치하려는 경우 사용자는 -g 플래그 없이 installp 명령을 호출할 수 있습니다.
- 설치를 위해 갱신 및 대체 갱신(모두 설치 미디어에 있음)이
요청되는 경우 installp 명령은 최신 갱신만 설치합니다.
이 경우 사용자가 설치 미디어에서 특정 갱신 및 대체 갱신을 적용하려는 경우, 사용자는 각 갱신 레벨에 대해 별도의 installp 조작을 수행해야 합니다. 이러한 종류의 조작은 두 개의 갱신이 적용되어 확정될 때(-ac) 의미가 없습니다. 두 번째 갱신을 확정하면 첫 번째 갱신이 시스템에서 제거됩니다.
수정 정보 절
수정 정보 절은 선택사항입니다. 수정 정보 절 항목에는 수정 키워드 및 수정된 문제점에 대한 60자 이하의 설명이 포함되어 있습니다. 수정 키워드는 수정사항에 해당하는 16자 이하의 ID입니다. ' ix, ' iy' , ' IY ' 및IX '로 시작하는 수정 키워드는 운영 체제 제조업체에서 사용하도록 예약되어 있습니다.
테크놀로지 레벨은 주 갱신 레벨인 수정 레벨입니다. 정기적인 예방 유지보수 패키지는 테크놀로지 레벨입니다. 기술 수준 식별자는 소프트웨어 제품 이름(패키지가 아님)으로 시작하여 점 하나(.)와 다음과 같은 식별 레벨로 이어집니다farm.4.1.1.0.
liblpp.a 설치 제어 라이브러리 파일
liblpp.a 파일은 패키지 설치를 제어하는 데 필요한 파일이 들어있는 아카이브 파일입니다. AIX 4.3 이후 시스템에서 -g 플래그와 함께 ar 명령을 사용하여 패키지의 liblpp.a 파일을 생성하면 32비트 아카이브가 생성되도록 할 수 있습니다. 이 절에서는 liblpp.a 아카이브에 배치할 수 있는 다양한 파일에 대해 설명합니다.
이 절 전체에서 파일 세트는 제어 파일의 이름에 나타납니다. 파일 세트는 소프트웨어 패키지 내에 설치할 별도의 파일 세트 이름을 나타냅니다. 예를 들어 적용 리스트 파일이 Fileset.al로 설명된다고 가정합니다. 적용 목록 파일은bos.net.tcp.client옵션의bos.net소프트웨어 제품은bos.net.tcp.client.al.
- 이 파일이 특정 파일 세트 설치에 사용되면 파일 이름은 Fileset 접두어로 시작해야 합니다.
- 파일이 같은 패키지에 있는 여러 파일 세트의 공통 파일로 사용되는 경우 파일 이름은 lpp로 시작해야 합니다 합니다.
이 절에서 설명하는 다수의 파일들은 선택사항입니다. 선택적 파일은 파일이 제공하는 기능이 파일 세트 또는 파일 세트 갱신에 필요할 경우에만 필요합니다. 언급하지 않는 한 파일은 전체 설치 패키지 및 파일 세트 갱신 패키지 모두에 관련됩니다.
liblpp.a 파일에 포함된 데이터 파일
- Fileset.al
- 적용 리스트입니다. 이 파일은 이 파일 세트용으로 복원될 모든 파일을 나열합니다. 파일은 다음과 같이 루트를 기준으로 경로를 사용하여 한 줄에 하나씩 나열됩니다./usr/bin/pickle. 파일 세트 또는 파일 세트 업데이트와 함께 파일이 전달되는 경우 적용 목록 파일이 필요합니다.
- Fileset.cfginfo
- 특수 지시사항 파일입니다. 이 파일은 행 당 하나의 키워드를 나열하며, 각 키워드는 파일 세트 또는 파일 세트 갱신의 특수한 특성을 표시합니다. 현재 유일하게 인식되는 키워드는 BOOT이며, 이 키워드는 설치가 완료된 후 시스템을 재시작해야 함을 알리는 메시지를 생성합니다.
- 파일세트.cfg파일
- 이미 설치되어 있는 파일 세트 레벨 이상을 적용할 때 사용할 사용자 구성 가능 파일 및 처리 지시사항 리스트입니다. Fileset.al 파일에 나열된 파일을 복원하기 전에, 시스템은 Fileset.cfgfiles 파일에 나열된 파일을 저장합니다. 나중에 이 저장된 파일은 Fileset.cfgfiles 파일에 지정된 처리 방법에 따라 처리됩니다.
- Fileset.copyright
- 파일 세트에 필요한 저작권 정보 파일입니다. 이 파일은 소프트웨어 제품의 전체 이름과 뒤에 오는 저작권 주의사항으로 구성됩니다.
- Fileset.err
- 오류 레코드 템플릿 리포지토리에 항목을 추가하거나 삭제하기 위해 errupdate 명령의 입력으로 사용되는 오류 템플릿 파일입니다. 이 파일은 일반적으로 장치 지원 소프트웨어에서 사용됩니다. errupdate 명령은 정리를 위해 Fileset.undo.err 파일을 작성합니다. Fileset.err 파일의 형식에 대한 자세한 내용은 errupdate 명령을 참조하세요. 이 파일은 파일 세트의 루트 파트에만 포함될 수 있습니다.
- 파일세트.수정데이터
- 스탠자 형식 파일입니다. 이 파일에는 파일 세트 또는 파일 세트 갱신에 포함된 수정사항에 대한 정보가 들어 있습니다.
- 파일세트.인벤토리
- 인벤토리 파일입니다. 이 파일에는 파일 세트 또는 파일 세트 갱신에 있는 파일에 필요한 소프트웨어 필수 제품 데이터가 들어 있습니다. 인벤토리 파일은 설치되거나 갱신될 각 파일의 항목을 포함하는 스탠자 형식 파일입니다.
- 파일세트.이름 목록
- 설치될 파일 세트에 현재 존재하는 파일을 포함한 경우 더 이상 사용되지 않는 파일 세트 및 현재 파일 세트(적용 가능한 경우)의 리스트입니다. 이 파일은 다시 패키징화된 소프트웨어 제품의 설치에만 사용됩니다.
- Fileset.odmadd 또는 Fileset.*.odmadd
- 오브젝트 데이터 관리자(ODM) 데이터베이스에 추가되는 스탠자입니다.
- 파일세트.rm_inv
- 제거 인벤토리 파일입니다. 이 파일은 다시 패키징된 소프트웨어 제품의 설치 전용이며, 파일 세트가 더 이상 사용되지 않는 파일 세트에 대한 직접 대체가 아닐 경우에 반드시 있어야 합니다. 이 스탠자 형식 파일에는 더 이상 사용되지 않는 파일 세트에서 제거해야 할 파일의 이름이 포함되어 있습니다.
- Fileset.size
- 이 파일에는 이 절에서 이전에 설명된 이 파일 세트에 포함된 파일의 공간 요구량이 포함되어 있습니다.
- Fileset.trc
- 추적 보고서 템플리트 파일입니다. Trcupdate 명령은 이 파일을 사용하여 /etc/trcfmt 파일에 추적 보고서 항목을 추가, 교체 또는 삭제합니다. trcupdate 명령은 정리를 위해 Fileset.undo.trc 파일을 작성합니다. 패키지의 루트 파트에만 Fileset.trc 파일이 포함될 수 있습니다.
- lpp.acf
- 전체 패키지에 대한 아카이브 제어 파일입니다. 이 파일은 아카이브 멤버 파일을
시스템에 이미 존재하는 아카이브 파일에 추가하거나 대체할 때에만
필요합니다. 아카이브 제어 파일은 Fileset.al 파일에 나열된 대로 임시 디렉토리에
있는 멤버 파일과 멤버가 속하는 아카이브 파일의 쌍이 포함되는 라인으로 구성되며, 이들은 모두
다음과 같이 루트에 대한 상대 경로로 나열됩니다.
./usr/ccs/lib/libc/member.o ./usr/ccs/lib/libc.a - lpp.README
- readme 파일입니다. 이 파일에는 해당 소프트웨어를 사용하기 전에 사용자가 읽어야 할 정보가 들어 있습니다. 이 파일은 선택사항이며 README, lpp.doc, lpp.instr 또는 lpp.lps로 이름이 지정될 수 있습니다.
- productid
- 제품 식별 파일입니다. 이 파일은 제품 이름, 제품 ID(20자로 제한) 및 선택적 기능 번호(10자로 제한)를 표시하는 단일 행으로 구성됩니다.
liblpp.a 파일에 포함된 선택적 실행 파일
이 절에서 설명된 제품 고유의 실행 파일은 설치 프로세스 중에 호출됩니다. 달리 언급되지 않을 경우 _i로 끝나는 파일 이름은 설치 처리 중에만 사용되고, _u로 끝나는 파일 이름은 파일 세트 갱신 처리 시에만 사용됩니다. 이 절에서 설명된 모든 파일은 선택사항이며, 쉘 스크립트 또는 실행 가능 오브젝트 모듈일 수 있습니다. 프로그램이 설치 또는 갱신에 실패하도록 하려는 경우가 아니면 각 프로그램에는 리턴 값 0(제로)이 있어야 합니다.
- Fileset.config 또는 Fileset.config_u
- 디폴트 설치 또는 갱신 프로세스의 종료 직전에 구성을 수정합니다. Fileset.config는 설치 처리 중에만 사용됩니다.
- Fileset.odmdel 또는 Fileset.*.odmdel
- 파일 세트의 새 ODM 항목을 추가하기 전에 파일 세트의 ODM 데이터베이스 정보를 갱신합니다. odmdel 파일 이름 지정 규칙을 사용하면 파일 세트에 복수 odmdel 파일을 포함시킬 수 있습니다.
- Fileset.pre_d
- 파일 세트가 설치 제거 중에 제거될 수 있는지 여부를 표시합니다. 이 프로그램은 파일 세트가 제거될 수 있을 경우 값 0(제로)을 리턴해야 합니다. 파일 세트는 디폴트로 제거 가능합니다. 프로그램은 파일 세트를 제거할 수 없는 이유를 표시하는 오류 메시지를 생성해야 합니다.
- Fileset.pre_i 또는 Fileset.pre_u
- 패키지의 적용 리스트에서 파일을 복원하거나 저장하기 전이지만 이전에 설치된 파일 세트 버전에서 파일을 제거한 후에 실행됩니다.
- Fileset.pre_rej
- 거부 조작 이전 또는 파일 세트의 거부 조작에 대한 사전 열람 이전에 실행됩니다. 스크립트를 사용하여 파일 세트를 거부할 수 있는지 여부를 판별하십시오. 시스템에 있는 임의의 항목을 변경하는 명령을 실행하기 위해 이 스크립트를 사용하지 마십시오. 스크립트가 0이 아닌 리턴 코드와 함께 종료되면 거부 조작이 허용되지 않습니다.
- Fileset.pre_rm
- 이전에 설치된 파일 세트 버전에서 파일을 제거하기 전의 파일 세트 설치 중에 실행됩니다.
- Fileset.post_i 또는 Fileset.post_u
- 파일 세트 설치 또는 갱신의 적용 리스트에서 파일을 복원한 후 실행됩니다.
- Fileset.unconfig 또는 Fileset.unconfig_u
- 파일 세트의 설치 제거 또는 거부 중 설치 또는 갱신 시 수행된 구성 처리를 실행 취소합니다. Fileset.unconfig는 설치 제거 처리 중에만 사용됩니다.
- Fileset.unodmadd
- 설치 또는 갱신 중 ODM 데이터베이스에 추가된 항목을 삭제합니다.
- Fileset.unpost_i 또는 Fileset.unpost_u
- 파일 세트의 설치 제거 또는 거부 중 설치 또는 갱신 시 적용 리스트에서 파일을 복원한 다음에 수행된 처리를 실행 취소합니다.
- Fileset.unpre_i 또는 Fileset.unpre_u
- 파일 세트의 설치 제거 또는 거부 중 설치 또는 갱신 시 적용 리스트에서 파일을 복원하기 이전에 수행된 처리를 실행 취소합니다.
이러한 실행 파일이 머신의 장치 구성을 변경할 수 있는 명령을 실행할 경우 해당 실행 파일은 명령을 실행하기 전에 INUCLIENTS 환경 변수를 검사해야 합니다. INUCLIENTS 환경 변수가 설정되어 있으면 명령을 실행해서는 안 됩니다. 네트워크 설치 관리(NIM) 환경에서는 여러 용도로 installp 명령을 사용하며, 이 중 일부에서는 installp 명령이 정상 처리 중 일부를 생략해야 합니다. NIM은 이 정상 처리를 생략해야 할 때 INUCLIENTS 환경 변수를 설정합니다.
디폴트 설치 처리가 패키지에 대해 충분하지 않을 경우 liblpp.a 파일의 다음 실행 파일을 제공할 수 있습니다. 이러한 파일이 패키지에서 제공되면 installp 명령은 시스템 디폴트 파일 대신에 패키지 제공 파일을 사용합니다. 패키지 제공 파일에는 디폴트 파일과 동일한 기능이 포함되어야 합니다. 그렇지 않으면 예기치 않은 결과가 발생할 수 있습니다. 디폴트 파일을 고유 파일을 작성하기 위한 모델로 사용할 수 있습니다. 패키지 제공 파일 대신 디폴트 파일을 사용하는 것이 좋습니다.
- instal
- 디폴트 설치 스크립트 /usr/lib/instl/instal 대신 사용됩니다. installp 명령은 설치 패키지의 파일 세트가 적용될 경우 이 실행 파일을 호출합니다.
- lpp.cleanup
- 디폴트 설치 정리 스크립트 /usr/lib/instl/cleanup 대신 사용합니다. installp 명령은 설치 또는 갱신 패키지의 파일 세트를 부분적으로 적용하고 파일 세트를 다시 지속 상태로 두기 위해 정리해야 하는 경우 이 실행 파일을 호출합니다.
- lpp.deinstal
- 디폴트 파일 세트 제거 스크립트 /usr/lib/instl/deinstal 대신 사용됩니다. 이 실행 파일은 /usr/lpp/PackageName 디렉토리에 배치되어야 합니다. installp 명령은 설치 패키지의 파일 세트가 제거되면 이 실행 파일을 호출합니다.
- lpp.reject
- 디폴트 설치 거부 스크립트 /usr/lib/instl/reject 대신 사용됩니다. installp 명령은 갱신 패키지의 파일 세트 갱신이 거부될 경우 이 실행 파일을 호출합니다. (디폴트 /usr/lib/instl/reject 스크립트는 /usr/lib/instl/cleanup 스크립트에 대한 링크입니다.)
- update
- 디폴트 파일 세트 갱신 스크립트 /usr/lib/instl/update 대신 사용됩니다. installp 명령은 갱신 패키지의 파일 세트가 적용될 경우 이 실행 파일을 호출합니다. (디폴트 /usr/lib/instl/update 스크립트는 /usr/lib/instl/instal 스크립트에 대한 링크입니다.)
- 소프트웨어 패키지의 모든 파일 세트를 처리합니다. 모든 파일 세트의 설치를 처리하거나 파일 세트마다 다른 실행 파일을 호출할 수 있습니다.
- 설치하려는 파일의 현재 레벨을 저장하려면 inusave 명령을 사용합니다.
- 배포 미디어에서 usr 부분에 필요한 모든 파일을 복원하려면 inurest 명령을 사용합니다.
- ' inucp ' 명령을 사용하여 ' /usr/lpp/ '패키지_이름 '/inst_root ' 디렉토리에서 루트 파트에 필요한 모든 파일을 복사합니다.
- 설치 중이거나 갱신 중인 각 파일 세트에 대해 성공 또는 실패를 표시하는 $INUTEMPDIR/status 파일을 작성합니다.
- 설치 상태를 표시하는 종료 코드를 리턴합니다. instal 또는 update 실행 파일이 0이 아닌 리턴 코드를 리턴하지만 status 파일을 찾을 수 없을 경우 설치 프로세스는 모든 파일 세트가 실패한 것으로 간주합니다.
Fileset.al 파일에 포함된 선택적 실행 파일
- Fileset.unconfig_d
- 파일 세트의 설치 및 갱신 중 수행된 파일 세트 고유의 구성 조작을 실행 취소합니다. Fileset.unconfig_d 파일은 -u 플래그가 installp 명령에 지정되어 있을 때 사용됩니다. 이 파일이 제공되지 않고 -u 플래그는 지정되어 있는 경우, Fileset.unconfig, Fileset.unpost_i 및 Fileset.unpre_i 조작이 수행됩니다.
설치 제어 파일 Fileset.cfgfiles 파일에 대한 추가 설명
Fileset.cfgfiles 파일은 사용자가 구성한 데이터를 유실하지 않고도 파일 세트의 새 버전으로 마이그레이션하기 위해 저장해야 하는 구성 파일을 나열합니다. 사용자 구성 데이터를 유지하기 위해서는 Fileset.cfgfiles 파일이 해당 liblpp.a 파일(usr 또는 루트)에서 제공되어야 합니다.
Fileset.cfgfiles에는 저장할 각 파일당 한 행의 항목이 들어 있습니다. 각 항목에는 파일 이름(루트에 상대경로인 경로 이름), 공백 구분자 및 파일을 이주시키기 위한 처리 방법을 설명하는 키워드가 포함되어 있습니다. 처리 방법 키워드는 다음과 같습니다.
- preserve
- 설치된 새 파일 버전을 저장 디렉토리에 저장된 버전으로 대체합니다. 새 파일을 저장된 버전으로 대체한 이후 구성 저장 디렉토리에서 저장된 파일은 삭제됩니다.
- auto_merge
- Fileset.post_i 처리 중 제품에서 제공되는 실행 파일은 설치된 신규 버전 파일에서 필요한 데이터를 구성 저장 디렉토리에 저장된 파일의 이전 버전과 병합합니다. Fileset.post_i 처리 후, installp 명령은 설치된 파일의 신규 버전 파일을 구성 저장 디렉토리(있는 경우)에 있는 병합된 버전으로 대체한 후 저장된 파일을 제거합니다.
- hold_new
- 설치된 새 파일 버전을 저장 디렉토리에 저장된 버전으로 대체합니다. 새 파일 버전은 이전 버전 대신에 구성 저장 디렉토리에 배치됩니다. 사용자는 새 버전을 참조할 수 있습니다.
- user_merge
- 설치된 새 버전 파일을 시스템에 남겨 두고 이전 버전 파일을 구성 저장 디렉토리에 보관합니다. 사용자는 이전 버전을 참조하여 필요한 모든 병합을 수행할 수 있습니다. 가능하면 이 키워드는 피해야 합니다.
- 기타
- 정의된 다른 모든 처리 방법이 충분하지 않은 경우에 사용됩니다. installp 명령은 파일을 구성 저장 디렉토리에 저장하며 후속 지원을 제공하지 않습니다. 구성 파일의 모든 기타 조작 및 처리는 제품 제공 실행 파일에서 수행해야 합니다. 제품 개발자는 파일 처리를 문서화해야 합니다.
Fileset.post_i 실행 파일은 디폴트 설치 처리를 통해 수행할 수 없는 구성 데이터의 특정 조작 또는 병합을 수행할 때 사용할 수 있습니다.
파일 세트에 나열된 구성 파일.파일은 파일 집합에 지정된 것과 동일한 상대 경로 이름으로 구성 저장 디렉터리에 저장됩니다.cfgfiles 파일. 구성 저장 디렉토리의 이름은 MIGSAVE 환경 변수에 저장됩니다. 저장 디렉토리는 설치 중인 패키지의 일부와 일치합니다. 다음 디렉토리는 구성 저장 디렉토리입니다.
- /usr/lpp/save.config
- usr 파트의 경우
- /lpp/save.config
- root 파트의 경우
저장해야 하는 파일 리스트가 현재 설정된 파일 세트 레벨에 따라 달라지는 경우, Fileset.cfgfiles 파일에는 발견할 수 있는 구성 파일의 전체 리스트가 포함되어야 합니다. 필요한 경우 Fileset.post_i 실행 파일(또는 기타 제품에서 제공하는 실행 파일)에서 차이를 처리해야 합니다.
예를 들어 구성할 수 있는 하나의 파일이 있는 파일 세트(change.rte)가 있다고 가정합니다. 루트 change.rte.cfgfiles에는 하나의 파일이 나열됩니다.
/etc/change_user user_merge
이전 파일 세트(change.obj)에서 change.rte로 마이그레이션하는 경우, 형식이 변경되므로 이 파일을 유지할 수 없습니다. 그러나 이전 레벨 change.rte에서 신규 레벨 change.rte로 마이그레이션하는 경우에는 파일을 유지할 수 있습니니다. 이 경우 사용자는 이주 중인 파일 세트를 검사하고 적절히 작동하는지 검사하는 change.rte.post_i 스크립트를 작성할 수 있습니다. 사용자가 /etc/change_user 파일을 변경하는 경우 이와 같은 방식으로 해당 변경사항이 저장됩니다.
#! /bin/ksh
rc=0
grep -q change.rte $INSTALLED_LIST
if [$? = 0]
then
mv $MIGSAVE/etc/change_user/ /etc/change_user
rc=1
fi
exit $rc$INSTALLED_LIST는 installp에 의해 작성되고 반출됩니다. Fileset.installed_list 구성 파일에 대한 자세한 정보는 재패키징된 제품 고유의 제어 파일 설치를 참조하십시오. $MIGSAVE 변수에는 루트 파트 구성 파일이 저장되는 디렉토리의 이름이 들어 있습니다.
installp 명령은 Fileset.cfgfiles 파일에 나열된 파일을 찾을 수 없는 경우 경고 또는 오류 메시지를 생성하지 않습니다. 저장된 구성 파일이 처리 방법에 따라 처리되는 경우 installp 명령은 Fileset.post_i 처리 이후 단계에서 발견하지 못한 파일에 대해 메시지를 생성하지 않습니다. 모든 경고 또는 오류 메시지를 생성하도록 하려면 제품 제공 실행 파일에서 메시지를 생성해야 합니다.
./etc/cfg_leafpreserve
./etc/cfg_pudding hold_new
./etc/cfg_newtonpreserveFileset.fixdata 파일
- 파일세트.수정데이터
- 파일 세트 갱신(또는 갱신 대신에 사용될 경우 파일 세트 설치)에 포함된 수정사항을 설명하는 스탠자 형식 파일입니다.
이 파일의 정보는 수정 데이터베이스에 추가됩니다. Instfix 명령은 이 데이터베이스를 사용하여 시스템에 설치된 수정 사항을 식별합니다. Fileset.fixdata가 패키지에 있으면, 패키지를 적용할 때 수정 데이터베이스에 있는 수정 정보도 갱신됩니다.
파일 세트의 각 수정에는 Fileset.fixdata 파일에 고유 스탠자가 있습니다. Fileset.fixdata 스탠자의 형식은 다음과 같습니다.
fix:
name = FixKeyword
abstract = Abstract
type = {f | p}
filesets = FilesetName FilesetLevel
[FilesetName FilesetLevel ...]
[symptom = [Symptom]]
- FixKeyword는 16자를 초과할 수 없습니다.
- Abstract는 수정에 대해 설명하며 60자를 초과할 수 없습니다.
- type 필드에서 f는 수정을 표시하고 p는 예방 유지보수 갱신을 표시합니다.
- filesets 필드에는 파일 세트 및 파일 세트 레벨에 대한 줄 바꾸기로 구분되는 리스트가 포함되어 있습니다.
- FilesetLevel은 파일 세트가 수정 중 일부 또는 전부를 전달한 초기 레벨입니다.
- Symptom은 수정으로 수정된 문제점에 대한 선택적 설명입니다. Symptom에는 문자 수 제한이 없습니다.
다음 예제는 문제에 대한 파일세트.fixdata 구문을 보여줍니다MS21235. 이 문제에 대한 수정 사항은 두 개의 파일 세트에 포함되어 있습니다.
fix:
name = MS21235
abstract = 82 gigabyte diskette drive unusable on Mars
type = f
filesets = devices.mca.8d77.rte 12.3.6.13
devices.mca.8efc.rte 12.1.0.2
symptom = The 82 gigabyte subatomic diskettes fail to operate in a Martian environment.
Fileset.inventory 파일
- 파일세트.인벤토리
- 파일 세트에 대해 설치되거나 갱신될 각 파일에 대한 특정 정보가 포함되어 있는 파일입니다.
- sysck
- Fileset.inventory 파일을 사용하여 소프트웨어 정보 데이터베이스에 파일 이름, 제품 이름, 유형, 체크섬, 크기, 링크 및 기호 정보를 입력하는 명령입니다.
Fileset.inventory 파일은 파일을 설치 또는 갱신하는 파일 세트 각 파트에 필요합니다. 패키지에 설치될(구성만 수행함) 파일이 없는 루트 파트가 있을 경우 루트 파트에는 Fileset.inventory 파일이 필요 없습니다.
주: Fileset.inventory 파일에서는 크기가 2GB 이상인 파일은 지원하지 않습니다. 2GB 이상인 파일을 제공하는 경우, 이를 Fileset.inventory 파일이 아닌 fileset.al 파일에 포함시키십시오. sysck는 2GB 이상인 파일을 처리하도록 갱신되지 않았으므로 대부분 머신의 /usr 파일 시스템에서는 2GB 이상의 파일을 처리하는 성능이 생성되지 않습니다(디폴트).
인벤토리 파일은 스탠자 형식의 ASCII 텍스트로 구성됩니다. 스탠자 이름은 설치될 파일의 전체 경로 이름입니다. 스탠자 이름은 콜론(:)으로 끝나고 줄 바꾸기 문자가 뒤에 옵니다. 파일 속성은 스탠자 이름 뒤에 오며 Attribute=Value 형식을 사용합니다. 각 속성에 대해서는 별도 행에서 설명합니다.
inventory:
type = type
class = inventory,apply,C2_exclude,fileset
owner = owner_name
group = group_name
mode = TCB | SUID | SGID,permissions
target = fullpath_filename
link = fullpath_to_hardlink [additional_hardlinks]
size =<blank> | VOLATILE |size
checksum =<blank> | VOLATILE |"checksum"| 속성 | 설명 |
|---|---|
| file_name | 루트(./)에 대한 파일 또는 링크의 전체 상대 경로로서 바로 뒤에 콜론(:)과 줄 바꾸기가 옵니다. 이 전체 경로 이름의 최대 길이는 255자 입니다. |
| type | 유효한 유형이 다음 중 하나인 file_name 항목의 유형입니다.
|
| Class | 설치 중 file_name을 참조하는 방법을
지정합니다. 이 필드에는 다음 키워드 중 최소한 두 개 이상이 있어야 합니다.
|
| 소유자 | 설치 후의 파일 소유자를 지정합니다. 이 필드에 UID를 사용하지 마십시오. 속성값은 소유자 이름이어야 하고 8자 미만이어야 합니다. |
| 그룹 | 파일 그룹을 지정합니다. 이 필드에 UID를 사용하지 마십시오. 속성값은 그룹 이름이어야 하고 8자 미만이어야 합니다. |
| 모드 | 파일 모드를 지정합니다. 값에는 8진 형식으로 된 파일에 대한 권한이
포함되어야 합니다. 다음의 모든 키워드는 권한 값보다 우선할 수
있습니다. 리스트에서 항목은 쉼표로 구분합니다.
|
| 링크 | 이 파일에 대한 모든 하드 링크를 나열합니다. 복수의 하드 링크가 존재하면 하드 링크에 대한 각각의 전체 경로는 쉼표로 분리됩니다. 하드 링크는 소스 파일과 동일한 디렉토리에 있어야 합니다. 항목 유형이 ' SYMLINK인 경우 ' link '는 유효하지 않습니다. 전체 경로 이름의 최대 길이는 255자입니다. |
| 대상 | type=SYMLINK에만 유효합니다. 이것은 링크의 목표에 대한
전체 경로 파일 이름입니다. 작성 중인 링크가 /usr/bin에서 /bin으로의
링크인 경우, 파일 이름은 /bin이고 목표는 /usr/bin이 됩니다. 전체 경로 이름의 최대 길이는 255자입니다. |
| size |
참고: ' DIRECTORY ' 또는 ' SYMLINK 항목의 크기 필드는 포함하지 마세요.
|
| 체크섬 |
참고: ' DIRECTORY ' 또는 ' SYMLINK 항목의 체크섬 필드는 포함하지 마세요.
|
fileset |
파일이 속한 파일 세트를 표시합니다. |
fileset.inventory 예제
다음 fileset.inventory 예제는 ' type'의 사용을 보여줍니다.
/usr/bin:
owner = bin
group = bin
mode = 755
type = directory
class = apply,inventory,bos.rte
/usr/bin/tcbck:
owner = root
group = security
mode = TCB,SUID,550
type = file
class = apply,inventory,bos.rte.security
size = 99770
checksum = "17077 98 "
/usr/sbin/tsm:
owner = root
group = security
mode = TCB,SUID,555
links = /usr/sbin/getty,/usr/sbin/login
class = apply,inventory,bos.rte,security
size = 55086
checksum = "57960 54 "
재패키징된 제품 고유의 설치 제어 파일
- Fileset.installed_list
- 패키지에서 파일 세트를 설치할 때 파일 세트(또는 파일 세트의 특정 양식)가 특정 레벨로 이미 시스템에 설치되어 있는 경우 installp 명령으로 작성되는 파일입니다.
Fileset 또는 Fileset.namelist 파일에 나열된 파일 세트(있는 경우)가 이미 시스템에 설치되어 있는지 판별하기 위해 소프트웨어 정보 데이터베이스를 검색합니다. 설치되어 있을 경우 파일 세트 및 설치 레벨이 Fileset.installed_list 파일에 기록됩니다.
- /usr/lpp/
- usr 파트의 경우 PackageName입니다.
- /lpp/
- root 파트의 경우 PackageName입니다.
Fileset.installed_list 파일에는 설치된 각 파일 세트에 대해 한 행의 항목이 있습니다. 각 항목에는 파일 세트 이름 및 파일 세트 레벨이 포함되어 있습니다.
storm.rain 1.1.0.0Pelly.com
GooseCreek.rte
CedarBayou.stream Pelly.obj 1.2.3.0
CedarBayou.stream 4.1.3.2| 속성 | 설명 |
|---|---|
| 파일세트.이름 목록 | 이 파일은 파일 세트 이름이 변경되었거나 파일 세트에 더 이상 사용되지 않는 파일 세트에서 이전에 패키징된 파일이 포함되어 있는 경우 필요합니다. 이 파일에는 이전에 포함된 파일이 설치될 파일 세트에 현재 포함되는 모든 파일 세트 이름이 들어 있습니다. 각 파일 세트 이름은 별도의 행에 표시되어야 합니다. |
Fileset.namelist 파일은 theliblppliblpp.a 파일의 ' usr ' 또는 ' root ' 부분에 제공해야 합니다. 파일 세트.네임리스트 파일은 설치 패키지에만 유효하며 업데이트 패키지에는 유효하지 않습니다.
설치 시작 시에 installp 명령은 SWVPD(Software Vital Product Data)를 검색하여 해당 파일 세트 또는 Fileset.namelist 파일에 나열되어 있는 파일 세트가 이미 시스템에 설치되어 있는지 판별합니다. installp 명령은 설치한 것으로 발견된 파일 세트 이름 및 파이 세트 레벨을 Fileset.installed_list 파일에 기록하여 제품에서 제공하는 실행 파일에서 이 정보를 사용할 수 있도록 합니다.
family.businesslawoffice.mgrlawoffice.mgr
BusinessOffice.mgrFileset.namelist 파일에 항목이 하나만 포함되어 있고 현재 파일 집합이 파일 집합에 나열된 파일 집합을 직접 대체하지 않는 경우.네임리스트 파일을 사용하려면 liblpp.a 파일에 Fileset.rm_inv 파일을 포함해야 합니다. 설치 프로세스에서는 Fileset.namelist 파일 및 Fileset.rm_inv 파일을 사용하여 파일 세트가 다른 파일 세트에 대한 직접적인 교체 파일 세트인지를 판별합니다. Fileset.namelist 파일에 단 하나의 항목만 있고 Fileset.rm_inv 파일이 없으면, 설치 프로세스는 새 파일 세트가 이전 파일 세트의 직접 교체 파일 세트인 것으로 간주합니다. 새로운(교체) 파일 세트가 설치되면 설치 프로세스는 시스템에서 이전(교체된) 파일 세트의 모든 파일을 제거하며, 새로운 파일 세트에 포함되어 있지 않은 파일까지도 제거합니다.
이전 예제에서는small.business파일 집합을 직접 대체합니다family.business파일 집합을 사용하므로small.business.rm_inv파일이 존재하지 않아야 합니다. 다음LawPractice.client파일 집합은lawoffice.mgr파일 집합을 사용하므로LawPractice.client.rm_inv파일이 비어 있더라도 존재해야 합니다.
예제 3:
bagel.shop.rte와 bread.shop.rte는 몇 년 동안
별도로 제공되어 왔습니다. 이제 bagel.shop.rte는
bread.shop.rte의 일부로 제공하여 합니다. 이렇게 하려면
bread.shop.rte.namelist 파일은 다음과 같습니다.bread.shop.rte
bagel.shop.rte또한 bagel.shop.rte 파일 세트의 모든 파일이 시스템에서 제거되어야 함을
표시하려면 빈 bread.shop.rte.rm_inv 파일도 제공해야 합니다.
| 속성 | 설명 |
|---|---|
| 파일세트.rm_inv | 설치되어 있는 경우 시스템에서 제거할 파일, 링크 및 디렉토리의 리스트가 포함되어 있는 파일입니다. |
이 파일은 현재 파일 세트가 이전 파일 세트 레벨과 다르게 패키징되는 경우 사용되며, 설치 프로세스는 인벤토리 데이터베이스의 파일 세트 항목을 기준으로 이전에 설치된 파일을 제거해서는 안 됩니다.
파일 세트에 대한 단순 이름 변경은 Fileset.rm_inv 파일을 요청하기에 충분하지 않습니다. Fileset.rm_inv 파일은 새로운 파일 세트가 이전 파일 세트의 서브 세트이거나 이전 파일 세트의 혼합 파트일 경우에 필요합니다. Fileset.namelist 파일이 있고 둘 이상의 파일 세트에 대한 항목이 들어 있으면, Fileset.rm_inv 파일을 사용하여 시스템에서 이전에 설치된 파일 레벨을 제거해야 합니다.
Fileset.rm_inv 파일은 스탠자 형식의 ASCII 텍스트로 구성됩니다. 스탠자 이름이 시스템에 있을 경우 이 이름은 제거될 디렉토리 또는 파일의 전체 경로 이름입니다. 연 이름은 콜론으로 끝납니다(:) 뒤에 새 줄 문자가 이어집니다. 속성이 연 이름 뒤에 오는 경우 속성의 형식은 다음과 같습니다=가치. 속성은 제거해야 할 하드 링크 및 기호 링크를 식별하는 데 사용됩니다. 각 속성에 대해서는 별도 행에서 설명합니다. 다음 리스트는 나열된 파일과 연관된 유효한 속성을 설명합니다.
| 속성 | 설명 |
|---|---|
| 링크 | 파일에 대한 하나 이상의 하드 링크입니다. 링크의 전체 경로 이름은 쉼표로 분리됩니다. |
| 기호 링크 | 파일에 대한 하나 이상의 기호 링크입니다. 링크의 전체 경로 이름은 쉼표로 분리됩니다. |
예를 들어, 다음과 같이 가정합니다U.S.S.R 19.91.0.0파일 세트에는 /usr/lib 디렉터리에 다음 파일이 포함되어 있습니다:moscow,leningrad,kiev,odessa및petrograd(에 대한 상징적 링크leningrad). 제품 개발자는U.S.S.R 19.91.0.0파일세트를 두 개의 파일세트로 나눕니다:Ukraine.lib 19.94.0.0및Russia.lib 19.94.0.0. Ukraine.lib파일세트에는kiev및odessa파일만. 다음Russia.lib파일세트에는moscow파일로 내보냅니다. 다음leningrad파일이 더 이상 존재하지 않고st.petersburg파일에 있는Russia.lib파일 집합입니다.
다음Ukraine.lib.rm_inv파일이 존재해야 하므로Ukraine.lib파일 집합은U.S.S.R파일 집합입니다. 다음Ukraine.lib.rm_inv파일이 비어 있어야 합니다Ukraine.lib파일 집합을 설치하여 마이그레이션을 정리합니다U.S.S.R파일 집합입니다.
/usr/lib/leningrad:
symlinks = /usr/lib/petrograd
/usr/lib/petrograd:보충 디스크 서브시스템의 설치 파일
제공된 SCSI 또는 버스 접속 장치 드라이버와 함께 구성되지 않는 디스크 서브시스템에는 고유한 장치 드라이버 및 구성 방법이 필요합니다. 이러한 설치 파일은 보충 디스켓(장치에서 제공됨)에서 제공되며, ./signature 파일 및 ./startup 파일에서는 백업 형식이어야 합니다. 기호 파일에는 target 문자열이 포함되어 있어야 합니다. 시작 파일은 이름순 복원을 사용하여 보충 디스켓에서 필요한 파일을 발췌하고 장치를 사용 가능 상태로 가져오는 데 필요한 명령을 실행해야 합니다.
분배 미디어의 형식
다음 미디어 유형은 소프트웨어 제품 설치 패키지를 분배하는 데 사용될 수 있습니다.
다음 절에서는 이러한 미디어 각각에 복수의 제품 패키지를 분배하는 데 사용해야 하는 형식에 대해 설명합니다.
테이프
복수 제품 패키지 이미지를 단일 테이프 또는 테이프 세트에 넣으려면 세트에 있는 각 테이프의 파일이 다음과 같은 형식을 준수해야 합니다.
- 파일 1은 비어 있습니다. (부트 가능한 테이프용으로 예약됨)
- 파일 2는 비어 있습니다. (부트 가능한 테이프용으로 예약됨)
- 파일 3에는 테이프 세트의 제품 패키지 이미지를 설명하는 목차 파일이 들어 있습니다. 따라서 세트의 각 테이프에는 멀티볼륨 세트에 있는 테이프 볼륨 번호의 차이를 제외하고 동일한 목차 파일의 사본이 포함되어 있습니다.
- 파일 4부터(N+3)까지는 제품 패키지의 백업 형식 파일 이미지가 포함되어 있습니다1를 통해 N.
- 제품 패키지 이미지 파일은 두 개의 테이프에 나누어서 분배할 수 없습니다.
- 각 파일 끝에는 EOF(파일 끝) 테이프 표시가 옵니다.
CD-ROM
복수의 제품 패키지 이미지가 들어갈 CD-ROM은 \RRGP(Rock Ridge Group Protocol)를 준수해야 합니다. 제품 패키지는 설치 디렉토리에 저장되어야 하며 다음 항목이 포함되어야 합니다.
- 제품 패키지의 백업 형식 파일 이미지
- 디렉토리에 있는 제품 패키지 이미지에 대해 설명하는 .toc 이름의 목차 파일입니다.
복수 볼륨 CD-ROM은 CD-ROM 세트를 단일 설치 장치로 정의하기 위한 추가 디렉토리 구조를 가진 CD-ROM입니다.
- /installp/mvCD 디렉토리는 다음과 같은 내용으로 존재해야
합니다.
- 모든 CD-ROM 세트의 제품 패키지 이미지를 설명하는 목차 파일(.toc)입니다. CD-ROM의 각 볼륨에는 /installp/mvCD에 모두 동일한 .toc가 있어야 합니다.
- 첫 행이 set1에 있는 CD의 10진수 볼륨 번호로 구성된, 이름이 volume_id인 ASCII 파일입니다.
- vol% n 기호 링크입니다. 여기서 n은 세트에 있는 CD의 십진수 볼륨 번호입니다. 기호 링크의 목표는 CD의 해당 특정 볼륨에 있는 제품 패키지의 디렉토리에 대한 상대 경로이어야 합니다. 기호 링크의 표준 값은 ../ppc입니다.
- /installp/mvCD에 있는 목차 파일(.toc)은 표준 목차 형식을 준수합니다. 복수 볼륨 .toc의 특수한 특성은 각 제품 패키지 이미지의 위치가 디렉토리 항목 vol% n으로 시작된다는 것입니다. 여기서 n은 해당 특정 제품 패키지가 들어 있는 볼륨을 표시합니다.
AIX 5.2 예제:
파일세트 A는 볼륨 1의 파일 A.bff 있고 파일세트 B는 볼륨 2의 파일 B.bff 있습니다. A와 B에 대한 제품 패키지 이미지의 위치를 포함하는 /installp/mvCD 목차 파일 필드는 각각 vol%1/A.bff vol%2/B.bff. 볼륨 1의 /installp/ppc에 있는 목차 파일의 필드에는 A의 위치가 A.bff로 들어 있습니다. 볼륨 2의 /installp/ppc에 있는 목차 파일의 필드에는 B의 위치가 B.bff로 들어 있습니다.
AIX 5.1 이상의 CD-ROM 디렉토리 구조는 다른 설치 프로그램 및 다중 플랫폼의 스펙을 허용합니다.
디스켓
복수 제품 패키지 이미지를 디스켓 세트에 넣으려면 다음 파일을 해당 디스켓 세트에 기록해야 합니다.
- 세트에 포함될 제품 패키지 이미지를 설명하는 목차 파일.
- 세트에 포함될 각 제품 패키지 이미지 파일.
다음과 같은 규칙을 사용하여 디스켓 세트에 파일을 씁니다.
- 볼륨 ID 섹터가 세트의 각 디스켓 블록 0에 삽입된 디스켓 세트에 스트림으로 데이터를 기록합니다. 한 볼륨에 대한 최종 블록의 데이터는 다음 볼륨의 블록 1에 있는 데이터에 논리적으로 인접한 것으로 간주됩니다(읽을 때 볼륨 ID 섹터를 검증하고 삭제함).
- 각 파일은 512바이트 블록 경계에서 시작됩니다.
- 먼저 목차 파일을 씁니다. 이 파일의 마지막 섹터를 널 문자로 채우려면 이 파일을 채우십시오(x'00'). 목차 파일의 끝을 표시하려면 하나 이상의 null 문자가 필요합니다. 따라서 널 문자로 가득 찬 섹터가 필요할 수 있습니다.
- 목차 파일에 이어서 후속 섹터에 각 제품 패키지 이미지 파일을 기록합니다. 널(null) 문자를 사용하여 최종 섹터를 채워 각 파일을 채우십시오. 파일이 블록 경계에서 끝날 경우에는 널(null) 문자가 필요하지 않습니다.
- 세트에 있는 각 디스켓의 블록 0에는 볼륨 ID 섹터가 있습니다. 이 섹터의
형식은 다음과 같습니다.
위치 설명 바이트 0:3 식별을 위한 파일 종류 설명자(magic number)입니다. 값이 10진수인 이진 정수입니다3609823513=x'D7298918'. 바이트 4:15 디스켓 세트의 ID 역할을 하는 날짜 및 시간 소인(ASCII 형식)입니다. 형식은 MonthDayHourMinuteSecondYear입니다. Hour는 00 - 23 사이의 값이어야 합니다. 모든 날짜 및 시간 필드에는 두 개의 숫자가 포함되어 있습니다. 따라서 월은 다음과 같이 표시되어야 합니다03데이터 패브릭을3로 표시해야 하며, 연도는 94데이터 패브릭을1994. 바이트 16:19 이 디스켓 세트 내에 있는 2진 정수 볼륨 번호입니다. 세트의 첫 번째 디스켓은x'00000001'. 바이트 20:511 2진 0(제로)입니다.
| 필드 이름 | 형식 | 구분자 | 설명 |
|---|---|---|---|
| 1. 볼륨 | 문자 | 공백 문자 | 테이프 및 디스켓 목차 파일의 경우 볼륨은 이 데이터를 포함하는 볼륨 번호입니다. 고정 디스크 또는 CD-ROM 목차 파일의 경우 볼륨 번호는 다음과 같습니다0. |
| 2. 날짜 및 시간 소인 | mmddhhMMssyy | 공백 문자 | 테이프 또는 디스켓의 경우 이 필드는 볼륨 1이 작성되었을 때의 시간 소인입니다. 하드 디스크 또는 CD-ROM의 경우 이는 .toc 파일을 작성했을 때의 시간 소인입니다. 자세한 설명은 이 항목의 나중에 있는 날짜 및 시간 소인 형식을 참조하십시오. |
| 3. 헤더 형식 | 문자 | 줄 바꾸기 | 목차 파일의 형식을 표시하는 번호입니다. 유효한 항목은 다음과 같습니다.
|
| 4. 제품 패키지 이미지의 위치 | 문자 | 공백 문자 | 테이프 또는 디스켓의 경우, 이는 vvv:bbbbb:sssssss 양식의 문자열입니다. 자세한 설명은 이 주제 나중에 있는 테이프 및 디스켓의 위치 형식을 참조하십시오. 하드 디스크 또는 CD-ROM의 경우 이 필드는 제품 패키지 이미지 파일의 파일 이름입니다. 이 필드는 파일 이름만을 가리키며 경로 이름의 어떤 파트도 이 이름 앞에 올 수 없습니다. |
| 5. 패키지 특정 정보 | lpp_name 파일 형식 | 줄 바꾸기 | 이 제품 패키지 이미지에 포함된 lpp_name 파일의 내용입니다. 자세한 설명은 lpp_name 패키지 정보 파일을 참조하십시오. |
날짜 및 시간 소인 형식
날짜 및 시간 소인 형식은 다음과 같은 형식의 ASCII 문자열입니다.
MonthDayHourMinuteSecondYear
Hour는 00 - 23 사이의 값이어야 합니다. 모든 날짜 및 시간 필드에는 두 개의 숫자가 포함되어 있습니다. 따라서 월은 다음과 같이 표시되어야 합니다03데이터 패브릭을3로 표시해야 하며, 연도는 94데이터 패브릭을1994.
테이프 및 디스켓의 위치 형식
위치의 형식은 vvv:bbbbb:sssssss입니다. 여기서 각 문자는 숫자를 나타내고 다음 의미를 갖습니다.
테이프의 경우
- 버전
- 테이프의 볼륨 번호입니다.
- bbbbb
- 제품 패키지 이미지의 테이프에 있는 파일 번호입니다.
- SSSSSSSS
- 바이트 단위의 파일 크기입니다.
디스켓의 경우
- 버전
- 디스켓의 볼륨 번호입니다.
- bbbbb
- 제품 패키지 이미지 파일이 시작되는 디스켓의 블록 번호입니다.
- SSSSSSSS
- 바이트 단위의 파일 크기입니다(블록 경계 끝에 대한 채우기 포함).
AIX 재배치 가능 설치
이제 기본 AIX 설치 유틸리티(예: installp, instfix, lslpp 및 lppchk)에서 AIX 재배치 설치가 지원되지만, 재배치 사용은 워크로드 파티션 내에 설치해야 하는 애플리케이션에 특히 유용합니다. 디폴트 시스템 WPAR 구성에는 쓰기 가능한 /usr 또는 /opt 파일 시스템이 포함되지 않기 때문입니다. 그러므로 애플리케이션 설치는 기존의 /usr 또는 /opt 위치가 아닌 다른 위치를 대상으로 다시 설정해야 할 수도 있습니다.
- AIX 운영 체제의 단일 인스턴스에서 동일한 installp 패키지의 다중 설치를 설치하고 유지보수합니다.
- AIX 운영 체제의 단일 인스턴스에서 동일한 installp 패키지의 여러 버전을 설치하고 유지보수합니다.
- 기본 installp 추적 도구(예: lppchk, lslpp, instfix 및 inulag)를 사용하여 재배치된 모든 설치 인스턴스에서 설치 데이터를 검증하고 보고합니다.
- 지정된 시스템에서 사전 설치된 소프트웨어 위치를 접속하고 접속 해제합니다.
용어
- 루트 설치 경로
- 애플리케이션이 설치된 기본 디렉토리입니다. Installp 기본 설치 경로는"/"입니다.
- 디폴트 설치 경로
- 디폴트 루트 설치 경로(즉, "/")입니다.
- 재배치된 설치 경로
- 디폴트 설치 경로가 아닌 임의의 루트 설치 경로입니다. 경로 위치는 "/"가 아니고 크기가 512자 이하인 유효한 경로가 될 수 있습니다.
- 재배치 가능 애플리케이션
- 디폴트가 아닌 루트 설치 경로에 설치할 수 있는 애플리케이션입니다.
- USIL(User Specified Install Location)
- 사용자가 설정한 재배치된 설치 경로 인스턴스입니다.
USIL
사용자 지정 설치 위치 또는 USIL은 관리자가 작성한 추적된 재배치 설치 경로입니다. 이 위치는 시스템에서 추적하며 재배치를 지원하는 패키지의 대체 설치 경로로서 사용할 수 있습니다. 각 설치를 별도의 USIL로 위임하면 같은 소프트웨어 패키지의 다중 인스턴스 및/또는 버전을 단일 시스템에 설치할 수 있습니다. 기존의 USIL 인스턴스는 지정된 시스템에서 접속 또는 접속 해제될 수 있습니다.
- <InstallRoot>/etc/objrepos
- <InstallRoot>/usr/lib/objrepos
- <InstallRoot>/usr/share/lib/objrepos
- 현재 SWVPD 오브젝트 클래스에는 다음이 포함됩니다.
- 제품
- lpp
- 인벤토리
- 실행기록
- 수정사항
- 벤더
- 래그
- 각 USIL 인스턴스는 재배치된 경로 내에서 디폴트 SWVPD 구조를 미러링합니다.
USIL 관리 명령
/usr/sbin/mkusil
새 USIL 인스턴스를 작성하거나 첨부합니다.
mkusil -R RelocatePath -c Comments[XFa]
- -a
- 기존 설치를 USIL 인스턴스로서 첨부합니다.
- -c
- USIL 정의에 포함시키는 주석입니다(lsusil 명령을 표시 가능).
- -R
- 새 USIL 위치에 대한 경로입니다. 유효한 디렉토리여야 합니다.
- -X
- 필요한 공간을 자동으로 확장합니다.
/usr/sbin/lsusil
기존 USIL 인스턴스를 나열합니다.
lsusil[-R RelocatePath | "ALL"]
- -R
- 기존 USIL 위치에 대한 경로입니다.
/usr/sbin/rmusil
기존 USIL 인스턴스를 제거합니다.
rmusil -R RelocatePath
- -R
- 기존 USIL 위치에 대한 경로입니다.
/usr/sbin/chusil
기존 USIL 인스턴스의 속성을 변경합니다.
chusil -R RelocatePath -c NewComments[X]
- -c
- USIL 정의에 포함시킬 새 댓글입니다(lsusil 명령으로 표시 가능).
- -R
- 기존 USIL 위치에 대한 경로입니다.
- -X
- 공간이 필요한 경우 자동으로 확장합니다.
재배치 가능 설치 유틸리티
- /usr/sbin/mkusil
- /usr/sbin/rmusil
- /usr/sbin/lsusil
- /usr/sbin/chusil
- 각 유틸리티에서는 -R RelocatePath 플래그를 사용합니다.
- 재배치 가능 installp 패키지에 대해 작업하는 경우 위 유틸리티를 반드시 사용해야 합니다.
재배치 가능 애플리케이션 패키징을 위한 요구사항
- 재배치 가능 애플리케이션 패키지는 루트 설치 위치 외부에서 (쓰기) 인벤토리 오브젝트를 제공할 수 없습니다.
- 재배치 가능 애플리케이션 패키지는 루트 설치 위치 외부에서 패키징 조정을 사용하여 (쓰기) 데이터를 제공할 수 없습니다.
- 재배치 가능 애플리케이션 패키지에는 각각의 재배치 가능 파일 세트에 대해 RELOCATABLE 확장 패키징 속성이 포함되어야 합니다. 파일 세트는 재배치할 수 있는 가장 작은 설치 가능 단위입니다.
- 재배치 가능 애플리케이션 패키지에는 외부 재배치된 경로에 있는 필수사항이 없을 수 있습니다. 파일 세트가 디폴트 설치 경로 또는 자체 설치 경로에 설치되는 필수사항이 있을 수 있습니다.
재배치 가능 애플리케이션 실행을 위한 요구사항
- 애플리케이션에는 설치 위치에 종속되지 않는 루트 설치 위치 또는 함수를 판별하는 방법이 있어야 합니다.
- 애플리케이션은 루트 설치 위치에 대한 상대 경로로 모든 애플리케이션 고유의 실행 파일 구성요소를 참조해야 합니다.
- 애플리케이션은 루트 설치 위치에 대한 상대 경로로 모든 애플리케이션 고유의 데이터 구성요소를 참조하거나, 다른 애플리케이션 인스턴스와 데이터를 공유하도록 디자인되어야 합니다.
- 애플리케이션은 루트 설치 위치 외부에서 영구적인 변경사항을 작성해서는 안됩니다.
USIL 커넥터 ODM 클래스 오브젝트
USIL 커넥터 ODM 클래스 오브젝트는 /etc/objrepos/usilc 파일에 상주하며 모든 USIL 인스턴스와 디폴트 SWVPD를 링크하는 데이터를 포함합니다.
/* User Install Location Connector */
/* Connects the default install path to all relocated install paths. */
class usilc {
vchar path[1024]; /* USIL path */
vchar comments[2048]; /* USIL Comments */
long flags; /* USIL flags */
}; -R "ALL" 또는 -R "all" 옵션과 함께 모든 설치 경로 나열
lslpp 및 lppchk 명령은 -R "ALL" 구문이 사용되는 경우 모든 설치 위치에서 나열 조작을 수행할 수 있습니다.
접속/접속 해제 조작
접속 조작에서는 사용자가 기존의 접속 해제된 USIL 경로를 SWVPD와 통합할 수 있습니다.
예를 들어 관리자가 관리자가 애플리케이션 호스트 용도로 설치된 여러 재배치 가능 애플리케이션과 함께 하나의 마스터 USIL 인스턴스를 작성하는 경우입니다. 그런 다음 관리자는 이 USIL 인스턴스를 여러 시스템에 복사 또는 NFS 마운트하고 첨부 기능을 사용하여 USIL 인스턴스를 SWVPD에 통합합니다. 접속 해제 조작은 USIL 인스턴스에 대한 참조를 제거합니다.
installp 라이센싱
새 USIL 인스턴스는 빈 LAG(installp 라이센스 계약 ODM 오브젝트 클래스)로 시작됩니다. 라이센스가 필요한 파일 세트 또는 LPP를 설치하려면 정상적인 installp 규약에 따라 라이센스 동의가 필요합니다. 라이센스 동의는 여러 USIL 인스턴스에 걸쳐 해당되지 않습니다.
|신뢰있는 전산구조(TCB)
TCB 가능 시스템에서는 USIL 인스턴스 설치가 현재 지원되지 않습니다.
재배치 가능 필수사항
새 패키징 시맨틱은 재배치 가능 필수사항 위치를 표시합니다. 패키저는 디폴트 설치 경로 또는 재배치된 설치 경로에서 지정된 필수사항을 발견하도록 지정할 수 있습니다.
- prereq_ r = 재배치된 설치 경로에서의 prereq
- ifreq_r = 재배치된 설치 경로에서의 ifreq
- coreq_r = 재배치된 설치 경로에서의 coreq
- instreq_r = 재배치된 설치 경로에서의 instreq
현재 정의된 필수사항 유형(prereq, ifreq, coreq 및 instreq)은 모두 디폴트 필수사항(디폴트 설치 위치에 적용되는 필수사항)입니다.
재배치 가능 패키지에 대한 TOC 변경사항
sscp.rte.1.0.0.5.U.PRIVATE.bff 4 R S sscp {
sscp.rte 01.00.0000.0005 1 N B En_US Sscp
[
*coreq bos.games 1.1.1.1 <-- default requisite in default requisite section
*prereq bos.rte 1.1.1.1 <-- default requisite in default requisite section
%
/usr/bin 20
/etc 20
INSTWORK 72 40
%
%
%
IY99999 1 APAR text here.
%
RELOCATABLE <-- attribute tag to denote relocatable package
%
*prereq bos.rte 1.1.1.1 <-- default requisite in relocated requisite section
*coreq_r bos.games 1.1.1.1 <-- relocated requisite in relocated requisite section
]
}- 재배치 가능 필수사항 절이 재배치 설치 도중 있는 경우 이는 설치를 위한 필수사항 절로 사용됩니다.
- 재배치 가능 필수사항 절이 재배치 설치 도중 없으면 디폴트 필수사항 절이 사용됩니다. 이는 모든 필수사항이 디폴트 필수사항이 됨을 의미합니다.
- 디폴트 설치(재배치 불능)에서는 재배치 가능 필수사항 절을 사용하지 않습니다.
| 명령 | 설명 |
|---|---|
| apply | 제품 설치 패키지의 파일 세트가 적용되면 시스템에 설치되어 해당
파일 세트의 기존 버전을 겹쳐쓰므로, 시스템에 있는 파일 세트의 해당 버전을
확정합니다. 파일 세트가 더 이상 필요하지 않다고 사용자가 결정하면
파일 세트를 제거할 수 있습니다. 파일 세트 갱신이 적용되면 갱신이 설치되고 나중에 갱신을 제거할 수 있도록 정보가 저장됩니다(달리 요청되지 않을 경우). 적용된 파일 세트 갱신사항을 나중에 확정하거나 거부할 수 있습니다. |
| 확약 | 파일 세트 갱신이 확정되면 적용 중 저장된 정보가 시스템에서 제거됩니다. 이미 적용된 소프트웨어를 확정해도 현재 활성 중인 파일 세트 버전을 변경하지 않습니다. |
| 거부 | 갱신이 거부되면 적용 도중 저장된 정보를 사용하여 파일 세트의 활성 버전을 거부된 갱신에 대한 이전 버전으로 변경합니다. 그런 다음 저장된 정보가 시스템에서 제거됩니다. 거부 조작은 갱신의 경우에만 유효합니다. 파일 세트 또는 파일 세트 갱신에서 설치를 완료하는 데 실패하면 거부 조작에 있는 동일한 단계의 대부분이 정리 조작에서 수행됩니다. |
| 제거 | 파일 세트가 제거되면 파일 세트 및 해당 갱신사항이 해당 상태(적용됨, 확정됨 또는 파손)와 상관없이 시스템에서 제거됩니다. 제거 조작은 파일 세트의 설치 레벨에서만 유효합니다. |
제품 패키지에서 제공된 실행 파일은 적용, 거부 및 제거 조작에 대한 처리를 조정할 수 있습니다.
파일 세트를 다시 설치하면 동일한 파일 세트의 제거 및 설치를 수행하는 것과 동일한 조치가 수행되지 않습니다. 재설치 조치( /usr/lib/instl/rminstal 참조)는 이전 또는 같은 버전에서 현재 파일을 정리하지만 unconfig 또는 unpre* 스크립트를 실행하지 않습니다. 그러므로 unconfig 스크립트가 실행된 것으로 간주하지 마십시오. .config 스크립트는 unconfig가 완료된 것으로 간주하기 전에 환경을 검사해야 합니다.
예를 들어 ras.berry.rte 파일 세트의 경우 구성 스크립트는 루트의 crontab 파일에 행을 추가합니다. ras.berry.rte 파일 세트를 다시 설치하면 두 개의 crontab 항목이 발생합니다. unconfig 스크립트는 재설치 시 실행되지 않습니다(crontab 항목을 제거함). 구성 스크립트는 항상 항목을 제거한 후 이를 다시 추가해야 합니다.
적용 조작에 대한 처리
이 절에서는 파일 세트 또는 파일 세트 갱신을 적용할 때 installp 명령에서 수행하는 단계에 대해 설명합니다.
- 지정된 장치에서 패키지에 대한 lpp_name 제품 패키지 정보 파일을 복원하십시오.
- 요청된 파일 세트가 설치 미디어에 존재하는지를 검증하십시오.
- 요청된 파일 세트의 레벨을 검사하여 시스템에 설치할 수 있는지 여부를 확인하십시오.
- ' liblpp.a 아카이브 라이브러리 파일에서 ' 패키지 디렉토리 (' usr ' 또는 ' usr/root ' 패키지의 경우/usr/lpp/' '패키지_이름 ')로 제어 파일을 복원합니다. usr/root 패키지의 root 부분 고유의 제어 파일은 /usr/lpp/Package_Name/inst_root/liblpp.a에 있습니다.
- 디스크 공간 요구량을 검사하십시오.
- 필요한 필수사항(다른 파일 세트를 사용 또는 설치하기 위해서는 파일 세트가 특정 레벨에 있어야 함)이 이미 설치되었는지 또는 설치할 리스트에 있는지를 검사하십시오.
- 설치를 진행하기 위해 만족시켜야 하는 라이센스 계약 요구사항이 있는지를 판별하십시오.
- 이 패키지가 파일 세트 갱신 패키지가 아닌 설치 패키지일 경우
소프트웨어 필수 제품 데이터(SWVPD)를 검색하여 파일 세트(설치 중인 파일 세트) 또는
Fileset.namelist 파일에 나열된 다른 파일 세트가 이미 임의 레벨의 시스템에
설치되어 있는지 확인하십시오. 파일 세트가
이미 설치되어 있으면, 파일 세트 이름과 설치된 레벨을 Work_Directory/Fileset.installed_list 파일에
기록하십시오.
설치된 파일 세트 레벨이 없고 Fileset.namelist 파일에 나열된 파일 세트가 설치되었으면, Work_Directory/Fileset.installed_list 파일에서 해당 파일 세트 및 레벨 모두를 나열하십시오. 작업_디렉토리 '은/lpp/ '패키지_이름'를 사용하는 ' root ' 부분을 제외하고는 패키지 디렉토리와 동일합니다.
- 이 패키지가 파일 세트 갱신 패키지가 아닌 설치 패키지일 경우
/usr/lib/instl/rminstal 스크립트를 실행하여 설치 중인
파일 세트마다 다음을 수행하십시오.참고: 달리 명시하지 않는 한, 존재 확인된 파일은 liblpp.a 제어 파일 라이브러리에서 복원된 파일이어야 합니다.
- Fileset.pre_rm이 있는 경우, 이 버전 또는 기존 버전의 파일 집합에서 파일을 제거하기 전에 Fileset.pre_rm을 실행하여 필요한 단계를 수행합니다.
- Work_Directory/Fileset.installed_list가 있는 경우, Fileset.cfgfiles에 나열된 기존 파일을 구성 파일 저장 디렉토리(MIGSAVE 환경 변수에 표시됨)로 이동하십시오.
- Fileset의 버전이 이미 설치되어 있으면 파일 및 Fileset에 대한 SWVPD 정보(내역 제외)를 제거하십시오.
- ' 작업_디렉토리/ '파일 세트' '.installed_list '이 존재하고 ' 파일 세트 '.rm_inv '가 존재하거나 ' 파일 세트. '네임리스트 둘 이상의 파일셋이 포함되어 있거나 ' 파일 세트 '.namelist '에 나열된 유일한 파일셋이 있는 경우bos.obj를 클릭한 다음 다음을 수행합니다:
- 파일 및 Fileset.rm_inv 파일에 나열된 파일에 대한 SWVPD 인벤토리 정보를 제거하십시오.
- 파일 및 Fileset.inventory 파일에 나열된 파일에 대한 SWVPD 인벤토리 정보를 제거하십시오.
- 더 이상 SWVPD 인벤토리 정보가 없는 Fileset.namelist에 나열된 파일 세트에 대해서는 다른 SWVPD 인벤토리를 제거하십시오.
- Work_Directory/Fileset.installed_list가 존재하고 여기에 하나의 파일 세트만 포함되어 있으며 Fileset.namelist가 하나의 파일 세트만 포함하는 경우 파일 및 해당 파일 세트에 대한 SWVPD 정보(내역 제외)를 제거하십시오.
- 제품 패키지의 각 파트의 경우(usr 파트만 또는
usr 다음에 root가 오는 경우)
- INUTREE(' usr '는U ', ' root'는 ' M ')와 INUTEMPDIR(생성된 임시 작업 디렉토리 환경 변수의 이름)을 설정합니다.
- install 제어 프로그램이 패키지 디렉토리(권장하지 않음)에 있으면 ./instal을 실행하십시오. 그렇지 않으면 디폴트 스크립트 /usr/lib/instl/instal을 실행하십시오. instal 제어 프로그램이 패키지 디렉토리에 존재하지 않으면 INUSAVEDIR 환경 변수를 설정하십시오.
- update 제어 프로그램이 패키지 디렉토리(권장되지 않음)에 존재하면 ./update를 실행하십시오. update 제어 프로그램이 패키지 디렉토리에 존재하지 않으면 /usr/lib/instl/update 디폴트 스크립트를 실행하십시오.
- status 파일이 instal 또는 update 명령을 통해 정상적으로 작성되었으면 status 파일을 사용하여 각 파일 세트에 대한 성공 또는 실패를 판별하십시오. status 파일이 작성되지 않았으면 패키지의 요청된 모든 파일 세트가 적용에 실패한 것으로 가정하십시오.
- 파일 세트에 대한 적용 조작이 성공적이면 소프트웨어 필수 제품 데이터(SWVPD)를 갱신한 후 연관된 모든 사용권 계약 요구사항을 등록하십시오. 파일 세트에 대한 적용 조작이 실패한 경우 패키지 디렉토리의 /usr/lib/instl/cleanup 또는 패키지 제공 lpp.cleanup을 실행하여 실패한 파일 세트를 정리하십시오.
디폴트 설치 또는 갱신 스크리트의 처리
instal 또는 update 실행 파일은 설치 또는 갱신에 사용 중인 장치에서 첫 번째 매개변수와 함께 installp에서 호출됩니다. 두 번째 매개변수는 설치 또는 갱신할 파일 세트 리스트를 포함하는 파일의 전체 이름이며, 아래에서는 $FILESETLIST입니다. 디폴트 instal 및 update 스크립트는 함께 링크되어 있습니다. 처리는 instal로 호출되는지 또는 update로서 호출되는지 여부에 따라 달라집니다. 현재 디렉토리는 패키지 디렉토리입니다. 임시 디렉토리 INUTEMPDIR이 /tmp에 작성되어 작업 파일을 보관합니다.
디폴트 instal 및 update 스크리트 내에서의 플로우는 다음과 같습니다.
- $FILESETLIST에 나열된 파일 세트마다 다음을 수행합니다.
- 파일 세트가 갱신이면, Fileset.pre_u(pre_update)(있는 경우)를 실행하십시오. 파일 세트가 갱신이 아닐 경우 Fileset.pre_i(pre_installation)(있는 경우)를 실행하십시오.
- 새 파일 INUTEMPDIR/master.al Fileset.al을 추가하여 패키지에서 복원할 파일의 마스터 목록을 작성합니다.
- 파일 세트가 갱신일 경우 파일이 저장되도록 지정되며
lpp.acf 아카이브 제어 파일이 존재합니다.
갱신 중인 라이브러리 아카이브 멤버는 저장에서 제외됩니다.
- 처리가 성공적이면 이 파일 세트를 $FILESETLIST.new 파일에 설치될 리스트에 첨가합니다.
- 파일 세트가 갱신이고 파일 저장이 지정되면 inusave를 실행하여 파일의 현재 버전을 저장합니다.
- 루트 파트를 처리 중인 경우 inucp를 실행하여 적용 리스트에서 루트 파트로 파일을 복사하십시오. 루트 부분을 처리하지 않는 경우, inurest를 실행하여 ' usr ' 부분에 대한 적용 목록에서 파일을 복원합니다.
- $FILESETLIST.new 파일에 나열된 각 파일 세트에 대해
다음을 수행하십시오.참고: 모든 단계의 실패는 상태 파일에 기록되며 해당 파일 집합에 대한 처리가 종료됩니다
- 이 파일 세트가 동일하거나 이전인 레벨로 설치되어 있는지 또는 Fileset.namelist에 나열된 파일 세트가 설치되어 있는지를 판별합니다. 설치되어 있으면 INSTALLED_LIST 및 MIGSAVE 환경 변수를 반출하십시오. 이를 마이그레이션이라고 합니다.
- 갱신을 처리 중인 경우 Fileset.post_u(있는 경우)를 호출하십시오. Fileset.post_u가 없으면 Fileset.post_i(있는 경우)를 호출하십시오.
- Fileset.cfgfiles가 존재하면 /usr/lib/instl/migrate_cfg를 실행하여 지정된 처리 방법에 따라 구성 파일의 처리를 수행합니다.
- sysck를 호출하여 Fileset.inventory 파일의 정보를 소프트웨어 필수 제품 데이터베이스(SWVPD)에 추가합니다.
- Fileset.tcb 파일이 존재하고 /usr/lib/objrepos/PdAt ODM 데이터베이스에 신뢰할 수 있는 컴퓨팅 기반 tcb_enabled 속성이 설정된 경우 tcbck 명령을 호출하여 시스템에 신뢰할 수 있는 컴퓨팅 기반 정보를 추가합니다.
- Fileset.err이 있는 경우 오류 템플릿을 추가하려면 errupdate를 호출합니다.
- Fileset.trc가 있는 경우 trcupdate를 호출하여 추적 보고서 형식 템플릿을 추가합니다.
- 갱신인 경우 또는 Work_Directory/Fileset.installed_list가 있는 경우, 각각의 Fileset.odmdel 및 Fileset.*.odmdel 스크립트를 호출하여 ODM 데이터베이스 삭제 명령을 처리하십시오.
- 기존의 각 Fileset.odmadd 및 Fileset.*.odmadd에서 odmadd를 호출하여 ODM 데이터베이스에 정보를 추가합니다.
- 이것이 갱신이면 Fileset.config_u(파일 세트 구성 갱신)가 있는 경우 이를 호출하십시오. 그렇지 않으면 Fileset.config(파일 세트 구성)가 있는 경우 이를 호출하십시오.
- 파일 세트의 성공적인 처리를 표시하는 status 파일을 갱신합니다.
- 향후 사용을 위해 파일 세트 제거에 필요한
제어 파일을 패키지의 deinstl 디렉토리에 링크합니다. 이러한 파일에는 패키지 디렉토리에 있을 수 있는 다음과 같은 파일이 포함됩니다.
- lpp.deinstal
- 파일 세트. al
- 파일 세트. 인벤토리
- 파일 세트. pre_d
- 파일 세트. unpre_i
- 파일 세트. unpre_u
- 파일 세트. unpost_i
- 파일 세트. unpost_u
- 파일 세트. unodmadd
- 파일 세트. unconfig
- 파일 세트. unconfig_u
- 저장된 디렉터리/파일세트. *.rodmadd
- SAVEDIR/Fileset. *.unodmadd
거부 및 정리 조작에 대한 처리
이 절에서는 파일 세트 갱신이 거부되는 경우 또는 파일 세트 또는 파일 세트 갱신이 설치에 실패하는 경우 installp 명령에서 수행하는 단계에 대해 설명합니다. /usr/lib/instl에 있는 디폴트 cleanup 및 reject 스크립트는 서로 링크되어 있습니다. 이들의 로직은 스크립트가 reject로 호출되는지 또는 cleanup으로 호출되는지에 따라 약간 다릅니다. usr/root 파일 세트 또는 파일 세트 갱신의 경우 root 파트는 usr 파트 이전에 처리됩니다.
- 거부되면 필수사항을 검사하여 모든 종속 제품 갱신사항도 함께 거부되는지 확인하십시오.
- 패키지의 각 파트(예: usr 및 root)에 대해 다음을 수행하십시오.
- INUTREE를 설정합니다(U는 usr, M은 root를 의미합니다.) 및 INUTEMPDIR 환경 변수를 설정하십시오.
- reject 제어 파일이 현재 디렉토리(INULIBDIR)에 있는 경우 ./lpp.reject를 호출하십시오. 그렇지 않으면 디폴트 스크립트 /usr/lib/instl/reject를 호출하십시오.
- 소프트웨어 필수 제품 데이터(SWVPD)를 갱신하십시오.
installp로부터 reject 실행 파일이 호출되며, 이 때 첫 번째 매개변수는 정의되지 않고 두 번째 매개변수는 갱신에 대해 거부될 파일 세트 리스트(아래에서는 $FILESETLIST라고 함)가 들어 있는 파일의 전체 경로 이름이 됩니다.
다음 파일은 디폴트 cleanup 및 reject 스크립트에서 참조합니다.
디폴트 cleanup 및 reject 스크리트 내에서의 플로우는 다음과 같습니다.
- $FILESETLIST에 나열된 파일 세트마다 다음을 수행하십시오.
- cleanup으로 호출되는 경우, Package_Name.s 상태 파일에 있는 행을 읽고 설치에 실패한 단계를 판별하고 해당 단계에 대한 실행 취소 조치로 건너뛰십시오. cleanup 조작은 설치가 실패한 단계에서만 시작됩니다. 예를 들어 Fileset.post_i 스크립트에서 파일 집합 설치가 실패한 경우, 설치의 후속 단계에서 실행 취소할 작업이 없으므로 해당 파일 집합의 정리 작업은 i에서 시작됩니다.
- 설치 중 수행된 모든 구성 처리를 실행 취소하십시오.
갱신을 거부하는 경우 Fileset.unconfig_u가 있으면 이를 호출하십시오. 그렇지 않은 경우 Fileset.unconfig가 있으면 이를 호출하십시오.
- Fileset.*.unodmadd 및/또는 Fileset.unodmadd 파일을 실행하여 설치 중 추가된 ODM(Object Data Manager) 항목을 제거하십시오.
- Fileset.*.rodmadd 및/또는 Fileset.rodmadd 파일이 있으면 이를 실행하여 설치 중 삭제된 ODM 항목을 대체하십시오.
- ' 파일 세트 '.undo.trc '이 있는 경우trcupdate '을 호출하여 설치 중에 변경된 추적 형식 템플릿 변경 사항을 실행 취소합니다.
- Fileset.undo.err 존재하는 경우 errupdate를 호출하여 설치 중에 변경된 오류 형식 템플릿 변경 사항을 취소합니다.
- Fileset.tcb 파일이 존재하고 /usr/lib/objrepos/PdAt ODM 데이터베이스에 신뢰할 수 있는 컴퓨팅 기반 속성 tcb_enabled가 설정된 경우 tcbck를 호출하여 신뢰할 수 있는 컴퓨팅 기반 정보를 시스템에서 삭제합니다.
- Fileset.inventory가 있는 경우 sysck를 호출하여 소프트웨어 정보 데이터베이스의 변경 내용을 취소합니다.
- 설치 중 수행된 모든 post_installation 처리의
실행을 취소합니다.
이것이 갱신일 경우 Fileset .unpost_u가 존재하면 이를 호출합니다. 그렇지 않은 경우 Fileset.unpost_i가 존재하면 이를 호출합니다.
- Fileset.al 파일에서 마스터 적용 목록( master.al 함)을 작성합니다.
- Fileset을 $FILESETLIST.new에 추가하십시오.
- $INUTEMPDIR/master.al이 있는 경우 다음을 수행하십시오.
- 디렉터리를 /(루트)로 변경합니다.
- master.al에 있는 모든 파일을 제거하십시오.
- $FILESETLIST.new를 읽는 동안 다음을 수행하십시오.
- inurecv를 호출하여 저장된 모든 파일을 복구하십시오.
- 이것이 갱신인 경우 Fileset.unpre_u가 있으면 호출하십시오. 그렇지 않은 경우 Fileset.unpre_i가 존재하면 이를 호출하십시오.
- 설치/갱신 제어 파일을 삭제하십시오.
- Package_Name.s 상태 파일을 제거하십시오.
제거 조작에 대한 처리
이 절에서는 파일 세트가 제거되는 경우 installp 명령에서 수행하는 단계에 대해 설명합니다. usr/root 파일 세트 또는 파일 세트 갱신의 경우 root 파트는 usr 파트 이전에 처리됩니다.
- 필수사항을 검사하여 모든 종속 파일 세트도 함께 제거되는지 확인하십시오.
- 제품 패키지 각 파트의 경우(예: usr 및 root):
- INUTREE(usr의 경우 U, root의 경우 M, share의 경우 S) 및 INUTEMPDIR(/tmp에서 생성된 installp 작업 디렉토리) 환경 변수를 설정하십시오.
- 디렉토리를 INULIBDIR로 변경하십시오.
- deinstal 제어 파일이 현재 디렉토리에 있으면 ./lpp.deinstal 스크립트를 실행하십시오. deinstal 제어 파일이 현재 디렉토리에 없으면 /usr/lib/instl/deinstal 디폴트 스크립트를 실행하십시오.
- 파일 시스템에서 파일 세트에 속한 파일을 제거하십시오.
- 내역 데이터를 제외하고 SWVPD에서 파일 세트 항목을 제거하십시오.
- 파일 세트에 대한 라이센스 계약 요구사항 등록을 비활성화하십시오.
installp에서 deinstal 실행 파일이 호출되며, 이 때 첫 번째 매개변수는 제거될 파일 세트 리스트가 들어 있는 파일의 전체 경로 이름이 되며, 아래에서는 $FILESETLIST라고 합니다.
디폴트 deinstal 스크립트 내의 플로우는 다음과 같습니다.
- 입력 파일 $FILESETLIST에 나열된 파일 세트마다 다음을 수행합니다.
- Fileset.unconfig_d가 있는 경우, 다음을 수행하십시오.
Fileset.unconfig_d를 실행하여 모든 구성 변경사항, ODM(Object Data Manager) 변경사항 및 오류와 추적 형식 변경사항을 제거하고, 갱신 및 기본 레벨 설치 모두에 대한 설치 전 및 설치 후 스크립트에서 수행한 모든 조작을 실행 취소하십시오. 이 파일은 사용하지 않는 것이 좋습니다.
- Fileset.unconfig_d가 없는 경우 다음을 수행하십시오.
- 해당 파일 세트에 대한 각 갱신에서 다음을 수행하십시오.
- 모든 Fileset.unconfig_u 스크립트를 실행하여 모든 갱신 구성 처리의 실행을 취소합니다.
- 모든 Fileset.*.unodmadd 및 Fileset.unodmadd를 실행하여 갱신 시 추가된 오브젝트 데이터 관리자(ODM) 항목을 삭제합니다.
- 모든 Fileset.*.rodmadd 및 Fileset.rodmadd를 실행하여 갱신 시 삭제된 오브젝트 데이터 관리자(ODM) 항목을 추가합니다.
- 오류 로그 템플릿 변경 사항을 실행 취소하려면 Fileset.undo.err 있는 경우 errupdate를 실행하세요.
- Fileset.undo.trc 있는 경우 trcupdate를 실행하여 추적 보고서 템플릿 변경 사항을 실행 취소합니다.
- 모든 Fileset.unpost_u를 실행하여 설치 후 조정의 실행을 취소합니다.
- 파일 세트 기준 설치 레벨에 대해 다음을 수행합니다.
- 모든 Fileset.*.unodmadd 또는 Fileset.unodmadd를 실행하여 설치 시 추가된 오브젝트 데이터 관리자(ODM) 항목을 삭제합니다.
- 모든 Fileset.*.rodmadd 및/또는 Fileset.rodmadd를 실행하여 설치 시 삭제된 오브젝트 데이터 관리자(ODM) 항목을 추가합니다.
- 오류 로그 템플릿 변경 사항을 실행 취소하려면 Fileset.undo.err 있는 경우 errupdate를 실행하세요.
- Fileset.undo.trc 있는 경우 trcupdate를 실행하여 추적 보고서 템플릿 변경 사항을 실행 취소합니다.
- Fileset.unconfig_i를 실행하여 설치 구성 처리의 실행을 취소합니다.
- Fileset.unpost_i를 실행하여 모든 파일 설치 후 조정의 실행을 취소합니다.
- 해당 파일 세트에 대한 각 갱신에서 다음을 수행하십시오.
- 파일 세트에 설치된 파일 및 소프트웨어 데이터 정보를 제거합니다.
- Fileset.unconfig_d가 없는 경우 다음을 수행하십시오.
- 해당 파일 세트에 대한 각 갱신에서 Fileset.unpre_u를 실행하여 파일 설치 전 조정을 실행 취소하십시오.
- 파일 세트 기본 설치 레벨에 대해 Fileset.unpre_i를 실행하여 모든 파일 설치 전 조정의 실행을 취소합니다.
- 파일 세트와 연관된 비어 있는 모든 디렉토리를 삭제합니다.참고: 제거 실행 파일을 실행하는 동안 일부 호출에서 오류가 반환되면 오류는 기록되지만 실행은 계속됩니다. 이 현상은 오류가 발생하면 해당 파일 세트의 실행이 대개 취소되므로 다른 스크립트와는 다릅니다. 그러나 일단 파일 세트의 제거가 시작되면 복구할 수 없으므로, 제거는 오류가 발생한 경우 최고 효율이 됩니다.
설치 상태 파일
- $INUTEMPDIR/status
- 설치되거나 갱신될 각 파일 세트에 대한 1행 항목이 포함되어 있는 파일입니다.
installp 명령에서는 이 status 파일을 사용하여 적절한 처리를 판별합니다. 설치 스크립트를 작성할 경우 스크립트는 올바른 형식의 status 파일을 생성해야 합니다. status 파일에 있는 각 행의 형식은 다음과 같습니다.
| 상태 코드 | 의미 |
|---|---|
| s | 성공, SWVPD 갱신 |
| F | 실패, 정리 프로시저 수행 |
| b | 생략, 실패함, 정리가 필요 없음 |
| i | 필수사항 실패, 정리가 필요없음 |
| v | sysck 검증이 실패함 |
status 파일의 다음 예제는 bos.net 패키지의 tcp.client 및 tcp.server 파일 세트에 대한 설치가 성공했고 nfs.client 파일 세트에 대한 설치는 실패했음을 installp 명령에 표시합니다.
s bos.net.tcp.client
s bos.net.tcp.server
f bos.net.nfs.client
- inucp
- 루트 파트를 설치하는 경우 /usr/lpp/Package_Name/inst_root 디렉토리에서 /(루트) 파일 트리로 파일을 복사합니다.
- inulag
- 라이센스 계약을 관리하는 서브루틴의 프론트 엔드로서 작동합니다.
- inurecv
- 설치 실패 또는 소프트웨어 거부의 경우 저장된 파일을 복구합니다(installp -r).
- inurest
- 적용 리스트를 입력으로 사용하여 배급 미디어에서 시스템으로 파일을 복원합니다.
- inusave
- 적용 리스트에서 지정한 모든 파일을 소프트웨어 제품에 속한 저장 디렉토리에 저장합니다.
- inuumsg
- 설치 중인 소프트웨어 제품의
inuumsg.cat메시지 카탈로그 파일에서 메시지를 발행합니다. - ckprereq
- SWVPD에 있는 이미 설치된 제품에 대한 정보 및 lpp_name 파일에 제공된 필수사항 정보를 사용하여 종속 항목과의 소프트웨어 제품의 호환성을 검증합니다.
- sysck
- 설치 및 갱신 프로시저에서 인벤토리 정보를 검사합니다.
이러한 명령의 사용에 대한 예제는 디폴트 설치 스크립트인 /usr/lib/instl/instal을 참조하십시오.