PHP用のAlmaLinux 8のアップデートの代替案はありません。

PHP用のAlmaLinux 8のアップデートの代替案はありません。

コマンドを実行しましたが、update-alternatives --config php何も表示されません。バイナリを確認しましたが、/usr/binフォルダに実行可能ファイルがあります。インストールされているPHPバージョンは、AppStreamリポジトリの7.4とREMIリポジトリのPHP 5.6です。

ll /usr/bin/php*
-rwxr-xr-x. 1 root root 6376328 Oct 11 01:34 /usr/bin/php
lrwxrwxrwx  1 root root      32 Feb 15 21:31 /usr/bin/php56 -> /opt/remi/php56/root/usr/bin/php
lrwxrwxrwx  1 root root      36 Feb 15 21:31 /usr/bin/php56-cgi -> /opt/remi/php56/root/usr/bin/php-cgi
lrwxrwxrwx  1 root root      33 Aug 11  2021 /usr/bin/php56-pear -> /opt/remi/php56/root/usr/bin/pear
lrwxrwxrwx  1 root root      38 Feb 15 21:31 /usr/bin/php56-phar -> /opt/remi/php56/root/usr/bin/phar.phar
-rwxr-xr-x. 1 root root 6375784 Oct 11 01:34 /usr/bin/php-cgi
-rwxr-xr-x. 1 root root    4741 Oct 11 01:34 /usr/bin/phpize

Javaのalternatives場合

[root@alma8-webapps-dev alternatives]# ll /usr/bin/java*
lrwxrwxrwx. 1 root root 22 Feb 10 00:39 /usr/bin/java -> /etc/alternatives/java
lrwxrwxrwx. 1 root root 23 Feb 10 00:39 /usr/bin/javac -> /etc/alternatives/javac
lrwxrwxrwx. 1 root root 25 Feb 10 00:39 /usr/bin/javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx. 1 root root 23 Feb 10 00:39 /usr/bin/javap -> /etc/alternatives/javap

1つのオプションはPHP 7.4ファイルの名前を変更することで、次のように名前を変更しました。

mv /usr/bin/php /usr/bin/php74 
mv /usr/bin/php-cgi /usr/bin/php74-cgi

その後、新しい代替案を作成します。

alternatives --install /usr/bin/php php /usr/bin/php74 1
alternatives --install /usr/bin/php php /usr/bin/php56 2
alternatives --install /usr/bin/php-cgi php-cgi /usr/bin/php74-cgi 1
alternatives --install /usr/bin/php-cgi php-cgi /usr/bin/php56-cgi 2

次の項目は代替状態になりました。

update-alternatives --config php

There are 2 programs which provide 'php'.

  Selection    Command
-----------------------------------------------
   1           /usr/bin/php74
*+ 2           /usr/bin/php56

Enter to keep the current selection[+], or type selection number:

代替項目へのシンボリックリンクを生成します。

 ll /usr/bin/php*
lrwxrwxrwx  1 root root      21 Feb 17 19:56 /usr/bin/php -> /etc/alternatives/php
lrwxrwxrwx  1 root root      32 Feb 15 21:31 /usr/bin/php56 -> /opt/remi/php56/root/usr/bin/php
lrwxrwxrwx  1 root root      36 Feb 15 21:31 /usr/bin/php56-cgi -> /opt/remi/php56/root/usr/bin/php-cgi
lrwxrwxrwx  1 root root      33 Aug 11  2021 /usr/bin/php56-pear -> /opt/remi/php56/root/usr/bin/pear
lrwxrwxrwx  1 root root      38 Feb 15 21:31 /usr/bin/php56-phar -> /opt/remi/php56/root/usr/bin/phar.phar
-rwxr-xr-x. 1 root root 6376328 Oct 11 01:34 /usr/bin/php74
-rwxr-xr-x. 1 root root 6375784 Oct 11 01:34 /usr/bin/php74-cgi
lrwxrwxrwx  1 root root      25 Feb 17 19:59 /usr/bin/php-cgi -> /etc/alternatives/php-cgi
-rwxr-xr-x. 1 root root    4741 Oct 11 01:34 /usr/bin/phpize

PHPアップデートをテストしましたが、PHPがインストールされなくなったとします。

dnf update php
Last metadata expiration check: 0:28:58 ago on Fri 17 Feb 2023 07:41:07 PM AEDT.
Package php available, but not installed.
No match for argument: php
Error: No packages marked for upgrade.

複数のバージョンのPHPを使用するのではなく、更新を継続するための代替手段を入手するにはどうすればよいですか?

答え1

繰り返すhttps://almalinux.discourse.group/t/no-update-alternatives-in-almalinux-8-for-php/2115/2

そこにはすでに答えがあります

使用基準寸法代わりにコマンド代替

はい

$ module load php74
$ php -v
PHP 7.4.33 (cli) (built: Feb 14 2023 08:29:51) ( NTS )
$ module unload php74
$ module load php82
$ php -v
PHP 8.2.3 (cli) (built: Feb 14 2023 01:06:39) (NTS gcc x86_64)
$ module unload php82
$ php -v
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)

代替永続的でシステム全体(すべてのユーザー)

基準寸法現在のセッションのため、より柔軟です。

パッケージPHPを使用できますが、インストールされていません。

dnfが言ったようにインストールされていないので、php-cli / php56-php-cliを更新するか、ジョーカーを使用する必要があるかもしれません。

# dnf update php\*

しかし、更新を選択することは非常に悪い習慣なので、簡単な方法を実行することをお勧めします。

# dnf update

すべての場合において、このアップデートは手動設定の代替を破ります。

関連情報