ターゲットマシンにのみ特定のプログラムを自動的にインストールして実行するカスタムUbuntuサーバーディストリビューションを作成したいと思います。私はここで非常に良いガイドを見つけました:
通常のインストールに伴うすべての膨張を削除したいのですが、どのパッケージがまったく使用されていないかを判別して、ディストリビューションからそれらを削除できるようにする方法はありますか?
ちなみに、上記のガイドに従ってUbuntu 14.04を実行している場合は、次のリンクを使用してキックスタートのバグを修正してください(コメントに追加するのに十分な評判がないため、追加する場合は、 してください)
strace
:を使用して、プログラムがアクセスしたファイルを確認できます。
-e trace=file
Trace all system calls which take a file name as an
argument. You can think of this as an abbreviation
for -e trace=open,stat,chmod,unlink,... which is
useful to seeing what files the process is
referencing. Furthermore, using the abbreviation
will ensure that you don't accidentally forget to
include a call like lstat in the list. Betchya
woulda forgot that one.
だから、次のようなもの:
$ strace -fe trace=file -o log /bin/bash -c ''
$ awk -F\" '!a[$2]++&&/\//{print $2}' log | xargs dpkg -S 2>/dev/null | awk -F: '!a[$1]++{print $1}'
bash
libtinfo5
libc6
ただし、注意が必要です。この出力は、いずれにしても特に有用ではありません。
dpkg
のデータベース)。あなたがすべきことは、ubuntu-minimal
から始めて、プログラムがそれ以上実行するのに必要なものだけをインストールすることです(プログラムが不思議なエラーで死んだときに必要なものがわかります)。