2010-10-27 11 views
10

में प्रोग्रामिंग रूप से विफल करना मैं एक आरपीएम बना रहा हूं। इस विशेष आरपीएम में ऐसी आवश्यकताएं हैं जिन्हें RPM पूर्वापेक्षाएँ के रूप में व्यक्त नहीं किया जा सकता है, उन्हें एक विशेष फाइल सिस्टम/डिस्क कॉन्फ़िगरेशन कहने दें। वर्तमान में विफलता स्थापित होने के बाद होती है, रनटाइम पर, जब आवश्यकताओं को पूरा नहीं किया जाता है।एक आरपीएम को प्रोग्रामिंग रूप से एक spec चरण

मैं अपनी स्क्रिप्ट के% इंस्टॉलेशन, अनुभाग में आवश्यक पूर्वापेक्षाएँ की जांच कर सकता हूं। हालांकि, अगर कुछ मानदंडों को पूरा किया जाता है, तो मैं यह समझ नहीं सकता कि इंस्टॉल कैसे विफल हो सकता है। क्या% install (या कुछ अन्य) खंड में कुछ ट्रिगर के माध्यम से रनटाइम पर आरपीएम इंस्टॉल को विफल करना संभव है?

एक उदाहरण तो कुछ ऐसा दिखाई देगा, एक .spec फ़ाइल में:

%install 
if [ -f /some/file ] 
then 
    FAIL_RPM_INSTALL ## What is this command? 
fi 

उत्तर

15

यह पता चला है कि अगर आप %pre चरण में बाहर निकलने के आरपीएम स्थापित असफल हो जायेगी।

%pre 
if [ -f /some/file ] 
then 
    echo "/some/file exists, it shouldn't" 
    exit 1 
fi 

संदर्भ: https://fedoraproject.org/wiki/Packaging:ScriptletSnippets

2
%pre 
df /data|awk 'END{if ($2 < 10000000) exit 1;}'; 
if [ $? == 1 ]; 
    then echo ERROR not enough space;exit 1; 
fi 
+0

awk आप गलत मूल्य दे देंगे जब * फाइल सिस्टम * नाम बहुत लंबा है। मैं इस समस्या से बचने के लिए 'डीएफ-पी' का उपयोग कर विश्वास करता हूं। – draganHR

संबंधित मुद्दे