首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使文章读到MANPATH

如何使文章读到MANPATH
EN

Unix & Linux用户
提问于 2020-01-17 21:19:41
回答 1查看 168关注 0票数 1

我是一个系统上的无特权用户,所以我已经在我的主目录中安装了一些软件。除了将~/.local/usr/bin添加到PATH之外,我还将~/.local/usr/share/man添加到MANPATH中,以便查询这些包的手册页。

例如,其中一个命令是cgdb

man cgdb工作得很好,它是从我的MANPATH环境变量中获取手册。

但是apropos cgdb (man -k cgdbwhatis cgdb)不起作用。

代码语言:javascript
复制
$ apropos cgdb
cgdb: nothing appropriate

我在man apropos然后man whatis中读到,whatis数据库可以用makewhatis重新生成,但是这似乎只能由系统目录中的特权用户来完成。我无法在用户空间找到任何方法来做到这一点。

是否可以使用apropos (a.k.a. )。( man -k)在由非特权用户所指向的非系统目录( MANPATH )上?

FWIW:这在CentOS 6服务器上

代码语言:javascript
复制
$ uname -osrv
Linux 2.6.32-754.11.1.el6.x86_64 #1 SMP Tue Feb 26 15:38:56 UTC 2019 GNU/Linux
$ lsb_release -d
Description:    CentOS release 6.6 (Final)
EN

回答 1

Unix & Linux用户

发布于 2020-01-18 03:09:43

apropos通常会读取预生成的索引文件以提高速度,而不是搜索每个手册页。

这意味着每当添加手册页时,都需要更新索引文件。

在CentOS 6上,系统手册通过/etc/cron.daily/makewhatis.cron中的cron作业每晚更新。

现在,makewhatis可以使用-o标志来指定您自己的目录。但是它似乎不起作用..。

代码语言:javascript
复制
% makewhatis -v $HOME/man -o $HOME/man/whatis
about to enter /home/sweh/man
skipping /var/cache/man - whatis file is readonly
% cat man/whatis
% 

但是,makewhatis是一个脚本,所以可以复制它并修改它以指定一个新路径:

代码语言:javascript
复制
% diff mymakewhatis /usr/sbin/makewhatis 
69c69
< DEFWHATISDIR=$HOME/man
---
> DEFWHATISDIR=/var/cache/man

现在:

代码语言:javascript
复制
% ./mymakewhatis -v $HOME/man 
about to enter /home/sweh/man
adding /home/sweh/man/man1/smbsh.1

我们可以看到它现在有一个条目:

代码语言:javascript
复制
% cat man/whatis 
smbsh                (1)  - Allows access to remote SMB shares using UNIX commands

apropos的工作原理是:

代码语言:javascript
复制
% man -k smbsh
smbsh                (1)  - Allows access to remote SMB shares using UNIX commands
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/562691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档