错误行前缀“W:”是什么意思,就像来自 apt-get 或其他类似命令一样?

Ell*_*iew 2 apt error-handling

众所周知,这是一条警告消息,但这准确吗?

如果是这样,那么它记录在哪里?(我已经在手册页中搜索了 dpkg 和 apt-get 以及网络。我还尝试添加--quiet, 和--quiet --quiet选项,但它们似乎并没有使这些W: ...行保持沉默。)


这是否仅适用于 apt-get,还是更广泛地适用,例如通过某些标准 c 库或某些历史标准?


例如:

$ sudo apt-get source somepackage
...
W: Download is performed unsandboxed as root as file ...
Run Code Online (Sandbox Code Playgroud)

另外,它们是否有其他标准或类似的错误行前缀代码?

Kus*_*nda 6

apt(程序和软件集合apt-get)使用三个不同的前缀来区分诊断消息的类型或级别:

  1. E是为了错误。错误使程序无法继续运行。程序通常会因错误而终止。来自的典型错误消息aptE: Unable to correct problems, you have held broken packages
  2. W用于警告。警告是异常的情况,但不会阻止程序继续运行。来自的典型警告消息aptW: Some index files failed to download. They have been ignored, or old ones used instead
  3. N用于通知。通知是程序希望您注意的内容,但这不是警告。典型的通知aptN: There is 1 additional version. Please use the '-a' switch to see it.

传统上将终止处理的诊断消息称为“错误消息”,并且将不终止处理的诊断消息称为“警告消息”。然而,向用户呈现这些内容的方式可能因工具而异。

Unix 系统上的常见syslogd日志守护进程将日志消息分为严重性级别emergalertcriterrwarningnotice和(按严重性降序排列) infodebug即使该syslogd服务通常仅由系统服务和守护进程使用,我假设开发人员apt借用了N该部门的(“通知”)前缀。

日志消息的这些严重性级别标准的,因为它们是为使用POSIX 中的系统接口进行syslog()日志记录而定义的。在诊断消息中添加严重性前缀的方式apt我并不常见。但是,在编译器的诊断输出中常见“警告”和“错误”一词。

选项--quiet使apt-get程序的普通(非诊断)输出更加简洁。这与其他命令的类似选项的工作方式类似,并且程序通过选项禁用诊断输出的情况并不常见。