我现在遇到一个情况,使用
apt-get autoremove
命令删除孤立的软件包列表中包含了一个我想保留的软件包。显然,我不小心删除了一个依赖于它的软件包。我该如何将这个软件包标记为明确需要的,以便apt-get autoremove
不会删除它?apt-get autoremove
命令删除孤立的软件包列表中包含了一个我想保留的软件包。显然,我不小心删除了一个依赖于它的软件包。我该如何将这个软件包标记为明确需要的,以便apt-get autoremove
不会删除它?apt-mark
命令。$ man apt-mark
...
manual
manual is used to mark a package as being manually installed, which will
prevent the package from being automatically removed if no other packages
depend on it.
sudo apt-mark manual <package-name>
autoremove
不会将其删除。sudo apt-mark auto <package-name>
autoremove
将会移除它。sudo apt-get install <package>
sudo apt-mark manual <package>
apt
不会重新安装,输出看起来就像:
$ sudo apt-get install tmux
Reading package lists... Done
Building dependency tree
Reading state information... Done
tmux is already the newest version.
tmux set to manually installed.
autoremove
之后“标记”许多软件包(然后再取消标记)。sed
/xargs
来处理它们。root@fptc-rsvrd:~# apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
libluajit-5.1-2 libluajit-5.1-common linux-headers-4.4.0-141 linux-headers-4.4.0-141-generic linux-headers-4.4.0-143 linux-headers-4.4.0-143-generic linux-headers-4.4.0-146 linux-headers-4.4.0-146-generic
linux-image-4.4.0-141-generic linux-image-4.4.0-143-generic linux-image-4.4.0-146-generic linux-image-extra-4.4.0-141-generic linux-modules-4.4.0-143-generic linux-modules-4.4.0-146-generic
linux-modules-extra-4.4.0-143-generic linux-modules-extra-4.4.0-146-generic linux-signed-image-4.4.0-141-generic pandoc-data
0 upgraded, 0 newly installed, 18 to remove and 19 not upgraded.
After this operation, 907 MB disk space will be freed.
如果我只想删除linux*
软件包,可以这样做:
root@fptc-rsvrd:~# apt-get autoremove -s | sed -ne 's/Remv \(linux[^[]*\)\[.*/\1/gp'
linux-headers-4.4.0-141-generic
linux-headers-4.4.0-141
linux-headers-4.4.0-143-generic
linux-headers-4.4.0-143
linux-headers-4.4.0-146-generic
linux-headers-4.4.0-146
linux-signed-image-4.4.0-141-generic
linux-image-extra-4.4.0-141-generic
linux-image-4.4.0-141-generic
linux-modules-extra-4.4.0-143-generic
linux-image-4.4.0-143-generic
linux-modules-extra-4.4.0-146-generic
linux-image-4.4.0-146-generic
linux-modules-4.4.0-143-generic
linux-modules-4.4.0-146-generic
xargs
作为命令行参数传递给简单的apt-get remove -y
非常容易。apt-get autoremove -s \
| sed -ne 's/Remv \(linux[^[]*\)\[.*/\1/gp' \
| xargs apt-get remove -y