man 调用 nroff 时使用无效选项 -P

man 调用 nroff 时使用无效选项 -P

每当我尝试打开一个man页面时,都会收到一个错误:

$ man man
man: command exited with status 1: (cd /usr/share/man && /usr/libexec/man-db/zsoelim) | (cd /usr/share/man && /usr/libexec/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /usr/share/man && preconv -e UTF-8) | (cd /usr/share/man && tbl) | (cd /usr/share/man && nroff -mandoc -rLL=205n -rLT=205n -P -c -Tutf8)

为了了解这些命令中的哪一个返回了1,我手动运行它们并发现nroff抱怨该-P选项无效。

$ cat /usr/share/man/man1/man.1.gz | (cd /usr/share/man && /usr/libexec/man-db/zsoelim) | (cd /usr/share/man && /usr/libexec/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /usr/share/man && preconv -e UTF-8) | (cd /usr/share/man && tbl) | (cd /usr/share/man && nroff -mandoc -rLL=205n -rLT=205n -P -c -Tutf8)
/usr/bin/nroff: invalid option -P

如果我将大写字母替换-P为小写字母-p,命令就可以正常运行并打印相应的手册页。

/etc/manpath.config似乎不包含与此相关的任何选项。

我可能意外破坏了什么导致出现此错误?

我已经验证了和的哈希值mannroff安装在另一个系统上的版本相同,没有问题,因此二进制文件本身不会被破坏。

man我应该在哪里配置调用的参数nroff

根据要求输出type -a man

$ type -a man
man is /usr/bin/man
man is /bin/man

文件/usr/bin/man/bin/man相同,运行它们会产生相同的错误消息。

答案1

感谢@Raffa 发现此问题,

我正在使用zsh,但当我打开时bash问题仍然存在,所以我想我可以排除我的。我没有考虑到当我从zsh.rc开始时任何环境变量都会延续。bashzsh

具体来说,我在运行 Arch 的服务器上配置彩色手册页后添加了这一行export MANROFFOPT="-P -c",并认为我也可以对我的 PC 做同样的事情。但由于 Arch 使用的是较新版本,所以nroff事情发生了变化。然后我一个月没有在 PC 上使用 man,忘记了我所做的更改。

相关内容