最近、ソフトウェアコレクションを発見し、コレクションごとに名前空間を導入することで、ソフトウェアの複数のバージョンをインストールする方法を理解しました。 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
仮想パッケージを提供しますか?
@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」を提供します。私がそれをお勧めするかどうかはわかりませんが、ハッキングを行うことは可能であるはずです。
この特定のケースでは、httpd
とhttpd24-httpd
の両方をインストールする必要がないため、インストールされているソフトウェアのフットプリントが小さいため、システムの保守性が容易であることを重視しています。両方をインストールして問題ありません。これらの2つのパッケージを同時にインストールしたくない場合は、Joeが検討できる可能性のある方法を提案しました。