क्या यह समस्याओं को उपयुक्त से स्विच करने के लिए समस्या का कारण बन सकता है?


8

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

जवाबों:


8

apt-get और aptitude अलग-अलग UI हैं जो एक ही पैकेज मैनेजमेंट सिस्टम, APT, एडवांस्ड पैकेजिंग टूल का हिस्सा हैं । उदाहरण के लिए, दोनों का उपयोग करके कॉन्फ़िगर किया गया है /etc/apt/apt.conf, दोनों पैकेज स्थिति का प्रतिनिधित्व करने के लिए एक ही फाइलस्पेस और प्रारूपों का उपयोग करते हैं, और डाउनलोड किए गए .debs को स्टोर करने के लिए एक ही फाइलस्पेस का उपयोग करते हैं।

पैकेज के बीच संभावित संघर्षों का प्रतिनिधित्व करने के लिए उनकी आंतरिक नियम प्रणाली कैसे भिन्न होती है, उन्हें कैसे हल करें ( apt-get dist-upgradeबनाम के दौरान aptitude full-upgrade), और उपयोगकर्ता के साथ बातचीत करते समय इन्हें कैसे व्यक्त करें। आम तौर पर, दोनों ही मुश्किल परिस्थितियों में गलत काम कर सकते हैं, लेकिन योग्यता की तुलना में यह गलत है।


2
एक महान, स्पष्ट जवाब। एक अतिरिक्त विस्तार यह है कि कैसे / जब वे स्वचालित रूप से स्थापित निर्भरता को हटाते हैं। aptitudeउन्हें तुरंत हटा देगा, लेकिन apt-getकेवल आपको कमांड दर्ज करके उन्हें निकालने के लिए संकेत देगा apt-get autoremove। सामान्य तौर पर, वे समान वस्तुओं को निकालना चाहेंगे। इस लिंक को देखें, हालांकि, एक जटिल मामले के लिए जहां वे उस पर असहमत थे: forum.debian.net/viewtopic.php?f=10&t=49589&start=0
Telemachus

5

अच्छी सलाह के बहुत से पहले से ही यहाँ है, लेकिन मुझे एक बात जोड़ने के लिए कोई भी उल्लेख किया है। यदि आप स्विच करने का निर्णय लेते हैं, तो आप इस कमांड को चलाना चाहते हैं, जो आपके साथ है apt-get

aptitude keep-all

यह आदेश इस aptitudeबात का बोध कराता है कि कौन से पैकेज अनाथ हैं और उन्हें हटा दिया जाना चाहिए।

यहाँ कारण यह कभी कभी उपयोगी है: थोड़ी देर अभी के लिए, दोनों apt-getऔर aptitudeसंकुल कि स्वचालित रूप से कुछ और की निर्भरता के रूप में स्थापित किए गए ट्रैक करेगा। इसलिए, उदाहरण के लिए, यदि आप स्थापित करते हैं, तो आप एक निर्भरता के रूप में mpdप्राप्त कर सकते हैं lib-so-and-so। वे ऐसा करते हैं, ताकि यदि आप बाद में हटा दें mpd, तो lib-so-and-soभी हटा दिया जाए। लेकिन aptitudeऔर apt-getइस सफाई को अलग तरीके से संभालें। aptitudeतुरंत सभी अनाथ आश्रितों को हटाने की कोशिश करता है; लेकिन apt-getकेवल सुझाव है कि आप apt-get autoremoveको साफ करने के लिए चलाते हैं । (इस सब के पीछे तर्क है कि आप केवल के बाद से पुस्तकालय मिल गया है कि mpdयह जरूरत है। यदि आप नहीं रखते mpd, आप पुस्तकालय अब किसी भी आवश्यकता नहीं होनी चाहिए। अगर एक और पैकेज अभी भी, यह इस पर निर्भर करता है तो दोनों aptitudeऔरapt-get यह पता चल जाएगा और पुस्तकालय को हटाने की कोशिश नहीं की जाएगी।)

मेरी बात क्या है? ठीक है, अगर आप को चलाने के लिए लगातार कुहनी दिखाई दे रही है apt-get autoremoveऔर आप स्विच करते हैं aptitude, तो आप पहली बार एक झटके में हो सकते हैं जब आप कुछ स्थापित करने की कोशिश करेंगे। aptitudeसीधे उन सभी अनाथों को हटाने की कोशिश करेंगे। सामान्य तौर पर, यह ठीक होगा (वे सभी के बाद अनाथ हैं, और आवश्यक नहीं हैं), लेकिन एक जटिल मामला है। डेस्कटॉप मेटा-पैकेज सभी में एक जटिल निर्भरता श्रृंखला शामिल होती है जहां प्रत्येक व्यक्तिगत प्रोग्राम को वर्चुअल पैकेज रैपर की निर्भरता के रूप में खींचा जाता है। उदाहरण के लिए, यदि आपने gnomeपैकेज स्थापित करने के कारण सूक्ति स्थापित किया है , तो आपके सभी सामान्य डेस्कटॉप प्रोग्राम निर्भरता के रूप में स्थापित किए गए थे। यदि आपने इनमें से किसी एक प्रोग्राम (जैसे, एकिगा या गेडिट) को अनइंस्टॉल कर दिया है, तो आंखों के सामनेaptitudeआपके बाकी डेस्कटॉप को भी हटा दिया जाना चाहिए। ध्यान दें कि aptitude हमेशा चीजों को हटाने से पहले पूछते हैं, लेकिन लोग अक्सर बिना पढ़े ही 'Y' में प्रवेश कर जाते हैं। मेरे अनुभव में, डेबियन के लोगों के लिए यह सबसे आम शिकायत / भ्रम है।

सलाह के दो सामान्य टुकड़े:

  1. किसी भी चीज़ के लिए हां कहने से पहले हमेशाaptitude या apt-getसावधानीपूर्वक आउटपुट पढ़ें ।
  2. याद रखें कि आप हमेशा ड्राई-रन का उपयोग कर सकते हैं aptitude -s safe-upgradeया aptitude -s install foo-s|--simulateझंडा अपने दोस्त है।

4

यह डेबियन मेलिंग सूची में वर्षों पहले कहा गया था, कि एप्टीट्यूड से एप्टीट्यूड पर स्विच करना जोखिम भरा था। यह दो डेबियन संस्करण हैं (10 साल पहले)। उन सभी समस्याओं पर अभी काम किया जा रहा है, और निश्चित रूप से मैंने डेबियन या उबंटू में समस्याओं को नहीं देखा है।


1
क्या आपके पास मेलिंग सूची पोस्ट का लिंक है?
मैथ्यू

मैथ्यू, क्या आप कल्पना करते हैं कि मैं यहां पूरे डेबियन-उपयोगकर्ता मेलिंग सूची का पूरी तरह अनुक्रमित संग्रह रखता हूं? जब यह ऊपर से स्पष्ट है कि मुझे वर्ष भी याद नहीं है?
कार्ल

@ मैथ्यू: थोड़ी देर पहले (सर्ज या शुरुआती खंड), वहाँ से स्विच apt-getकरने के बारे में बहुत से लोग चिंतित थे aptitude। इसके बाद, उन्होंने कई आवश्यक कार्यों को बहुत अलग तरीके से संभाला। समय के साथ, वे बहुत अधिक समान हो गए हैं, और aptitudeएक टन परिपक्व हो गया है। अब 90% मामलों में, स्विच करने पर कोई समस्या नहीं होनी चाहिए। एक किनारे के मामले के लिए मेरी पोस्ट देखें।
टेलीमेकस

2

मैं यह भी कहूंगा कि आगे बढ़ो और उपयोग करो aptitude
Aptitudeसे बेहतर निर्भरता प्रबंधन है apt-get। यह अनाथ पैकेजों की गिनती कम रखने में मदद करेगा।
मैंने कुछ समय पहले पढ़ा है कि aptitudeबेहतर डिस्टर्ब एल्गोरिदम की तुलना में बेहतर है apt-get। लेकिन यह शायद ही एक हत्यारे की विशेषता है क्योंकि इसका उपयोग उस प्रणाली के जीवन काल में अक्सर नहीं किया जाता है।

इसके अतिरिक्त आपके पास एक उपकरण में अधिक सामान होगा। यह याद करने के बजाय कि कब कॉल करना है apt-get, apt-cacheया dpkgकिस स्विच के साथ मैं सिर्फ एप्टीट्यूड का उपयोग करता हूं और अधिकांश चीजें प्राप्त करता हूं।

"बीच में" स्विच करते समय जटिलताओं के लिए: मुझे याद नहीं है कि मैंने ऐसा कब किया था।


1

क्या वे एक ही बैकएंड के लिए एक अलग इंटरफ़ेस नहीं हैं?


2
aptitudeएक और अधिक
आकर्षक

वह हो सकता है। लेकिन अधिक सुविधाओं के साथ एक इंटरफेस एक अलग बैकेंड जरूरी नहीं है।
शविश

2
नहीं, आप सही कह रहे हैं, दोनों ही सामने के छोर हैं dpkg। लेकिन dpkgसिर्फ पैकेज स्थापित करता है; यह फ्रंट-एंड्स हैं जो खोज, निर्भरता रिज़ॉल्यूशन और डाउनलोडिंग के प्रभारी हैं।
क्विकोट

लेकिन खोज, डाउनलोडिंग और निर्भरता संकल्प कुछ भी नहीं तोड़ेंगे। या अगर ऐसा होता है, तो मेरी राय में बहुत अजीब होगा ...
Svish

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

1

मेरे अनुभव से, उनके पास पैकेज संस्करणों को अलग करने का एक अलग तरीका है। मेरे मामले में, मैंने कुछ पैकेजों को लॉक करने के लिए योग्यता के बारे में बताया, यह मानते हुए कि मैं भविष्य के अपडेट से सुरक्षित रहूंगा। मैं गलत था; क्रॉन-शेड्यूल किया गया अपडेट मैनेजर, जो apt-get का उपयोग करता है, इसे मेरे डिसएब में अपग्रेड करने के लिए आगे बढ़ता है।

Drats, जैसा कि मैं यह लिख रहा था, मैंने गुगली की और पता चला कि बग ( # 557580 एप्टीट्यूड वरीयता में पिन का पालन नहीं करता है। / *) पहले से ही तय था!


-1

मैं किसी भी समस्या के बिना उपयुक्त और योग्यता दोनों का उपयोग करता हूं: मेरा एक ही सवाल है ... लोग ऐसा क्यों कहते हैं ??? : डी

आगे बढ़ें, और चिंता न करें: एप्टीट्यूड के लिए एप्टीट्यूड सिर्फ एक पाठ-गुई है, जिसे आप कमांड लाइन एप्लिकेशन के रूप में भी उपयोग कर सकते हैं, उदाहरण apt-get install fooके लिए जैसा है aptitude install foo

सादर


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

आप सही कह रहे हैं: ~ नीमहकीम नीचे टिप्पणी देखें।
dag729

@William, @ dag729: वर्तमान संस्करण apt-getभी केवल निर्भरता के रूप में स्थापित संकुल को स्वतः हटाने की पेशकश करते हैं। उस संबंध में शेष अंतर यह है कि aptitudeतुरन्त निर्भरता को दूर करता है (उपयुक्त के रूप में), लेकिन apt-getकेवल आपको कमांड चलाने के लिए जोड़ता है apt-get autoremove। लेकिन वे दोनों अब उसी तरह निर्भरता को ट्रैक करते हैं। वे, हालांकि, जटिल निर्भरता और किनारे के मामलों (बहुत जटिल स्थापित या हटाने) के अपने हैंडलिंग में, हालांकि, अलग-अलग हैं, लेकिन अधिकांश लोगों और अधिकांश स्थितियों के लिए, वे अब एक ही काम करते हैं।
टेलीमैकास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.