在使用sudo apt-get install
命令安装某些东西时,我意外地接受了命令
sudo apt-get install python3-
(是的,我知道接受这一点很愚蠢,但我已经做了很多次了,我只是继续点击y
)。
通过执行该命令,我删除了整个 Ubuntu 可视化桌面(我只有普通的 shell,但现在我已经恢复了可视化桌面)。我不知道我是不是太笨了,但无论如何,我想让你意识到你不应该使用该命令。
如果你能向我解释为什么会发生这件事,请随时向我解释。
答案1
这不是一个错误;这在页面中有记录man
。来自man apt-get
install
第1节(重点是我的):
如果在软件包名称后附加连字符(中间没有空格),则表示所安装的软件包将被删除。类似地,可以使用加号来指定要安装的包。
因此,当你这样做时:
sudo apt-get install python3-
您已删除该python3
软件包及其所有依赖软件包(包括您提到的软件包)。
使固定:
首先,您可以安装ubuntu-desktop
元包以恢复默认桌面环境:
sudo apt-get install ubuntu-desktop
现在,重新安装已删除的软件包,请转到/var/log/apt/history.log
,选择软件包,然后运行sudo apt-get install
它们。
您可能还想了解一下/var/log/dpkg.log
。
1如果你有less
传呼机,你可以直接man
转到以下install
部分:man apt-get
LESS='+/^[[:blank:]]+install' man apt-get
答案2
不,你没有发现错误。来自man apt-get
:
如果在软件包名称后附加连字符(中间没有空格),则已安装的已识别软件包将被删除。同样,可以使用加号来指定要安装的软件包。后面这些功能可用于覆盖 apt-get 冲突解决系统做出的决定。
这是故意的。我不确定这是不是好的设计,但在继续操作之前,值得阅读一下 apt 提出的更改。
结合通配符它可能有时会产生一些相当……惊人的结果。