3.3. RPM 빌드


이 섹션에서는 프로그램에 대한 SPEC 파일이 생성된 후 RPM을 빌드하는 방법을 설명합니다.

RPM은 rpmbuild 명령을 사용하여 빌드됩니다. 이 명령은 rpmdev-setuptree 유틸리티에 의해 설정된 구조와 동일한 특정 디렉토리 및 파일 구조를 예상합니다.

다른 사용 사례와 원하는 결과에는 rpmbuild 명령에 다양한 인수가 필요합니다. 이 섹션에서는 다음 두 가지 주요 사용 사례에 대해 설명합니다.

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

3.3.1. 소스 RPM 빌드

이 단락은 프로시저 모듈 소개입니다. 프로시저에 대한 간단한 설명입니다.

사전 요구 사항

패키지하려는 프로그램에 대한 SPEC 파일이 이미 있어야 합니다. SPEC 파일 생성에 대한 자세한 내용은 SPEC 파일 작업을 참조하십시오.

절차

다음 절차에서는 소스 RPM을 빌드하는 방법을 설명합니다.

  • 지정된 SPEC 파일을 사용하여 rpmbuild 명령을 실행합니다.

    $ rpmbuild -bs SPECFILE

    SPECFILE 을 SPEC 파일로 대체합니다. b s 옵션은 빌드 소스를 나타냅니다.

다음 예제에서는 bello,pellocello 프로젝트에 대한 소스 RPM을 빌드하는 방법을 보여줍니다.

bello, pello 및 cello에 대한 소스 RPM 빌드.

$ cd ~/rpmbuild/SPECS/

8$ rpmbuild -bs bello.spec
Wrote: /home/<username>/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm

$ rpmbuild -bs pello.spec
Wrote: /home/<username>/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpm

$ rpmbuild -bs cello.spec
Wrote: /home/<username>/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm

검증 단계

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

3.3.2. 바이너리 RPM 빌드

바이너리 RPM을 빌드하는 데 사용할 수 있는 방법은 다음과 같습니다.

  • 소스 RPM에서 바이너리 RPM 재구축
  • SPEC 파일에서 바이너리 RPM 빌드
  • 소스 RPM에서 바이너리 RPM 빌드

3.3.2.1. 소스 RPM에서 바이너리 RPM 재구축

다음 절차에서는 소스 RPM(SRPM)에서 바이너리 RPM을 다시 빌드하는 방법을 보여줍니다.

절차

  • bello,pello, cello 를 SRPM에서 다시 빌드하려면 다음을 실행합니다.

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

rpmbuild --rebuild 호출에는 다음이 포함됩니다.

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

빌드 후 SPEC 파일 및 소스 코드를 유지하려면 다음을 수행할 수 있습니다.

  • 빌드할 때 --rebuild 옵션 대신 --recompile 옵션과 함께 rpmbuild 명령을 사용합니다.
  • 다음 명령을 사용하여 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%]

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

생성된 바이너리 RPM은 ~/rpmbuild/RPMS/YOURARCH 디렉터리에 있습니다. 여기서R ARCH 는 아키텍처별로 고유하지 않은 경우 해당 아키텍처 또는 ~/rpmbuild/RPMS/noarch/ 디렉터리에 있습니다.

3.3.2.2. SPEC 파일에서 바이너리 RPM 빌드

다음 절차에서는 SPEC 파일에서 bello,pello, cello 바이너리 RPM을 빌드하는 방법을 보여줍니다.

절차

  • bb 옵션과 함께 rpmbuild 명령을 실행합니다.

    $ rpmbuild -bb ~/rpmbuild/SPECS/bello.spec
    
    $ rpmbuild -bb ~/rpmbuild/SPECS/pello.spec
    
    $ rpmbuild -bb ~/rpmbuild/SPECS/cello.spec

3.3.2.3. 소스 RPM에서 RPM 빌드

소스 RPM에서 모든 종류의 RPM을 빌드할 수도 있습니다. 이를 수행하려면 다음 절차를 사용하십시오.

절차

  • 아래 옵션 중 하나와 소스 패키지가 지정된 상태에서 rpmbuild 명령을 실행합니다.

    # rpmbuild {-ra|-rb|-rp|-rc|-ri|-rl|-rs} [rpmbuild-options] SOURCEPACKAGE

추가 리소스

소스 RPM에서 RPM을 빌드하는 방법에 대한 자세한 내용은 rpmbuild(8) 매뉴얼 페이지의 BUILDING PACKAGES 섹션을 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.