找出“apt-get install”做了什么

找出“apt-get install”做了什么

如何找出软件包运行了哪些命令来安装软件apt-get install <package>

例如,如果我安装一个创建用户的包,我如何才能知道它是如何创建该用户的?

答案1

你看一下安装后脚本,它实际上是由 dpkg 运行的。您可以在 中找到这些/var/lib/dpkg/info。此类脚本包含相关二进制包的名称,并具有后缀.postinst.

请注意,还有预安装脚本,其后缀为.preinst,但我认为包更有可能在postinst脚本中创建新用户。

您有一个特定的例子吗?

一个示例是 postgresql-common,它创建用户postgres。以下是该文件的摘录/var/lib/dpkg/info/postgresql-common.postinst

   # Make sure the administrative user exists
    if ! getent passwd postgres > /dev/null; then
        adduser --system --quiet --home /var/lib/postgresql --no-create-home \
            --shell /bin/bash --group --gecos "PostgreSQL administrator" postgres
    fi

答案2

所做的就是在包上apt-get install执行。dpkg -i

要了解软件包在安装时的作用,您必须将其解压。看看/var/cache/apt/archives/你的包裹是否还在。

包内有一个数据存档 ( data.tar.gz) 和一个控制存档 ( control.tar.gz)。控制存档内有一个在安装后执行的脚本 ( postint) 和一个在删除包后执行的脚本 ( postrm)。在编辑器中打开这些脚本并查看安装过程的作用。

打开包装:

ar x package.deb

解压控制存档(解压包后):

tar xfz control.tar.gz

相关内容