명령을 실행했지만 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
모든 경우에 이 업데이트는 수동 설정 대안을 깨뜨립니다.