Existe-t-il un moyen de vérifier manuellement les packages supplémentaires qui seront supprimés?

8

Par exemple, disons que j'essaie de supprimer "libopenshot11", j'obtiens:

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

Comment puis-je le savoir sans exécuter apt remove en premier?

answerSeeker
la source
apt-get remove libopenshot11 -s
grooveplex

Réponses:

11

L' API Python APT peut être utilisée pour écrire un court script pour cela:

#! /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))

Exemple:

$ 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
muru
la source
La solution python est très propre. Merci!
answerSeeker
19

Vous pouvez utiliser l' option --simulateou -s, qui vous montrera ce que fera APT lorsque vous exécuterez une commande sans rien faire, par exemple ...

$ 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]

Nous pouvons voir que la suppression du filepaquet serait une très mauvaise idée ...

Zanna
la source
Qui a posté en premier, toi ou Alban?
NoOneIsHere
@NoOneIsHere moi de quelques secondes: /
Zanna
OK, j'ai voté pour vos deux réponses parce que la vôtre a des détails d'utilisation, et la sienne (je suppose) a la page de manuel, mais je pense que les deux réponses combinées sont meilleures que la réponse acceptée.
NoOneIsHere
@NoOneIsHere si Alban n'avait pas posté, j'aurais peut-être ajouté le détail de la page de manuel à ma réponse. Je pense que cette solution simple est plus susceptible d'être ce que les gens utiliseront que celle acceptée, mais accepter est la discrétion d'OP, et la réponse de muru est la classe avancée :)
Zanna
1
La plupart de ces packages ne sont pas vraiment importants, bien que je sois entré dans une situation où la suppression d'ubuntu-standard provoque une suppression automatique ultérieure.
Random832
13

L' option -sou --simulateest utilisée pour simuler n'importe quelle tâche APT sans l'exécuter réellement.

Depuis les pages de manuel officielles :

 -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.

la source