经过各种 Linux 初学者的试验,我的 Kubuntu 系统不断告诉我,有些未使用的软件包不再需要,应该删除。这对我来说听起来是个好主意。
这是“apt-get -s autoremove”建议删除的内容:
freeglut3 fs-uae fs-uae-launcher gir1.2-gtksource-3.0 hwdata ipython kmymoney-common libalkimia4 libexosip2-11 libglee0d1 libgnome-desktop-2-17 libgtksourceview-3.0-1 libgtksourceview-3.0-common
libgwengui-cpp0 libgwengui-qt4-0 liblinphone5 libmediastreamer-base3 libofx6 libosip2-11 libosp5 libpanel-applet0 libportmidi0 libpyside1.2 libsdl-image1.2 libsdl-mixer1.2 libsdl-ttf2.0-0
libsensors-applet-plugin0 libshiboken1.2 libsmpeg0 linux-headers-3.19.0-15 linux-headers-3.19.0-15-generic linux-image-3.19.0-15-generic linux-image-extra-3.19.0-15-generic meld python-dulwich
python-fastimport python-numpy python-opengl python-pexpect python-pygame python-pyside python-pyside.phonon python-pyside.qtcore python-pyside.qtdeclarative python-pyside.qtgui python-pyside.qthelp
python-pyside.qtnetwork python-pyside.qtopengl python-pyside.qtscript python-pyside.qtsql python-pyside.qtsvg python-pyside.qttest python-pyside.qtuitools python-pyside.qtwebkit python-pyside.qtxml
python-simplegeneric python-svn
对于其中的大部分,我都不知道是在什么环境下安装的。但至少有一个包肯定不是闲置的:模拟器“fs-uae”是我手动安装的,我打算继续使用它。
为什么 apt-get 建议删除“fs-uae”包?有没有办法在不破坏任何东西的情况下进行清理,而不删除我需要的东西?
答案1
您可能已经知道,Linux 软件包可能会指定“依赖项”,即必须安装其他软件包才能使该软件包实际工作。这些依赖项是递归解析的,即软件包依赖项的依赖项也会被安装。这样,可能存在将安装整套软件的元软件包。常见示例是libreoffice
(办公套件)或kde-full
整个 KDE 桌面。
当 apt(Debian 包管理器)安装某个包时,它会将所有依赖项标记为自动安装。这样,它可以区分用户明确请求的包和仅仅作为依赖项引入的包(用户很可能根本不关心这些包)。
apt-get autoremove
查找标记为自动安装但不再被任何手动安装的软件包所需要使用的软件包。这些通常是库的旧版本(当库的版本包含在软件包名称中以允许不同版本共存时,例如libavcodec54
和libavcodec56
)或从存储库中删除的软件包,但有时一些有用的应用程序被作为依赖项引入然后被删除。这种情况尤其发生在您首先告诉 apt 安装推荐或建议的软件包,但随后将其配置为不将这些软件包作为依赖项引入时。
要从考虑删除的软件包列表中删除软件包,请手动将该软件包标记为已安装。您可以使用以下方法执行此操作apt-mark
:
apt-mark manual <package_name>
或 aptitude (以下命令等效,仅使用一个):
aptitude unmarkauto <package_name>
aptitude install <package_name>
aptitude install <package_name>&m
最后,要了解这些特定软件包的安装时间,您可以尝试在/var/log/apt/history.log
文件中搜索它们的名称。这些日志每月轮换一次(压缩并放在单独的文件中);要获取完整存档,您可以运行(不会保留顺序):
cat /var/log/apt/history.log > /tmp/full-archive
zcat history.log* >> /tmp/full-archive