【发布时间】:2018-10-14 22:50:48
【问题描述】:
我正在根据最新的 rakudo-star docker 镜像创建自己的 docker 镜像。我想使用 DBIish 连接到 mysql 数据库。不幸的是,我无法让 DBDish::mysql 工作。
我已经安装了 default-libmysqlclient-dev,你可以在
中看到# find / -name 'libmysqlclient*.so'
/usr/lib/x86_64-linux-gnu/libmysqlclient_r.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so
我面临的错误是:
# perl6 -Ilib -e 'use DBDish::mysql; DBDish::mysql.connect()'
Cannot locate native library 'mysqlclient': mysqlclient: cannot open shared object file: No such file or directory
in method setup at /usr/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 289
in method CALL-ME at /usr/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 539
in method connect at /root/DBIish/lib/DBDish/mysql.pm6 (DBDish::mysql) line 12
in block <unit> at -e line 1
【问题讨论】:
-
您是在 docker 容器内手动创建映像吗?您使用的是什么基础映像?
-
我自己的 Dockerfile 使用 rakudo-star docker 镜像作为基础。我唯一做的就是安装一些 debian 软件包,包括“default-libmysqlclient-dev”。除了安装一些 perl6 模块外,其中还有 DBIish。
-
如果您共享您正在使用的 Dockerfile 会更好......很难说其他方式。很明显它没有找到共享库,但是如果我们不知道它是如何安装的,就很难知道原因......
-
没办法。我已经定义了LD_LIBRARY_PATH,从/usr/lib 链接,定义了DBIISH_MYSQL_LIB,没有办法。在DBIish issues 中发现了类似的问题。也许写一个问题会是最好的......