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/lib
Postfix를 시작하는 스크립트를 다음과 같이 편집하십시오 /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 경로입니다.