每当我尝试打开一个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
似乎不包含与此相关的任何选项。
我可能意外破坏了什么导致出现此错误?
我已经验证了和的哈希值man
与nroff
安装在另一个系统上的版本相同,没有问题,因此二进制文件本身不会被破坏。
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
开始时任何环境变量都会延续。bash
zsh
具体来说,我在运行 Arch 的服务器上配置彩色手册页后添加了这一行export MANROFFOPT="-P -c"
,并认为我也可以对我的 PC 做同样的事情。但由于 Arch 使用的是较新版本,所以nroff
事情发生了变化。然后我一个月没有在 PC 上使用 man,忘记了我所做的更改。