다음 방법 중 하나로 이 스크립트를 준비하고 실행합니다.
Sun Cluster 프레임워크 패키지에 대한 변수를 설정하고 스크립트를 실행합니다. 그런 다음 데이터 서비스 패키지에 대한 PATHNAME 변수를 수정하고 스크립트를 재실행합니다.
프레임워크 패키지에 대한 스크립트에 설정된 변수가 포함된 스크립트와 데이터 서비스 패키지에 대해 설정된 변수가 포함된 스크립트를 작성합니다. 그런 다음 두 스크립트를 실행합니다.
수퍼유저로 전환합니다.
다음 내용으로 스크립트를 작성합니다.
#!/bin/ksh typeset PLATFORM=${PLATFORM:-`uname -p`} typeset PATHNAME=${PATHNAME:-/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages} typeset BASEDIR=${BASEDIR:-/} cd $PATHNAME for i in * do if pkginfo -R ${BASEDIR} $i >/dev/null 2>&1 then mkdir -p ${BASEDIR}/var/sadm/pkg/$i/save/pspool pkgadd -d . -R ${BASEDIR} -s ${BASEDIR}/var/sadm/pkg/$i/save/pspool $i fi done
변수 PLATFORM, PATHNAME 및 BASEDIR을 설정합니다.
이들 변수를 환경 변수로 설정하거나 스크립트의 변수를 직접 수정합니다.
플랫폼의 이름입니다. 예를 들면, sparc 또는 x86 등입니다. 기본적으로 uname -p 명령의 출력에 대해 PLATFORM 변수가 설정되어 있습니다.
Sun Cluster 프레임워크 또는 데이터 서비스 패키지를 설치할 수 있는 장치에 대한 경로입니다. 이 값은 pkgadd 명령의 -d 옵션에 해당합니다.
한 가지 예로 Sun Cluster 프레임워크 패키지의 경우, 이 값의 형식은 다음과 같습니다.
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages |
데이터 서비스 패키지의 경우, 이 값의 형식은 다음과 같습니다.
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages |
루트 경로로 사용하고 pkgadd 명령의 -R 옵션에 해당하는 디렉토리의 전체 경로 이름입니다. 라이브 업그레이드의 경우, 이 값을 scinstall 명령의 -R 옵션으로 사용되는 루트 경로로 설정합니다. 기본적으로 BASEDIR 변수는 루트(/) 파일 시스템으로 설정되어 있습니다.
Sun Cluster 프레임워크 패키지에 대해 한 번, 데이터 서비스 패키지에 대해 한 번 스크립트를 실행합니다.
스크립트를 실행한 후, 각 패키지에 대한 명령 프롬프트에 다음 메시지가 표시됩니다.
Transferring pkgname package instance |
pspool 디렉토리가 각 패키지에 대해 이미 존재하거나 동일한 패키지 세트에 대해 스크립트를 두 번 실행한 경우, 다음 오류가 명령 프롬프트에 표시됩니다.
Transferring pkgname package instance pkgadd: ERROR: unable to complete package transfer - identical version of pkgname already exists on destination device |
이는 무해한 메시지이며 무시해도 됩니다.
프레임워크 패키지와 데이터 서비스 패키지 모두에 대해 스크립트를 실행한 후, 노드를 클러스터 모드로 부트합니다.