0

在 OS X 或 Linux 中是否可以确定特定操作在文件系统中引起的更改?

我的用例是这样的:我正在安装十几个包,这些包是另一个包的先决条件。

其中一些不应该是必需的。我不明白为什么我需要所有这些。所以我想看看每个包到底做了什么:它添加了哪些文件,它修改了哪些文件,它删除了哪些文件(尽管这应该没有)。

我该怎么做呢?

4

1 回答 1

1

在基于 .rpm 的 linux 系统中,该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
于 2014-01-25T00:08:35.297 回答