2011-09-22 21 views
10

क्या पैकेजिंग पर सिम्लिंक को संरक्षित करने के लिए आरपीएमबील्ड बनाना संभव है?rpmbuild के माध्यम से पैकेजिंग symlinks?

वर्तमान व्यवहार उन फ़ाइलों की प्रतियां बनाना है, जिन्हें मैं टालना चाहता हूं।

उत्तर

18

निश्चित रूप से यह सिम्लिंक का समर्थन करता है। लेकिन आपको वास्तव में सिम्लिंक पैकेज करना होगा और सामग्री को प्रतिलिपि में कॉपी नहीं करना होगा। उदाहरण/newbin

Name:   test 
Version:  1.0 
Release:  1%{?dist} 
Summary:  nothing 
License:  GPLv2 
Source0:  nothing 

%description 

%install 
rm -rf %{buildroot} 
mkdir %{buildroot} 
ln -sf /bin %{buildroot}/newbin 

%files 
/newbin 

कहा जाता है आप भी अपने स्रोत निर्देशिका में nothing फ़ाइल की आवश्यकता होगी सफलतापूर्वक इस से बाहर आरपीएम निर्माण करने के लिए/bin निर्देशिका में एक सिमलिंक पैकेजिंग कल्पना। आरपीएम 4.9.1.2

+0

के साथ परीक्षण किया गया है, मैं स्टैन ने ऊपर क्या कहा है, मैं एक बदलाव करूँगा, क्योंकि -फ बनाने के लिंक में है, हटाए जाने की आवश्यकता नहीं है। – Jane

+0

@ जेन - मैं असहमत हूं। '% इंस्टॉल' की शुरुआत में क्रुफ़्ट को हटाने के लिए बिल्ड्रूट को साफ करना आम तौर पर एक अच्छा विचार है। उदाहरण के लिए, मान लीजिए कि पैकेज के पिछले संस्करण ने दूसरी फ़ाइल "'% {buildroot}/newlib' "स्थापित की है, लेकिन वर्तमान संस्करण उस फ़ाइल को इंस्टॉल नहीं करता है। पैकेज का वर्तमान संस्करण उस फ़ाइल से अवगत नहीं होगा और इस प्रकार इसे बिल्ड्रूट से हटाया नहीं जाएगा (आपके सुझाव के बाद)। आम तौर पर, वर्तमान rpmbuild उदाहरण किसी भी पुराने क्रुफ्ट के बारे में पता नहीं है जो कि निर्माण रूट में हो सकता है। इंस्टॉल चरण से पहले पूरे buildroot को ठीक करने के लिए बेहतर है। – jayhendren

-1

मुझे ऐसा नहीं लगता है। मैंने अपने संकुल में पोस्ट-इंस्टॉल स्क्रिप्ट सेट सिम्लिंक का उपयोग किया है।