मुझे पैकेज की निर्माण निर्भरताएं कैसे मिलेंगी?


48

मुझे यह पता लगाना है कि कौन से पैकेज हैं

sudo apt-get build-dep <package>

स्थापित करेगा (अगर मुझे पहले से ही कुछ निर्भरताएं स्थापित हैं, तो मैं यह भी देखना चाहूंगा कि → ऊपर चल रहा है या अनुकरण पर्याप्त नहीं है)। कमांड लाइन को प्राथमिकता दी।


1
मैं भ्रमित हूं, sudo apt-get build-dep <package>पैकेज की सूची नहीं दिखाता (यदि पैकेज में कोई निर्भरता है) इसे स्थापित करने जा रहा है?
यशायाह

1
दुर्भाग्य से यह केवल उन संकुल को दिखाता है जो स्थापित नहीं हैं।
17

जवाबों:


45

एक के लिए पूरी सूची निर्भरता, निर्भरता 'निर्भरता भी शामिल होगी, तो आप उपयोग कर सकते हैं:

apt-rdepends --build-depends openoffice.org

आदेश आपको apt-rdependsपहले स्थापित करने के लिए याद दिला सकता है ।

आप निम्न कमांड का उपयोग केवल उन लोगों को दिखाने के लिए कर सकते हैं जो स्थापित नहीं हैं:

apt-rdepends --build-depends --print-state openoffice.org | grep NotInstalled

apt-rdepends --helpसभी विकल्पों के लिए देखें ।

नोट : यह एक विशाल सूची उत्पन्न करेगा ।
apt-rdepends -b xterm, उदाहरण के लिए, उत्पादन की 8773 लाइनें उत्पन्न करता है, और इसे करने में समय लगता है।

यदि आप केवल उन पैकेजों को देखना चाहते हैं जो सबसे ऊपरी पैकेज बनाने के लिए आवश्यक हैं, यानी मुझे नॉटिलस बनाने के लिए इंस्टॉल करने की क्या आवश्यकता है, चलाएं:

apt-rdepends --build-depends --follow=DEPENDS nautilus

यह लगभग कार्स्टन थिएल के उत्तर ( The following NEW packages will be installed) के बराबर है , लेकिन आउटपुट स्वरूप थोड़ा अच्छा है। यह केवल सबसे ऊपरी पैकेज दिखाता है, जबकि नकली apt-get भी उन लोगों की निर्भरता के रूप में स्थापित पैकेज दिखाता है।

यह उन पैकेजों को भी दिखाता है जो स्थापित हैं। लेकिन यह उन पैकेजों को भी दिखा सकता है जो डिफ़ॉल्ट रूप से स्थापित हैं। दुर्भाग्य से, न तो विधि ज्यादा मदद है जब आप apt-get build-dep चलाने के बाद अपने सिस्टम को साफ करने की कोशिश कर रहे हैं । जहां तक ​​मुझे पता है, उपयुक्त लॉग फ़ाइल को देखने के अलावा कौन-सी स्थापित की गईं, इसे खोजने का एक विश्वसनीय तरीका नहीं है /var/log/apt/history.log


1
धन्यवाद, जिस संस्करण के साथ --follow=DEPENDSमैं देख रहा था, वह ठीक वैसा ही है। आप लॉन्चपैड पर उन निर्माण निर्भरताओं को भी पा सकते हैं, जैसे। Nautilus के लिए: launchpad.net/ubuntu/natty/+source/nautilus (नीचे स्क्रॉल करें)।
htorque

17

विकल्प -s( --simulate) सब कुछ आउटपुट करेगा जो कुछ भी किए बिना किया जाएगा। आपको इसके लिए रूट विशेषाधिकारों की भी आवश्यकता नहीं है।

apt-get -s build-dep <package>

6
ऊपर मेरी टिप्पणी देखें - यह पहले से स्थापित पैकेज नहीं दिखाएगा। मेरे सवाल में सटीक नहीं होने के लिए क्षमा करें।
htorque

काम नहीं करता है - E: Unable to find a source package for inkscape
anatoly techtonik

17
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrcकिसी दिए गए स्रोत पैकेज के लिए डेबियन / कंट्रोल फ़ाइल प्रदर्शित करता है। फिर हम उस लाइन (ओं) के लिए तैयार हो जाते हैं, जो 'बिल्ड-डिपेंड्स' से शुरू होती हैं, जिसमें स्रोत से निर्माण के लिए आवश्यक पैकेजों की सूची होती है।


+1 यदि आप समझाते हैं कि क्या apt-cache showsrcऔर क्या | grepकरता है। फिर भी, अच्छा जवाब। इसे प्रदान करने के लिए समय निकालने के लिए धन्यवाद।
मद्मीक

sudo apt-cache showsrc inkscapeinkscapeउबंटू में 18.10 के लिए काम नहीं करता हैW: Unable to locate package inkscape N: No packages found
अनातोली techtonik

@anatolytechtonik ने अभी-अभी उबोन्ट 18.10 पर डॉकर में परीक्षण किया, मेरे लिए काम करता है। आपने apt-get updateपहले किया था?
स्टीफन गौरिचोन

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