remi 저장소를 통해 oracle linux 9에 php-oci8을 설치할 수 없습니다

remi 저장소를 통해 oracle linux 9에 php-oci8을 설치할 수 없습니다

remi 저장소를 설치했는데 php를 설치할 수 없습니다. 그래서 remi repo를 사용하는 것으로 보이는 다음 명령을 사용하여 스트림을 통해 PHP를 설치했습니다.

dnf 모듈 설치 php:8.1

이제 remi 저장소를 통해 oracle linux 9에 php-oci8을 설치하려고 시도했지만 성공하지 못했습니다. remi 저장소에서 php-oci8을 사용할 수 있는 것 같습니다.http://rpms.remirepo.net/enterprise/9/php81/x86_64/repoview/php-oci8.html

나는 이것을 시도했습니다 :

dnf 구성 관리자 --remi-modular 활성화

냠 php-oci8을 설치하세요

다음 오류가 발생합니다.

모든 일치 항목은 php-oci8 매개변수의 모듈식 필터링을 통해 필터링됩니다.

오류: 일치하는 항목을 찾을 수 없습니다: php-oci8

나는 무엇이 잘못되었는지 이해하지 못합니다. 또한 raven 및 EPEL repos를 시도했지만 동일한 오류 메시지가 나타납니다. php-oci8을 설치하는 방법이 있나요?dnf 모듈? 아니면 dnf가 remi repo를 사용하여 php-oci8을 설치하도록 "설득"할 수 있는 방법이 있습니까?

답변1

올바른 스트림을 사용하고 있지 않습니다.PHP:8.1공식적이며 최소한의 확장 기능 세트가 있습니다. 귀하의 경우에는 다음을 사용해야 합니다.PHP:remi-8.1대체 흐름.

# dnf install php-oci8
Dependencies resolved.
==========================================================================================================================
 Package                   Architecture            Version                            Repository                     Size
==========================================================================================================================
Installing:
 php-oci8                  x86_64                  8.1.13-1.el9.remi                  remi-modular                  134 k
Installing dependencies:
 php-pdo                   x86_64                  8.1.13-1.el9.remi                  remi-modular                  113 k

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

Total download size: 248 k
Installed size: 941 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-oci8-8.1.13-1.el9.remi.x86_64.rpm                                              2.6 MB/s | 134 kB     00:00    
(2/2): php-pdo-8.1.13-1.el9.remi.x86_64.rpm                                               1.2 MB/s | 113 kB     00:00    
--------------------------------------------------------------------------------------------------------------------------
Total                                                                                     2.5 MB/s | 248 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                  1/1 
  Installing       : php-pdo-8.1.13-1.el9.remi.x86_64                                                                 1/2 
  Installing       : php-oci8-8.1.13-1.el9.remi.x86_64                                                                2/2 
  Running scriptlet: php-oci8-8.1.13-1.el9.remi.x86_64                                                                2/2 
  Verifying        : php-oci8-8.1.13-1.el9.remi.x86_64                                                                1/2 
  Verifying        : php-pdo-8.1.13-1.el9.remi.x86_64                                                                 2/2 
Installed products updated.

Installed:
  php-oci8-8.1.13-1.el9.remi.x86_64                            php-pdo-8.1.13-1.el9.remi.x86_64                           

Complete!

# php --ri oci8

oci8

OCI8 Support => enabled
OCI8 DTrace Support => enabled
OCI8 Version => 3.1.0
Oracle Run-time Client Library Version => 21.8.0.0.0
Oracle Compile-time Instant Client Version => 21.7

적절한 저장소 구성 및 사용을 위해서는 다음을 따르십시오.마법사 지침

Oracle의 경우에도 읽어 보는 것이 좋습니다.PHP용 Oracle 확장 설치

답변2

이는 다양한 소스의 혼합 패키지 문제입니다. dnf module install php:8.18.1 스트림을 사용하여 Oracle 저장소에서 설치해야 하는 PHP를 사용합니다(Remi에서 설치하는 방법을 모르겠습니다).

최근 Oracle Linux 8, php 8.0에 php-oci8을 설치한 방법을 보내드리겠습니다. 이론적으로 OL9 + php8.1에서 동일한 단계를 수행하는 것을 방해하는 것은 없습니다.

첫 번째 단계는 Remi 저장소를 삭제하는 것입니다. 저는 Oracle repo + PHP pecl을 계속 사용합니다(pecl은 PHP 확장 기능을 추가합니다).
모두 삭제레미파일을 /etc/yum.repos.d/확장하거나 이름을 바꾸거나 enable=0저장소를 삭제/비활성화하는 데 선호하는 방법을 선택하세요. 그런 다음 다음을 실행하십시오.

dnf check-upgrade

이 단계는 다른 소스에서 PHP 패키지를 제거하는 데 필요합니다. 설치한 PHP 패키지를 추적하세요. 이번에는 Oracle 저장소 8.1 스트림에서 다시 설치합니다. 그리고 모든 conf 파일.
dnf list *php*
설치된 PHP 및 PHP 관련 패키지를 기록해 두십시오.
dnf remove {any php - php related packages}

dnf module reset php

8.1 버전의 PHP 패키지에 관계없이 PHP 8.1 스트리밍을 활성화합니다.
dnf module enable php:8.1

설치 하려면 php-pear가 설치되어 있어야 하며 pecl, php-devel도 필요하며, 이전에 설치한 다른 모든 php 패키지도 제거해야 합니다.
dnf install php php-pear php-devel {plus the rest php packages}

ORACLE_HOME 디렉토리를 묻는 메시지가 표시됩니다. Oracle Instant Client로 컴파일하는 경우 "instantclient,/path/to/instant/client/lib"를 사용하십시오.
sudo pecl install oci8

이제 OCI가 설치되었으니 확인해 보세요.
pecl list

php.ini에 OCI 확장 추가
echo extension=oci8.so >> /etc/php.ini

systemctl restart php-fpm.service

OCI 8이 여기에 표시되어야 합니다.
php -m |grep -i oci

마지막 단계를 완료하면 이제 시작할 준비가 되었습니다!

관련 정보