我运行后man ls
,它显示:
Man: 查找所有匹配的手册页
* ls (1)
ls (1p)
Man: 您想要什么手册页?
男人:
当我输入“1”后,它只显示“手册页 ls(1) 行 ?/? (结尾)” 在状态栏上。
我想我还没有安装 的手册页ls
,所以我运行manpath
并得到下面的输出:
/usr/share/man:/usr/local/man:/usr/local/share/man
在目录下/usr/share/man/man1/
我发现了gzip文件ls.1.gz
,我认为这是ls
.
那么为什么man ls
这里什么也没有显示呢?
答案1
感谢大家的建议。
我终于解决了问题并且现在man
可以工作了。
回答
有人同时安装了 64 位和 32 位版本的glibc
,我猜这会带来混乱。卸载 32 位版本并重新安装 64 位版本后glibc
,man
可以使用。
==详细流程==
- Ran
mandb -t
,出现很多错误信息:
iconv_open(“UTF-8 //忽略”,“ISO-8859-1”):参数无效
- 通过谷歌我发现这
iconv_open
是在gconv
(参考)。 strace mandb -t
两者strace man ls
都显示此信息:
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (没有这样的文件或目录)
open("/usr/lib64/gconv/gconv-modules", O_RDONLY) = -1 ENOENT(没有这样的文件或目录)
- 通过google,我发现 gconv-modules 可能对 非常重要
iconv
,这对 可能非常重要man
。而 gconv 位于 中glibc
,现在最好的猜测是我的glibc
安装不正确。 - 兰
rpm -qa | grep glibc
,我得到了这个:
glibc-i18ndata-2.11.1-0.17.4
glibc-locale-2.11.1-0.17.4
glibc-info-2.11.1-0.17.4
glibc-html-2.11.1-0.17.4
glibc-profile-2.11。 1-0.17.4
glibc-devel-2.11.1-0.17.4
glibc-2.11.1-0.17.4
glibc-32bit-2.11.1-0.17.4
glibc-devel-32bit-2.11.1-0.17.4
glibc -locale-32bit-2.11.1-0.17.4
glibc-profile-32bit-2.11.1-0.17.4
- 跑
rpm -e --nodeps 32bit-PACKAGE
删除所有32位包,然后重新启动机器(除了重新启动之外还有其他方法吗?)。 - 重新安装了所有 64 位 glibc 软件包。
man ls
, 有效!
答案2
最后正确的也回答这个错误:
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
确实如此不是与您安装的字体有关,但与缺少 glibc-packages 有关。