すべてのmanページを無効にできますか?


13

特にRaspberry pi(Raspbian Wheezyを実行)では、一般的に、すべてのmanページを無効にできますか?

これは、保存されたmanページ、「man-dbのトリガーの処理」などがないことを意味します。マニュアルページは常にインターネットで利用できるので、実際にインストールする必要はありません。それらを生成して保存する必要はないようです。


マンページ自体に関しては、おそらく行き詰まっていると思います-それらは、一緒に使用するソフトウェアの議論の一部です。
Shadur 2014年

6
確かに、manページよりもスペース節約のためのより良い候補がありますか?
jasonwryan 2014年

ドキュメントとしてマークされたすべてのファイルや正規表現に一致するファイルをドロップするパッケージツールの構成を想像できます。ただし、この概念の実装については知りません。
PavelŠimerda2014年

節約できるのは、なんと、スペースの1%(おそらく実際には少ない)でしょうか。あなたも抑制すればおそらくもう少し/usr/share/doc
Gilles「SO-悪をやめる」

回答:


15

私は誰かがWandboardのためにまとめたDebian 8イメージで反対の問題を抱えていました。すでにインストールされているいくつかのパッケージのマニュアルページを見つけようとしたところ、debファイルに存在していても、新しいパッケージをインストールした後、マニュアルページが見つからないことに気付きました。

次に、このファイル01_nodocを/etc/dpkg/dpkg.conf.dで見つけました。これは、スペースが貴重な場合に、マニュアルページとロケールおよび著作権ファイルを削除してスペースを節約する方法に関する元の質問に対する簡単な解決策です(たとえば、埋め込みシステム)。

# /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

別の有用な回答はaskubuntu.com/a/401144/162384にあります。これは、優れた例に加えて、ドキュメントを参照しています。wiki.ubuntu.com
ReducingDiskFootprint#

6

問題は、パッケージ管理システムがインストールするファイル(manページを含む)がそこに残ることを期待しているため、それらを削除するために使用するメカニズム(HalosGhostが示唆するすべてのパッケージの再構築を除く)はそれを混乱させることになります。

目的が単一目的のアプライアンスを作成することである場合、実行できる1つのアプローチは、アプライアンスのビルドと展開のステップを個別に行うことです。つまり、必要なすべてのパッケージを個別のビルド環境(別のSDカード、またはエミュレートされたRPi)にインストールし、本番環境で必要なものだけをビルド環境から本番環境にコピーします。その段階で、manページなど、本番環境で不要なものはすべて除外できます。

アップグレードされたOSまたはセキュリティ修正プログラムを取得するには、ビルド環境をアップグレードまたは再構築し、本番環境に再度コピー(またはrsync)します。

これは少し手間がかかりますが、ログオンして直接アップグレードを実行する場合と比較して、非常に制御された運用デバイスを提供します。


5

まあ、あなたのRPiが実行しているディストリビューションがわからないので、正確なコマンドについてはお答えできませんがman-dbmanユーティリティとさまざまなmanページの両方を提供するパッケージを削除できます。ただし、すべてのmanページを削除するには、各パッケージから各manページを削除する必要があります。これは、KiBのスペースを節約するだけの価値があるとは思えません。

本当にしたい場合は、各パッケージを再ビルドする必要があります。ArchlinuxやGentooのようなディストリビューションでは、これは必ずしも不可能ではありませんが、それでもかなり退屈です。「実践的」ではない他のディストリビューションでは、このタスクが非常に難しい場合があります。


2
apt-get remove --purge man-dbアンインストールもdebhelper不要ですか?
rubo77 2015年

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パッケージが既に独自のMD5SUMSファイルをせずにインストールされた後、自動的にパッケージのためにmd5sumリストを生成するためのアクションをインストールします。..

同様のインストール後のアクションを追加して、各インストールアクションの後にマンページ(および情報ドキュメント)をスキャンして削除できます。

マンページと所有パッケージを取得するには、すべての/var/lib/dpkg/info/PACKAGENAME.listファイルをスキャンする必要があります。

*.list削除されたマンページについては言うまでもなく、ファイルも更新する必要があります。

localepurgeこれも部分的に行います。から引用apt-cache show localepurge

これは、不要なロケール、Gnome / KDEのローカリゼーション、およびローカライズされたmanページのために浪費されているディスク領域を回復するためのスクリプトです。インストールによっては、ローカライズ専用のディスク領域を200、300、またはさらにメガバイト節約できる可能性があり、ほとんどの場合使用できません。aptのインストール操作が完了すると自動的に実行されます。

最も重要な引用:

システムを使用してシステムを破壊した場合は、localepurgeを非難するようなバグの報告は絶対に控えてください。自分が何をしているかわからず、結果として生じた破損を自分で処理できない場合は、このパッケージを使用しないでください。

;-D

だから、完全なバックアップを作成して、あなたのmanpagekiller...


1
これも私が考えていた解決策です(それと、インストールしないでくださいman-db)。の/etc/dpkg.cfg.d直接の呼び出しを処理するために、APTではなくviaを介して呼び出し後フックを追加しますdpkg
Gilles「SO-邪悪なことをやめなさい」2014

いいね!パッケージごと(.deb)のアクションとしては、dpkgインストール後のアクションよりも簡単aptです。パッケージ名がわかり、すべての*.listファイルでマンページを何度もスキャンする必要がないためです。私もそれdpkgがフックを持っていることを忘れてしまいました...

うーん...しかし、このハンドラより前にインストールされているパッケージを処理するには、*.listファイルをスキャンする必要があります。それにもかかわらず、dpkg呼び出し後のフックは、そのアクションをトリガーするためのより良い場所です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.