BerkelyDB 3개 버전 설치

BerkelyDB 3개 버전 설치

내 서버에 3가지 버전의 BerkelyDB가 설치되어 있습니다.

다음 2개 버전

Package db4-4.3.29-10.el5_5.2.x86_64 
Package db4-4.3.29-10.el5_5.2.i386 

Centos 5 Distro에 포함되어 있습니다.

여기에 있는 소스에서 설치된 세 번째 버전

/usr/local/BerkeleyDB.4.5

(그리고 여기에 설치된 모든 Berkeley 유틸리티는 /usr/local/BerkeleyDB.4.5/bin )

Berkeley를 사용하는 프로그램을 실행하면(ASSP 2.4.4를 사용하고 있습니다) BerkeleyDB 4.3.29를 보고 사용할 수 있습니다. ASSP에는 Berkeley 버전 >= 4.5가 필요하기 때문에 이는 좋지 않습니다.

4.3.29 대신 /usr/local/BerkeleyDB.4.5에 설치된 기본 BerkeleyDB.4.5로 어떻게 설정할 수 있습니까?

답변1

일반적으로 패키지(예: 사전 컴파일된 바이너리)에서 무언가를 실행하려는 경우 PATH및/또는 을 설정하거나 바이너리 자체를 조정하는 데 LD_LIBRARY_PATH사용할 수 있습니다. chrpath주의한다면 BerkeleyDB의 여러 버전을 설치하지 못할 이유가 없습니다. ( configure스크립트는 이를 쉽게 수행하도록 설정되었으며 --program-suffixPATH에 버전이 지정된 바이너리를 보다 쉽게 ​​유지할 수 있도록 지원(및 변환)합니다.)

그러나 ASSP는 Perl로 구현되므로 현재 컴파일된 Perl BerkeleyDB.so라이브러리를 사용하여 구축된 Berkeley에 연결됩니다. (를 사용하는 많은 패키지와 달리 DB::Fileassp는 BerkeleyDB직접 사용합니다.)

너는 볼 수있어Perl이 사용하는 라이브러리는 무엇입니까?다음과 같은 것:

perl -e 'print join "\n",@INC;' | xargs -i find {} -name BerkeleyDB.so

ldd그런 다음 찾은 모듈에서 실행하십시오 .

일반적으로 CentOS를 사용할 때는 (좋든 싫든) CentOS 패키지 중심 세계를 구매하므로 "올바른" 솔루션은 CentOS 버전과 일치하는 ASSP 패키지 또는 작동하는 패키지도 포함하는 Berkeley RPM을 찾는 것입니다. perl을 사용 BerkeleyDB.so하거나 CentOS를 업그레이드하세요.


CentOS에 서비스 배포를 피합니다때문에패키지 종속성 문제. 나는 소스에서 빌드하지만 그것은 "구식"입니다. (RPM을 통하지 않고 소프트웨어를 설치할 때 해로운 효과를 경험할 수 있는 온화한 독자는 해당 줄 위에서 읽기를 중단해야 합니다.)

이 문제를 수동으로 해결하려면 ASSP용 Perl의 병렬 버전을 설치하면 됩니다(지난번 확인했을 때 CentOS 5.x에 ASSP를 실행하지 않는 perl-5.8이 포함되어 있었으므로 유지 관리 문제가 발생할 수 있으므로 이미 이 작업을 수행했을 수 있습니다). ; 또는 다음 지침에 따라 BerkelyDB 모듈만 업그레이드할 수도 있습니다.읽어보기, 컴파일하기 전에 올바른 경로를 확인/설정하십시오 config.in. 이 모듈은 BerkeleyDB.4.5 소스 아카이브에 포함되어 있으며 기본값은 다음과 같습니다.

INCLUDE=/usr/local/BerkeleyDB/include
LIB=/usr/local/BerkeleyDB/lib

따라서 심볼릭 링크를 추가하고 /usr/local/BerkeleyDB/usr/local/BerkeleyDB.4.5수동으로 빌드하십시오(또는 CPAN을 사용하여 설치/업그레이드하십시오. CPAN은 최신 버전이지만 거의 모든 기본 bdb 버전을 지원합니다).

BerkeleyDB를 업그레이드하는 경우 다른 Perl 스크립트나 특정 버전에 의존하는 경우 문제가 발생할 위험이 적습니다. 내가 아는 한 이것은 일반적으로 설치되는 모듈이 아니며 일반 Perl이나 Berkeley db4 CentOS 패키지에 포함되어 있지 않습니다( perl-BerkelyDBRHEL에 있고 CentOS 5.x에서는 본 적이 없습니다).

cd /usr/local/src/db-4.5.x       # or where ever you build
cd perl/BerkeleyDB
vi config.in                     # check INCLUDE and LIB [optional]
perl Makefile.pl                 # select the correct perl
make
make test && make install

find그런 다음 위의 / 지침을 반복하여 ldd모든 것이 예상한 대로인지 확인합니다. (Perl이 두 개 이상인 경우 일반적으로 시작하기 전에 환경 변수를 내보내는 것이 좋지만 PERL여기서는 필요하지 않다고 생각합니다.)

관련 정보