我正在尝试删除一些未使用的包,但每次运行时sudo apt-get autoremove
,它都会要求输入是/否确认,然后终止。
昨天我将 shell 从 Zsh 切换到 Bash,从那时起我就一直遇到这些问题。我还观察到 Vim 中的尴尬行为;它会自动执行某些操作并打印一条消息
Press ENTER or type command to continue
我使用的是 Ubuntu 17.10。以下是autoremove
$ sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
libjemalloc1 libluajit-5.1-2 libluajit-5.1-common libmsgpackc2 libtermkey1 libunibilium0 libvterm0 neovim-runtime xsel
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
After this operation, 18.1 MB disk space will be freed.
Do you want to continue? [Y/n] Abort.
$
sudo apt upgrade
当提示确认时,我得到了相同的结果。传递-y
标志可以解决这个问题。
这里可能存在什么问题以及如何修复?
答案1
我最近在进行 apt 升级时遇到了同样的问题,它在要求 Y/N 确认后就中止了。
sudo apt 升级
我尝试了常用的解决方法,并尝试在新终端上进行升级。令人惊讶的是,它成功了。我意识到,这是该特定终端的问题。
在研究了为什么会发生这种情况后,我发现了这一点:
这表示如果 apt 命令无法从 stdin 获取交互式命令的输入,它将中止。
因此,可以使用sudo apt -y upgrade
跳过要求用户确认的解决方法。
答案2
不知何故你的 shell 不被识别为交互式外壳,这可能和你的 shell 变化有关。
作为修补程序,你可以使用开关apt
强制删除软件包--yes
apt-get --purge --yes autoremove
--purge
是可选的。