4

After I ran man ls, it shows:

Man: find all matching manual pages
* ls (1)
ls (1p)
Man: What manual page do you want?
Man:

After I entered "1", it shows nothing but "Manual page ls(1) line ?/? (END)" on the status bar.

I guess that I haven't installed manual page for ls, so I ran manpath and get output below:

/usr/share/man:/usr/local/man:/usr/local/share/man

Right under directory /usr/share/man/man1/ I found gzip file ls.1.gz, which I think is the manual information of ls.

So why man ls shows nothing here?

  • What system are you using? Try man 1 ls or man -s 1 ls. – Keith Thompson Mar 14 '12 at 7:07
  • @KeithThompson: These two commands failed too. I'm using SLES 11. – xanpeng Mar 14 '12 at 7:13
  • 1
    Failed how exactly? zcat /usr/share/man/man1/ls.1.gz | head should show you 10 lines of text; one of the lines should be something similar to .TH LS "1" "February 2011" "GNU coreutils 8.5" "User Commands". And try zcat /usr/share/man/man1/ls.1.gz | nroff -man | less. – Keith Thompson Mar 14 '12 at 7:22
  • 1
    Do you have man aliased? What do alias man and which man tell you? – Mat Mar 14 '12 at 11:53
  • 2
    Try these: type -a man, /usr/bin/man ls – Keith Thompson Mar 14 '12 at 16:55
3

Thanks all for your suggestions.

I finally solved the problem and now man works.

Answer

Somebody installed both 64bit and 32bit version of glibc, which brings chaos I guess. After uninstall the 32bit version and reinstall 64bit version of glibc, man works.

== Detailed process ==

  • Ran mandb -t, lots of error messages showed up:

iconv_open ("UTF-8//IGNORE", "ISO-8859-1"): Invalid argument

  • By google I found that iconv_open is in gconv(ref).
  • strace mandb -t and strace man ls both show this information:

open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib64/gconv/gconv-modules", O_RDONLY) = -1 ENOENT (No such file or directory)

  • By google I found that gconv-modules may be very important to iconv, which might be very important to man. And gconv is in glibc, now the best guess is that my glibc is not installed correctly.
  • Ran rpm -qa | grep glibc, I got this:

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

  • Ran rpm -e --nodeps 32bit-PACKAGE to remove all the 32bit packages, then reboot the machine(Any other way beside reboot?).
  • Reinstalled all the 64bit glibc packages.
  • man ls, it worked!
-2

Finally the correct answer to this error as well:

QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed

It does not have anything to do with your installed fonts, but with missing glibc-packages.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.