Có cách nào để tự kiểm tra những gói bổ sung nào sẽ bị xóa không?


8

Ví dụ: giả sử tôi cố gắng xóa "libopenshot11", tôi nhận được:

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

Làm thế nào tôi có thể tìm ra cái này mà không chạy apt remove trước?


apt-get loại bỏ libopenshot11 -s
grooveplex

Câu trả lời:


11

Các Python API APT có thể được sử dụng để viết một kịch bản ngắn cho việc này:

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

Thí dụ:

$ 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

Dung dịch trăn rất sạch. Cảm ơn!
answerSeeker

19

Bạn có thể sử dụng tùy chọn --simulatehoặc -stùy chọn, nó sẽ cho bạn thấy APT sẽ làm gì khi bạn chạy một lệnh mà không thực sự làm gì, ví dụ ...

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

Chúng ta có thể thấy rằng việc gỡ bỏ filegói sẽ là một ý tưởng rất tồi ...


Ai đăng đầu tiên, bạn hay Alban?
NoOneIsĐây là

@Không phải là tôi trong vài giây: /
Zanna

OK, tôi đã đánh giá cao cả hai câu trả lời của bạn bởi vì câu trả lời của bạn có chi tiết sử dụng và anh ấy (tôi giả sử) có trang man, nhưng tôi nghĩ rằng hai câu trả lời kết hợp tốt hơn câu trả lời được chấp nhận.
NoOneIs Vào

@NoOneIsHere nếu Alban chưa đăng tôi có thể đã thêm chi tiết trang người đàn ông vào câu trả lời của tôi. Tôi nghĩ giải pháp đơn giản này có nhiều khả năng là những gì mọi người sẽ sử dụng so với giải pháp được chấp nhận, nhưng chấp nhận là theo ý của OP và câu trả lời của muru là lớp nâng cao :)
Zanna

1
Hầu hết các gói đó không thực sự quan trọng, mặc dù tôi đã rơi vào tình huống loại bỏ tiêu chuẩn Ubuntu khiến cho chế độ tự động tiếp theo bị hỏng.
Random832

13

Các -shoặc --simulatetùy chọn được sử dụng để mô phỏng bất kỳ nhiệm vụ APT mà không thực sự chạy nó.

Từ các trang chính thức :

 -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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.