डेबियन पैकेज मैनेजर के साथ समस्या


2

इंटरनेट कनेक्शन की गति सीमा के कारण मैं ऑफ़लाइन पैकेज स्थापित करना पसंद करता हूं। मैं आमतौर पर एक ही ओएस स्थापित सिस्टम के साथ आवश्यक पैकेज प्राप्त करता हूं। लेकिन जब मैं इस तरह से प्रोग्राम स्थापित करता हूं तो मैं आमतौर पर अपने सिस्टम पर टूटे हुए पैकेज के साथ समाप्त हो जाता हूं जो कि निम्नलिखित के साथ ठीक नहीं होता है:

sudo apt-get update
sudo apt-get install -f 

कभी-कभी आखिरी कमांड ग्रब या कुछ स्पष्ट रूप से आवश्यक पैकेजों को मेरे सिस्टम से हटाना चाहता है! या अंतिम कमांड करने के बाद मैं उदाहरण के लिए कुछ प्रोग्राम स्थापित नहीं कर सकता:

The following packages have unmet dependencies:
 mysql-client : Depends: mysql-client-5.5 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

मुझे इस तरह की समस्याओं को कैसे ठीक करना चाहिए? क्या इस तरह से प्रोग्राम स्थापित करने से पहले सिस्टम की स्थिति को बचाने और सिस्टम को अपने पिछले राज्य में पुनर्स्थापित करने का कोई तरीका है अगर इंस्टॉल करने की प्रक्रिया ठीक से नहीं चलती है? पैकेज मैनेजर के आधार पर मैन्युअल रूप से ऐसी समस्याओं को ठीक करने का कोई तरीका है?

मैं उबंटू में कामना करता हूं कि यह एक दूसरे से अलग-थलग कार्यक्रमों को स्थापित करना संभव था जैसे कि यह विंडोज़ में है।

जवाबों:


2

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

जैसा कि आप अब तक पता लगा चुके हैं, dpkgनिर्भरता के मुद्दों को हल नहीं कर सकते हैं और aptकर सकते हैं।

आपके द्वारा इंस्टॉल किए गए पैकेज apt-getको निकालने के लिए परिवर्तनों को "वापस रोल" करने का एक तरीका है ।

एक चीज जिसे आप आज़मा सकते हैं, वह है dpkg-offline (अस्वीकरण: मैंने इसे लिखा था)। अपने ऑन-लाइन सिस्टम पर, आपके ऑफ-लाइन सिस्टम पर आपके पास मौजूद उबंटू संस्करण के लिए एक आईएसओ प्राप्त करें। भागो dpkg-offlineका संकेत पैकेज जो आप स्थापित करना चाहते। यह apt-getसंकुल और उनके सभी आश्रितों को डाउनलोड करने के लिए उपयोग करेगा , और आपको ऑफ़लाइन प्रणाली पर चलने के लिए कुछ सहायक लिपियों के साथ एक टारबॉल देगा। यह उन पैकेजों के लिए एक "ऑफ़लाइन" रिपॉजिटरी जोड़ देगा, इसलिए तब आप इसका उपयोग कर सकते हैं apt-getऔर यह निर्भरता को काम कर सकता है।


Dpkg

मुझे पता है कि आप अपने बग्स को संबोधित करते हैं - यह आपके सॉफ़्टवेयर में विशेष रूप से बुरा लगता है।
थॉमस वार्ड

मुझे लगता है कि मुझे यह आभास था कि मेरे पास इंटरनेट तक पहुंच नहीं है। लेकिन मुझे कहना चाहिए कि मेरे पास है। मैंने कहा कि किसी कारण से मैं ऑफ़लाइन स्थापना पसंद करता हूं और ऐसा करने के बाद मेरा सिस्टम पैकेज प्रबंधक टूट जाता है और मैं इसे ठीक नहीं कर सकता।
एलि .129

3

सबसे पहले, आप यह उल्लेख करते हैं कि विंडोज में ऐसा नहीं है। आप वास्तव में गलत हैं - विंडोज में सॉफ्टवेयर के लिए निर्भरता को भी डाउनलोड करने की आवश्यकता है।

अब अपने मुद्दे पर। ऑफ़लाइन अवस्था से आपके लिए आवश्यक सभी पैकेजों को स्थापित करने की कोशिश करने में समस्या यह है कि आपके पास निर्भरता समस्याओं को ठीक करने का कोई तरीका नहीं है। aptवे क्या करते हैं और क्या करते हैं, यह सभी आश्रितों की एक सूची खींचती है, यह निर्धारित करती है कि किन लोगों को स्थापित करने की आवश्यकता है, और फिर उन्हें स्थापित करने का प्रयास करें। यदि यह निर्भरताएँ स्थापित नहीं कर सकता, तो यह विफल हो जाता है।

आप mysql-clientएक उदाहरण के रूप में सामने लाते हैं । यह एक रूपक है , क्योंकि यह अन्य पैकेजों को संदर्भित करता है, और इसमें कोई वास्तविक निष्पादन नहीं है। यह विशिष्ट संस्करणों पर भी निर्भर करता है mysql-clientऔर उन्हें डाउनलोड करने की आवश्यकता होती है।

ऑफ़लाइन बॉक्स के साथ इससे बचने का कोई वास्तविक तरीका नहीं है। इस मुद्दे से बचने का एकमात्र वास्तविक तरीका यह है कि वास्तव में अपने बॉक्स को किसी नेटवर्क पर या तो डेबियन मिरर से या इंटरनेट एक्सेस से जोड़ा जाए, और केवल अपडेट सर्वर तक पहुंचने के लिए आउटबाउंड ट्रैफिक को प्रतिबंधित करने के लिए फ़ायरवॉल नियम स्थापित करें।

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