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

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

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

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

こんにちは!

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

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

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

www.kayura-se.com

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





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


エラー:
パッケージ phpMyAdmin-5.2.1-1.el8.remi.noarch には php-zip が必要ですが、どのプロバイダーからもインストール できません
- ジョブの最良アップデート候補をインストールできません
- パッケージ php-pecl-zip-1.15.3-1.module_el8.3.0+2010+7c76a223.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-pecl-zip-1.15.4-1.module_el8.3.0+2009+b272fdef.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-pecl-zip-1.18.2-1.module_el8.6.0+2750+78feabcb.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-pecl-zip-1.19.2-1.module_el8.6.0+2739+efabdb8f.x86_64 はモジュラーフィルタリングに一致しません
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)





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

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

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

以下のサイトで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」リポジトリからインストールしています。

dnf install --enablerepo=remi-modular php-zip -y

(コマンド結果)
パッケージ アーキテクチャー バージョン リポジトリー サイズ
インストール:
php-pecl-zip x86_64 1.21.1-1.el8.remi.8.1 remi-modular 76 k
依存関係のインストール:
libzip x86_64 1.9.2-1.el8.remi remi-modular 70 k

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

ダウンロードサイズの合計: 146 k
インストール後のサイズ: 387 k
パッケージのダウンロード:
(1/2): libzip-1.9.2-1.el8.remi.x86_64.rpm 68 kB/s | 70 kB 00:01
(2/2): php-pecl-zip-1.21.1-1.el8.remi.8.1.x86_64.rpm 71 kB/s | 76 kB 00:01
合計 92 kB/s | 146 kB 00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : libzip-1.9.2-1.el8.remi.x86_64 1/2
インストール中 : php-pecl-zip-1.21.1-1.el8.remi.8.1.x86_64 2/2
scriptletの実行中: php-pecl-zip-1.21.1-1.el8.remi.8.1.x86_64 2/2
検証 : libzip-1.9.2-1.el8.remi.x86_64 1/2
検証 : php-pecl-zip-1.21.1-1.el8.remi.8.1.x86_64 2/2

インストール済み:
libzip-1.9.2-1.el8.remi.x86_64 php-pecl-zip-1.21.1-1.el8.remi.8.1.x86_64


完了しました!





そもそもphp-zipとは?

"php-zip" は、PHPプログラムでZIPアーカイブを作成、操作するための拡張モジュールです。
ZIPアーカイブは、複数のファイルやフォルダを1つのファイルにまとめることができる圧縮ファイル形式です。PHPプログラムにおいて、ZIPアーカイブを作成する場合や、既存のZIPアーカイブからファイルを取り出す場合、php-zip拡張モジュールを使用することができます。
php-zipは、ZIPファイルを操作するためのクラスや関数を提供します。例えば、ZipArchiveクラスを使用して、ZIPファイルの作成や展開、ファイルの追加や削除などを行うことができます。また、ZIPファイル内のファイルの情報を取得することもできます。





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

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

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

カユラ(@kayura_SE )