क्या मैन्युअल रूप से जांचने का एक तरीका है कि कौन से अतिरिक्त पैकेज निकाले जा रहे हैं?


8

उदाहरण के लिए, मान लें कि मैं "libopenshot11" को हटाने की कोशिश करता हूं, मुझे यह मिलता है:

The following packages will be REMOVED:
  libopenshot11 openshot-qt python3-openshot

पहले बिना हटाए चलाए बिना मैं यह कैसे पता लगा सकता हूं?


apt-get remove libopenshot11 -s
grooveplex

जवाबों:


11

इसके लिए एक छोटी स्क्रिप्ट लिखने के लिए पायथन एपीटी एपीआई का उपयोग किया जा सकता है:

#! /usr/bin/python3
import sys
from apt import cache

c = cache.Cache()
for pkg in sys.argv[1:]:
    c[pkg].mark_delete()   

print('\n'.join(pkg.name for pkg in c.get_changes() if pkg.marked_delete))

उदाहरण:

$ apt-get remove -s bash | grep Remv  
Remv winusb [1.0.11+saucy1]
Remv gdm [3.18.3-0ubuntu2]
Remv gdm3 [3.18.3-0ubuntu2]
Remv bash [4.3-14ubuntu1.2] [inxi:amd64 lightdm:amd64 bash-completion:amd64 ]
Remv bash-completion [1:2.1-4.2ubuntu1.1] [inxi:amd64 lightdm:amd64 ]
Remv inxi [2.2.35-0ubuntu1] [lightdm:amd64 ]
Remv lightdm [1.18.3-0ubuntu1.1]

$ apt-cache rdepends bash --installed | sed '1,2d' | sort -u
  bash-completion
    bash:i386
  gdm3
  inxi
  lightdm
  winusb

$ ./check.py bash                                             
inxi
winusb
gdm
gdm3
bash
lightdm
bash-completion

अजगर का घोल बहुत साफ होता है। धन्यवाद!
जवाबशीकर

19

आप --simulateया -sविकल्प का उपयोग कर सकते हैं , जो आपको दिखाएगा कि एपीटी क्या करेगा जब आप वास्तव में कुछ भी किए बिना एक कमांड चलाते हैं, उदाहरण के लिए ...

$ sudo apt remove -s file
Reading package lists... Done
Building dependency tree        
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libfile-stripnondeterminism-perl libltdl-dev libmail-sendmail-perl libsys-hostname-long-perl po-debconf
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED
  cracklib-runtime debhelper dh-autoreconf dh-strip-nondeterminism file gdebi gdebi-core libtool lintian ubuntu-standard
0 to upgrade, 0 to newly install, 10 to remove and 0 not to upgrade.
Remv cracklib-runtime [2.9.2-3]
Remv dh-autoreconf [13] [debhelper:amd64 ]
Remv debhelper [10.2.2ubuntu1] [dh-strip-nondeterminism:amd64 ]
Remv dh-strip-nondeterminism [0.032-1]
Remv gdebi [0.9.5.7+nmu1]
Remv gdebi-core [0.9.5.7+nmu1]
Remv ubuntu-standard [1.379]
Remv file [1:5.29-3] [lintian:amd64 libtool:amd64 ]
Remv libtool [2.4.6-2] [lintian:amd64 ]
Remv lintian [2.5.50.1]

हम देख सकते हैं कि fileपैकेज को हटाना एक बहुत बुरा विचार होगा ...


किसने पहले पोस्ट किया था, आपने या अल्बान?
NoOneIsHere

@NoOneIsHere मुझे कुछ सेकंड के लिए: /
Zanna

ठीक है, मैंने आपके दोनों उत्तरों को अपदस्थ कर दिया है क्योंकि आपके पास उपयोग का विवरण है, और उसका (मुझे लगता है) मैन पेज है, लेकिन मुझे लगता है कि संयुक्त दो उत्तर स्वीकार किए गए से बेहतर हैं।
NoOneIsHere

@NoOneIsHere अगर अल्बान ने पोस्ट नहीं किया होता तो मैं अपने जवाब में मैन पेज डिटेल जोड़ सकता था। मुझे लगता है कि यह सरल समाधान होने की अधिक संभावना है कि लोग स्वीकार किए गए की तुलना में क्या उपयोग करेंगे, लेकिन स्वीकार ओपी का विवेक है, और मूरू का जवाब उन्नत वर्ग है :)
ज़न्ना

1
उन पैकेजों में से अधिकांश वास्तव में महत्वपूर्ण नहीं हैं, हालांकि मैं एक ऐसी स्थिति में पहुंच गया हूं, जहां ubuntu-standard को हटाने से बाद में जाने के लिए ऑटोरेमोव का कारण बनता है।
रैंडम 832

13

-sया --simulateविकल्प के लिए प्रयोग किया जाता है अनुकरण वास्तव में इसे चलाने के बिना किसी भी अपार्ट कार्य।

से आधिकारिक manpages :

 -s, --simulate, --just-print, --dry-run, --recon, --no-act
       No action; perform a simulation of events that would occur based on
       the current system state but do not actually change the system.
       Locking will be disabled (Debug::NoLocking) so the system state
       could change while apt-get is running. Simulations can also be
       executed by non-root users which might not have read access to all
       apt configuration distorting the simulation. A notice expressing
       this warning is also shown by default for non-root users
       (APT::Get::Show-User-Simulation-Note). Configuration Item:
       APT::Get::Simulate.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.