用于创建RPM包的简单spec文件

3 fedora rpmbuild rpm-spec

我有一个二进制Java run.jar文件,一个run.sh执行run.jarvia 的bash脚本java -jar.

  • 在我的环境(~/rpmbuild/)中,我在哪里放这两个文件?我在哪里放置源文件?(我想我应该压缩源代码.tar.gz)

如何将spec文件写入:

  • 制作目录~/bin/my-package;
  • 拷贝run.jarrun.sh上述目录;

这就是我想要的.你能帮我一点吗?

谢谢你的时间.

PS:我经历了这个方法.不幸的是我是新手,我找不到解决方案.

Tai*_*Ito 5

创建〜/ .rpmmacros以设置RPM构建环境.

$ mkdir -p ~/rpmbuild/{BUILD,RPMS/{i{3,4,5,6}86,x86_64,noarch},SOURCES,SPECS,SRPMS}
$ echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros
Run Code Online (Sandbox Code Playgroud)

并将run.jar/run.sh和spec文件分别放入〜/ rpmbuild/SOURCES和〜/ rpmbuild/SPECS /.

编辑:在spec文件中:

(skip)

Source0: run.jar
Source1: run.sh

(skip)

%install

%{__mkdir_p} ${RPM_BUILD_ROOT}/path/to/my-package

%{__install} -m0644 %{SOURCE0} ${RPM_BUILD_ROOT}/path/to/my-package
%{__install} -m0644 %{SOURCE1} ${RPM_BUILD_ROOT}/path/to/my-package

(skip)

%files
/path/to/my-package/*
Run Code Online (Sandbox Code Playgroud)


小智 5

我无法编辑@Taizo Ito的答案,因为有很多变化.他的答案是对的,但我更新到最新的RPM构建指南:

# skip

Source0: run.jar
Source1: run.sh

#skip

%install

rm -rf %{buildroot}
mkdir -p %{buildroot}%{_bindir}/my-package
cp %{SOURCE0} %{buildroot}%{_bindir}/my-package
cp %{SOURCE1} %{buildroot}%{_bindir}/my-package

# skip

%files
%{_bindir}/my-package/*

%clean
rm -rf %{buildroot}

# ...
Run Code Online (Sandbox Code Playgroud)