공유 라이브러리 로드 오류: libmysqlclient.so.20: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

공유 라이브러리 로드 오류: libmysqlclient.so.20: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

그래서 저는 대학에서 작성한 프로그램을 데비안에서 운영하고 있습니다. 이 작업을 수행하면 다음 오류가 발생합니다.

error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory 

검색 결과가 다르기 때문에 다음 패키지를 설치해 보았습니다.

apt-get install libmariadbclient-dev-compat
apt-get install default-libmysqlclient-dev
apt-get install mysql-common

검색:

find .  -name 'libmysqlclient*' 
locate libmysqlclient.so

아무런 출력도 얻지 못했습니다.

나는 yum을 사용하여 가정된 수정 사항을 찾았지만 데비안을 사용하고 있기 때문에 이것은 나에게 해결책이 아닙니다. Oracle MySQL 5.7에 대해 .20을 찾았습니다(https://community.centminmod.com/threads/libmysqlclient-so-missing.9052/)

이 문제를 해결하는 방법을 아는 사람이 있나요? 미리 감사드립니다.

답변1

분명히 이 프로그램은 www.mysql.com에서 다운로드한 MySQL 버전에 대해 컴파일되었습니다. libmysqlclient.so.20은 데비안에서 사용할 수 없습니다.

다음에서 .deb 파일을 다운로드할 수 있습니다.https://dev.mysql.com/downloads/file/?id=477124www.mysql.com apt 저장소에 액세스하도록 Debian(기반) 시스템을 구성하십시오. 그런 다음 적절한 데이터를 업데이트할 수 있습니다.

# apt-get update

올바른 라이브러리를 설치하십시오.

# apt-get install libmysqlclient20

설치된 경우 Debian 버전의 MySQL이 제거될 수 있다는 점에 유의하세요! 그러니 당신이 원하는 것이 무엇인지 잘 생각해보세요.

또 다른 방법은 apt 저장소를 탐색하고 libmysqlclient20 .deb를 수동으로 다운로드하는 것입니다. 예를 들면 다음과 같습니다.

# dpkg-deb --extract libmysqlclient20_5.7.23-1debian9_amd64.deb /tmp/libmysqlclient20

그런 다음 libmysqlclient.so.20을 공유 라이브러리가 검색되는 위치(예: /usr/local/lib/)에 복사하면 작동합니다.

답변2

Ubuntu 20.04에서 다른 사람이 이 문제를 겪고 있다면 APT 소스를 포함할 이전 저장소를 추가하면 됩니다 libmysqlclient20(예:길리아 실버답변.

sudo tee /etc/apt/sources.list.d/xenial.list > /dev/null <<EOF
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
deb http://dk.archive.ubuntu.com/ubuntu/ xenial-updates universe
EOF
sudo apt-get update
sudo apt-get install -y libmysqlclient20

답변3

echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list.d/unstable.list
apt-get update
apt-get install libmysqlclient20

답변4

wurtel의 올바른 솔루션(안전하지 않고, 더럽고, 프로덕션에 적합하지 않은 솔루션)을 제외하고, 해킹 방법은 프로그램이 찾고 있는 파일에 충분히 가까운 버전에서 심볼릭 링크를 만드는 것입니다.

  ln -s /usr/lib/libmysqulclient.so.23 /usr/local/lib/libmysqlclient.so.20

작동할 수도 있고 작동하지 않을 수도 있습니다. 대부분의 경우 소스 파일이 약간 더 최신이면 문제가 없습니다. 물론 이것은 안전하지 않으며 테스트용일 뿐이라는 점을 다시 한번 강조합니다.

관련 정보