web-dev-qa-db-ja.com

不要なパッケージ(* NIX)を削除しますか、それとも無効にしますか?

私は現在、コブラーと人形のセットアップを構築しています。私がしていることの1つは、パペットで不要なサービスを無効にすることですが、それから私は考えました:それらがインストールされた後にそれらを無効にするのではなく、コブラーでそれらを削除する必要がありますか?

たとえば、puppetの基本クラスは、smartd、cpuspeed、microcode_ctl、および仮想マシンの場合はreadahead_earlyを無効にするようにクライアントに通知します。

それなら削除してみませんか?後の段階でこれらのパッケージのいくつかが必要な場合は、インストールするだけで済みます。もちろん、マシンが物理ハードウェアに変換された場合、これらのパッケージを再度インストールすることを覚えておく必要があります。

think私の質問に対する最善の解決策は、仮想の場合はサービスAを無効にし、そうでない場合は有効にするパペットクラスを作成することだと思います。 しかし、他の誰かが他の洞察を持っているかもしれませんか?

6
tore-

原則として、物事を無効にする方がはるかに優れた解決策だと思います。あなたはものをヤンクし始めます、そしてそれらは他のパッケージの依存関係であるかもしれません、あるいは他のものはそれがそこにあることを期待するかもしれません。 。ディストリビューションメンテナがテストするシステムにシステムを近づけたいと思うかどうかという考えだと思います。

また、「インストールすることを忘れないでください...」と言います。考え方を変えたいと思うかもしれません。将来のシステム管理者がこれらを管理し、奇妙な問題のトラブルシューティングに何時間も費やして、通常は存在しないパッケージがあるためです。

あなたはかなり具体的ですが、それが文書化されていれば削除しても大丈夫だと思います。また、これらのVMを何百回もデプロイしている場合は、このレベルの調整が理にかなっている規模である可能性があります。結局のところ、私はあなたの人形のアイデアが一番好きです。

2
Kyle Brandt

私はカイルに心から反対します。

不要な場合は削除してください。不要なソフトウェアをインストールしないことをお勧めします。

あなた自身のような仕事を引き受ける人は、彼らが下している決定の意味に自信を持っているべきです。標準のシステムユーティリティとライブラリを削除することは一般的に嫌われていますが、それは環境とサーバーの役割に部分的に依存します。

パッケージの依存関係がある場合、それらは最新のシステムで識別されます。

後で、コンパイルするコードで削除したライブラリが必要な場合は、必要に応じてインストールします。

将来のシステム管理者がばかかもしれないという理由だけで、GTKをサーバーにインストールしたままにするつもりはありません。

6
Warner