我已经安装了 22.04 LTS Ubuntu Server 作为最小安装并安装了以下软件包:
vim man-db manpages dialog bash-completion screen
现在当我运行时man ls
,ubuntu 要求我运行unminimize
命令,尽管 man 包已经安装:
$ dpkg -l | egrep "man-db|manpages"
ii isc-dhcp-common 4.4.1-2.3ubuntu2.1 amd64 common manpages relevant to all of the isc-dhcp packages
ii man-db 2.10.2-1 amd64 tools for reading manual pages
ii manpages 5.10-1ubuntu1 all Manual pages about using a GNU/Linux system
目录/usr/share/man/man1
为空:
$ ls /usr/share/man/man1
$ man -w ls
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, including manpages, you can run the 'unminimize'
command. You will still need to ensure the 'man-db' package is installed.
和mandb
输出:
$ sudo mandb
Purging old database entries in /usr/share/man...
Processing manual pages under /usr/share/man...
Purging old database entries in /usr/share/man/id...
Processing manual pages under /usr/share/man/id...
...
Processing manual pages under /usr/local/man...
mandb: can't update index cache /var/cache/man/oldlocal/8087: No such file or directory
0 man subdirectories contained newer manual pages.
0 manual pages were added.
0 stray cats were added.
0 old database entries were purged.
$
最奇怪的是:
$ ls $(dpkg -L coreutils | grep man1/ls.1)
ls: cannot access '/usr/share/man/man1/ls.1.gz': No such file or directory
发现这个:
$ dpkg -S bin/man
man-db: /usr/bin/manpath
local diversion from: /usr/bin/man
local diversion to: /usr/bin/man.REAL
man-db: /usr/bin/man
local diversion from: /usr/bin/man
local diversion to: /usr/bin/man.REAL
man-db: /usr/bin/mandb
man-db: /usr/bin/man-recode
$ head $(which man)
#!/bin/sh
echo "This system has been minimized by removing packages and content that are"
echo "not required on a system that users do not log into."
echo ""
echo "To restore this content, including manpages, you can run the 'unminimize'"
echo "command. You will still need to ensure the 'man-db' package is installed."
$ man.REAL -w ls
No manual entry for ls
如何在不最小化 Ubuntu 的情况下解决这个问题?
“最小化”的 Ubuntu 在 中制定了一些规则
/etc/dpkg/dpkg.cfg.d/excludes
,其中包括排除man
和安装所有联机帮助页。它还将man
二进制文件切换为输出您看到的有关最小化 Ubuntu 的消息的文件。您可以编辑该文件/etc/dpkg/dpkg.cfg.d/excludes
并注释掉以下行:然后,您可以
apt update
安装man
并manpages