需要安装 MySQL 客户端库,但 RPM 未安装它们

需要安装 MySQL 客户端库,但 RPM 未安装它们

我正在尝试为同名的 Perl Mod 安装 MySQL 客户端库,但是当我运行时

sudo rpm --install -v --allfiles MySQL-client-5.5.16-1.linux2.6.i386.rpm

查询 rpm 数据库显示已安装的软件包,但 lib 文件不存在。

 rpm -qa | grep -i mysql
 MySQL-client-5.5.16-1.linux2.6
 ll /usr/lib/mysql
 total 4.0K
 4.0K drwxr-xr-x 3 root root 4.0K Oct 11 09:49 plugin/

我在 /usr/lib 中找不到这些文件

ls -ld /usr/lib/*mysql*
drwxr-xr-x 3 root root 4.0K Oct 11 09:49 /usr/lib/mysql
perlstation:~\ ->

这是 rpm -qil MySQL-client 的结果

    rpm -qil MySQL-client
Name        : MySQL-client                 Relocations: (not relocatable)
Version     : 5.5.16                            Vendor: Oracle and/or its affiliates
Release     : 1.linux2.6                    Build Date: Fri 09 Sep 2011 11:27:55 AM CDT
Install Date: Tue 11 Oct 2011 02:38:14 PM CDT      Build Host: loki32
Group       : Applications/Databases        Source RPM: MySQL-5.5.16-1.linux2.6.src.rpm
Size        : 53026574                         License: Copyright (c) 2000, 2011,    Oracle and/or its affiliates. All rights reserved. Under GPL license as shown in the Description field.
Signature   : DSA/SHA1, Wed 14 Sep 2011 03:13:49 AM CDT, Key ID 8c718d3b5072e1f5
Packager    : MySQL Build Team <[email protected]>
URL         : http://www.mysql.com/
Summary     : MySQL - Client
Description :
This package contains the standard MySQL clients and administration tools.

For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
/usr/bin/msql2mysql
/usr/bin/mysql
/usr/bin/mysql_find_rows
/usr/bin/mysql_waitpid
/usr/bin/mysqlaccess
/usr/bin/mysqlaccess.conf
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqlimport
/usr/bin/mysqlshow
/usr/bin/mysqlslap
/usr/share/man/man1/msql2mysql.1.gz
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysql_find_rows.1.gz
/usr/share/man/man1/mysql_waitpid.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqlbinlog.1.gz
/usr/share/man/man1/mysqlcheck.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlimport.1.gz
/usr/share/man/man1/mysqlshow.1.gz
/usr/share/man/man1/mysqlslap.1.gz
perlstation:~\ ->

我在这里不知所措。

答案1

你期待看到什么/usr/lib/mysql?该目录似乎只包含插件。 MySQL 客户端库是/usr/lib/libmysqlclient.so.*.它应该在那里;可能不是来自MySQL-client包,而是来自依赖的库包MySQL-client。更一般地,所有动态库文件名都以 . 开头lib和结尾.so

答案2

总是需要检查包依赖关系rpm。您是否在安装 mysql-client 软件包的同一目录中下载了其他软件包。由于rpm它本身没有提供依赖性解析,因此有必要使用 yum 等工具来简化 rpm 的安装。在这种情况下,我建议要么自行解决包依赖关系,要么最好在主机上配置 yum,让 yum 承担依赖关系解析的负担,并通过 rpm 安装它们。

在上述情况下,如果您确实看到文件未安装,而 rpm 声称文件存在于已安装的软件包中。重新验证它的一个简单方法是。

rpm -ql MySQL-client-5.5.16-1 | xargs ls -ld

如果您看到存在的所有文件,则 rpm 是正确的,您拥有客户端包中存在的所有文件。如果没有,那么就有问题了,可能是 mysql-client 软件包实际上已安装,但某些流氓用户?/process 已从安装位置删除了这些文件?。这可能是可能的。对于这一点,rpm 不保证,因为它从其rpmdb.我建议erase打包并重新安装 MySQL 客户端包。根据需要执行所有必要的依赖关系解析。

另外,这与 RPM 无关,但如果您打算从 perl 使用 mysql,则不一定必须依赖 DBI/DBD::MySQL perl 软件包,而是可以使用独立的 Tsucchi 的 Net::MySQL perl 软件包,它不需要绑定到 mysql 库,也不依赖于 mysql 的安装。只需从 github fork/clone 这个包,你就可以从 Perl 非交互地使用 mysql,如果你感兴趣的话,还有一个小脚本可以用作 mysql shell。分叉存储库位于https://github.com/mnikhil-git/p5-Net-MySQL

相关内容