क्या मैं एप्टीट्यूड से हटा सकता हूं?


45

मुझे पता है कि मैं apt-get remove <package>एक कार्यक्रम को हटाने के लिए उपयोग कर सकता हूं ।

लेकिन aptखुद एक कार्यक्रम है। क्या मैं apt-get remove aptइसे हटाने के लिए उपयोग कर सकता हूं , या इसके माध्यम से भ्रमित भाग मिलेगा?


2
क्या यह एक वास्तविक या सिर्फ एक काल्पनिक सवाल है? मामले 1 में: इसे आज़माएं। Else: मुझे लगता है कि इसे हटाने के बाद इसके किसी भी घटक को लॉन्च करने की कोशिश नहीं करने पर यह खुद को शुद्ध करने में सक्षम होना चाहिए। पहले से खोली गई फ़ाइलों को समस्याओं के बिना हटाया जा सकता है।
बाइट कमांडर

@ByteCommander यह दोनों है, लेकिन मैं वास्तव में इसे अभी कोशिश नहीं कर सकता।
टिम

13
आप कर सकते हैं लेकिन आप शायद नहीं करना चाहिए । लिनक्स शायद ही कभी पूछता है कि इसका उपयोगकर्ता खुद को पैर में गोली क्यों मारना चाहता है, यह मानता है कि आपके पास एक अच्छा कारण है और आपको ट्रिगर खींचने की अनुमति देता है ...
Shadur

1
पूर्णता के लिए, Fedoras का dnf आपको ऐसा नहीं करने देगा। # dnf remove dnf Dependencies resolved. Error: The operation would result in removing the following protected packages: dnf.
डेविड

क्या एक दिलचस्प बुराई सवाल है! एक तार्किक अनुवर्ती है: क्या आप इससे उबर सकते हैं, या इसके लिए पूर्ण पुन: स्थापना की आवश्यकता है?
KlaymenDK

जवाबों:


78

APT आपको विकल्प का उपयोग करके अपने आदेशों का अनुकरण करने देता है -s। आप स्वयं इसे आज़मा सकते हैं, आदेश जारी कर सकते हैं apt-get -s remove apt(कोई sudoज़रूरत नहीं )।

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

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

तो जवाब होना चाहिए: हाँ, आप कर सकते हैं।


8
मुझे यकीन नहीं है कि apt का सिमुलेट मोड कुछ इस तरह के लिए पूर्ण फॉलआउट को कवर करता है। निश्चित रूप से यह एक एज केस होगा जिसे कोड एड्रेस कर सकता है या नहीं।
स्परहॉक

12
इसकी आवश्यकता नहीं है sudo( -sमोड में कोई बदलाव नहीं होता है), इसलिए एहतियात के बिना इसे चलाना बेहतर है sudo
फेक नेम

3
एप्ट अच्छी तरह से यह निर्धारित करने में सक्षम हो सकता है कि एप्ट को कैसे हटाया जाए। लेकिन क्या यह वास्तव में कर सकता है? यह कल्पना करना आसान है कि यह उस फ़ाइल को हटा सकता है जिसे बाद में निर्भर करता है, स्थापना को असंगत स्थिति में छोड़ देता है।
user253751

1
@ मिनीबिस मैं dpkg को हटाने के बारे में अधिक चिंतित हूँ। Apt ही खुद dpkg को बताता है कि क्या करना है, dpkg वास्तव में (अन) इंस्टॉलेशन क्या करता है।
रैंडम 832

1
तो अगर
ap

30

आप ऐसा कर सकते हैं...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

और चेतावनी दी जाएगी कि आप बहुत विनाशकारी कुछ करने वाले हैं। मुझे कहना होगा ... संकुल की सूची अंतरिक्ष की बचत के लिए भयावह लगती है तो 6000kb: D

यह खत्म हो जाता है लेकिन "एप्ट-गेट" का उपयोग करने का कोई तरीका नहीं है। उबंटू सॉफ्टवेयर सेंटर अब काम नहीं करेगा और आपको पैकेज प्रबंधक को फिर से स्थापित करने के लिए "और dpkg" का उपयोग करने की आवश्यकता होगी (और मैन्युअल रूप से सभी निर्भरताओं को स्थापित करने की आवश्यकता है)।


12
पैकेज प्रबंधक को फिर से स्थापित करने के लिए "और dpkg" का उपयोग करने की आवश्यकता होगी (और मैन्युअल रूप से सभी निर्भरताएं स्थापित करने की आवश्यकता है) , इसलिए दूसरे शब्दों में,sudo apt-get remember-what-2002-was-like
15:17 पर उपयोगकर्ता 1717828

क्या आप एक लाइव सीडी में बूट नहीं कर सकते, chrootऔर फिर apt-getआर्क की तरह?
१।

1
@Sparhawk सुनिश्चित नहीं हैं कि आप क्या लक्ष्य कर रहे हैं; चेरोट करने के बाद, आप अपने सामान्य सिस्टम की जड़ में हैं, और आप वहां पहुंच जाएंगे, जिसे आपने हटा दिया था। मुझे लगता है कि apt-get (या शायद यह dpkg है) एक वैकल्पिक रूट डायरेक्टरी को निर्दिष्ट करने की अनुमति देता है, लेकिन मैं जल्दी से यह नहीं जान सकता कि आप ऐसा कैसे करेंगे।
बजे एक CVn

कोई भी पैकेज जो इसे हटाता है, विशेष रूप से "डरावना" आईएमओ को छोड़कर, ज़ाहिर है, स्वयं को।
रैंडम 832

@ MichaelKjörling मैं सोच रहा था कि आप apt-getनई "रूट" में स्थापित करने के लिए मैनुअल पथ को चला सकते हैं , लेकिन मैं भूल गया कि आपको सभी कॉन्फ़िगरेशन / कैश फ़ाइलों की भी आवश्यकता होगी। आपका संभावित सुझाव निश्चित रूप से साफ-सुथरा होगा हालांकि (यदि वह विकल्प है)।
११

12

एक बार, जब मैं कोरउबंटू चला गया था, तो मैंने स्रोत से एक छोटी गाड़ी का पैकेज स्थापित aptकिया था, जो निर्धारित किया गया था apt। अगली बार जब मैं भागा apt autoremove, तो मैंने वास्तव में हटाए जाने वाले सॉफ्टवेयर की सूची को नहीं देखा और सूची में aptथा।

अगली बार जब मैंने टाइप किया apt install <package-name>और पाया तो मेरे आश्चर्य की कल्पना कीजिए The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt

सौभाग्य से, यदि किसी कारण से, autoremoveमें से किसी को नहीं निकाला aptकी निर्भरता तो सब मैं था नहीं था wget apts ' .debसंग्रह और पुनर्स्थापना का उपयोग कर dpkg -i


के रूप में अन्य उत्तर में दिखाया गया है, अगर आप को दूर apt के साथ apt , आप और अधिक मुसीबत में क्योंकि निर्भरता यह संकल्प करने की कोशिश करता हो जाएगा।

मुझे यह दिलचस्प लगता है लेकिन यह वास्तव में मामला है कि (निश्चित रूप से डेबियन के लिए, और शायद फेडोरा / ओपनएसयूएसई एक हद तक?) कई आधुनिक डिस्ट्रो को परिभाषित किया गया है और उनकी पसंद के पैकेज मैनेजर द्वारा प्रदान की गई बुनियादी सुविधाओं पर बनाया गया है।


5
मुझे aptविश्वास है कि इस निर्भरता को दूर करने का कारण यह नहीं है कि आपने जो बग्गी पैकेज स्थापित किया है, उन्हें आवश्यक रूप से सूचीबद्ध किया है। समझ में आता है कि अगर उस पैकेज को प्रतिस्थापन के रूप में लिया गया था।
दिमित्री ग्रिगोरीव

5

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

एप्ट के बिना भी आप पैकेज स्थापित करने, हटाने या अपग्रेड करने के लिए dpkg का उपयोग कर सकते हैं, बस यह निर्भरता को ट्रैक करने और आवश्यक उन्नयन के लिए अधिक दर्दनाक होगा, जो कि apt का raison d'être है।


हाँ, उपयुक्त वास्तव में के लिए सिर्फ एक सरल दृश्य है dpkg, और यदि आप हटाते हैं dpkgतो क्या यह वास्तव में उबंटू है?
बिल्ली

@ मुझे लगता है कि यह अभी भी होगा ... जब तक आप पैकेज को शुद्ध नहीं करते हैं या /var/lib/dpkg/statusफ़ाइल को हटाते हैं। आप चाहें तो dpkg को रिकवर भी कर सकते हैं।
ब्रिअम

1

निःसंदेह तुमसे हो सकता है। Apt और dpkg खुद पैकेज हैं, और वे स्वयं के माध्यम से अपडेट होने में सक्षम हैं, इसलिए हटाने के लिए प्रावधान हैं; अन्यथा /var/lib/dpkg/info/dpkg.prermऔर /var/lib/dpkg/info/dpkg.postrmमौजूद होने का कारण नहीं होगा :)

यदि आपने गलती से उन्हें dpkg के बिना छोड़ दिया है, तो भी आप मैन्युअल रूप से dpkg के लिए .deb संग्रह को अनपैक कर सकते हैं, जब तक कि आपको binutils, tar, gzip / bzip2 से छुटकारा नहीं मिलता।

--purgeयद्यपि उपयुक्त टूलचैन के साथ शामिल किसी भी पैकेज पर आप बुरा समस्याएं दे सकते हैं; क्या कुछ फ़ाइलों का मालिक है यह बताने में मुश्किल है /var/lib/dpkg। यदि /var/lib/dpkg/statusहटा दिया गया और कोई वर्तमान बैकअप नहीं था, तो हाँ, पैकेज प्रबंधक उस सिस्टम पर मरम्मत से परे होगा।


-1

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

एक और दिलचस्प सवाल है - अगर आप अनइंस्टॉल करते हैं तो क्या होगा dpkg? निश्चित रूप से पर्याप्त है, dpkgएक पैकेज के रूप में सूचीबद्ध है apt, लेकिन मैं इसे अब अनइंस्टॉल करने की कोशिश नहीं करने जा रहा हूं (फिलहाल वर्चुअल मशीन स्थापित नहीं हुई है)। सैद्धांतिक रूप से कोई भी इसे dpkgअपने साथ अनइंस्टॉल कर सकता है। मैं एक शिक्षित अनुमान लेने जा रहा हूं कि इसे फिर से स्थापित करने का एकमात्र तरीका मैन्युअल रूप से ऐसा करना होगा, फिर आशा है कि यह मौजूदा कॉन्फ़िगरेशन फ़ाइलों को चुनता है (इसलिए आपको सिस्टम को फिर से सभी को मैन्युअल रूप से बताने की आवश्यकता नहीं है। क्या पैकेज स्थापित हैं) और फिर यह बताएं कि पैकेज dpkgअब फिर से स्थापित हो गया है।


(एक मजाक :) एक डेबियन उपयोगकर्ता के बराबर # rm -rf /है # apt-get purge ".*"


यदि आधिकारिक वितरण पैकेज से आने वाली कोई भी चीज / usr / लोकल / बिन में समाप्त होती है, तो उस पैकेज के खिलाफ बग दर्ज करें।
रैकैंडबॉमनमैन

बात यह है कि यह एक पैकेज से नहीं आ रहा था; इसे "apt-get remove apt" और "apt-get remove dpkg" समस्याओं से बचने के एक्सप्रेस उद्देश्य के साथ पैकेज मैनेजर से अलग से स्थापित किया गया था। मुझे लगता है कि यह वास्तव में लिनक्स टकसाल था, जिसे मैं अपने मुख्य सिस्टम के रूप में उपयोग करता था।
जॉनसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.