在使用sudo apt-get install
命令安装某些东西时,我不小心接受了命令
sudo apt-get install python3-
Run Code Online (Sandbox Code Playgroud)
(是的,我知道接受这一点很愚蠢,但我做了很多,我只是继续点击y
)。
通过执行命令,我删除了整个 Ubuntu 可视化桌面(我只有普通的 shell,但我现在恢复了可视化桌面)。我不知道我是否只是愚蠢,但我想提醒您不要使用该命令。
如果您能向我解释为什么会发生所发生的事情,请随时向我解释。
hee*_*ayl 22
这不是错误;这在man
页面中记录。Fromman apt-get
的install
第1节(强调我的):
如果将连字符附加到包名称(中间没有空格),则如果安装了已识别的包,则将删除该包。同样,加号可用于指定要安装的软件包。
所以,当你这样做时:
sudo apt-get install python3-
Run Code Online (Sandbox Code Playgroud)
你已经删除了这个python3
包和所有的依赖包(包括你提到的包)。
使固定:
首先,您可以安装ubuntu-desktop
元包以恢复默认桌面环境:
sudo apt-get install ubuntu-desktop
Run Code Online (Sandbox Code Playgroud)
现在,要重新安装已删除的软件包,请转到/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
Run Code Online (Sandbox Code Playgroud)
vid*_*rlo 11
不,你没有发现错误。来自man apt-get
:
如果将连字符附加到包名称(中间没有空格),则如果安装了已识别的包,则将删除该包。同样,加号可用于指定要安装的软件包。后面的这些功能可用于覆盖 apt-get 的冲突解决系统做出的决定。
这是故意的。我不确定这是一个好的设计,但在继续之前值得阅读 apt 提出的更改。
结合通配符,它有时可能会产生一些相当……壮观的结果。