Postfix가 MySQL 공유 라이브러리를 찾을 수 없습니다

Postfix가 MySQL 공유 라이브러리를 찾을 수 없습니다

MySQL을 지원하는 Postfix를 설치하려고 합니다. postfix 데몬을 시작하거나 실행할 때 /usr/local/mysql/lib패키지를 빌드할 때 링크한 디렉터리에 있는 "libmysqlclient.so.18을 찾을 수 없습니다"라는 메시지가 나타납니다.

/usr/local/mysql/lib/libmysqlclient.so.18심볼릭 링크를 추가하여 /usr/lib문제를 해결했지만 이는 정말 나쁜 해결책이므로 올바른 방법으로 수행하는 것이 좋습니다.

나는 팔로우한다이 문서, 그 작은 버그를 제외하고는 작동합니다.

저는 Arch Linux, 커널 버전 2.6.33을 실행하고 있습니다.

답변1

가장 간단한 해결책은 Arch Linux 패키지에서 MySQL을 설치하는 것입니다. 그러면 라이브러리가 설치되고 /usr/lib모든 것이 원활하게 작동합니다.

패키징 시스템 외부에 MySQL을 설치한 경우 이는 /usr/local/lib라이브러리의 예상 위치입니다. 소스에서 프로그램을 설치할 때 자동으로 심볼릭 링크를 생성하려면 stow 또는 xstow를 사용하는 것이 좋습니다.추적 프로그램.

모든 프로그램이 에서 라이브러리를 찾도록 하려면 /usr/local/mysql/lib해당 라이브러리를 의 기본 라이브러리 검색 경로에 추가하세요 /etc/ld.so.conf. 하지만 /usr/local/lib당신이 원한다면 심볼릭 링크를 추천하고 싶습니다 .

Postfix가 에서 라이브러리를 찾도록 하려면 /usr/local/mysql/libPostfix를 시작하는 스크립트를 다음과 같이 편집하십시오 /etc/rc.d/postfix(Arch의 정확한 위치는 모르겠습니다). postfix 데몬을 시작하기 전에 다음 줄을 추가하세요.

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}/usr/local/mysql/lib"

답변2

Arch Linux에서는 최근 사용자 정의 빌드에서 라이브러리를 설치할 때 비슷한 문제가 발생했습니다. 제 경우에는 /usr/local/lib에 라이브러리를 설치했습니다. 이 라이브러리가 필요한 애플리케이션을 실행하면 유사한 런타임 오류가 발생합니다. 라이브러리를 찾을 수 없습니다. (BSD 시스템을 사용하는 것이 더 쉽지 않을까요?:-디)

올바른 해결 방법은 새 기본 라이브러리 디렉터리를 런타임 링커 경로에 추가하는 것입니다. 아치 리눅스에서,다음과 같습니다:

/etc/ld.so.conf

따라서 새 라이브러리 경로를 추가하려면

sudo vi /etc/ld.so.conf

그런 다음 경로를 새 줄에 추가합니다.

/usr/local/mysql/lib/

내 경우에는 /usr/local/lib를 추가했기 때문에 /etc/ld.conf.so 파일이 다음과 같이 보입니다.

#
# /etc/ld.so.conf
#

include /etc/ld.so.conf.d/*.conf
/usr/local/lib

# End of file

내 사용법이 올바른지 확인하십시오.

sudo ldconfig -v

사용자 정의 라이브러리가 나열되어야 합니다. 즉, 링커에 의해 "발견"되었습니다.

이 구성 파일과 런타임 링커에 대한 자세한 내용을 보려면

man ldconfig

Arch Linux는 여러 구성 파일(/etc/ld.so.conf.d/*.conf)이 있는 사용자 정의 디렉토리를 사용하도록 설정된 것처럼 보이지만 이는 나에게 너무 많은 SYSV이고 완전한 과잉입니다. /etc/ld.so.conf 경로입니다.

관련 정보