创建 RPM 文件至少需要做什么? [英] What is the minimum I have to do to create an RPM file?
问题描述
我只想创建一个 RPM 文件来分发我的 Linux 二进制文件foobar",只有几个依赖项.它有一个配置文件/etc/foobar.conf 并且应该安装在/usr/bin/foobar 中.
I just want to create an RPM file to distribute my Linux binary "foobar", with only a couple of dependencies. It has a config file, /etc/foobar.conf and should be installed in /usr/bin/foobar.
不幸的是, RPM 文档 有 27 章,我真的不知道没有一天坐下来阅读本文,因为我也在忙于为其他平台制作 .deb 和 EXE 安装程序.
Unfortunately the documentation for RPM is 27 chapters long and I really don't have a day to sit down and read this, because I am also busy making .deb and EXE installers for other platforms.
创建 RPM 的最低要求是什么?假设 foobar 二进制文件和 foobar.conf 位于当前工作目录中.
What is the absolute minimum I have to do to create an RPM? Assume the foobar binary and foobar.conf are in the current working directory.
推荐答案
我经常在 linux 上对每个打包的专有应用程序执行二进制 rpm - 也最像 websphere.所以我的经验对你也很有用,此外,如果可以的话,最好做一个真正的 RPM.但我离题了.
I often do binary rpm per packaging proprietary apps - also moster as websphere - on linux. So my experience could be useful also a you, besides that it would better to do a TRUE RPM if you can. But i digress.
所以打包(二进制)程序的基本步骤如下 - 我想程序是 1.0 版的 toybinprog,在/etc/toybinprog/toybinprog.conf 中安装了一个 conf,在/usr/bin 中安装了一个名为 tobinprog 的 bin:
So the a basic step for packaging your (binary) program is as follow - in which i suppose the program is toybinprog with version 1.0, have a conf to be installed in /etc/toybinprog/toybinprog.conf and have a bin to be installed in /usr/bin called tobinprog :
mkdir -p ~/rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS,tmp}
cat <<EOF >~/.rpmmacros
%_topdir %(echo $HOME)/rpmbuild
%_tmppath %{_topdir}/tmp
EOF
cd ~/rpmbuild
2.创建项目的 tarball
mkdir toybinprog-1.0
mkdir -p toybinprog-1.0/usr/bin
mkdir -p toybinprog-1.0/etc/toybinprog
install -m 755 toybinprog toybinprog-1.0/usr/bin
install -m 644 toybinprog.conf toybinprog-1.0/etc/toybinprog/
tar -zcvf toybinprog-1.0.tar.gz toybinprog-1.0/
3.复制到源目录
cp toybinprog-1.0.tar.gz SOURCES/
cat <<EOF > SPECS/toybinprog.spec
# Don't try fancy stuff like debuginfo, which is useless on binary-only
# packages. Don't strip binary too
# Be sure buildpolicy set to do nothing
%define __spec_install_post %{nil}
%define debug_package %{nil}
%define __os_install_post %{_dbpath}/brp-compress
Summary: A very simple toy bin rpm package
Name: toybinprog
Version: 1.0
Release: 1
License: GPL+
Group: Development/Tools
SOURCE0 : %{name}-%{version}.tar.gz
URL: http://toybinprog.company.com/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%description
%{summary}
%prep
%setup -q
%build
# Empty section.
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
# in builddir
cp -a * %{buildroot}
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%{_bindir}/*
%changelog
* Thu Apr 24 2009 Elia Pinto <devzero2000@rpm5.org> 1.0-1
- First Build
EOF
4.构建源代码和二进制 rpm
rpmbuild -ba SPECS/toybinprog.spec
仅此而已.
希望对您有帮助
这篇关于创建 RPM 文件至少需要做什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!