「apt-get install」が何をしているのかをご覧ください

「apt-get install」が何をしているのかをご覧ください

ソフトウェアをインストールするためにパッケージが実行したコマンドが何であるかをどうやって知ることができますかapt-get install <package>

たとえば、ユーザーを生成するパッケージをインストールする場合、そのパッケージがそのユーザーを作成する方法をどのように知ることができますか?

答え1

インストール後にスクリプトを見ると、実際にはdpkgによって実行されます。でこれらの内容を見つけることができます/var/lib/dpkg/info。これらのスクリプトには、サフィックスが付いた関連バイナリパッケージの名前が含まれています.postinst

サフィックス付きのプレインストールスクリプトもありますが、パッケージがスクリプト.preinstpostinst新しいユーザーを作成する可能性が高いと思います。

具体的な例はありますか?

たとえば、ユーザーを作成する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 installdpkg -i

パッケージがインストールされたときに何をするかを理解するには、パッケージを解放する必要があります。/var/cache/apt/archives/パッケージがまだあることを確認してください。

パッケージにはデータアーカイブ(data.tar.gz)と制御アーカイブ(control.tar.gz)があります。コントロールアーカイブには、インストール後に実行されるスクリプト(postint)とパッケージの削除後に実行されるスクリプト(postrm)が含まれています。エディタでこのスクリプトを開き、実際のインストールプロセスを確認してください。

荷物などから取り出す:

ar x package.deb

制御アーカイブを解凍する(パッケージを解凍した後):

tar xfz control.tar.gz

関連情報