特别是在树莓派(运行 Raspbian Wheezy)上,而且一般而言,我可以禁用所有手册页吗?
这意味着没有存储的手册页,没有“man-db 的处理触发器”,等等。由于手册页始终可以在互联网上获得,因此我实际上不需要安装它们,并且生成和存储它们似乎没有必要。
答案1
我在 Debian 8 映像上遇到了相反的问题,有人为 Wandboard 整理了该映像。我试图找到一些已安装的软件包的手册页,并注意到在安装一些新软件包后,手册页丢失了,即使它们存在于 deb 文件中。
然后我在 /etc/dpkg/dpkg.conf.d 中找到了这个文件 01_nodoc,这是一个简单的解决方案,解决了如何通过删除空间非常宝贵的手册页、语言环境和版权文件来节省空间的原始问题(例如嵌入式系统)。
# /etc/dpkg/dpkg.conf.d/01_nodoc
# Delete locales
path-exclude=/usr/share/locale/*
# Delete man pages
path-exclude=/usr/share/man/*
# Delete docs
path-exclude=/usr/share/doc/*
path-include=/usr/share/doc/*/copyright
答案2
问题是包管理系统希望它安装的文件(包括手册页)保留在那里,所以无论你使用什么机制来删除它们(除了按照 HalosGhost 建议重建每个包)都会让它感到困惑。
如果您正在做的是生产单一用途的设备,则可以采取的一种方法是为该设备采用单独的构建和部署步骤。也就是说,您在单独的构建环境(不同的 SD 卡或模拟 RPi)中安装所需的所有软件包,然后仅将生产环境中所需的内容从构建环境复制到生产环境。在此阶段,您可以省略手册页和生产中不需要的任何其他内容。
为了获取升级的操作系统或安全修复程序,您需要升级或重建构建环境并再次复制(或 rsync)到生产环境。
这需要做更多的工作,但与直接登录并运行升级相比,它为您提供了一个非常受控的生产设备。
答案3
好吧,由于不知道您的 RPi 正在运行哪个发行版,我无法帮助您使用确切的命令,但您可以删除man-db
提供man
实用程序和各种手册页的软件包。然而,删除所有手册页需要从每个包中删除每个手册页 - 我无法想象这值得您花时间仅仅为了节省 KiB 的空间。
如果你真的想要,那么你需要重建每个包;在像 Archlinux 或 Gentoo 这样的发行版上,这不一定是不可能的,但仍然相当乏味。在其他不太“实践”的发行版上,您可能会发现这项任务非常困难。
答案4
$ cat /etc/apt/apt.conf.d/90debsums
DPkg::Post-Invoke { "if [ -x /usr/bin/debsums ]; then /usr/bin/debsums --generate=nocheck -sp /var/cache/apt/archives; fi"; };
该软件包debsums
安装一个操作,在安装软件包后自动生成软件包的 md5sum 列表,但尚未拥有自己的 md5sums 文件。
您可以添加类似的安装后操作,在每次安装操作后扫描并删除手册页(和信息文档)。
要获取联机帮助页和所属软件包,您需要扫描所有/var/lib/dpkg/info/PACKAGENAME.list
文件。
您应该更新这些*.list
文件,更不用说已删除的手册页了。
localepurge
部分也这样做。引用自apt-cache show localepurge
:
这是一个脚本,用于恢复因不需要的语言环境、Gnome/KDE 本地化和本地化手册页而浪费的磁盘空间。根据安装情况,可以节省大约 200、300 甚至更多兆字节的专用于本地化的磁盘空间,而您很可能永远不会用到这些空间。它会在完成任何 apt 安装操作后自动运行。
最重要的引用:
如果您使用 localepurge 破坏了系统,请绝对不要报告任何此类错误。如果您不知道自己在做什么并且无法自行处理由此造成的任何损坏,那么请不要使用此软件包。
;-D
因此,只需进行完整备份并尝试写入您的manpagekiller
...