よくばりすなシステムエンジニアのブログ

サーバー・ネットワークエンジニア向けに発信しますっ!

【対策・解決方法】エラー:php-posix が必要ですが、どのプロバイダーからもインストール できません

【対策・解決方法】エラー:php-posix が必要ですが、どのプロバイダーからもインストール できません

こんにちは!

インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。

今回は、「【対策・解決方法】エラー:php-posix が必要ですが、どのプロバイダーからもインストール できません」について紹介したいと思います。

phpMyAdminをPHP8.1でインストールする時に遭遇したエラーです。完全版は以下の記事です。

www.kayura-se.com

「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。





エラー:php-posix が必要ですが、どのプロバイダーからもインストール できません


エラー:
パッケージ phpMyAdmin-5.2.1-1.el8.remi.noarch には php-posix が必要ですが、どのプロバイダーからもインストール できません
- ジョブの最良アップデート候補をインストールできません
- パッケージ php-process-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-7.3.20-1.module_el8.3.0+2009+b272fdef.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-7.4.30-1.module_el8.7.0+3286+227f3cf0.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-8.0.20-2.module_el8.7.0+3286+6cee236e.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-8.0.27-1.module_el8.7.0+3401+dfb61c00.x86_64 はモジュラーフィルタリングに一致しません
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)





【対策・解決方法】「remi-modular」リポジトリから「php-posix(php-process)」をインストールします。

①「remiリポジトリ」をインストールします。

※これが無いと「php-posix(php-process)」のインストールに失敗します。

以下のサイトでVerが選べるのですが、Ver9はOSを9系にする必要があります。

http://rpms.remirepo.net/enterprise/

yum install -y http://rpms.remirepo.net/enterprise/remi-release-8.rpm

②「php-posix(php-process)」をインストールします。

これを入れるだけで前提パッケージのエラーが無くなります。

「remi-modular」リポジトリからインストールしています。

yum install --enablerepo=remi-modular php-posix -y

(コマンド結果)
パッケージ アーキテクチャー バージョン リポジトリー サイズ
インストール:
php-process x86_64 8.1.18-1.el8.remi remi-modular 111 k

トランザクションの概要
インストール 1 パッケージ

ダウンロードサイズの合計: 111 k
インストール後のサイズ: 228 k
パッケージのダウンロード:
php-process-8.1.18-1.el8.remi.x86_64.rpm 87 kB/s | 111 kB 00:01
合計 61 kB/s | 111 kB 00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : php-process-8.1.18-1.el8.remi.x86_64 1/1
scriptletの実行中: php-process-8.1.18-1.el8.remi.x86_64 1/1
検証 : php-process-8.1.18-1.el8.remi.x86_64 1/1

インストール済み:
php-process-8.1.18-1.el8.remi.x86_64

完了しました!





そもそもphp-posixとは?


"php-posix" は、PHPプログラムでPOSIX互換システムコールを実行するための拡張モジュールです。
POSIXは、Portable Operating System Interfaceの略称で、UNIX系オペレーティングシステムにおいて、プログラムが標準的なシステムコールを実行するためのAPIを定義した規格です。POSIX互換のシステムでは、この規格に沿ってプログラムを記述することで、異なるオペレーティングシステムでも同じプログラムが動作することができます。
php-posixは、PHPプログラムでPOSIX互換のシステムコールを利用できるようにするための拡張モジュールで、UNIX系オペレーティングシステムでよく使用される機能が含まれています。例えば、プロセスの制御、ファイル操作、シグナル処理、パス名操作などの機能が含まれています。PHPプログラムがPOSIX互換システムコールを利用する場合には、この拡張モジュールがインストールされている必要があります。





【対策・解決方法】エラー:php-posix が必要ですが、どのプロバイダーからもインストール できませんの手順は以上となります。

現在悩んでいる方はTwitterでご連絡ください。

私も辛い日々を経験したのであなたの助けになりたいです。

カユラ(@kayura_SE )