生活随笔
收集整理的這篇文章主要介紹了
rpmbuild 实践
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝 rpmbuild
1
# yum install -y rpm-build
查看 rpmbuild 相關的宏和參數
1 2 3 4 5 6 7 8
# rpmbuild --showrc | grep --color "_topdir" -14: _builddir %{_topdir}/BUILD -14: _buildrootdir %{_topdir}/BUILDROOT -14: _rpmdir %{_topdir}/RPMS -14: _sourcedir %{_topdir}/SOURCES -14: _specdir %{_topdir}/SPECS -14: _srcrpmdir %{_topdir}/SRPMS -14: _topdir %{getenv:HOME}/rpmbuild
1 2
# rpmbuild --showrc | grep --color "buildroot" -14: buildroot %{_buildrootdir}/%{name}-%{version}-%{release}.%{_arch}
1 2
# rpm --eval "%_topdir" /home/guoqiang.ding/rpmbuild
編寫 rpmbuild 需要的 spec 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
Name: fdsRsync Version: 1.0.0 Release: 0 Summary: call fds on the method of rsync. Group: #### License: Commercial URL: #### Source0: %{name}-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) <b 大專欄 rpmbuild 實踐r/>#BuildRequires: #Requires: Packager: guoqiang.ding Vendor: ### %define _prefix /usr/local/%{name} %description this is a rpm for fdsRsync. #=> preprocess. %prep %setup -q %build mkdir -p $RPM_BUILD_ROOT/%{_prefix} cp -rf $RPM_BUILD_DIR/%{name}*/* $RPM_BUILD_ROOT/%{_prefix}/ #=> cp the files compiled to somewhere. %install echo "RPM_BUILD_DIR=>" $RPM_BUILD_DIR echo "RPM_BUILD_ROOT=>" $RPM_BUILD_ROOT ls -R $RPM_BUILD_ROOT #=> rm the virtual dirs. %clean rm -rf $RPM_BUILD_DIR rm -rf $RPM_BUILD_ROOT #=> file in the rpm must list here. %files %defattr(-,root,root,-) %dir /%{_prefix}/ %dir /%{_prefix}/conf/ %dir /%{_prefix}/log/ %dir /%{_prefix}/src/ /%{_prefix}/boot.sh /%{_prefix}/kill.sh /%{_prefix}/conf/*.conf /%{_prefix}/log/*.log /%{_prefix}/src/*.py %doc /%{_prefix}/README %changelog * Mon Jan 26 2015 guoqiang.ding <guoqiang.ding@xxx.com> - 1st release for fdsRsync RPM.
執行 rpmbuild
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/bin/sh version=1.0.0 rpm_sourcedir='/root/rpmbuild/SOURCES' project_name='fdsRsync' work_dir='/home/guoqiang.ding/'$project_name temp_dir=$work_dir-$version cp -rf $work_dir $temp_dir cd $work_dir/../ zip_file=$project_name-$version'.tar.gz' tar czvf $zip_file ./$project_name-$version rm -rf $temp_dir mv $zip_file $rpm_sourcedir cd $work_dir rpmbuild -bb ./$project_name.spec rpm_dir='/root/rpmbuild/RPMS/x86_64' cp $rpm_dir/$project_name-$version*.rpm ./ rpm -qpl ./$project_name-$version*.rpm
檢查打包好的 rpm
如果只想知道包里的文件列表執行:
如果想要導出包里的內容,而不是安裝,那么執行:
1
# rpm2cpio pkgname | cpio -ivd
總結
以上是生活随笔 為你收集整理的rpmbuild 实践 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。