我已经安装了Ubuntu22.04和最小化的安装,然后我通过执行sudo unminimize来“模拟”它。但是,最初并不存在man包,因此触发了最初安装的包的mandb触发器。
其结果如下:
$ man ls
No manual entry for ls
$ man bash
No manual entry for bash对于一些软件包,这是通过重新安装它们来解决的:
$ man curl
No manual entry for curl
$ sudo apt-get reinstall curl
<...>
$ man curl
# Works!然而,对于一些实用程序来说,情况并非如此:
$ dpkg -S "$(which env)"
coreutils: /usr/bin/env
# Could be reinstalled with apt
$ dpkg -S "$(which bash)"
dpkg-query: no path found matching pattern /usr/bin/bash
# Could not因此,
ls、bash等)添加手册dpkg处理已安装的包的触发器?对于.deb文件,我已经看到了这样的选项,但对于已经安装的文件,却没有这样的选项。/bin和/usr/bin另外,ls和其他一些是由包coreutils提供的,但是/bin/和/usr/bin/目录中都有:
$ which ls
/usr/bin/ls
$ ll /usr/bin/ls
-rwxr-xr-x 1 root root 138208 Feb 7 16:03 /usr/bin/ls*
$ ll /bin/ls
-rwxr-xr-x 1 root root 138208 Feb 7 16:03 /bin/ls*
$ dpkg -L coreutils | grep /ls
/bin/ls
/usr/share/man/man1/ls.1.gzbash包将bash安装到/bin/bash中也是如此,但是PATH在/usr/bin/bash上找到了它
通过重新安装机器上的每一个软件包,我成功地解决了这个问题:
# WARNING: This will reinstall ALL EXISTING packages
$ apt list --installed 2>/dev/null | tail -n +2 | sed -E 's|^(.+)/.*$|\1|gm' | xargs sudo apt-get reinstall -y这导致了1小时的下载和安装、内核升级和重新启动,但问题最终得到了解决。
发布于 2022-05-25 10:33:00
如果我没有弄错,软件包中包含手册页,所以可能是手册页在那里,只是还没有在man索引数据库中编目。如果是这样的话,一个简单的sudo mandb应该找到所有丢失的手册页,并且问题应该得到解决。如果由于某种原因这不起作用,请尝试sudo mandb -c,这将迫使mandb从头开始重建整个索引数据库。
https://askubuntu.com/questions/1410529
复制相似问题