我正在尝试为我的java代码构建RPM .RPM构建和安装部分工作正常。但是,后来我在%post部分添加了一个shell脚本来运行创建一些文件并启动java应用程序的shell脚本文件。该文件被复制正常。但是,在%post部分我得到失败的依赖bin / sh error.I我在linux机器上构建rpm并且目标机器是centOS.I也尝试了 AutoReqProv:没有在spec文件中。我没有以root用户身份运行安装。此外,目标计算机不应该有ANT(使用它来构建java代码 - 这可能与问题无关)。我正在附加下面的代码。安装的默认位置在tmp文件夹中。(用于测试)。
Summary: test Summary: test
Name: test
Version: 1
Release: 1
License: Restricted
Group: Applications/System
BuildRoot: ~/rpm/BUILD/helloworld-root
URL: http://mycompany.net/helloworld.tar
Vendor: Mycompany
Packager: Mycompany
Prefix: /tmp
BuildArchitectures: x86_64
%description
Hello World
%prep
pwd
%build
pwd
echo "changing directory"
echo $RPM_BUILD_ROOT
cd %{_sourcedir}
pwd
ant -f testbuild.xml
%install
pwd
echo "in install"
echo $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/tmp/test/
cd $RPM_BUILD_ROOT/tmp/test/
tar -xf %{_builddir}/test.tar
%post
sh /tmp/test/createdb.sh
%clean
%files
/tmp/test
%changelog
我也在谷歌上搜索但是找不到如何从spec.with oust post部分运行shell脚本,我试图通过命令行运行它执行正常。我很感激帮助,如果有人可以指出问题出在哪里是什么?
答案 0 :(得分:1)
%post -p /bin/bash
这将为你的帖子脚本提供一个终端来运行bash命令以及你正在做的所有事情。