डिबेट पैकेजों में हेरफेर करने का प्राथमिक आदेश है dpkg-deb
।
पैकेज को अनपैक करने के लिए, एक खाली निर्देशिका बनाएं और उस पर स्विच करें, फिर dpkg-deb
इसकी नियंत्रण जानकारी और पैकेज फ़ाइलों को निकालने के लिए चलाएँ । dpkg-deb -b
पैकेज के पुनर्निर्माण के लिए उपयोग करें ।
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
खबरदार कि जब तक आपकी स्क्रिप्ट रूट के रूप में नहीं चल रही है, तब तक फाइल की अनुमतियां और स्वामित्व निष्कर्षण चरण में दूषित हो जाएंगे। इससे बचने का एक तरीका यह है कि आप अपनी स्क्रिप्ट को चलाएं fakeroot
। ध्यान दें कि आपको पूरे अनुक्रम को व्यक्तिगत रूप से चलाने की आवश्यकता है fakeroot
, प्रत्येक dpkg-deb
व्यक्तिगत रूप से नहीं , क्योंकि यह fakeroot
प्रक्रिया है जो फ़ाइलों की अनुमतियों की स्मृति को बनाए रखती है जो कि वे नहीं बना सकते हैं।
fakeroot sh -c '
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
'
अनुमतियों के साथ गड़बड़ करने के बजाय, आप डेटा संग्रह को बरकरार रख सकते हैं और केवल नियंत्रण संग्रह को संशोधित कर सकते हैं। dpkg-deb
ऐसा करने का कोई तरीका प्रदान नहीं करता है। सौभाग्य से, डिब पैक एक मानक प्रारूप में हैं: वे ar
अभिलेखागार हैं। इसलिए आप ar
नियंत्रण संग्रह को निकालने के लिए उपयोग कर सकते हैं , इसकी फ़ाइलों को संशोधित कर सकते हैं, और ar
नियंत्रण संग्रह को नए संस्करण द्वारा प्रतिस्थापित करने के लिए फिर से उपयोग कर सकते हैं ।
mkdir tmp
cd tmp
ar p ../original.deb control.tar.gz | tar -xz
# edit postinst
cp ../original.deb ../fixed.deb
tar czf control.tar.gz *[!z]
ar r ../fixed.deb control.tar.gz
यदि आप पैकेज में कुछ भी संशोधित करते हैं तो आपको एक चैंज एंट्री जोड़ना चाहिए और संस्करण संख्या को बदलना चाहिए । डेबियन पैकेजों में हेरफेर करने के लिए बुनियादी ढांचा मानता है कि अगर दो पैकेजों का नाम और संस्करण समान है, तो वे एक ही पैकेज हैं। संस्करण संख्या के अंत में debian_revision भाग में एक प्रत्यय जोड़ें ; कारणों प्रत्यय के साथ शुरू कर देना चाहिए छँटाई के लिए ~
, उदाहरण के लिए 1.2.3-4.1
हो जाता है 1.2.3-4.1~johnjumper1
।
शेल टूल्स का उपयोग करने के बजाय, आप Emacs का उपयोग कर सकते हैं। dpkg-dev-el
पैकेज (जो अपनी ही नदी के ऊपर है इस एक देशी Debian पैकेज है के रूप में) मोड संपादित करने के लिए शामिल .deb
फ़ाइलें और डेबियन बदलाव संपादित करने के लिए। एमएसीएस का उपयोग अंतःक्रियात्मक या स्क्रिप्टेड किया जा सकता है।
-e
स्विच का भी उपयोग कर सकते हैं :। यह आपके संपादक में नियंत्रण फ़ाइल खोल देगा।fpm -e -s deb -t deb ../old.deb