我只想创建一个RPM文件来分发我的Linux二进制文件"foobar",只有几个依赖项。它有一个配置文件/etc/foobar.conf,应该安装在/usr/bin/foobar中。
不幸的是,documentation for RPM有27章长,我真的没有一天时间坐下来读这篇文章,因为我还忙于为其他平台制作.deb和EXE安装程序。
要创建RPM,我至少需要做什么?假设foobar二进制文件和foobar.conf位于当前工作目录中。
发布于 2009-07-22 13:21:08
我经常在linux上对每个打包专有应用程序进行二进制rpm -也最常见的是websphere。所以我的经验对你也是有用的,除此之外,如果你可以的话,最好是做一个真正的RPM。但我离题了。
所以打包你的(二进制)程序的基本步骤如下--我假设这个程序是toybinprog版本1.0,在/etc/toybinprog/toybinPro.conf中安装一个conf,在/usr/bin中安装一个名为tobinprog的bin:
1.为rpm < 4.6,4.7创建您的RPM构建环境
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
仅此而已。
希望这对你有所帮助
发布于 2012-06-26 22:19:24
作为应用程序分销商,fpm sounds perfect for your needs。有一个an example here,它展示了如何从源代码打包应用程序。FPM可以生成deb文件和RPM文件。
发布于 2013-09-17 10:54:56
要快速构建RPM,请查看Togo:
https://github.com/genereese/togo-rpm
这个项目有一个快速入门指南,我能够在不到3分钟的时间里创建一个基本的RPM。
使用原始问题中提供的数据的示例:
1)使用脚本创建工程目录:
$ togo project create foobar; cd foobar
2)在./root下创建所需的目录结构,并将文件复制到其中:
$ mkdir -p root/etc; cp /path/to/foobar.conf root/etc/
$ mkdir -p root/usr/bin; cp /path/to/foobar root/usr/bin/
3)从RPM的所有权中排除系统拥有的目录:
$ togo file exclude root/etc root/usr/bin
4) (可选)修改生成的规范,以更改您的包描述/依赖项/版本/其他内容,等等:
$ vi spec/header
5)构建RPM:
$ togo build package
-and您的RPM被输出到./rpms目录中。
https://stackoverflow.com/questions/880227
复制相似问题