当提示确认时,APT 直接进入“中止”

当提示确认时,APT 直接进入“中止”

我正在尝试删除一些未使用的包,但每次运行时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-get 会自动中止,就像我按了“N”一样?

这表示如果 apt 命令无法从 stdin 获取交互式命令的输入,它将中止。

因此,可以使用sudo apt -y upgrade跳过要求用户确认的解决方法。

答案2

不知何故你的 shell 不被识别为交互式外壳,这可能和你的 shell 变化有关。

作为修补程序,你可以使用开关apt强制删除软件包--yes

apt-get --purge --yes autoremove

--purge是可选的。

相关内容