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

한 가지 옵션은 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

모든 경우에 이 업데이트는 수동 설정 대안을 깨뜨립니다.

관련 정보