>> Read Reply from No. 52553 article  
RE: rpm의 spec파일에 관하여

등록 2002-07-12 14:25:00     조회 4
이름 KDE 짱    

		흠.. 주석을 달기로 하겠습니다.. :)
 뭐 저두 허접이라.. 많은 부분이 부족하겠지만 이해를 해주시길..
 : rpm으로 패키지를 작성하기 위해 spec파일을 작성중에 있습니다.
: 작성중에 궁금증이 생겨 이렇게 질문을 올립니다.
: www.rpm.org사이트에서 rpm에 관한 정보를 읽어 보았습니다만, 좀 이해가
: 가지 않는 부분과 부족한 내용이 많아서 애로가 있네요.
 우선 spec파일의 기본 구성(보통 세부분이라고 말합니다) :)
 1. rpm 정의부분
어떤 파일이 있는지 출처가 어디인지, 어떤 패치를 쓸것인지
설치할때 필요한 package는 어떤게 있고 컴파일(빌드)할때 필요한것은
어떤건지, 그리고 rpm 가상 루트는 어디로 할것인지 등등들 지정하는 부분
입니다.
 2. rpm build section
1번에서 정의한 파일들을 풀고, patch하고, make한 후 1번에서
지정한 가상 루트에 설치하는 것까지..
 3. file list
빌드된 파일 리스트를 모두 rpm으로 만들고 설치에 이용한 directory를 삭제하고
설치할때 해줘야하는 동작 등등을 지정하는 단계..
 뭐 대충 크게 보면 이렇게 되어 있습니다.
 그럼 세부적인 답변으로..
 :
: === 궁금 내용 ===
: 1.spec파일중에서 여러 section이 있는데 %build인가 %prep인가에서
:   소스를 빌드하는 내용을 추가한다라고 되어 있는데, 여기서 빌드란 무엇을
:   의미하는 건지 궁금합니다. 참고로 제가 패키지화 하고자 하는 소스는
:   몇개의 디렉토리로 되어 있는데.. 여기에는 제가 이미 컴파일하여 생성된
:   바이너리 파일과 라이브러리 그리고 일반 쉘 스크립트와 텍스트 파일이 들
:   어 있습니다. 따로 빌드할 필요가 없는 것 같은데...여기서는 다른 의미의
:   빌드인지 잘 모르겠군요.
  build란 간단히 ./configure하고, make 하는것을 말합니다.
%prep는 우선 rpm 패키징을 하기 위한 동작이며 %setup에서는 위에서 언급한
rpm file을 푸는 동작입니다. (소스 일경우)
그리고나서 소스를 푼 다음에 patch를 시도하고, patch가 올바르게 되어 있으면
./configure를 실행합니다.
 ./configure가 끝난 후에는 make를 시도하겠죠? 물론 위의 내용으 사용자가
모두 적어줘야합니다.
 %install 섹션에서는 make 한 후 DESTDIR를 이용하여 rpm 가상 루트
- RPM_BUILD_ROOT 로 설치를 해줍니다.
 만약 바이너리만을 설치한다면 %build는 빼도 되고 그냥 넘어가도 됩니다.
 %install에서 cp 를 쓰셔도 되고 install 를 이용하셔도 됩니다
  :
: 2.유닉스에서는 패키지화하기 위해 prototype, admin, post/pre script등등
:   의 파일들을 정의하는 것이 필요한데, 제가 알기로는 이런 내용들을 spec파
:   일에서 대체하고 있는 것 같습니다. 그런데 도대체 어느 섹션에서 정의를 해
:   야 하는 건지 모르겠습니다. 패키지를 설치시에 설치되는 파일들의 속성
:   과 패스정보를 지정해 주는 부분에 대해서도 유닉스에서는 prototype이라
:   는 파일(pkgproto라는 명령어의 의해 기본적으로 생성해 주고 추가할 내용
:   은 개발자가 따로 추가해서 완성하는 파일)로 정의하는 것 같은데, 이런 내
:   용은 spec파일의 어느 섹션에서 정의해 주는지..또 어떻게 정의해 주는건지
:   궁금합니다.
 저러한 내용들은 우서 prototype , admin등은 위에서 언급한 첫번째 section
에서 해줍니다.
post/pre scripts는 %pre, %post, %preun, %postun 등으로
각각의 섹션을 만들수도 있습니다.
  :
: 3.로컬에서 임의의 디렉토리를 rpm패키지화 해 보았는데...xxxx.src.rpm이라
:   는 것만 생성되었습니다. 제가 원하는 것은 xxxxx.rpm이었는데...맞는 건지
:   틀린건지 헷갈립니다.
:   << 테스트 한 환경은 다음과 같습니다 >>
:   (1) 패키지 하고자 하는 디렉토리를 xxx.tar.gz로 만든다
:   (2) xxx.tar.gz를 /usr/src/redhat/SOURCES로 옮겨 놓는다.
:   (3) spec파일을 작성한다.<스펙파일의 내용은 제일 밑을 참조>
:   (4) spec파일을 /usr/src/redhat/SPECS로 옮겨 놓는다.
:   (5) $rpm -ba spec파일 를 실행시킨다.
:   (결과) /usr/src/redhat/SRPMS/xxx.src.rpm파일이 생성되었다.
  /usr/src/redhat/RPMS/i386디렉토리를 확인해보세요..
   :
 추가할 사항을 적었습니다.
 :   <<<spec file 내용>>>>
:   Summary: aaa
:   Name: swsts
:   Version:2.0
:   Release:1
:   Source0: %{name}-%{version}.tar.gz
:   Copyright: kkk
:   Group: Applications
    Builroot:/var/tmp/%{name}-root
 
:
:   %description
:   a Component
:
:   %prep
:   %setup
:
:   #%build  바이너리이기 때문에 제거..필요없음..
    # $RPM_BUILD_ROOT(/var/tmp/%{name}-root가 /가 됨)
    # directory를 그대로 만들어줌..
     %install
     install -d $RPM_BUILD_ROOT/디렉토리 만들고
     install -m filename $RPM_BUILD_ROOT/usr/bin
    ..
    
    %clean
     rm -rf $RPM_BUILD_ROOT
    %pre
     #설치전 해야할 scripts
    %post
     #설치후 해야할 scripts
    %preun
     #제거하ㄱ 전에 해야할 scripts
    %postun
     #제거한 후에 해야할 scripts
     %files
     /usr/.. #파일 목록들
     /...
    %changelog
* 날짜
- 어쩌구 저쩌구
  그리고 rpm.org에 가보시면 Maxinum RPM이라는 문서가존재합니다
그 문서를 읽어보시면 훨씬 나을것 같군여
 별 허접이 쓸데없이 말이 길어졌군요..
 그럼..
:)
    
 :
: 이상입니다. 꽤 시간을 투자했는데도...머리가 딸려서..이해가 잘 안오는군
: 요. 도움 부탁드립니다.
:
: --
: 011-9086-2726
이름
암호


>> 관련글
52553 rpm의 spec파일에 관하여  기상  2002.07.12  ....
  답장 RE: rpm의 spec파일에 관하여  KDE 짱  2002.07.12  ....
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 3.98 초 ] 작업시간: [ 3.4 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791333467
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.