मैं उपयुक्त-स्थापना के साथ स्थापना से विशिष्ट पैकेजों को कैसे निकालूं?


12

मैं विशिष्ट पैकेजों को स्थापना से बाहर करना चाहता हूं apt-get, अर्थात, विशिष्ट पैकेजों की सूची के बिना एक रूपक स्थापित करें, अधिमानतः एक आह्वान के साथ apt-get

उदाहरण के लिए, Ubuntu 14.04 LTS कमांड-लाइन में, मैं MATE डेस्कटॉप वातावरण स्थापित कर रहा हूं। 14.04 एलटीएस मेट में एक आधिकारिक स्वाद नहीं है, इसलिए मैं एक पीपीए जोड़ रहा हूं:

sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update

फिर स्थापित करना:

sudo apt-get install xorg mate-core --no-install-recommends

यहां तक कि सिफारिश एक्स्ट्रा कलाकार के बिना, mate-core3 टर्मिनल emulators स्थापित करता है: xterm, uxtermऔर mate-terminal , बाद उचित फोंट की कमी है, जबकि इस न्यूनतम विन्यास में स्थापित किया।

मान लीजिए कि मैं तय करता हूं कि 3 टर्मिनल कार्यक्रम बहुत अधिक होंगे और मैं स्थापित करना चाहूंगा xorgऔर इसके mate-core बिना xterm और mate-terminal। मैं कर सकता था

sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal

लेकिन क्या एक बार में ऐसा करना संभव है? क्या कुछ सिंटेक्स जैसा है

sudo apt-get install xorg mate-core --without xterm mate-terminal

क्या आप वाकई हटा सकते हैं xtermऔर mate-terminal? 15.04 में, mate-terminalएक कठिन निर्भरता है mate-desktop-environment-core, जो की एक कठिन निर्भरता है mate-core, और मुझे लगता है कि पीपीए mate-terminalप्रदान नहीं करता है x-terminal-emulator(जो 15.04 में पैकेज करता है)।
मूरू

हो सकता है कि आप सही हों , जब तक कि पैकेज के नामों के आगे का तारांकन का मतलब यहां कुछ खास न हो। साथ ही, आश्चर्यजनक रूप से बहुत कम जगह को मुक्त किया जा रहा है। वैसे भी, मेरा सवाल जो कुछ भी निकाला जा सकता है उसे हटाने के बारे में है, XTermऔर शायद UXTerm(मुझे यकीन नहीं है कि बाद के लिए पैकेज नाम क्या है)
निकोलाई लेसचोव

1
क्या यह वही है जिसको तुम खोज रहे हो? askubuntu.com/questions/75895/…
सेठ

@ सेथ बिलकुल नहीं: मैं चाहूंगा कि अगर कुछ वाक्यविन्यास होगा जैसेsudo apt-get install xorg mate-core --without xterm mate-terminal
निकोलाई लेसचोव २०'१५

यदि आप aptitude(या कुछ ग्राफिकल पैकेज मैनेजर) का उपयोग करते हैं, तो आप (डी) चयन कर सकते हैं कि कौन से पैकेजों को स्थापित करना है, और यदि एक टूटी हुई निर्भरता में परिणाम होता है, तो एक स्पष्टीकरण (आमतौर पर) दिया जाएगा।
सियारकोट May५

जवाबों:


7

इसलिए, मेट-कोर इस बात पर निर्भर करता है mate-desktop-environment-coreकि बदले में किस पर निर्भर करता है mate-terminal। एक आश्रित को आसानी से तोड़ा नहीं जा सकता। apt-getऔर न ही aptitudeएक विकल्प --withoutया --excludeविकल्प का समर्थन करता है और "पकड़े" पैकेज मदद नहीं करेगा:

$ गूंज "मेट-टर्मिनल होल्ड" | सुडो dpkg - शुरुआत-चयन
$ सुडो एप्ट-गेट स्थापित मेट-कोर
[...]
कुछ पैकेज स्थापित नहीं किए जा सके ...
निम्नलिखित पैकेजों में कुछ निर्भरताएँ हैं:

ज़रूर, एक dpkg --force-dependsपैकेज को स्थापित करने के लिए उपयोग किया जा सकता है , लेकिन यह वह नहीं है जो आप चाहते हैं।

Depends:डमी पैकेज के साथ ध्वज को फुलफिल करने की संभावना होगी :

$ sudo apt-get इंस्टॉल इक्विव्स
$ समान-नियंत्रण मेट-टर्मिनल
$ vi मेट-टर्मिनल
धारा: मिस
प्राथमिकता: वैकल्पिक
मानक-संस्करण: 3.9.2
पैकेज: मेट-टर्मिनल
संस्करण: 1.8.0
विवरण: मेट-टर्मिनल के लिए डमी पैकेज
:एक्स

$ इक्वल-बिल्ड-मेट-टर्मिनल
$ sudo dpkg -i मेट-टर्मिनल_1.8.0_all.deb

अब mate-corew / o को स्थापित करने में सक्षम होना चाहिए mate-terminal। अन्य पैकेजों को बाहर करने के लिए उसी को दोहराएं।

बेशक यह काफी प्रयास है और एक --withoutविकल्प अच्छा होगा। हो सकता है कि भविष्य में इस तरह की कार्यक्षमता प्रदान करने के लिए एक विशलिस्ट बग खोला जा सके, लेकिन मुझे किसी तरह संदेह है कि इसे लागू किया जाएगा।

हालाँकि, MATE के लिए एक और मेटा पैकेज प्रदान करने के लिए पीपीए के मालिक को कम Dependsपैकेज के साथ एक और अधिक यथार्थवादी विकल्प दिया जाएगा ।


4

यदि आप aptitudeएक ग्राफिकल पैकेज मैनेजर (सिनैप्टिक, आदि) का उपयोग करते हैं, तो आप यह अनुमान लगा सकते हैं कि कौन से पैकेजों को तब तक स्थापित किया जाना चाहिए, जब तक कि यह निर्भरता समस्या का कारण न बने।

aptitudeपैकेज स्थापित करने से पहले (चित्रमय दृश्य में) इस मामले में , यह आपको दिखाएगा कि एक आश्रित पैकेज क्यों स्थापित किया जा रहा है। मेरे मामले में, मैं केडीई का उपयोग करता हूं, और इसलिए मेरे पास कोई मेट पैकेज नहीं है। यदि मैं इसे स्थापित करने के लिए कहता हूं mate-core, तो मुझे निम्नलिखित मिलेगा:

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

सूचना जो mate-coreमैन्युअल रूप से स्थापित होने के रूप में चिह्नित है, और कई अन्य पैकेज स्थापित किए जा रहे हैं। के लिए mate-terminalपैकेज, तल में, यह कहते हैं, " mate-desktop-environment-core[ब्रह्मांड] पर निर्भर करता है mate-terminal(> = 1.0.0)"। के लिए प्रविष्टि पर जा रहे हैं mate-desktop-environment-core,

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

" mate-core[ब्रह्मांड] निर्भर करता है mate-desktop-environment-core(> = 1.8.0 + 9)"। यही कारण mate-terminalहै कि स्थापित किया जा रहा है।

यदि, इसके बजाय, एक अनुशंसित पैकेज स्थापित किया जा रहा है (किसी चीज़ के बजाय जो किसी अन्य पैकेज पर निर्भर है), aptitudeतो आपको ऐसा बताएगा, और आप इसे किसी भी टूटी हुई निर्भरता के बिना उस पैकेज को स्थापित नहीं करने के लिए कह सकते हैं। उदाहरण के लिए:

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


2

एक और तरीका

मुख्य पैकेज डाउनलोड करें जो दूसरे पर निर्भर करता है। पैकेज निकालें, अवांछित निर्भरताओं को हटा दें, इसे दोहराएं। अब नए पैकेज को gdebi पैकेज इंस्टॉलर के साथ खोलें । यह आपके लिए नई निर्भरताएं स्थापित करेगा।

  • Depencies की सूची में पाया जा सकता DEBIAN / नियंत्रण -> निर्भर करता है
  • कैसे एक पीपीए बनाने के लिए पर मेरा जवाब देखें डीबग करने में मदद के लिए

0

एक विशेष है aptइस तरह के परिदृश्यों के लिए वाक्य रचना: एक पैकेज के लिए एक हाइफन (ऋण चिह्न) जोड़कर निकाल देंगे / इसे स्थापित है, तो आपके लिए निकटतम नहीं sudo apt-get install xorg mate-core --without xterm mate-terminal है sudo apt-get install xorg mate-core xterm- mate-terminal- (पर देखा /ubuntu//a/1011439/182923 )

यह इस मामले में मदद नहीं करेगा, जैसा कि आप में चला जाएगा

The following packages have unmet dependencies:
 mate-desktop-environment-core : Depends: mate-terminal (>= 1.20) but it is not going to be installed                                                                        
E: Unable to correct problems, you have held broken packages.

लेकिन यह आपके विशिष्ट प्रश्न का उत्तर प्रतीत होता है। तो संदर्भ के लिए, यह क्रॉस-पोस्ट।

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