関連するサービスを開始せずにパッケージをインストールするにはどうすればよいですか?
ご存じのとおり、デフォルトでは、DebianまたはUbuntuベースのシステムにパッケージをインストールするときに、パッケージにサービスが含まれている場合、そのサービスは通常、パッケージのインストール時に有効になり、自動的に開始されます。 これは私にとって問題です。 LXCコンテナを作成するためのテンプレートを管理する必要があることに気付きました。いくつかのコンテナがあり、それぞれがDebianまたはUbuntuリリースに対応しています。(Red Hatベースのコンテナもありますが、ここでは関係ありません。) /var/lib/libvirt/filesystems/debian6_template /var/lib/libvirt/filesystems/debian7_template /var/lib/libvirt/filesystems/ubuntu1004_template /var/lib/libvirt/filesystems/ubuntu1204_template テンプレートに不足しているパッケージがあるか、他の変更が必要な場合があるので、それらをchrootしてパッケージをインストールします。残念ながら、それを行うと、パッケージのサービスのコピーがいくつか実行されてしまいます! 例として、テンプレートにsyslogデーモンがないことがわかったため、syslogデーモンをインストールしました。 for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do chroot $template apt-get install rsyslog done そして、rsyslogの4つのコピーが実行されてすぐに巻き上げられました。exim4の2つのコピーは言うまでもありません。おっとっと! chrootで実行しているときにサービスを開始することは想定されていませんが、ここでは発生していません。 潜在的に実行可能な厄介なハックの 1つは、start-stop-daemonやなどの実際にサービスを開始するさまざまなコマンドを一時的に置き換えるinitctlことです。他に選択肢がない場合は... ここでの理想的な解決策は、Debianベースのシステムがこのがらくたの実行を停止することですが、それに失敗するのは、おそらくapt-get? 明確でない場合は、可能であれば、テンプレートの外部でのテンプレートの管理に関連するものは何でも保持したいと思います。