インストールスクリプトはapt-getインストールで何をしますか?


14

そうですapt-get installDebianパッケージをダウンロードしてのインストールスクリプトを実行しようとします。

  • 適切なディレクトリを作成する
  • 適切なアカウントを作成する
  • バイナリファイルをコピーする
  • データファイルのコピー
  • Confファイルをコピーする
  • init.dスクリプトをコピーします
  • サービスを開始

私はそれに本当に興味があり、ステップバイステップで何が起こっているのかを知りたいです。それを見る方法はありますか?「ドライラン」モードのプリントシェルコマンドと同様ですか。

回答:


25

要するにapt-get installシステムが新しくインストールされたソフトウェアアプリケーションを正常に実行するために必要なすべてを行います。

長いバージョン:

事前準備:

マンページから:

インストール用に指定されたパッケージに必要なすべてのパッケージも取得およびインストールされます。

これらのパッケージは、ネットワーク(インターネット)のリポジトリに保存されます。そのapt-getため、必要なすべてのパッケージを一時ディレクトリ(/var/cache/apt/archives/)にダウンロードします。それらは、WebサーバーまたはFTPサーバーからダウンロードされます。それらは、いわゆるで指定されていsources.listます。パッケージマネージャーaptのリポジトリーのリスト。それ以降は、手順に従って1つずつインストールされます。

最初にインストールされるのは、それ以上の依存関係がないものです。したがって、適切に機能するために他のパッケージをインストールする必要はありません。これにより、他のパッケージ(以前は依存関係を持っていた)が依存関係を持たなくなりました。システムは、指定されたパッケージがインストールされるまで、そのプロセスを繰り返し行います。

各パッケージにはインストール手順が実行されます。

パッケージのインストール手順:

UbuntuやMintなどのDebianベースのLinuxディストリビューションでは、それらのパッケージはdeb-> The Debian binary package formatと呼ばれる特定の標準化された形式になっています

このようなパッケージには、システムにインストールされるファイルが含まれています。また、制御ファイルも含まれています。そのファイルには、特定の状況でパッケージングシステムが実行するスクリプトが含まれています。いわゆるメンテナースクリプト。これらのスクリプトは次のように分割されています。

  • preinst:システムファイル階層にファイルをインストールする前
  • postinst:インストール後
  • prerm:アンインストール前
  • postrm:アンインストール後

これらのスクリプトは、特定のユーザーが作成される場所、再起動が必要な一部のサービス、またはパッケージが機能するために必要なその他の準備です。

これらのスクリプトに加えて、パッケージシステムには特定のイベントを対象としたトリガーがあります。たとえば、新しいカーネルバージョンまたはldconfigまたはman-dbをインストールするときのinitrdの再生成。これらは1つ以上のパッケージによってアクティブ化され、インストールプロセス全体の最後に実行されます。

新しいパッケージのインストール手順を示す興味深い画像があります。

設置

さらに制御ファイルもあり、最も重要なものは次のとおりです。

興味のある方は、debパッケージを(ダウンロード後に)手動で解凍して、中身を確認できます。

# to only download the package (no installation)
apt-get download package
# to unpack the deb file
ar x package.deb

これで、ファイルdata.tar.gzを含むというファイルとcontrol.tar.gz、4つのメンテナースクリプトと上記の制御ファイルを含むというファイルが表示されます。


最近では、公式のdebパッケージマネージャー(apt-getが使用される)であるため、のdpkg-deb -x package.deb代わりに使用する方が良いと考えています。ar x package.debdpkg
Fanatique
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.