web-dev-qa-db-ja.com

Yum httpd24-httpd(SCLから)がWebサーバー仮想パッケージを提供することを認識させる

最近、ソフトウェアコレクションを発見し、コレクションごとに名前空間を導入することで、ソフトウェアの複数のバージョンをインストールする方法を理解しました。 Enterprise Linuxでは、システムの通常の安定性を維持しながら、ソフトウェアの特定のバージョンを更新時に簡単に更新できるようになるため、これは適切です(セキュリティ更新だけでなく、機能も!)

システムのメインWebサーバーをhttpd2.4にしたいのですが。 centos-sclo-rhソフトウェアコレクションから入手できるバージョンは現在2.4.12ですが、baseから入手できるバージョンは2.4.6のみです。そこで、そのSCLからhttpdをインストールし、有効にしました。

> scl enable httpd24-httpd bash

次に、systemctlを使用してサービスを有効にして開始しました

> systemctl enable httpd24-httpd
> systemctl start http24-httpd

したがって、システムは、Webサーバーがインストールされていることを理解する必要があります。ただし、epelからphpmyadminをインストールしようとすると、依存関係としてhttpdから標準のbaseパッケージをインストールする必要があります。

Rpmの仕組みを少し調べてみると、パッケージのスペックファイルにwebserverなどの仮想パッケージを一覧表示するProvides行を含めることができ、実際、httpdのsrc rpmにはProvides:webserver行があることがわかりました。 SCLから取得したhttpd24-httpdパッケージにはその記述子がないのではないかと思います。

SCLからインストールされ有効にされたhttpdをシステムに認識させるにはどうすればよいですか?webserver仮想依存関係を満たすためにhttpdからbaseパッケージをインストールしたくないようにwebserver仮想パッケージを提供しますか?

3
pcronin

@Michael Hamptonが提案したように、httpd24-httpdパッケージ(および他の多くのパッケージ)を維持しているSCLグループに連絡しました。 JoeOrtonから受け取った応答は次のとおりです。

SCLは、定義上、パッケージレベルでシステムパッケージと互換性があるとは期待されていません。 「webserver」に依存するパッケージは、通常、構成ファイルを/etc/httpd/conf.dにドロップする必要がありますが、これはSCLhttpd24では機能しません。

理論的には、「webserver」とhttpd24を必要とするパッケージ間のギャップを埋めることができます。独自の/etc/httpd/conf.d、そのためのIncludeOptionalがある/opt/rh/.../conf.d/にファイルをドロップします。ディレクトリ、および「webserver」を提供します。私がそれをお勧めするかどうかはわかりませんが、ハッキングを行うことは可能であるはずです。

この特定のケースでは、httpdhttpd24-httpdの両方をインストールする必要がないため、インストールされているソフトウェアのフットプリントが小さいため、システムの保守性が容易であることを重視しています。両方をインストールして問題ありません。これらの2つのパッケージを同時にインストールしたくない場合は、Joeが検討できる可能性のある方法を提案しました。

1
pcronin