RPM 脚本在 Redhat 6 上通过单声道 5.4 启动时失败



我使用此处的过程在 RedHat 6 上安装了单声道 5.4:

http://www.mono-project.com/download/#download-lin-centos

我使用 fpm 创建了一个非常简单的 rpm 和一个预脚本:

https://github.com/jordansissel/fpm

prein.sh

#!/bin/sh
echo boo

something.sh

#!/bin/sh
echo do something

make_rpm.sh

fpm -s dir -t rpm -v 1.0 -n test --before-install prein.sh ./something.sh=/usr/bin/something.sh

如果我通过以下方式安装生成的 rpm:

sudo rpm -i test-1.0-1.x86_64.rpm

它工作正常。但是,如果我尝试通过单声道执行相同的操作,则由于prein脚本中的崩溃,安装将失败。

测试.cs

using System;
using System.Diagnostics;
namespace Test
{
   class Test
   {
      static void Main(string [] args)
      {
         Process p = new Process();
         p.StartInfo.FileName = "/bin/rpm";
         p.StartInfo.Arguments = "-i test-1.0-1.x86_64.rpm";
         p.StartInfo.CreateNoWindow = true;
         p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
         p.Start();
         p.WaitForExit();
      }
   }
}

编译时会这样做:

csc test.cs

并使用以下命令运行:

sudo mono test.exe

我得到:

error: %pre(test-1.0-1.x86_64) scriptlet failed, exit status 127
error: install: %pre scriptlet failed (2), skipping test-1.0-1

同样的过程在 CentOS 6 上也有相同的行为。但是,它在Redhat 7上按预期工作。这在RedHat/CentOS6上也运行良好,以前版本的单声道(特别是4.0.2)。任何人都知道为什么会发生这种情况以及如何解决?

好吧 - 最终我不知道问题是什么,但是当我从源代码构建 5.4 时,它消失了。甚至来自EPEL的4.2.4也出现了这个问题。

最新更新