2009-03-18 8 views
3

CentOS 5.1에서 yum을 사용하고 있습니다. PHP 5.2.8을 소스에서 직접 컴파일했지만 yum을 사용하여 다른 패키지를 설치했습니다. pecl을 통해 PHP 확장을 설치해야하며 phpize도 설치해야합니다. 그러나 다음을 수행하는 것은 종속성 오류를 얻을 :종속 소프트웨어의 새로운 버전이있을 때 yum 의존성 검사를 무시합니다.

sudo yum install php-devel

오류 : 누락 종속성 : PHP = 5.1.6-20.el5_2.1이 때문에 패키지 PHP-(STABLE)

에서 필요로 실제로 새가 버전의 PHP가 이미 설치되어 있는데, 이것을 어떻게 무시할 수 있습니까? 소스에서 pecl/phpize를 직접 컴파일해야합니까? 필자는 전에는 문제가 없었지만 컴파일과 얌의 조합으로 인해서 만 발생하는 것으로 보입니다.

의견이 있으십니까?

덕분에, 카일 엄지 손가락의 규칙으로

+0

필자는 수동으로 컴파일하거나 PHP를 다시 설치한다고 생각합니다 (이번에는 yum에서). 그러나 나는 확실하지 않다. – andi

답변

2

, 그것은 시스템에 하나 개의 패키지 관리를하는 것이 좋습니다, 당신은 RPMS 모든 것을 포장 및 yum을 통해 관리 나을 것 때문에. 장기간에 걸쳐 많은 시간을 절약 할 수 있습니다.

소스 코드를 컴파일러에서 직접 가져오고 싶다면 stow/checkinstall/... 또는 소스 컴파일 된 내용에 대한 기본 패키지 관리를 할 수있는 다른 솔루션을 사용하십시오.

질문을 Regerding, 당신은 냠 강제 설치

+0

'--force'는 의존성 무시에 대해 작동하지 않습니다. 당신은'--nodeps'를해야만합니다. –

3

에 대한 옵션이 제공되지 않기 때문에,에 "회전 -i --force file.rpm"하고 필요한 패키지의 RPM을 다운로드하여 의존성 검사를 오버라이드 (override)을 시도 할 수 있습니다 yum 당신의 손으로 컴파일 된 PHP 버전에 대해서는 아무 것도 모른다. rpm --nodeps을 사용하여 패키지를 설치하여 RPM의 종속성 해결을 우회하거나 제대로 작동하기를 바랍니다.

또는 yum에서 이전 버전과 공존 할 수 있도록 다른 디렉토리에 자신을 컴파일 한 PHP 버전을 설치하십시오. 모든 사람들이 행복합니다 (가능한지 확실하지 않습니다. 앱이 하드 코드 된 경로를 사용하는지 여부에 따라 달라질 것입니다). PHP 또는 아닙니다).

운이 좋다면 EPEL 또는 RPMForge과 같은 타사 저장소에 최신 PHP 패키지가있을 수 있으므로 직접 컴파일하지 않아도됩니다. 일반적으로

4

: 당신이 스스로를 구축 할 경우

, 그것은 /usr/local로 전환하고, /usr/local에서 다른 것들에만 액세스 할 수 있습니다.

RPM/Yum에서 설치하는 경우 /usr으로 이동하고 /usr/usr/local에 액세스 할 수 있습니다.당신이 집에 컴파일 된 PHP를 사용하여 PHP 도구를 설치뿐만 아니라 /usr/local로를 설치하려는 경우

그래서 :

./configure --prefix=/usr/local && make && sudo make install 

또는

: 일반적으로, GNU 형 소프트웨어로, 그 뭔가를 할 것
make prefix=/usr/local all && sudo make prefix=/usr/local install 

... 당신은 그것의 접두사 설정을 무시하지 않는 가장 소프트웨어 /usr/local 기본합니다 있지만.

당신이 RPM의를 기반으로 "손으로 빌드"패키지를 원한다면, 당신은 사용할 수 있습니다

yumdownloader --source WHATEVER-PACKAGE 
    rpm -i WHATEVER-PACKAGE.rpm 
    rpmbuild -bp ~/rpm/SPECS/WHATEVER-PACKAGE.spec 

(~/rpm에 경로 상당 다를 수 곳 rpmbuild --showrc가 당신을 말할 것이다)

이를 업스트림 (원본 작성자) 소스 (보통 타르볼)와 OS 고유 패치를 포함하는 .src.rpm 패키지를 다운로드합니다. 소스를 ~/rpm (또는 rpmbuild 접두어)에 설치합니다. 다음 방금 RPM의에서 설치는 /usr/local 접두사 물론

와 함께, 자신을 /를 구성 할 단계 만들 수

:-) 훨씬 쉽게 소스를 압축을 풉니 다 거기에서 ~/rpm/BUILD/WHATEVER-PACKAGE/

에 패치를 적용