मैं किसी विशेष पैकेज के लिए सभी बिल्ड निर्भरता कैसे निकाल सकता हूं?


10

जब मैं उबंटू / डेबियन में स्रोत से कुछ संकलित करना चाहता हूं, तो मैं आमतौर पर sudo apt-get build-dep PACKAGE_NAMEटर्मिनल में " " चलाकर निर्माण-निर्भरता प्राप्त करता हूं ।

संकलन कार्य पूरा हो जाने के बाद वे (आमतौर पर) बेकार हो जाते हैं।

तो, मैं किसी विशेष पैकेज के लिए सभी बिल्ड-निर्भरता कैसे निकालूं ?

जवाबों:


5

एक प्रोग्राम की बिल्ड-निर्भरता का पता लगाने के लिए आप चला सकते हैं apt-cache showsrc pkgnameऔर वह अन्य सूचनाओं के बीच सूचीबद्ध करेगा Build-Depends, जो अक्सर फाइलों को समाप्त कर रहे हैं -dev; यद्यपि यह जाँच के लायक है कि क्या कोई फाइल (विशेषकर जो चिह्नित नहीं -devहैं) अन्य कार्यक्रमों के लिए आवश्यक है। आप इसका उपयोग करके पता लगा सकते हैं apt-cache depends fileऔर apt-cache rdepends file। निम्नलिखित उदाहरण के लिए है Shotwell:

apt-cache showsrc shotwell

बिल्ड-डिपेंडेंस: डेशेलपर (> = 7.0.50 ~), एम 4, वैलैक-0.16 (> = 0.15), लिबजे-देव (> = 0.5.0), लिबग्टक-3-देव (> = 3.0.11), लिबासिफ़ -देव (> = 0.6.16), libsqlite3-dev (> = 3.5.9), libgexiv2-dev (> = 0.4.1-1build1), libgnomevfs2-dev (> = 2.24.2), libgphoto2-2-dev (> = 2.4.2), libsoup2.4-dev (> = 2.26.0), libxml2 (> = 2.6.32), libunique-3.0-dev (> = 1.0.0), libwebkitgtk-3.0-dev (> = 1.1.5), लिबागुदेव-1.0-देव (> = 145), लिबासबस-ग्लिब-1-देव (> = 0.80), लिब्रा-देव (> = 0.13.1-2), लिबासब-देव, लिबासन-ग्लिब -देव (> = 0.7.6), libgstreamer0.10-dev (> = 0.10.28), libgstreamer-plugins-base0.10-dev (> = 0.10.32), पायथन-स्कॉर, लिबुनिटी-देव, लिबलांचपैड- एकीकरण-3.0-देव (> = 0.1.36), लाइब्रेस्ट-देव

वहाँ यह सब पर एक ही बार में करने के लिए एक आदेश है webupd8 साइट , लेकिन मैं ने पाया है कि यह Ubuntu के वर्तमान संस्करण के साथ मज़बूती से काम करने के लिए प्रतीत नहीं होता है कि यह लगता है हटाने बहुत ज्यादा। मैंने इसे पिंटा के साथ आजमाया और इसने पूरी मोनो लाइब्रेरी को हटाने का सुझाव दिया। लॉन्चपैड पर वेबअप 8 जैसी कमांड का उपयोग करने के साथ ऐसी समस्याओं की चर्चा है । किसी भी 'समाधान' के साथ प्रयोग करते समय बहुत सावधान रहें।

यह शर्म की बात है कि स्थापित पैकेजों के autoremoveलिए कोई कमांड नहीं build-depहै।


1
मैंने एप्टीट्यूड मेथड की कोशिश की और हाँ, आप सही हैं, यह बहुत अधिक हटा देता है ... क्रॉस-निर्भरता के कारण हो सकता है। एक और मैंथोड जो मुझे मिला वह निम्न विकल्प को पास करना है (बिल्ड-डिप कमांड का उपयोग करते समय) sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME:। अब उन्हें हटाया जा सकता है apt-get autoremove। लेकिन यह मुख्य पैकेज को हटाने के बाद ही काम करता है।
खुर्शीद आलम

2
वैसे भी, मैंने अभी सीखा है कि इसे करने का उचित तरीका, उपयोग कर रहा है pbuilder। तो किसी को भी निर्भरता स्थापित / स्थापना रद्द करने के बारे में चिंता करने की ज़रूरत नहीं है।
खुर्शीद आलम

6

Tumbleweed लिखते हैं :

भविष्य के लिए, मैं अत्यधिक mk-build-deps... के बजाय का उपयोग करने की सलाह देता हूं aptitude build-dep। यह आपके सिस्टम में एक पैकेज छोड़ देता है ... [जिसमें [निर्भरता] है] बिल्ड-डिप्स पर, जिसे आप बाद में आसानी से अनइंस्टॉल कर सकते हैं।

mk-build-deps के साथ स्थापित किया जा सकता है sudo apt install devscripts


4

विकल्प 1:

याद रखें कि किन पैकेजों को स्थापित किया गया था sudo apt-get build-dep PACKAGE_NAMEऔर निर्माण के बाद उन्हें हटा दें।

विकल्प 2:

apt-cache showsrc स्रोत पैकेज के बारे में जानकारी का एक बड़ा सौदा देता है, जिसमें बिल्ड-निर्भर की एक सूची भी शामिल है।

apt-cache showsrc PACKAGE_NAME

उदाहरण के लिए:

$ apt-cache showsrc pithos
Package: pithos
Binary: pithos
Version: 0.3.17~git07dcbd86a1
Section: python
Maintainer: Kevin Mehall <km@kevinmehall.net>
Build-Depends: cdbs (>= 0.4.43), debhelper (>= 6), python, python-central (>= 0.6.11), python-distutils-extra (>= 2.10)
Architecture: all
Standards-Version: 3.8.2
Format: 1.0
Directory: pool/main/p/pithos
Files:
 cdf2129923e62bb62c246965453b40bd 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
 97689e8ada8be527d689f2c83415d3b0 1544 pithos_0.3.17~git07dcbd86a1.dsc
Python-Version: current
Checksums-Sha1: 35cbf3ae52922e50a0b81afcce2cd97a86afb254 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
Package-List: pithos deb python extra
Checksums-Sha256: 2b704d86f3dc1d36d180177d11e578bdcf74ea97b09b530144afe754e570b262 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
$ sudo apt-get remove cdbs debhelper python python-central python-distutils-extra

इस विकल्प के साथ जोखिम आप एक पैकेज है कि कुछ के लिए महत्वपूर्ण है निकाल सकते हैं वह यह है कि इसके अलावा PACKAGE_NAME निर्माण। आगे बढ़ने से पहले हटाए जाने वाले पैकेजों की सूची को पढ़ें।

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