apt-get build-dep एक स्रोत पैकेज खोजने में असमर्थ है


16

मैंने पहले ही अपने Ubuntu 12.04 पर मध्य माउस बटन पेस्ट को अक्षम करने के लिए इस गाइड का पालन ​​किया है ।

एक जादू की तरह काम करता है।

अब मैं अपने लिनक्स टकसाल 17 पर वही हासिल करने की कोशिश कर रहा हूं। जब मैं कोशिश करता हूं

sudo apt-get build-dep libgtk2.0-0

यह मुझे निम्न आउटपुट देता है:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

मेरे लिए ऐसा लगता है कि एप्ट-गेट किसी तरह "हल" 'libgtk2.0-0'हो रहा है 'gtk+2.0', लेकिन फिर उस तरह का कोई भी पैकेज नहीं मिला।

संपादित करें: हालांकि मैं अब कार्यक्रम को संकलित करने में सक्षम हूं (मेरा उत्तर देखें), मुझे अभी भी नहीं पता Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'है कि इसका क्या मतलब है। इस पर किसी भी जानकारी की सराहना की जाएगी, धन्यवाद!


क्या आपने deb-srcअपने /etc/apt/source.list में प्रासंगिक भंडार सक्षम किया है ?
इस्पात

जवाबों:


18

जैसा कि दूसरों ने पहले ही नोट कर लिया है, सुनिश्चित करें कि हर deb …प्रविष्टि के लिए /etc/apt/sources.listऔर /etc/apt/sources.list.d/*, आपके पास एक मिलान deb-src …प्रविष्टि है। शेष पंक्ति समान होनी चाहिए। debप्रविष्टि (यानी स्थापित करने के लिए तैयार) द्विआधारी संकुल के लिए है, deb-src(यानी संकलित करने के लिए तैयार) स्रोत संकुल के लिए है। दो प्रकार के स्रोतों को अलग करने का कारण यह है कि उन्हें बहुत अलग तरीके से प्रबंधित किया जाता है: बाइनरी पैकेज में एक निर्भरता ट्रैकिंग तंत्र और एक वर्तमान में स्थापित सूची है, जबकि स्रोत पैकेज केवल ट्रैक किए जाते हैं ताकि उन्हें आसानी से डाउनलोड किया जा सके। ध्यान दें कि पैकेज रिपॉजिटरी पर चर्चा करते समय, शब्द स्रोत का अर्थ है दो असंबंधित बातें: एक स्रोत के रूप में एक स्थान से पैकेज डाउनलोड करने के लिए, और एक स्रोत पैकेज के रूप में एक बाइनरी पैकेज का विरोध किया।

libgtk2.0-0एक बाइनरी पैकेज का नाम है। यह एक स्रोत पैकेज से निर्मित है जिसे कहा जाता है gtk+2.0। कारण स्रोत और बाइनरी पैकेज नाम हमेशा मेल नहीं खाते हैं कि एक स्रोत पैकेज का निर्माण कई बाइनरी पैकेज का उत्पादन कर सकता है; उदाहरण के लिए, gtk+2.014 संकुल के लिए स्रोत है क्योंकि यह दो पुस्तकालयों (में विभाजित है libgtk2.0, libgail ), corresponding packages to build programs using these libraries (... -dev ), documentation for developers (... -doc ), companion programs (libgtk2.0-bin`), आदि

(यदि पैकेज स्थापित है) या Source: …के आउटपुट में लाइन की जांच करके आप बाइनरी पैकेज के अनुरूप स्रोत पैकेज का नाम देख सकते हैं dpkg -s BINARY_PACKAGE_NAMEया apt-cache show BINARY_PACKAGE_NAME। आप किसी स्रोत पैकेज द्वारा उत्पादित बाइनरी पैकेज को सूचीबद्ध कर सकते हैं aptitude search '?source-package(^SOURCE_PACKAGE_NAME$)

आदेश apt-get sourceएक स्रोत पैकेज डाउनलोड करता है। यदि आप इसे एक तर्क देते हैं जो कि एक ज्ञात स्रोत पैकेज नहीं है, तो यह इसे इंस्टॉल करने योग्य बाइनरी पैकेज के डेटाबेस में दिखता है और संबंधित पैकेज को डाउनलोड करने का प्रयास करता है। apt-get build-depस्रोत पैकेज के नाम को कम करने के लिए कमांड उसी दृष्टिकोण का अनुसरण करता है, फिर बाइनरी पैकेज ( Build-Dep:क्षेत्र में सूची ) की सूची प्राप्त करने के लिए स्रोत पैकेज डेटाबेस पर सवाल उठाता है , और उन बाइनरी पैकेजों को स्थापित करता है।

सॉफ्टवेयर स्रोत जीयूआई में आधिकारिक रिपॉजिटरी के लिए चेकबॉक्स "स्रोत कोड के साथ रिपॉजिटरी सक्षम करें" है, यह सुनिश्चित करें कि यह टिक हो गया है। यदि आप मैन्युअल रूप से तृतीय-पक्ष रिपॉजिटरी जोड़ते हैं, तो सुनिश्चित करें कि आप दोनों deb-srcऔर debलाइनें जोड़ते हैं।


6

@Steeldriver की बदौलत मुझे लगा कि मुझे क्या करना है।

बस मुझे निम्नलिखित लिंग जोड़ना था /etc/apt/sources.list:

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

डीबग-src रिपॉजिटरी में संकलन के लिए आवश्यक स्रोत पैकेज (बाइनरी, रेडी-टू-इंस्टॉल पैकेज के विपरीत) होते हैं।

संपादित करें: इसे जोड़ने के बाद, आपको निष्पादित करना होगा sudo apt-get update


5

सीएलआई विधि

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

उबंटू 18.04 डॉकर छवि पर परीक्षण किया गया। इस परिवर्तन के बाद, मैं उदाहरण के लिए सफल हो सकता हूं:

sudo apt-get build-dep hello

और परिवर्तन से पहले यह त्रुटि के साथ विफल हो गया:

E: You must put some 'source' URIs in your sources.list

software-properties-gtk विकल्प "स्रोत कोड"

GUI से, आप चला सकते हैं:

software-properties-gtk

फिर "उबंटू सॉफ्टवेयर" टैब के तहत "सोर्स कोड" पर क्लिक करें:

यहाँ छवि विवरण दर्ज करें

इसने कुछ deb-srcलाइनों को जोड़ा है /etc/apt/sources.list, और अब मैं कर सकता हूं sudo apt-get build-dep <package>

उबंटू 16.04 से 18.04 तक परीक्षण किया गया।

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