4.6. RPM 빌드


rpmbuild 명령을 사용하여 RPM 패키지를 빌드할 수 있습니다. 이 명령을 사용하는 경우 rpmdev-setuptree 유틸리티에서 설정한 구조와 동일한 특정 디렉터리 및 파일 구조가 예상됩니다.

다른 사용 사례와 원하는 결과에는 rpmbuild 명령에 다양한 인수 조합이 필요합니다. 다음은 주요 사용 사례입니다.

  • 소스 RPM 빌드.
  • 바이너리 RPM 빌드:

    • 소스 RPM에서 바이너리 RPM 다시 빌드.
    • 사양 파일에서 바이너리 RPM 빌드.

4.6.1. 소스 RPM 빌드

SRPM(Source RPM)을 구축하면 다음과 같은 이점이 있습니다.

  • 환경에 배포된 RPM 파일의 특정 Name-Version-Release 의 정확한 소스를 유지할 수 있습니다. 여기에는 정확한 사양 파일, 소스 코드 및 모든 관련 패치가 포함됩니다. 이는 추적 및 디버깅 목적에 유용합니다.
  • 다른 하드웨어 플랫폼 또는 아키텍처에 바이너리 RPM을 빌드할 수 있습니다.

사전 요구 사항

절차

  1. 생성된 사양 파일이 포함된 ~/rpmbuild/SPECS/ 지시문으로 이동합니다.

    $ cd ~/rpmbuild/SPECS/
  2. 지정된 사양 파일을 사용하여 rpmbuild 명령을 입력하여 source RPM을 빌드합니다.

    $ rpmbuild -bs <specfile>

    -bs 옵션은 빌드 소스 를 나타냅니다.

    예를 들어 벨로 ,pellocello 프로그램에 대한 소스 RPM을 빌드하려면 다음을 입력합니다.

    $ rpmbuild -bs bello.spec
    Wrote: /home/admiller/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm
    
    $ rpmbuild -bs pello.spec
    Wrote: /home/admiller/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpm
    
    $ rpmbuild -bs cello.spec
    Wrote: /home/admiller/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm

검증

  • rpmbuild/SRPMS 디렉터리에 결과 소스 RPM이 포함되어 있는지 확인합니다. 디렉터리는 rpmbuild 에서 예상되는 구조의 일부입니다.

4.6.2. 소스 RPM에서 바이너리 RPM 재빌드

소스 RPM(SRPM)에서 바이너리 RPM을 다시 빌드하려면 --rebuild 옵션과 함께 rpmbuild 명령을 사용합니다.

바이너리 RPM을 생성할 때 생성되는 출력은 상세화되어 디버깅에 유용합니다. 출력은 다양한 예에 따라 다르며 사양 파일에 해당합니다.

생성된 바이너리 RPM은 ~/rpmbuild/RPMS/ YOURARCH 디렉터리에 있습니다. 여기서ARCH는 아키텍처별이 아닌 경우 ~/rpmbuild/RPMS/noarch/ 디렉터리에 있습니다.

사전 요구 사항

  • 시스템에 rpmbuild 유틸리티를 설치했습니다.

    # dnf install rpm-build

절차

  1. 소스 RPM이 포함된 ~/rpmbuild/SRPMS/ 지시문으로 이동합니다.

    $ cd ~/rpmbuild/SRPMS/
  2. 소스 RPM에서 바이너리 RPM을 다시 빌드합니다.

    $ rpmbuild --rebuild <srpm>

    srpm 을 소스 RPM 파일의 이름으로 바꿉니다.

    예를 들어 SRPM에서 p ello,pello, cello 를 다시 빌드하려면 다음을 입력합니다.

    $ rpmbuild --rebuild bello-0.1-1.el8.src.rpm
    [output truncated]
    
    $ rpmbuild --rebuild pello-0.1.2-1.el8.src.rpm
    [output truncated]
    
    $ rpmbuild --rebuild cello-1.0-1.el8.src.rpm
    [output truncated]
참고

rpmbuild --rebuild 를 호출하려면 다음 프로세스가 포함됩니다.

  • SRPM의 콘텐츠( spec 파일 및 소스 코드)를 ~/rpmbuild/ 디렉터리에 설치합니다.
  • 설치된 콘텐츠를 사용하여 RPM 빌드.
  • 사양 파일 및 소스 코드 제거

다음 방법 중 하나를 빌드한 후 사양 파일 및 소스 코드를 유지할 수 있습니다.

  • RPM을 빌드할 때 --rebuild 옵션 대신 --recompile 옵션과 함께 rpmbuild 명령을 사용합니다.
  • 벨로 ,pello , 셀오 용 SRPM 설치:

    $ rpm -Uvh ~/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm
    Updating / installing…​
       1:bello-0.1-1.el8               [100%]
    
    $ rpm -Uvh ~/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpm
    Updating / installing…​
    …​1:pello-0.1.2-1.el8              [100%]
    
    $ rpm -Uvh ~/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm
    Updating / installing…​
    …​1:cello-1.0-1.el8            [100%]

4.6.3. 사양 파일에서 바이너리 RPM 빌드

사양 파일에서 바이너리 RPM을 빌드하려면 rpmbuild 명령을 -bb 옵션과 함께 사용합니다.

사전 요구 사항

  • 시스템에 rpmbuild 유틸리티를 설치했습니다.

    # dnf install rpm-build

절차

  1. 사양 파일이 포함된 ~/rpmbuild/SPECS/ 지시문으로 이동합니다.

    $ cd ~/rpmbuild/SPECS/
  2. 사양에서 바이너리 RPM을 빌드합니다.

    $ rpmbuild -bb <spec_file>

    예를 들어 사양 파일에서 벨로,pellocello 바이너리 RPM을 빌드하려면 다음을 입력합니다.

    $ rpmbuild -bb bello.spec
    
    $ rpmbuild -bb pello.spec
    
    $ rpmbuild -bb cello.spec
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.