我希望能够查看与即将升级的软件包相关的脚本/触发器,以便我可以判断,例如,它是否会导致 Web 服务器重新启动。我找不到 aptitude 选项来显示这一点(或 apt/dpkg);我能得到的最好的信息是内容(文件)。我是否错过了一些可以显示这一点的模拟/详细/内容开关组合?
此外,如果某个软件包导致某些事情发生(比如服务重启),而我现在不想发生,有没有办法在不运行部分或全部脚本的情况下安装该软件包?
答案1
您可以使用 打印控制文件和一些其它信息dpkg -I package.deb
,或者使用dpkg -e package.deb
仅提取控制信息文件。
另外,您可以进行一次试运行,看看 dpkg 会做什么--dry-run
:
dpkg --dry-run -i package.deb
答案2
不,我不知道有什么方法可以使用 aptitude 来做到这一点。
您可以直接查看脚本;升级期间运行的脚本包含在包中。使用 ar 解压 deb:
ar -x package.deb
然后查看control.tar.gz
,它包含脚本。
答案3
还有--debug
选项dpkg
,例如sudo dpkg --debug=72200 -i package.deb
有几种可用的详细输出选项,并且可以将它们组合起来。
您可以通过运行查看所有可用选项:dpkg --debug=help
。
pi@kaldi:~ $ dpkg --debug=help
dpkg debugging option, --debug=<octal> or -D<octal>:
Number Ref. in source Description
1 general Generally helpful progress information
2 scripts Invocation and status of maintainer scripts
10 eachfile Output for each file processed
100 eachfiledetail Lots of output for each file processed
20 conff Output for each configuration file
200 conffdetail Lots of output for each configuration file
40 depcon Dependencies and conflicts
400 depcondetail Lots of dependencies/conflicts output
10000 triggers Trigger activation and processing
20000 triggersdetail Lots of output regarding triggers
40000 triggersstupid Silly amounts of output regarding triggers
1000 veryverbose Lots of drivel about eg the dpkg/info directory
2000 stupidlyverbose Insane amounts of drivel
Debugging options can be mixed using bitwise-or.
Note that the meanings and values are subject to change.
答案4
不,您不能运行维护者脚本的一部分,因为没有钩子可以实现这一点。
您只能通过手动检查来查看脚本将执行的操作 - 再次强调,没有“试运行”可以准确地告诉您它将执行和不会执行的操作,只有“我将使用这些参数运行 postinst”。
这就是我们拥有暂存和测试环境的原因。