Linuxディストリビューションを構築しており、バイナリなどを削除しました。システムは、GCCや開発ツールを使用しません。これはChromeキオスクなので、システムを削除できれば非常に役立ちます。 ...
実行時にどのファイル/ライブラリが使用されているかを監視することで、未使用のシステムファイル(バイナリなど)をすべて削除する方法はありますか?別の方法が望ましいかもしれませんが、このようなことを達成する方法はありますか?
Linuxディストリビューションを構築しており、バイナリなどを削除しました。システムは、GCCや開発ツールを使用しません。これはChromeキオスクなので、システムを削除できれば非常に役立ちます。 ...
実行時にどのファイル/ライブラリが使用されているかを監視することで、未使用のシステムファイル(バイナリなど)をすべて削除する方法はありますか?別の方法が望ましいかもしれませんが、このようなことを達成する方法はありますか?
回答:
起動中に実行したプログラムを表示するために使用できるBootchartなどのプログラムがあります。おそらく、起動後に実行し続けて、セッション中に呼び出されたものを確認できます。
より良い解決策は、リマスタリングツールを使用することです。
Fedora、Ubuntuなどのリマスタリングツールがあります。これらを使用して配布をカスタマイズできます。
Tiny Core Linuxをご覧ください。そのためのリマスタースクリプトを作成している人もいます。
とりわけ、不要なものはすべて削除する必要があります。ファイルシステムがatime
完全に有効になっていることを確認してください。これはで設定できます/etc/fstab
。現在のデフォルトはですがrelatime
、使用したいだけatime
です。ファイルにアクセスするたびに、タイムスタンプが更新されます。次に、数日間使用して、atimeが更新されていないファイルを確認します。システムが読み取り専用モードになっているときに読み取られるファイルがいくつかあると思うので、VMでこれらすべてを非常に慎重に行います。注:noatime
本番の準備ができたら設定してください。そうでない場合は、読むたびに書き込みを行います。これは非効率的です。
正直に言って、私はDamn Small Linuxを調べます。あなたは本当にそれより小さくする必要がありますか?ディストリビューションに基づいてビルドし、ウィンドウマネージャーといくつかの追加プログラムを削除します。すべてのコマンドラインツールはそのままにしておきます。修復またはリロードが必要になった場合は、シェルを使用してください。
Debianまたはその派生物を使用していると仮定します
数日間(重い)使用した後、を実行しpopularity-contest
ます。一番下にある最も古い未使用パッケージが表示されます。それらをアンインストールしますが、インストールされているものに依存するものがあるかどうかに注意してください。
出力のスニペットは次のとおりです。
1294222606 1292570417 vlc /usr/lib/vlc/plugins/gui/libqt4_plugin.so
1294222606 1292570109 xulrunner-1.9.2 /usr/share/xulrunner-1.9.2/chrome/classic.jar
1294222606 1292507839 ttf-dejavu-extra /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
1294222606 1292507459 x11-utils /usr/bin/xprop
列は、atime、ctime、package-name、およびアクセスされるファイルを意味します。
ファイルアクセス時間を有効にして、しばらくの間システムをアクティブに使用します。どのファイルのアクセス時間が変更されていないかを確認します。これらは削除の候補です(ただし、持っていないハードウェアのハードウェアドライバーであるか、ルートパーティションがまだ残っているブートプロセスの初期段階で必要であるなど、それらを保持する理由がないことを確認してください読み取り専用でマウントされます)。
大きなアプリケーションはほとんどないので、単一の実行可能ファイルで使用されているライブラリを確認してください。それらを静的にリンクすることを検討してください。
ldd /bin/* /usr/bin/* |sed -n 's/^.* => \(.*\) (.*)$/\1/p' |sort |uniq -c