我有一个二进制 Java
run.jar
文件,一个 bash 脚本 run.sh
,它通过 run.jar
执行 java -jar
。
~/rpmbuild/
)中,我必须将这两个文件放在哪里?我必须将源文件放在哪里? (我想我应该将源代码压缩为.tar.gz
)如何将规范文件写入:
~/bin/my-package
;run.jar
和run.sh
到上面目录;这就是我想要的。请你帮我一点忙好吗?
感谢您的宝贵时间。
P.S:我经历了这个如何做。不幸的是我是这方面的新手,我找不到解决方案。
创建 ~/.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.jar/run.sh 和 spec 文件分别放入 ~/rpmbuild/SOURCES 和 ~/rpmbuild/SPECS/ 中。
编辑:在规范文件中:
(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/*
我无法编辑@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}
# ...
安装包后
rpmdevtools
...
sudo dnf install rpmdevtools
一个人将拥有所需的可用命令:
rpmdev-setuptree
rpmdev-newspec rpmbuild/SPECS/simple.spec