特別是在樹莓派(運行 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
...