为了安装cuda
,我复制粘贴了一些apt-get install
软件包。由于未知原因,我最终运行的行如下:
sudo apt-get install libgtk2.0-
结果是许多软件包被删除了。随机挑选几个:
libreoffice-*
python-*
xfce4-*
列表非常长。相当多的系统部件已被卸载。现在,这似乎与我运行时的预期存在严重偏差apt-get install
。
到底是怎么回事?
答案1
问题如下(来自man apt-get
):
安装
install 后面跟着一个或多个需要安装或升级的软件包。每个软件包都是一个软件包名称,而不是完全限定的文件名(例如,在 Debian 系统中,提供的参数是 apt-utils,而不是 apt-utils_0.9.12.1_amd64.deb)。还将检索和安装指定安装软件包所需的所有软件包。/etc/apt/sources.list 文件用于查找所需的软件包。如果在软件包名称后附加了连字符(中间没有空格),则安装后将删除所标识的软件包。类似地,可以使用加号来指定要安装的软件包。后面这些功能可用于覆盖 apt-get 冲突解决系统做出的决定。
因此,在软件包名称末尾添加连字符意味着“删除该软件包”。具体来说,在你的情况下,它会删除这些:
Note, selecting 'libgtk2.0-doc' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-cil' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-bin' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-common' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-0' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-cil-dev' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-0-dbg' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-dev' for regex 'libgtk2.0'
换句话说,你删除了整个 gtk2 库集,并且很多的程序依赖于 gtk2。因此,很多的程序已被删除。
所以,这不是一个错误。诚然,如果你不知道,这是一个令人惊讶的行为,但它是有文档记录的,也是有意为之的。
答案2
查看 /var/log/apt/history.log 以查看具体删除了哪些内容。然后,只需重新安装这些软件包即可。