어떤 추가 패키지가 제거 될지 수동으로 확인하는 방법이 있습니까?


8

예를 들어 "libopenshot11"을 제거하려고하면 다음과 같은 결과가 나타납니다.

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

apt remove를 먼저 실행하지 않고 어떻게 찾을 수 있습니까?


apt-get remove libopenshot11 -s
grooveplex

답변:


11

파이썬 APT API는 이에 대한 간단한 스크립트를 작성하는 데 사용할 수 있습니다 :

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

파이썬 솔루션은 매우 깨끗합니다. 감사!
answerSeeker

19

--simulate또는 -s옵션을 사용할 수 있습니다. 예를 들어 실제로 아무 것도하지 않고 명령을 실행할 때 APT가 수행 할 작업이 표시됩니다.

$ 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

@NoOneIs 몇 초 정도 나에게 : /
Zanna

좋아, 나는 당신의 사용법에 세부 사항이 있고 그의 (나는 가정한다) 맨 페이지를 가지고 있기 때문에 두 대답 모두를 찬성했지만 두 대답이 합쳐진 것보다 낫다고 생각한다.
NoOneIsHere

@NoOneIsAlban이 게시하지 않은 경우 맨 페이지 세부 정보를 내 답변에 추가했을 수 있습니다. 나는이 간단한 해결책이 사람들이 받아들이는 것보다 사람들이 사용할 것이라고 생각하지만, 수락은 OP의 재량이며, muru의 대답은 고급 클래스입니다 :)
Zanna

1
우분투 표준을 제거하면 후속 자동 제거가 방해가되는 상황에 들어 갔지만 대부분의 패키지는 실제로 중요하지 않습니다.
Random832

13

-s또는 --simulate옵션이 사용됩니다 시뮬레이션 실제로 그것을 실행하지 않고있는 APT 작업을.

로부터 공식 맨 :

 -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.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.