2017-11-02 9 views
0

나는 5.4 모노 여기에서 절차를 사용하여 레드햇 (6)에 설치되어 :RPM 스크립 실패 6

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

나는 prein와 매우 간단한 RPM을 만들어

가 FPM를 사용하여 스크립틀릿을 :

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 

. 그러나 모노를 통해 동일한 작업을 시도하면 사전 스크립틀릿에서 충돌로 인해 설치가 실패합니다. 하고 컴파일

test.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에서는 예상대로 작동합니다. 이전 버전의 mono (특히 4.0.2)와 함께 RedHat/CentOS6에서도 정상적으로 작동합니다. 누구나 이런 일이 일어나는 이유와 어떻게 해결 될지 생각할 수 있습니다.

+0

'exit status 127' : cmd를 찾을 수 없습니다. 경로가 누락 되었습니까? 셸 환경이 없습니까? 기타.... – SushiHangover

답변

0

음, 궁극적으로 나는 문제가 무엇인지 알지 못하지만 소스에서 5.4를 만들 때 사라졌습니다. EPEL에서 4.2.4조차이 문제를 전시하고있었습니다.