See 'man 7 undocumented' for help when manual pages are not available.

       在docker上安装Ubuntu后,发现没有安装man,执行 apt-get update && apt-get install man ,安装man,完成后,运行man man 会发现并没有出现预想中的情况,而是出现如下信息:

       No manual entry for man
       See 'man 7 undocumented' for help when manual pages are not available.

       这是什么情况?

       其实原因很简单,为了使镜像文件体积尽可能的小,所以Ubuntu版本在安装文件时,过滤掉了其中包含的文档内容,这部分配置是在/etc/dpkg/dpkg.cfg.d/excludes文件中声明的(执行man dpkg会有相关配置信息的说明,当然你要先把No manual entry for dpkg的问题解决)。打开该文件cat /etc/dpkg/dpkg.cfg.d/excludes,有如下内容:

# Drop all man pages
path-exclude=/usr/share/man/*

# Drop all documentation ...
path-exclude=/usr/share/doc/*

# ... except copyright files ...
path-include=/usr/share/doc/*/copyright

# ... and Debian changelogs
path-include=/usr/share/doc/*/changelog.Debian.*

       所以,只要删除该文件或注释掉path-exclude的部分,之后安装的应用,就可以使用man文档了。但是,之前的应用依然没有办法使用man文档,比如ls、sed等命令,所以如果你需要的话,可以重新安装所有的应用。

       使用dpkg -l查看所有安装的程序,用grep ^ii 过滤出所有安装成功的条目,用cut -d' ' -f3命令(因为状态标识ii和程序名之间有两个空格,所以要用f3)筛选出程序名,最后使用apt-get重新安装就好了,命令如下:

       dpkg -l | grep ^ii | cut -d' ' -f3 | xargs apt-get install -y --reinstall

       所以,整体的命令是这个样子的:

       rm /etc/dpkg/dpkg.cfg.d/excludes&&apt-get update&&dpkg -l | grep ^ii | cut -d' ' -f3 | xargs apt-get install -y --reinstall&&apt-get install man&&rm -r /var/lib/apt/lists/*

      当然,如果你已经安装了man那就不用apt-get install man这部分命令了,可以根据自己的需要执行相关命令。

      关于docker上CentOS环境下该问题的解决,点击这里

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值