डेबियन स्रोत पैकेज को देखते हुए - मैं बिल्ड-डिप्स कैसे स्थापित करूं?


47

मेरे पास एक डेबियन (अच्छी तरह से तकनीकी ubuntu) स्रोत पैकेज है, यानी .dsc, .tar.gz, आदि, मैं इसे बनाना चाहता हूं। dpkg-buildpackage, विफल रहता है के बाद से मैं सभी निर्माण निर्भरता नहीं है।

आम तौर पर मैं उपयोग करता हूं apt-get build-dep, लेकिन यह पैकेज उपयुक्त नहीं है।

क्या स्रोत निर्माण को देखते हुए सभी बिल्ड निर्भरताओं को स्थापित करने के लिए एक 'स्वच्छ', 'उचित' तरीका है। मुझे पता है कि मैं सिर्फ डेबियन / कंट्रोल फाइल खोल सकता था, लेकिन अगर कोई 'उचित' तरीका है तो मैं उत्सुक हूं।

मैंने build-essentialसभी सामान्य संकलक आदि स्थापित किए हैं , और इस पैकेज में अतिरिक्त सॉफ़्टवेयर की आवश्यकता है।

जवाबों:


34

का उपयोग करें mk-build-depsजो का हिस्सा है devscripts


12

यहां ptman के सुझाव का उपयोग करके एक उदाहरण वर्कफ़्लो है।

मान लें कि आपने .dscफ़ाइल, .orig.*zफ़ाइल और शायद .debian.*zफ़ाइल भी डाउनलोड कर ली है , तो स्रोत पैकेज को इसके साथ अनपैक करें:

dpkg-source -x [package_name]_[package_version].dsc

निकाले गए स्रोत फ़ोल्डर में जाएं और चलाएं:

sudo mk-build-deps -i

यह फ़ाइल बनाएगा [package_name]-build-deps_[version].debऔर उसे इंस्टॉल करेगा, और उसके द्वारा सुझाई गई सभी निर्भरताओं को भी इंस्टॉल करेगा।

अब आपको स्रोत से अपना पैकेज बनाने में सक्षम होना चाहिए:

debuild

जब आप समाप्त कर लेते हैं, तो आप आसानी से उन निर्भरताओं को हटा सकते हैं build-depsजो आपके द्वारा उत्पन्न पैकेज को हटाकर :

sudo apt-get purge --auto-remove [package_name]-build-deps

2
आप इसे स्थापित करने के बाद पैकेज को हटाने के -rलिए भी पास कर सकते हैं sudo mk-build-deps -i। इसके अलावा, रूट के रूप में निर्माण के बजाय, आप रूट का उपयोग करके इंस्टॉल कर सकते हैं --root-cmd sudo। अंत में, उपयोग करेंmk-build-deps --install --root-cmd sudo --remove
लुकास

इसके अलावा, आप sudo apt install devscripts equivsपहले करने की आवश्यकता हो सकती है ।
अल्बा मेंडेज़

9

वास्तव में मैं उपयोग कर सकता हूं dpkg-checkbuilddepsजो बिल्ड निर्भरता को दर्शाता है। मुझे जो चाहिए, वह मुझे 99% मिलता है


2
विचित्र रूप से पर्याप्त है, packagename-version.dsc फ़ाइल में स्ट्रिंग में निर्मित निर्भरताएँ हैं जो स्ट्रिंग के साथ शुरू होती हैं बिल्ड-
डिपेंड्स

6

मैं आमतौर पर उपयोग करने debuildसे devscriptsनिर्माण संकुल के लिए, और यह लापता निर्माण deps की एक पंक्ति प्रिंट अगर प्रासंगिक।

"उचित" तरीका उपयोग pbuilderया समान है जो पैकेज को न्यूनतम रूप से बनाएगा chroot, और पैकेज द्वारा निर्दिष्ट के रूप में किसी भी अतिरिक्त बिल्ड-डिप्स को स्थापित करेगा, यह अन्य संभावित मुद्दों (गैर-पैकेज्ड पुस्तकालयों के स्थानीय प्रतिष्ठानों) का एक गुच्छा निकालता है उदाहरण के लिए)।


-6

प्रयत्न, कोशिश:

apt-get install build-essential

मैंने बिल्ड-एसेंशियल इंस्टॉल किया है। इस पैकेज में अतिरिक्त सॉफ़्टवेयर की आवश्यकता है।
रोरी

और यह नहीं समझाता है कि क्या आवश्यकता है? शायद libncurses-dev भी।
लैंसलोट

1
ये मुद्दा नहीं है; बिलकुल यह करता है। बिंदु के पास एक कमांड है जो वास्तव में निर्भरता स्थापित करता है, न कि एक जो उन्हें प्रदर्शित करता है।
मथायस उरलिचस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.