共有ライブラリの読み込みエラー:libmysqlclient.so.20:共有オブジェクトファイルを開くことができません。そのファイルまたはディレクトリはありません。

共有ライブラリの読み込みエラー:libmysqlclient.so.20:共有オブジェクトファイルを開くことができません。そのファイルまたはディレクトリはありません。

だから私は大学で書いたプログラムをDebianで運営しています。これを行うと、次のエラーが発生します。

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を使って仮定された修正を見つけましたが、Debianを使用しているので、これは私にとって解決策ではありません。 Oracle MySQL 5.7で.20を見つけました(https://community.centminmod.com/threads/libmysqlclient-so-missing.9052/)

この問題を解決する方法を知っている人はいますか?よろしくお願いします。

答え1

明らかに、このプログラムはwww.mysql.comからダウンロードしたMySQLバージョン用にコンパイルされました。 libmysqlclient.so.20 は Debian では使用できません。

以下から.debファイルをダウンロードできます。https://dev.mysql.com/downloads/file/?id=477124www.mysql.com aptリポジトリにアクセスするようにDebian(ベース)システムを設定します。その後、適切なデータを更新できます。

# apt-get update

正しいライブラリをインストールしてください。

# apt-get install libmysqlclient20

インストールされている場合、DebianバージョンのMySQLが削除される可能性があることに注意してください。だからあなたが欲しいものが何であるかをよく考えてください。

もう1つの方法は、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

うまくいかないかもしれません。ほとんどの場合、ソースファイルが少し最新の場合は問題ありません。もちろんこれは安全ではなく、テスト用にすぎないことをもう一度強調します。

関連情報