Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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?

share|improve this question
    
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

2 Answers 2

up vote 2 down vote accepted

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!
share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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