Я хочу создать пользовательский дистрибутив сервера Ubuntu, который автоматически устанавливает и запускает определенную программу только на целевой машине. Я нашел очень хорошее руководство здесь:
Как создать специализированный сервер человечности ISO
Я хочу удалить все чрезмерное увеличение размера, которое идет с нормальной установкой, есть ли способ, которым я могу определить, какие пакеты не используются вообще так, чтобы я мог удалить их из своего дистрибутива?
На ноте стороны, если Вы действительно следуете упомянутому выше руководству и Вы запускаете 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
и установка только те необходимые вещи, чтобы программа работала свыше того (Вы будете знать, которые необходимы, когда программа умирает от таинственных ошибок).