R&D/클라우드

Custom RPM Package 빌드

sunshout 2014. 8. 13. 19:18

RPM을 만들기 위해서는 rpm-build rpmdevtools를 설치해야한다.

# yum install rpm-build rpmdevtools


rpmdev-setuptree 명령어로 RPM Build Directory를 만든다.

# rpmdev-setuptree



# yumdownloader --source 패키지명



Nova build하기 위해 Nova dependency가 있는 모듈들을 설치한다.

# yum-builddep /root/rpmbuild/SPECS/xxx.spec




생성된 patche SOURCES안에 위치해 있어야 하며 SPECS/openstack-nova.spec 파일에 patch 적용을 위한 수정한다.

1.     Patch0007: new-patch.patch 추가.

2.     %patch0007 –p1 추가

 

# vim ./rpmbuild/SPECS/openstack-nova.spec

Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch

Patch0002: 0002-remove-runtime-dep-on-python-pbr.patch

Patch0003: 0003-Revert-Replace-oslo.sphinx-with-oslosphinx.patch

Patch0004: 0004-notify-calling-process-we-are-ready-to-serve.patch

Patch0005: 0005-Move-notification-point-to-a-better-place.patch

Patch0006: 0006-Set-the-volume-access-mode-during-volume-attach.patch

Patch0007: new-patch.patch

%patch0001 -p1

%patch0002 -p1

%patch0003 -p1

%patch0004 -p1

%patch0005 -p1

%patch0006 -p1

%patch0007 -p1



마지막으로 Patch가 적용된 RPM을 만들기 위해서 다음과 같은 명령어를 실행한다.

# rpmbuild -ba ./rpmbuild/SPECS/openstack-nova.spec

 

명령어 실행이 끝난 후 /rpmbuild/RPMS/noarch/ 디렉토리에 RPM이 생성된다.