http://www.sunfreeware.com/pkgadd.html
http://www.ibiblio.org/pub/packages/solaris/sparc/html/creating.solaris.packages.html
아래는 wget-1.12를 예로 한것임.
1. source를 다운받기
---------------------------
GNU 사이트에서 wget 다운받은후 솔라리스 시스템내 적당한 디렉토리에 복사
(예에서는 ~/work 에 소스저장, ~/destdir에 임시설치파일 저장, ~/pkg에 결과물저장)
2. 기존 작업 내역 삭제하기
--------------------------
% cd /var/spool/pkg/
% /bin/rm -rf $(wget-1.12)/ # $(wget-1.12)은 해당 패키지명
NOTE. 수행하지 않는 경우 이후 패키지 작업시 pkgmk 명령에서 에러가 남
% cd ~/work/
% /bin/rm -rf $(wget-1.12)/ # $(wget-1.12)은 해당 패키지명
% cd ~/destdir/
% /bin/rm -rf $(wget-1.12)/ # $(wget-1.12)은 해당 패키지명
NOTE. 깔끔하게 새롭게 시작하자.
3. 압축 해제 & 컴파일 & 임시 디렉토리에 설치
--------------------------------------------
% cd ~/work/
% gzip -dc $(wget-1.12.tar.gz) | tar -xof - # $(wget-1.12.tar.gz) 은 해당 압축 파일명
% cd $(wget-1.12)/ # $(wget-1.12) 은 압축 해제 디렉토리명
% script $(wget-1.12-compile.out) # $(wget-1.12-compile.out) 은 컴파일 로그 저장 파일명
% date;uname -a;cc -V # 이 세가지를 로그 시작부분에 저장하자.
% ll
% ./configure --prefix=/usr/local # configure 는 패키지에 따라서 적당히 수정 가능
# (prefix는 반드시 /usr/local)
% date
% make
% date
% make DESTDIR=~/destdir/$(wget-1.12) install # $(wget-1.12)은 해당 패키지명
(INSTALLROOT 인 경우도 있음. ex: autoconf, Makefile 확인할것)
% date
% exit # 로그저장 끝
% (로그 파일 확인하고 에러가 발생시 처음부터 다시 수행)
4. 패키지 만들기
----------------
% cd ~/destdir/$(wget-1.12)/usr/local/ # $(wget-1.12)은 해당 패키지명
% (script 명령어로 수행시 make_package에서 에러가 나므로 로그는 화면 출력 내용을 저장하는 방식으로 기록)
% date;uname -a
% ls -al
% make_packge $(wget-1.12) # ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/make_package
# $(wget-1.12)은 해당 패키지명
% (결과 화면 확인)
% date # 여기까지 출력 내용을 로그로 기록
% ($(wget-1.12)-package.out 파일에 로그 기록)
패키징 예)
% date;uname -a
2011년 6월 16일 목요일 오전 11시 06분 56초
SunOS comsapp 5.8 Generic_108528-26 sun4u sparc SUNW,Sun-Fire-880
% make_package wget-1.12
Please give the name for this package [wget]:
Now enter the real name for this package [wget]:
What architecture did you build the package on? [sun4u]:
Enter the version number of the package [1.12]:
What category does this package belong to? [application]:
Who is the vendor of this package? [GNU]:
Enter the email adress for contact []:
Enter your own name []: june
What is the basedir this package will install into? [/usr/local]:
How should i call the packagefile? [wget-1.12-sol8-sun4u-local]:
Now creating pkginfo file
Done.
Building package
## 패키지 프로토타입 파일에서 pkgmap 작성 중
## pkginfo 파일 처리 중
## pkgmap의 9 항목 볼륨화 시도
부분 1 -- 1472 블록, 13 항목
## 1개의 부분 패키징
/var/spool/pkg/wget/pkgmap
/var/spool/pkg/wget/pkginfo
/var/spool/pkg/wget/reloc/bin/wget
/var/spool/pkg/wget/reloc/etc/wgetrc
/var/spool/pkg/wget/reloc/lib/charset.alias
/var/spool/pkg/wget/reloc/share/info/wget.info
## 제어 스크립트 검증 중
## 패키징 완료
다음과 같은 패키지를 사용할 수 있습니다.
1 wget wget
(sun4u) 1.12
처리할 패키지(들)를 선택하십시오.(또는 모든 패키지를
처리하려면'all'을 입력하십시오.) (default: all) [?,??,q]:
Done. (/tmp/wget-1.12-sol8-sun4u-local.gz)
% date
2011년 6월 16일 목요일 오전 11시 07분 01초
5. 설치테스트
-------------
% mv /tmp/wget-1.12-sol8-sun4u-local.gz ~/pkg/
% cd ~/pkg
% gzunzip $(wget-1.12-sol8-sun4u-local.gz) # $(wget-1.12-sol8-sun4u-local.gz) 은 결과물 파일
% su
(input root password)
# (로그는 화면 출력 내용을 저장하는 방식으로 기록)
# date;uname -a
# pkgadd -d $(wget-1.12-sol8-sun4u-local) # $(wget-1.12-sol8-sun4u-local) 은 패키지 설치에 사용되는 파일
# date
# ($(wget-1.12)-package_install.out 파일에 화면 출력결과를 기록할것)
설치 예)
# date;uname -a
2011년 6월 16일 목요일 오전 11시 20분 15초
SunOS comsapp 5.8 Generic_108528-26 sun4u sparc SUNW,Sun-Fire-880
# pkgadd -d wget-1.12-sol8-sun4u-local
다음과 같은 패키지를 사용할 수 있습니다.
1 wget wget
(sun4u) 1.12
처리할 패키지(들)를 선택하십시오.(또는 모든 패키지를
처리하려면'all'을 입력하십시오.) (default: all) [?,??,q]:
패키지 예
wget
(sun4u) 1.12
GNU
디렉토리 (을)를 패키지의 기본 디렉토리로 사용
## 패키지 정보 처리 중
## 시스템 정보 처리 중
3개 패키지 경로 이름이 이미 제대로 설치되어 있습니다.
## 디스크 공간 요구 검증 중
## 이미 설치되어 있는 패키지와의 충돌 여부를 확인하고 있습니다.
## setuid/setgid 프로그램 점검
wget(을)를
## 1째 (전체: 1) 부분 설치
/usr/local/bin/wget
/usr/local/etc/wgetrc
/usr/local/lib/charset.alias
/usr/local/share/info/wget.info
[ 클래스
# date
2011년 6월 16일 목요일 오전 11시 20분 43초
6. 설치 검증
------------
% pkginfo wget # wget 는 설치패키지명
application wget wget
%pkginfo -l wget # wget 는 설치패키지명
패키지 인스턴스: wget
이름: wget
범주: application
아카이브: sun4u
버전: 1.12
기본 디렉토리: /usr/local
판매자: GNU
PSTAMP: june
INSTDATE: 6월 16 2011 11:20
상태: 설치 완료
파일: 9 installed pathnames
3 shared pathnames
5 directories
1 executables
1398 blocks used (approx)
7. 작업 파일 삭제
-----------------
필수 작업은 아님.
% cd /var/spool/pkg/
% /bin/rm -rf $(wget-1.12)/ # $(wget-1.12)은 해당 패키지명
NOTE. 수행하지 않는 경우 이후 패키지 작업시 pkgmk 명령에서 에러가 남
% cd ~/work/
% /bin/rm -rf $(wget-1.12)/ # $(wget-1.12)은 해당 패키지명
% cd ~/destdir/
% /bin/rm -rf $(wget-1.12)/ # $(wget-1.12)은 해당 패키지명
8. 최종 결과물 보존
-------------------
~/pkg/$(wget-1.12-sol8-sun4u-local) 잘 보관!
Date: 2011.08.04 : 작성
Date: 2011.08.10 : make DESTDIR=... 이외에 INSTALLROOT 가 있는 경우가 있음
댓글 없음:
댓글 쓰기