【 APP 】 간단 한 RPM 2 진 팩 인 스 턴 스 제작

4870 단어 specrpm 패키지
최근 많은 친구 들 이 rpm 가방 을 어떻게 만 드 는 지, 다른 서버 에서 컴 파일 된 소프트웨어 디 렉 터 리 를 다른 서버 에서 직접 응용 할 수 있 는 지 등 을 물 었 다.여기 간단 한 소 개 를 하 겠 습 니 다. 고 급 스 럽 고 복잡 한 것 은...
이 방법 은 spec 파일 을 작성 하여 rpmbuild 를 사용 하여 rpm 포장 을 완성 하 는 것 입 니 다.
nginx 를 예 로 들 어 소개 합 니 다.
제작 플랫폼: centos 5. x X8664
네 걸음 걷 기:
첫 번 째 단계: 디 렉 터 리 구조 구축
mkdir /usr/src/redhat/{SOURCES,SPECS,BUILD,RPMS,SRPMS} -p
관련 디 렉 터 리 소개:
/usr/src/redhat/SOURCES    #원본 코드, 패 치 등 파일 저장
  • /usr/src/redhat/SPECS      #rpm 제작 프로 세 스 관리 에 사용 할 spec 파일 저장
  • /usr/src/redhat/BUILD      #압축 해제 후 파일 저장 디 렉 터 리
  • /usr/src/redhat/RPMS       #rpmbuild 로 제 작 된 바 이 너 리 패키지 저장
  • /usr/src/redhat/SRPMS      #rpmbuild 로 제 작 된 소스 패키지 저장 두 번 째 단계: 소스 패 키 지 를 SOURCES 디 렉 터 리 에 두 기
    cd /usr/src/redhat/SOURCES
    wget http://nginx.org/download/nginx-1.2.0.tar.gz
    세 번 째 단계: nginx. spec 파일 생 성
    cd /usr/src/redhat/SPECS
  • cat nginx.spec

  • #
  • # spec file for nginx

  • # Build 2012-07-17
  • # By opsren

  • #
  • Summary: High performance web server

  • Name: Nginx
  • Version: 1.2

  • Release: 0.el5.ngx
  • License: 2-clause BSD-like license

  • Group: Applications/Server
  • Source: http://nginx.org/download/nginx-1.2.0.tar.gz

  • URL: http://nginx.org
  • Distribution: Centos/Redhat

  • Packager: qiuzhijun <[email protected]>
    %description
  • Nginx ("engine x") is a high performance HTTP and reverse proxy server, as well as a mail(IMAP/POP3/SMTP) proxy server.

  • %prep
  • tar zxf $RPM_SOURCE_DIR/nginx-1.2.0.tar.gz

  • %build
  • cd nginx-1.2.0

  • ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --lock-path=/var/run/nginx.lock --pid-path=/var/run/nginx.pid
  • make

  • %install
  • cd nginx-1.2.0

  • make install
  • %preun

  • if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
  • pkill nginx >/dev/null

  • exit 0
  • fi

  • %files
  • /usr/local/webserver/nginx

  • STEP 4: RPM 패키지 제작
    우선 시스템 에 필요 한 제작 도구: gcc, rpmbuild 등 을 설치 해 야 합 니 다.
    yum -y install gcc rpm-build pcre-devel
  • cd /usr/src/redhat/SPECS/

  • rpmbuild -bb nginx.spec
    위의 명령 을 통 해 / usr / src / redhat / RPMS / x8664 / 아래 nginx - 1.2.0 - 1el5. ngx. x86 생 성64. rpm 파일
    - bb 이 옵션 은 바 이 너 리 패 키 지 를 만 드 는 것 입 니 다. (build binary package only from < specfile >)
    spec 파일 내용 에 대한 간단 한 설명:
    spec 파일 은 rpm 가방 을 만 드 는 핵심 입 니 다!
    \ # 로 시작 하 는 것 은 주석 정보 입 니 다.
  • Summary: 관련 소프트웨어 에 대한 간단 한 설명
  • Name: rpm 패키지 의 이름 을 정의 합 니 다
  • 버 전: 소프트웨어 의 버 전 번 호 를 정의 합 니 다
  • 출시: 발매 버 전
  • 라이선스: 정의 라이선스
  • 그룹: 소프트웨어 가 어떤 응용 유형 에 속 하 는 지 설명 합 니 다
  • 출처: 소프트웨어 소스 다운로드 주소
  • URL: 소프트웨어 관련 공식 사이트
  • 배포: 발행 판 시리즈
  • Packager: 프로듀서 의 간단 한 정보 % 설명: 소프트웨어 상세 설명 정보
  • % prep: 소프트웨어 컴 파일 전 처리
  • % build: 컴 파일 소프트웨어
  • % install: 설치 소프트웨어
  • % preun: 마 운 트 해제 전 동작 정의
  • % files: 포장 할 패 키 지 를 지정 합 니 다. 여 기 는 / usr / local / webserver / nginx
  • 입 니 다.
    더 자세 한 설명 은 공식 자 료 를 참고 하 시기 바 랍 니 다.http://www.rpm.org/max-rpm/ch-rpm-inside.html
    다음은 apache 의 spec 파일 인 스 턴 스 입 니 다.
    #
  • # spec file for apache

  • # Build 2012-07-17
  • # By opsren

  • #
  • Summary: High stability web server

  • Name: Apache
  • Version: 2.2

  • Release: 22.el5
  • License: 2-clause BSD-like license

  • Group: Applications/Server
  • Source: http://apache.etoak.com/httpd/httpd-2.2.22.tar.gz

  • URL: http://apache.org
  • Distribution: Centos/Redhat

  • Packager: qiuzhijun <[email protected]>
    %description
  • Apache is a first web server

  • %prep
  • tar zxf $RPM_SOURCE_DIR/httpd-2.2.22.tar.gz

  • %build
  • cd httpd-2.2.22

  • ./configure --prefix=/usr/local/webserver/apache --enable-so --enable-deflate --enable-headers --enable-mods-shared=all --enable-rewrite
  • make

  • %install
  • cd httpd-2.2.22

  • make install
  • %preun

  • if [ -z "`ps aux | grep httpd | grep -v grep`" ];then
  • pkill httpd >/dev/null

  • exit 0
  • fi

  • %files
  • /usr/local/webserver/apache

  • 이후 동일 하거나 유사 한 플랫폼 에 대해 다른 서버 에 rpm 설치 배 치 를 할 수 있 습 니 다.
    rpm 포장 방법 도 있 습 니 다: rpmcreate
    이것 은 rpm 을 치 는 새로운 도구 입 니 다. spec 언어 를 사용 하지 않 고 간단 한 셸 명령 만 있 으 면 포장 작업 을 완성 할 수 있 습 니 다. 매우 편리 합 니 다. spec 언어 와 checkinstall 을 결합 하여 spec 방법 보다 훨씬 간단 합 니 다!
    공식 사이트:http://code.google.com/p/rpmcreate/
    다운로드 사이트: wgethttp://rpmcreate.googlecode.com/files/rpm_create-1.7.5-9.x86_64.rpm
    여러분 은 공식 사이트 에 가서 참고 하 실 수 있 습 니 다!

    좋은 웹페이지 즐겨찾기