防止 apt 输出被多余格式化

防止 apt 输出被多余格式化

当从“哑”终端(这是 Emacs 的代码词)使用时apt,它会产生许多行垃圾输出(它可能试图显示进度,但它在这种终端上不起作用)。

如果我尝试将此信息保存到文件中,也会发生同样的事情,这会导致日志崩溃,从而导致没有任何有用信息。

那么,有没有办法可以防止apt产生乱码输出?

我见过 SO 问题要求相反的问题,我认为这种行为是新的。因此,如果版本很重要,那就是:apt 1.4.6 (amd64)

答案1

对于脚本、哑终端等的使用,apt-get请参阅man apt

apt为包管理系统提供高级命令行界面。它旨在作为最终用户界面,与apt-get(8) 和apt-cache(8) 等更专业的 APT 工具相比,它默认启用了一些更适合交互式使用的选项。

脚本使用及与其他 APT 工具的区别

(8)命令apt行设计为最终用户工具,其行为可能会因版本不同而有所变化。虽然它试图不破坏向后兼容性,但如果更改似乎有利于交互使用,则也无法保证这一点。

(8)的所有功能在专用 APT 工具(如(8) 和(8))中也 apt可用。 (8) 只是更改了一些选项的默认值(参见(5),特别是二进制范围)。因此,您应该优先在脚本中使用这些命令(可能启用了一些附加选项),因为它们尽可能保持向后兼容性。apt-getapt-cacheaptapt.conf

答案2

更多差异aptapt-get比花哨的进度条之间,所以你可能需要关掉它同时保留所有其他差异:

sudo apt -o Dpkg::Progress-Fancy=0 action args...

一些资料显示Dpkg::Progress-Fancy="0",这很好,但相当于因为壳无论如何Dpkg::Progress-Fancy=0都不会膨胀,并且0引号被删除

您可能不想全局更改此设置,因为当您apt在 Emacs 之外运行时,您可能会想要漂亮的进度条。但是,您可以编写一个更短的命令来实现相同的目标,例如使用eshell 别名

相关内容