我正在尝试为我的 java 代码构建 RPM。RPM 构建和安装部分工作正常。但是,后来我在 %post 部分添加了一个 shell 脚本来运行创建一些文件并启动 java 应用程序的 shell 脚本文件。文件获取复制得很好。但是,在 %post 部分中,我得到了失败的依赖项 bin/sh 错误。我正在 linux 机器上构建 rpm,目标机器是 centOS。我也尝试过AutoReqProv: no in spec file。我没有运行安装作为 root 用户。另外,目标机器上不应该有 ANT(iam 使用它来构建 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脚本,我试图通过命令行运行它执行得很好。如果有人能指出问题所在,我很感激帮助?