2014-01-24 1 views
0

Возможно ли в OS X или Linux определить, какие изменения вызвали конкретная операция в файловой системе?Как определить изменения в файловой системе из-за установки нового пакета

Мой пример использования: я устанавливаю дюжину пакетов, которые являются предпосылками для другого пакета.

Некоторые из них не должны быть необходимы. Я не понимаю, зачем мне все это нужно. Поэтому я хотел бы точно посмотреть, что делает каждый пакет: какие файлы он добавляет, какие файлы он изменяет, какие файлы он удаляет (хотя это не должно быть ни одного).

Как это сделать?

+0

Я представляю команду или скрипт, который находит все файлы с временем модификации после начала установки может помочь. – jpmc26

ответ

0

В. Linux-системе на основе .rpm утилита rpm является вашим другом. У меня нет предложения для .deb на базе Linux или предложений для OS X.

Чтобы проверить, какие сценарии запускаются определенным пакетом, вы можете использовать опцию --scripts и --triggers, чтобы посмотреть, что сделал пакет.

rpm -q --scripts packagename

Пример:

rpm -q --scripts initscripts 
preinstall scriptlet (using /bin/sh): 
/usr/sbin/groupadd -g 22 -r -f utmp 
postinstall scriptlet (using /bin/sh): 
touch /var/log/wtmp /var/run/utmp /var/log/btmp 
chown root:utmp /var/log/wtmp /var/run/utmp /var/log/btmp 
chmod 664 /var/log/wtmp /var/run/utmp 
chmod 600 /var/log/btmp 

/sbin/chkconfig --add netfs 
/sbin/chkconfig --add network 
/sbin/chkconfig --add netconsole 
/sbin/chkconfig --add rawdevices 
preuninstall scriptlet (using /bin/sh): 
if [ $1 = 0 ]; then 
    /sbin/chkconfig --del netfs 
    /sbin/chkconfig --del network 
    /sbin/chkconfig --del netconsole 
    /sbin/chkconfig --del rawdevices 
fi 

rpm -q --triggers initscripts 
triggerun scriptlet (using /bin/sh) -- initscripts < 7.62 
/sbin/chkconfig --del random 
exit 0 

Чтобы просмотреть список файлов, которые он сохраненными в вашей системе, используйте опцию -l

rpm -ql packagename 
+0

RPM не является частью экосистемы Mac OS X. – duskwuff