"whatis" 명령이 작동하지 않는 이유는 무엇입니까?

"whatis" 명령이 작동하지 않는 이유는 무엇입니까?

명령 을 실행하면 whatis어떤 명령을 전달하더라도 "적절하지 않음"이 출력됩니다.

$ whatis grep
grep: nothing appropriate.

출력 whatis -d grep:

From the config file /etc/manpath.config:
  Mandatory mandir `/usr/man'.
  Mandatory mandir `/usr/share/man'.
  Mandatory mandir `/usr/local/share/man'.
  Path `/bin' mapped to mandir `/usr/share/man'.
  Path `/usr/bin' mapped to mandir `/usr/share/man'.
  Path `/sbin' mapped to mandir `/usr/share/man'.
  Path `/usr/sbin' mapped to mandir `/usr/share/man'.
  Path `/usr/local/bin' mapped to mandir `/usr/local/man'.
  Path `/usr/local/bin' mapped to mandir `/usr/local/share/man'.
  Path `/usr/local/sbin' mapped to mandir `/usr/local/man'.
  Path `/usr/local/sbin' mapped to mandir `/usr/local/share/man'.
  Path `/usr/X11R6/bin' mapped to mandir `/usr/X11R6/man'.
  Path `/usr/bin/X11' mapped to mandir `/usr/X11R6/man'.
  Path `/usr/games' mapped to mandir `/usr/share/man'.
  Path `/opt/bin' mapped to mandir `/opt/man'.
  Path `/opt/sbin' mapped to mandir `/opt/man'.
  Global mandir `/usr/man', catdir `/var/cache/man/fsstnd'.
  Global mandir `/usr/share/man', catdir `/var/cache/man'.
  Global mandir `/usr/local/man', catdir `/var/cache/man/oldlocal'.
  Global mandir `/usr/local/share/man', catdir `/var/cache/man/local'.
  Global mandir `/usr/X11R6/man', catdir `/var/cache/man/X11R6'.
  Global mandir `/opt/man', catdir `/var/cache/man/opt'.
  Global mandir `/snap/man', catdir `/var/cache/man/snap'.
  Added sections: `1', `n', `l', `8', `3', `2', `3posix', `3pm', `3perl', `3am', `5', `4', `9', `6', `7'.
path directory /usr/local/sbin is in the config file
  adding /usr/local/man to manpath
  adding /usr/local/share/man to manpath
path directory /usr/local/bin is in the config file
path directory /usr/sbin is in the config file
  adding /usr/share/man to manpath
path directory /usr/bin is in the config file
path directory /sbin is in the config file
path directory /bin is in the config file
path directory /usr/games is in the config file
path directory /usr/local/games is not in the config file
adding mandatory man directories
warning: /usr/man: No such file or directory
add_nls_manpaths(): processing /usr/local/man:/usr/local/share/man:/usr/share/man
checking for locale en_US.UTF-8
adding /usr/local/man to manpathlist
adding /usr/share/man to manpathlist
final search path = /usr/local/man:/usr/share/man
path=/usr/local/man
warning: can't read the fallback whatis text database /usr/local/man/whatis
path=/usr/share/man
warning: can't read the fallback whatis text database /usr/share/man/whatis
grep: nothing appropriate.

이 문제를 어떻게 해결할 수 있나요?

답변1

다음 메시지는 문제가 무엇인지 알려줍니다.

final search path = /usr/local/man:/usr/share/man
path=/usr/local/man
warning: can't read the fallback whatis text database /usr/local/man/whatis
path=/usr/share/man
warning: can't read the fallback whatis text database /usr/share/man/whatis
grep: nothing appropriate.

그리고 (사용하는 시스템에 따라 읽어야 할 맨페이지가 다릅니다), 하지만예를 들어:

색인 데이터베이스는 검색 중에 사용되며 mandb 프로그램에 의해 업데이트됩니다. 설치에 따라 일반 cron 작업으로 실행하거나 새 매뉴얼 페이지를 설치한 후 수동으로 실행해야 할 수도 있습니다. 상대 인덱스 데이터베이스에서 레거시 텍스트 Whatis 데이터베이스를 생성하려면 다음 명령을 실행하십시오.

whatis -M manpath -w '*' | sort > manpath/whatis

어디manpath맨 페이지 계층 구조입니다 /usr/man.

의 " " 파일이 whatis없거나 손상되었을 수 있습니다. 이를 다시 생성하면 문제가 개선됩니다./usr/local/man/usr/share/man

답변2

실행해 보면 mandb자동으로 이러한 항목이 생성됩니다. 매뉴얼 페이지를 수동으로 설치했지만 mandb가 설치되지 않은 경우 먼저 mandb를 설치하십시오.

관련 정보