web-dev-qa-db-ja.com

Yum:すべての開発パッケージを一覧表示して削除します

Develパッケージには通常、アプリケーションのコンパイルに必要なヘッダーやその他のものが含まれています。

システムをクリーンで管理しやすい状態に保つために、すべてリスト-devel-packagesyum(rpmも)によってインストールされるコマンドを探しています。 、接尾辞なし)。

私は通常yum list installedを使用し、開発者を手動で収集します。

原則として、コンパイル後に削除することをお勧めしますか?

3
mate64

開発パッケージの削除に関するあなたの質問には、2つの部分からなる答えがあると思います。最初の部分は、他の人が推奨するように-develパッケージを削除することです。これにより、httpd-develなどのアプリケーションの開発インターフェイスが削除されます。

2番目の部分は基本的な開発用のcore developmentパッケージであり、主にソースコードからプログラムをインストールする必要がある場合に必要です。 RHELは、このパッケージをDevelopment toolsにグループ化します。これらのパッケージは、-を使用して削除できます。

        yum groupremove "Development tools"

個人的には、SvenWが述べたように、本番サーバーに開発パッケージをインストールすることはありません。したがって、開発パッケージを使用しないクリーンな基本インストールから始めて、要件に応じて、後で絶対に必要なものだけを明示的にインストールします。

5
Daniel t.
yum remove $(rpm -qa "*-devel")

また、本番(またはステージング)システムで開発を行わないでください。本当にRPMを再構築する必要がある場合は、mockを使用して、chrootに構築し、後でクリーンアップできます。

6
Michael Hampton

基本的なセキュリティテネット:ブラックリストを使用しないでください(つまり、禁止するものを探す)。何かを除外するのは簡単すぎるためです(手遅れになるまでわかりません)。すぐにわかることを忘れた場合は、ホワイトリストを使用してください(つまり、何を許可する必要があるかを確認してください)。

この特定のケースでは、マシンの管理または提供するサービスのいずれかのためにマシンに必要なソフトウェアのリストを作成し、それ(およびドラッグする依存関係)をインストールします。複数の選択肢がある場合(つまり、scp(1)またはFTPを使用して新しいコンテンツをアップロードする場合)、1つしか保持できないかどうかを確認し、慎重に選択してください。それ以外はすべて手荷物であり、潜在的なセキュリティリスクがあります。

4
vonbrand
yum list installed | grep '\-devel\'

または、yumにはパッケージ選択メカニズムがあるため:

yum list installed '*-devel'

これはアンインストールでも機能するはずです:

yum erase '*-devel'

システムを「クリーンで管理しやすい」状態に保つには、独自のパッケージを作成した作業マシンを用意してから、それらを実稼働マシンにインストールします。

3
Sven