RemiリポジトリからPHP8.3をインストールする

前回の『AlmaLinux 9 に PHP をインストールする』では AppStream リポジトリのパッケージから PHP8.2 をインストールしましたが、この場合、現状では PHP8.2 までしかインストールできません。PHP8.3 をインストールするには、RHEL 系ディストリビューションでおなじみの外部リポジトリ Remi リポジトリを登録してインストールすることになります。今回はその方法について。

前提

  1. PHPは AppStream リポジトリのものを含め、インストールしてない状態から作業開始
  2. OS は今回も AlmaLinux 9.5
  3. PHP8.3を最小構成でインストールします

まずは Remi リポジトリのインストールと登録から

なんですけど、最初なのでまずはインストール済みのパッケージの状態を最新にアップデートしておきましょう。パッケージの情報や依存関係が古い情報のままで、それが原因でコンフリクト……、とかあっても困るので。

sudo dnf update -y

さっそく Remi リポジトリのインストールと有効化をしていきます。Remi リポジトリは色んなところにミラーがあるんですが、自分の場合はだいたい理研のミラーを使ってます。

sudo dnf install -y https://ftp.riken.jp/Linux/remi/enterprise/remi-release-9.rpm


Last metadata expiration check: 0:13:23 ago on Mon 09 Sep 2024 01:39:59 PM UTC.
remi-release-9.rpm                                                                               	85 kB/s |  30 kB 	00:00    
Dependencies resolved.
====================================================================================================================================
 Package                     	Architecture          	Version                        	Repository                   	Size
====================================================================================================================================
Installing:
 remi-release                	noarch                	9.4-2.el9.remi                 	@commandline                 	30 k
Installing dependencies:
 epel-release                	noarch                	9-5.el9                        	extras                       	18 k

Transaction Summary
====================================================================================================================================
Install  2 Packages

Total size: 48 k
Total download size: 18 k
Installed size: 56 k
Downloading Packages:
epel-release-9-5.el9.noarch.rpm                                                                  	84 kB/s |  18 kB 	00:00    
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                            	15 kB/s |  18 kB 	00:01	 
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing    	:                                                                                                        	1/1
  Installing   	: epel-release-9-5.el9.noarch                                                                            	1/2
  Running scriptlet: epel-release-9-5.el9.noarch                                                                            	1/2
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

  Installing   	: remi-release-9.4-2.el9.remi.noarch                                                                     	2/2
  Running scriptlet: remi-release-9.4-2.el9.remi.noarch                                                                     	2/2
  Verifying    	: epel-release-9-5.el9.noarch                                                                            	1/2
  Verifying    	: remi-release-9.4-2.el9.remi.noarch                                                                     	2/2

Installed:
  epel-release-9-5.el9.noarch                               	remi-release-9.4-2.el9.remi.noarch

Complete!

依存の関係で EPEL リポジトリもインストールされました。本命の Remi リポジトリと合わせ、EPEL リポジトリも有効化します。まずは EPEL リポジトリ。

sudo dnf config-manager -y --enable epel

続けて Remi リポジトリ。

sudo dnf config-manager -y --enable remi

dnf config-manager は実行してもコンソールが戻ってくるだけで特に何か出力を返したりしません。

あとは AppStream リポジトリからインストールする場合と一緒

なので dnf module enable で Remi リポジトリの任意の(今回だと PHP8.3)モジュールを有効化して、dnf module install でインストールするだけなのですが、一応 Remi リポジトリ登録されているモジュールを確認しておきましょう。

dnf module list php
AlmaLinux 9 - AppStream
Name               	Stream                	Profiles                                	Summary
php                	8.1                   	common [d], devel, minimal              	PHP scripting language
php                	8.2                   	common [d], devel, minimal              	PHP scripting language

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name               	Stream                	Profiles                                	Summary
php                	remi-7.4              	common [d], devel, minimal              	PHP scripting language
php                	remi-8.0              	common [d], devel, minimal              	PHP scripting language
php                	remi-8.1              	common [d], devel, minimal              	PHP scripting language
php                	remi-8.2              	common [d], devel, minimal              	PHP scripting language
php                	remi-8.3              	common [d], devel, minimal              	PHP scripting language

前回と違って Remi リポジトリに登録されているモジュールも一覧表示されます。Remi リポジトリからは 7.4~8.3 が選択できますね。また、Remi リポジトリでも AppStream リポジトリと同じく、common, devel, minimal のいずれかが選択でき、特にプロファイルを指定しなければ dnf module install の際に common が選択されるのも一緒のようです。

では、PHP8.3 を minimal でインストールしていきましょう。まずは PHP のモジュールを有効化します。

前回は特に触れませんでしたが dnf module eable コマンドは モジュール名:ストリーム名 で有効化したいモジュール・ストリームを指定します。今回は Remi リポジトリから PHP8.3 をインストールする、なので php:remi-8.3 となります。

sudo dnf module -y enable php:remi-8.3

Last metadata expiration check: 0:07:12 ago on Mon 09 Sep 2024 02:28:12 PM UTC.
Dependencies resolved.
====================================================================================================================================
 Package                    	Architecture              	Version                      	Repository                  	Size
====================================================================================================================================
Enabling module streams:
 php                                                      	remi-8.3

Transaction Summary
====================================================================================================================================

Complete!

前回同様、最小構成でインストールするので……

sudo dnf module -y install php/minimal


Last metadata expiration check: 0:13:55 ago on Mon 09 Sep 2024 02:28:12 PM UTC.
Dependencies resolved.
====================================================================================================================================
 Package                   	Architecture          	Version                          	Repository                   	Size
====================================================================================================================================
Installing group/module packages:
 php-cli                   	x86_64                	8.3.11-1.el9.remi                	remi-modular                	5.6 M
 php-common                	x86_64                	8.3.11-1.el9.remi                	remi-modular                	1.2 M
Installing module profiles:
 php/minimal

Transaction Summary
====================================================================================================================================
Install  2 Packages

Total download size: 6.8 M
Installed size: 42 M
Downloading Packages:
(1/2): php-common-8.3.11-1.el9.remi.x86_64.rpm                                                  	323 kB/s | 1.2 MB 	00:03	 
(2/2): php-cli-8.3.11-1.el9.remi.x86_64.rpm                                                     	513 kB/s | 5.6 MB 	00:11	 
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                           	591 kB/s | 6.8 MB 	00:11	 
Remi's Modular repository for Enterprise Linux 9 - x86_64                                       	978 kB/s | 3.1 kB 	00:00    
Importing GPG key 0x478F8947:
 Userid 	: "Remi's RPM repository (https://rpms.remirepo.net/) <remi@remirepo.net>"
 Fingerprint: B1AB F71E 14C9 D748 97E1 98A8 B195 27F1 478F 8947
 From   	: /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el9
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing    	:                                                                                                        	1/1
  Running scriptlet: php-common-8.3.11-1.el9.remi.x86_64                                                                    	1/2
  Installing   	: php-common-8.3.11-1.el9.remi.x86_64                                                                    	1/2
  Installing   	: php-cli-8.3.11-1.el9.remi.x86_64                                                                       	2/2
  Running scriptlet: php-cli-8.3.11-1.el9.remi.x86_64                                                                       	2/2
  Verifying    	: php-cli-8.3.11-1.el9.remi.x86_64                                                                       	1/2
  Verifying    	: php-common-8.3.11-1.el9.remi.x86_64                                                                    	2/2

Installed:
  php-cli-8.3.11-1.el9.remi.x86_64                            	php-common-8.3.11-1.el9.remi.x86_64

Complete!

前回は dnf module install の際、律儀に sudo dnf module -y install php:8.2/minimal とバージョンの指定もしてましたけど、前に実行したコマンド dnf module enable でバージョン(ストリーム)を事前に指定してるので、インストールの際にいちいちバージョンを指定する必要ないそうです。

php -v

PHP 8.3.11 (cli) (built: Aug 27 2024 19:16:34) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.11, Copyright (c) Zend Technologies

PHP8.3 がインストールされました!!

参考記事など