주요글: 도커 시작하기

kafka를 yum 리포지토리에 올려 설치해야 할지 몰라 kafka를 rpm으로 만드는 과정을 정리해 본다.


먼저, rpmbuild 도구가 필요하니 없다면 yum으로 설치한다.


$ sudo yum install rpmbuild


rpm을 생성할 때 사용할 기준 디렉토리를 생성한다. 여기서는 /vagrant/rpmbuild-kafka라고 가정한다. 다른 경로를 사용해도 무방하다.


/vagrant/rpmbuild-kafka 디렉토리에 kafka 파일인 kafka_2.11-0.9.0.0.tgz를 복사한다.


다음으로 rpmbuild가 스펙으로 사용할 kafka.spec 파일을 /vagrant/rpmbuild-kafka 폴더에 작성한다. 옵션에서 %define으로 _topdir을 설정하고 있다. 이 설정을 하지 않으면 ~/rpmbuild를 기준으로 동작하는데, 여기서는 rpmbuild를 사용할 디렉토리의 rpmbuild 디렉토리를 기준으로 잡기 위해 _topdir을 설정했다.


%define _topdir %(echo $PWD)/rpmbuild


Name:           kafka_2.11

Version:        0.9.0.0

Release:        0

Summary:        A kafka package


Group:          Development

License:        Apache

URL:            http://kafka.apache.org/

Source0:        kafka_2.11-0.9.0.0.tgz

BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

BuildArch: noarch


BuildRequires:  /bin/rm, /bin/mkdir, /bin/cp

Requires:       /bin/bash


%description

 A kafka package


%prep

%setup -q



%build


#configure

#make %{?_smp_mflags}


%install

rm -rf $RPM_BUILD_ROOT

#make install DESTDIR=$RPM_BUILD_ROOT

mkdir -p $RPM_BUILD_ROOT/home/hadoop/servers/kafka

cp -R * $RPM_BUILD_ROOT/home/hadoop/servers/kafka


%clean

rm -rf $RPM_BUILD_ROOT


%files

%defattr(-,hadoop,hadoop,-)

#%doc


%attr(0755,hadoop,hadoop)/home/hadoop/servers/kafka


%changelog

* Wed Jan 12 2016 Kafka - 0.9.0.0

- Initial RPM


매번 명령어를 입력하면 귀찮으니, 명령을 실행할 build.sh을 /vagrant/rpmbuild-kafka에 작성한다.


rm -rf rpmbuild

mkdir rpmbuild

pushd rpmbuild

mkdir BUILD RPMS SOURCES SPECS SRPMS

popd


cp kafka_2.11-0.9.0.0.tgz rpmbuild/SOURCES/

cp kafka.spec rpmbuild/SPECS/


rpmbuild -ba rpmbuild/SPECS/kafka.spec


이제 build.sh 파일을 실행한다. 그러면 rpmbuild/RPMS/noarch/kafka_2.11-0.9.0.0-0.noarch.rpm 파일이 생성된 것을 확인할 수 있다.


+ Recent posts