7.2. RubyGems 사양 파일 규칙


RubyGems 사양 파일은 다음 규칙을 충족해야 합니다.

  • 파일에는 gem의 사양의 이름인 %{gem_name} 의 정의가 포함되어 있습니다.
  • 패키지의 소스는 릴리스된 gem 아카이브의 전체 URL이어야 합니다.
  • 패키지 버전은 gem의 버전이어야 합니다.
  • 파일에는 다음 BuildRequires 지시문이 포함되어 있습니다.

    BuildRequires: rubygems-devel
    Copy to Clipboard Toggle word wrap

    rubygems-devel 패키지에는 빌드에 필요한 매크로가 포함되어 있습니다.

  • 이러한 지시문은 gem 메타데이터에서 자동으로 생성되므로 파일에 추가 rubygem(foo) Requires 또는 Provides 지시문이 포함되어 있지 않습니다.

7.2.1. RubyGems 사양 파일 예

다음은 gem을 빌드하기 위한 예제 사양 파일의 RubyGems 특정 부분입니다. 사양 파일의 나머지 부분은 일반 지침을 따릅니다.

예제 사양 파일의 RubyGems 특정 부분

%prep
%setup -q -n  %{gem_name}-%{version}

# Modify the gemspec if necessary
# Also apply patches to code if necessary
%patch 0 -p1

%build
# Create the gem as gem install only works on a gem file
gem build ../%{gem_name}-%{version}.gemspec

# %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir
# by default, so that we can move it into the buildroot in %%install
%gem_install

%install
mkdir -p %{buildroot}%{gem_dir}
cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/

# If there were programs installed:
mkdir -p %{buildroot}%{_bindir}
cp -a ./%{_bindir}/* %{buildroot}%{_bindir}

# If there are C extensions, copy them to the extdir.
mkdir -p %{buildroot}%{gem_extdir_mri}
cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/
Copy to Clipboard Toggle word wrap

7.2.2. RubyGems 사양 파일 지시문

다음은 spec 파일의 RubyGems 특정 부분에 있는 특정 항목의 세부 사항입니다.

Expand
표 7.1. RubyGems의 spec 지시문 특정
지시문RubyGems 세부 사항

%Prep

RPM은 gem 아카이브의 압축을 직접 해제할 수 있습니다. %setup -n %{gem_name}-%{version} 매크로는 gem의 압축을 푼 디렉토리를 제공합니다. 동일한 디렉터리 수준에서 %{gem_name}-%{version}.gemspec 파일이 자동으로 생성됩니다. 이 파일을 사용하여 다음 작업을 수행할 수 있습니다.

  • .gemspec 파일 수정
  • 코드에 패치를 적용합니다.

%build

이 섹션에는 소프트웨어를 머신 코드로 빌드하는 명령이 포함되어 있습니다. %gem_install 매크로는 gem 아카이브에서만 작동합니다. 따라서 gem 빌드 ../%{gem_name}-%{version}.gemspec 명령을 사용하여 아카이브를 먼저 다시 생성해야 합니다. 그런 다음 %gem_install 에서 다시 만든 gem 파일을 사용하여 기본 ./%{gem_dir} 임시 디렉터리에 gem 코드를 빌드하고 설치합니다. 설치하기 전에 빌드된 소스는 자동으로 생성되는 임시 디렉터리에 배치됩니다.

%install

설치는 %{buildroot} 계층 구조로 수행됩니다. 필요한 디렉터리를 생성한 다음 설치된 코드를 임시 디렉터리의 %{buildroot} 계층 구조로 복사할 수 있습니다. gem이 공유 오브젝트를 생성하면 아키텍처별 %{gem_extdir_mri} 경로로 이동합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat