मैं एक पैकेज को कैसे ठीक से हस्ताक्षर कर सकता हूं जिसे मैंने संशोधित किया और पुनर्नवीनीकरण किया?


20

मैं नग्नेक्स के एक बैकपोर्ट संस्करण को dpkg-buildpackageप्राप्त करने के बाद भाग गया apt-get source nginxऔर debian/rulesuwsgi मॉड्यूल को शामिल करने के लिए संशोधित किया। आदेश के अंतिम परिणाम थे:

dpkg-deb: building package `nginx' in `../nginx_0.7.67-3~bpo50+1_i386.deb'.
dpkg-deb: building package `nginx-dbg' in `../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'.
 signfile nginx_0.7.67-3~bpo50+1.dsc
gpg: keyring `/home/shogun/.gnupg/secring.gpg' created
gpg: skipped "Faidon Liambotis <paravoid@debian.org>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available

 dpkg-genchanges  >../nginx_0.7.67-3~bpo50+1_i386.changes
dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3)
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)
dpkg-buildpackage: warning: Failed to sign .dsc and .changes file

यह शिकायत करता है कि क्योंकि मैं पैकेज का मूल अनुरक्षक नहीं हूं, मेरा कुंजी नहीं है।

क्या यह वास्तव में आवश्यक है और यदि ऐसा है तो मैं इसे कैसे बनाने के लिए अपनी कुंजियों का उपयोग कर सकता हूँ?

जवाबों:


32

यदि आपने उन्हें अपने निजी उपयोग के लिए बनाया है तो पीजीपी-हस्ताक्षरित डेबियन पैकेज आवश्यक नहीं है। जब वे डेबियन "अस्थिर" शाखा में नए पैकेज अपलोड करते हैं तो यह (आधिकारिक) डेबियन डेवलपर्स के लिए सिर्फ सामान्य प्रमाणीकरण पद्धति है।

त्रुटि संदेश से बचने के लिए:

dpkg-buildpackage -uc -us

(dpkg-buildpackage का मैनपेज भी देखें)


मैं सिर्फ मूल निर्देशिका को देखा और ऐसा लगता है कि यह उन .deb फ़ाइलों को बनाने से संशोधित तारीखों पर आधारित है ls -al। यह सही तरीके से gpg के असफल सत्यापन के कारण उन्हें बनाने में असफल रहा? अपने नए आदेश के साथ, यह उन्हें बनाना चाहिए? या मैं गलत हूं?
पदक विजेता

6

जब आप पैकेज का एक अलग संस्करण बनाते हैं (जैसा कि आपने किया था, चूंकि आपने बिल्ड नियमों को बदल दिया है), आपको वास्तव में एक चैंज एंट्री जोड़ना चाहिए। इस तरह, आपके पैकेज में एक अलग संस्करण संख्या होगी (इसलिए आपको तुरंत पता चल जाएगा कि यह वितरण से मानक पैकेज नहीं है), और आपके पास जो कुछ भी बदला है उसका एक निशान होगा।

संपादित करें debian/changelog, मौजूदा प्रविष्टियों के प्रारूप की नकल करते हुए एक प्रविष्टि जोड़ें। आज से इसे दिनांकित करें, और एक संस्करण संख्या चुनें like 0.7.67-3~bpo50+meder1(आप ऐसा कुछ चाहते dpkg --compare-versionsहैं जिसके लिए आपका संस्करण अधिक हाल का है)। अपने ईमेल पते को अनुरक्षक के रूप में रखें; इस तरह, आपके पास एक स्पष्ट संकेत है कि यह आपके द्वारा संशोधित पैकेज है, और dpkg-buildpackageआपके GPG पासफ़्रेज़ के लिए पूछेगा।

आप एक Emacs उपयोगकर्ता हैं, तो स्थापित dpkg-dev-elपैकेज, और प्रयोग C-c C-aऔर C-c C-cजोड़ सकते हैं और अपने बदलाव का प्रवेश को अंतिम रूप देने आदेशों।


5

एक पैकेज पर हस्ताक्षर करना आवश्यक नहीं है, और -uc -usउस कदम से बचने के लिए विकल्पों का उपयोग किया जा सकता है, यह पैकेज पर हस्ताक्षर करने के लिए भी सहायक हो सकता है, खासकर यदि अन्य इसका उपयोग कर रहे हैं, या आप इसे असुरक्षित संचार पथों के माध्यम से भेज रहे हैं। और यह बिल्कुल भी मुश्किल नहीं है।

एक अच्छा हस्ताक्षर बनाने के लिए, dpkg-buildpackage के लिए मैन पेज देखें । डिफ़ॉल्ट रूप से यह gpg के साथ संकुल पर हस्ताक्षर करता है। यह छपे हुए त्रुटि संदेशों से, ऐसा लगता है कि आपने अभी तक एक gpg कुंजी नहीं बनाई है। उदाहरण के लिए देखें GnuPrivacyGuardHowto - कुछ निर्देशों और पृष्ठभूमि के लिए सामुदायिक उबंटू प्रलेखन

@ नोट के रूप में, आपको चैंज फ़ाइल के माध्यम से पैकेज संस्करण संख्या भी बदलनी चाहिए, और आपके द्वारा उपयोग की जा रही gpg कुंजी के लिए ईमेल पता प्रदान करें। ऐसा करने का एक आसान तरीका सिर्फ dch --local fooकमांड चलाना है , जहां "फू" बदलाव का एक कीवर्ड है। इस्तेमाल किया क्या तुम सच में ऐसा करने के लिए, और एक अलग मेंटेनर या अपलोड करने वाले नाम / पता, या एक विशेष कुंजी निर्दिष्ट करने की आवश्यकता नहीं करना चाहते हैं के लिए जा जब हस्ताक्षर करने, आप भी उपयोग कर सकते हैं -m, -eया -kविकल्प है जब निर्माण।

अधिक युक्तियों के लिए डेबियन संकुल के पुनर्निर्माण के लिए हाउटो देखें ।

मुश्किल हिस्सा तब आता है जब कोई यह तय करने की कोशिश कर रहा होता है कि किसी दिए गए पैकेज पर किसी ने भरोसा किया है या नहीं। इसमें शामिल सूक्ष्म मुद्दों से निपटने के लिए ट्रस्ट के पीजीपी वेब की जाँच करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.