How can I find out what commands a package ran to install the software with
apt-get install <package>?
For example, if I install a package that creates a user, how can I find out how it created that user?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
You look at the post-installation script, which is actually run by dpkg. You can find these in
/var/lib/dpkg/info. Such scripts contain the name of the binary package in question, and have the suffix
Note that there are also pre-installation scripts, which have the suffix
.preinst, but I think that a package is much more likely to create a new user in a
Did you have a particular example in mind?
An example is postgresql-common, which creates the
postgres user. Here is an extract from the file
# 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
apt-get install does is executing
dpkg -i on the packages.
To find out what a package does while installing you have to unpack it. Look in
/var/cache/apt/archives/ if your package is still there.
Inside the package is a data archive (
data.tar.gz) and a control archive (
control.tar.gz). Inside the control archive is a script to execute after the installation (
postint) and one to execute after deleting the package (
postrm). Open those scripts in an editor and see what the installation process does.
To unpack the package:
ar x package.deb
To unpack the control archive (after unpacking the package):
tar xfz control.tar.gz