当在基于 rpm 的 Linux 发行版(RHEL/Red Hat、Fedora、CentOS 等)上使用时,dnf该yum实用程序将自动换行以使其更适合用户阅读。这是有问题的,因为它使得通过管道处理数据变得非常烦人。
例如:
$ dnf search jenkins-ssh-credentials-plugin-javadoc
Last metadata expiration check: 6 days, 15:30:08 ago on Thu Sep 1 21:09:10 2016.
============= N/S Matched: jenkins-ssh-credentials-plugin-javadoc =============
jenkins-ssh-credentials-plugin-javadoc.noarch : Javadoc for jenkins-ssh-credentials-plugin
$ dnf search jenkins-ssh-credentials-plugin-javadoc | grep ssh
====== N/S Matched: jenkins-ssh-credentials-plugin-javadoc =======
jenkins-ssh-credentials-plugin-javadoc.noarch : Javadoc for
: jenkins-ssh-credentials-plugin
Run Code Online (Sandbox Code Playgroud)
您可以看到,一旦 DNF 的输出通过,grep它就会决定以与通常向用户显示时完全不同的方式包装数据。
关于此行为已提交多个问题(#584525、#986740),并且这些问题始终被关闭,CLOSED NOTABUG因为“Yum 是一个基于交互式文本的 ui,不适合也不适合管道。”。红帽开发人员的解决方案是“使用不同的工具来完成这项工作”。
必须这样做似乎是不合理的,特别是当提供的方法(repoquery例如安装)甚至不存在于dnf实用程序中并且需要安装更多的软件包才能解析此数据的输出时。 …