linux - 如何确定由于新软件包安装而导致的文件系统变化

标签 linux macos installation-package

在 OS X 或 Linux 中是否可以确定特定操作在文件系统中引起了哪些变化?

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

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

我该怎么做?

最佳答案

在基于 .rpm 的 Linux 系统中,rpm 实用程序是您的 friend 。我没有对基于 .deb 的 Linux 的建议,也没有对 OS X 的建议。

要检查特定包运行哪些脚本,您可以使用选项 --scripts--triggers 来查看包做了什么。

rpm -q --scripts 包名

示例:

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

关于linux - 如何确定由于新软件包安装而导致的文件系统变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21343791/

相关文章:

php - Linux 狂欢 : Run php script located in different folder

c++ - GDB:在转储的整个内存中查找值

ios - 如何在 Xcode 控制台中漂亮地打印 NSError 对象?

java - 创建 gui 来安装 java 应用程序的方法有哪些

iphone - 如何向 iPhone 发送 TCP 数据包而不是 ICMP 数据包

linux - 在 Parallel Bash 中运行串行

macos - 在Visual Studio中 'change language mode'的快捷方式是什么?

MySQL安装: ERROR: Failed to build gem native extension

testing - Incisive Formal Verifier 安装 64 位

debian - 在 preinst 脚本中取消 debian 包安装