टूटे पैकेज को नजरअंदाज करने के लिए एप्टीट्यूड बताएं


9

मैंने कार्मिक में ल्यूसिड से एक Amsynth का उपयोग किया:

dpkg --force-depends-version -i amsynth_1.2.2-1_i386.deb

ल्यूसिड संस्करण को स्थापित करने का कारण यह है कि कार्मिक संस्करण 3 साल पुराना है और मेरी मशीन पर क्रैश होता है। ल्यूसिड एम्सिनथ पैकेज कर्मिक के मुकाबले libatk1 और libjack0 के नए संस्करणों पर निर्भर करता है, लेकिन मुझे लगा कि मैं जोखिम उठाऊंगा, और एम्सिनथ ठीक चलता है।

हालाँकि एप्टीट्यूड हर बार जब मैं अपग्रेड करता हूं तो Amsynth को अनइंस्टॉल करने की कोशिश करता हूं। मुझे लगता है कि मैंने इसे पकड़ में लाने में कामयाबी हासिल की है, लेकिन अब अभिरुचि खत्म हो गई है। टूटे हुए पैकेज को अनदेखा करने और आगे बढ़ाने के लिए मैं कैसे योग्यता के बारे में बता सकता हूं।


फिलहाल मैंने इसे अनइंस्टॉल कर दिया है। मैं हर बार जब भी मुझे इसकी आवश्यकता होगी, मैं इसे पुनः स्थापित करूंगा, यह बहुत लंबा नहीं है, जब तक कि यह मुझे फिर से संकलन करने की कोशिश करने के लिए पर्याप्त नहीं है।

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

जवाबों:


7

यदि आपने डिबेट-फ़ाइल और dpkg के माध्यम से प्रोग्राम इंस्टॉल किया है, तो आप स्थापित .deb फ़ाइल की निर्भरता को मैन्युअल रूप से बदल सकते हैं। मैं एक बार इस चरम उपाय के लिए प्रेरित हुआ था ...

ar x foo.deb
vim control.tar.xz  # see below
ar r foo.deb control.tar.xz
dpkg -i foo.deb

और dpkg को अब foo की निर्भरता के बारे में नहीं पता है। Vim में आपको चयन करना है ।/control (मैं पैक की गई फ़ाइलों को पढ़ने के लिए vim का उपयोग करता हूं - यदि आप चाहें तो किसी अन्य संपादक को अनपैक और उपयोग करें) और लाइन से अवांछित निर्भरता को हटा दें।

Depends: foo bar

1
आप के dpkg-debबजाय का उपयोग कर बेहतर कर रहे हैं ararएक dpkg कार्यान्वयन विवरण है जो भविष्य में बदल सकता है।
jmtd

धन्यवाद, इस समाधान ने मेरे लिए काम किया लेकिन जब मैं अप-गेट अपग्रेड करता हूं, तो मुझे संदेश मिलता है "निम्नलिखित पैकेजों को वापस रखा गया है: numptyphysics: i386" (उपयुक्त-अप-अपग्रेड-अपग्रेड कुछ नहीं कहते हैं)। क्या यह संदेश सामान्य है और क्या हम इससे छुटकारा नहीं पा सकते?
बपतिस्मा

7

Ubuntuforums पर एक हैक किया गया समाधान है । ~ क्वैक का समाधान बेहतर है, लेकिन अधिक काम है।

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

जो कोई भी जानना चाहता है, वह यहां अनइंस्टॉल किए बिना, synaptic / aptitude / apt-get में एक पैकेज को "अनब्रेक" कैसे करे

सबसे पहले, आपके द्वारा इंस्टॉल किए गए पैकेज का एक नोट बनाएं, और पैकेज (s) यह इस पर निर्भर करता है कि इसे टूटी हुई स्थिति दें। कहो कि मैंने सेब की एक स्थापना के लिए मजबूर किया, जो कि अप्रचलित पैकेज पर निर्भर करता है जो भंडार में नहीं है:

एक टर्मिनल प्रकार में कोड:

sudo gedit /var/lib/dpkg/status

जब तक आपको कुछ न मिले, तब तक सेब के लिए फ़ाइल खोजें:

कोड:

Package: apples
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 316
Maintainer:
Architecture: i386
Source: applesauce
Version: 1.0.10-1
Depends: packageA, packageB, obsolete
Description: Apples on your desktop!

डिपेंड से अप्रचलित को हटा दें: पंक्ति, फ़ाइल को सहेजें, और आप काम कर रहे हैं। आशा है कि इससे कुछ लोगों को मदद मिलेगी।


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

मुझे पैकेज मैनेजर से झूठ बोलने में कोई समस्या नहीं है, खासकर जब से कुछ महीनों में मैं ओएस को फिर से इंस्टॉल करूंगा, लेकिन मुझे फ़ाइल को थ्रेड में संदर्भित नहीं मिला।

अजीब। यह वहाँ होना चाहिए। "Cd / var / lib / dpkg" और फिर "sudo नैनो स्टेटस" करने की कोशिश करें।
इयान

1
लिंक अब काम नहीं करता है। यही कारण है कि लिंक-ही उत्तरों को इधर-उधर फेंक दिया जाता है। यदि आपने यहाँ समझाया, तो यह सही उत्तर होगा।
Jan Hudec

नहीं पता है कि यह स्थायी है या नहीं, लेकिन यह सुनिश्चित करता है कि जावा स्थापित करने के लिए अभी तक उपलब्ध न होने वाले हार्ड डिपेंडेंस वाले पैकेजों को स्थापित करने के लिए अब तक एक सभ्य फिक्स की तरह लगता है।
क्रिस्पी

2

एप्टीट्यूड के प्रेफरेंस सेक्शन में (Ctrl-T मेन्यू के तहत पाने के लिए) विकल्प में, "डिपेंडेंसी हैंडलिंग" सेक्शन में उस विकल्प को अनचेक करें जो कहता है कि "इंस्टॉल या हटाने से पहले टूटे हुए पैकेज को स्वचालित रूप से ठीक करें" । हर बार जब आप अन्य पैकेज बदलते हैं, तो पैकेज को ठीक करने की कोशिश करना बंद कर देना चाहिए।

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


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