安装 RPM 时出错 -%post 规范失败的依赖项脚本 /bin/sh

发布于 2024-12-29 19:55:23 字数 1391 浏览 1 评论 0原文

我正在尝试为我的 java 代码构建 RPM。RPM 构建和安装部分工作正常。但是,后来我在 %post 部分添加了一个 shell 脚本来运行 shell 脚本文件,该文件创建一些文件并启动 java 应用程序。该文件获取复制得很好。但是,在 %post 部分中,我收到失败的依赖项 bin/sh 错误。我正在 linux 机器上构建 rpm,目标机器是 centOS。我还在规范文件中尝试过 AutoReqProv: no .我没有运行作为 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

我也在谷歌上搜索过,但找不到如何从规范运行shell脚本。在淘汰帖子部分,我尝试通过命令行运行,它执行得很好。如果有人能指出问题出在哪里,我很感激您的帮助?

I am trying to build RPM for my java code.RPM build and install sections works fine.But,later i have added a shell script in %post section to run shell script file that creates some files and starts the java application.The file gets copied fine.But, in %post section I get the failed dependencies bin/sh error.I am building the rpm on linux machine and target machines are centOS.I have also tried AutoReqProv: no in spec file.I am not running the install as a root user.also,target machines are not expected to have ANT(iam using it to build the java code-this might be not related to the problem) on them.I am attaching the code below.Default location of installation is in tmp folder.( for testing).

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

i have also searched on google but couldn't find how to run shell script from spec.with oust post section, I have tried to run through command line it executes fine.I appreciate the help if somebody can point where the problem is?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那些过往 2025-01-05 19:55:23
%post -p /bin/bash

这将为您的 post 脚本提供一个终端来运行 bash 命令以及您正在执行的所有操作。

%post -p /bin/bash

That will give your post script a terminal to run bash commands and all that you are doing into it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文