防止 apt 输出的无关格式

wvx*_*xvw 6 apt emacs virtual-console

当使用apt从“哑”终端(这是为Emacs一个码字),它产生垃圾输出的多行(它可能尝试显示进度,但它不会对这种终端的工作)。

如果我尝试将这些信息保存到一个文件中,也会发生同样的情况,这会破坏没有提供任何有用信息的日志。

因此,有没有办法防止apt产生乱码输出?

我已经看到 SO 问题提出了相反的要求,我认为这种行为是新的。所以,如果版本很重要,那就是:apt 1.4.6 (amd64)

des*_*ert 10

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

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

脚本用法和与其他 APT 工具的区别

所述apt(8)的命令行被设计为最终用户工具也可能改变的版本之间的行为。虽然它试图不破坏向后兼容性,但如果更改似乎对交互式使用有益,则也不能保证。

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

  • @wvxvw 这是一个非常好的工具,只是 Emacs 似乎跟不上它。:) 如果你想为你的包管理提供漂亮的输出,试试 `aptitude` - 但是我不知道 Emacs 能处理多远。 (2认同)

Eli*_*gan 6

和之间有更多的差异,而不是花哨的进度条,因此您可能需要将其关闭,同时保留所有其他差异:aptapt-get

sudo apt -o Dpkg::Progress-Fancy=0 action args...
Run Code Online (Sandbox Code Playgroud)

一些资料显示Dpkg::Progress-Fancy="0",这很好,但相当于因为 shell无论如何Dpkg::Progress-Fancy=0都不会扩展,并且引号被简单地删除了0

您可能不想全局更改此设置,因为当您在aptEmacs 之外运行时,您可能需要精美的进度条。但是,您可以使用更短的命令来实现相同的目标,例如使用eshell alias