我正在尝试为我的Java代码构建RPM.RPM构建和安装部分工作正常。但是,后来我在%post部分中添加了一个Shell脚本来运行创建一些文件并启动Java应用程序的Shell脚本文件。复制得很好。但是,在%post部分中,我得到了失败的依赖项bin / sh错误。我在linux机器上构建rpm,目标机器是centOS。我也尝试了AutoReqProv:在spec文件中没有。我没有运行安装作为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被驱逐后节中运行shell脚本,我试图通过命令行运行它执行的很好。如果有人可以指出问题所在,我感谢您的帮助?
最佳答案
%post -p /bin/bash
这将使您的发布脚本有一个终端可以运行bash命令以及您在其中执行的所有操作。
关于java - 安装RPM时出错-规范失败的依赖项/bin/sh的%post脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9058063/