尝试升级 MySQL 时,RPM 无法找到依赖项

尝试升级 MySQL 时,RPM 无法找到依赖项

我正在尝试将 MySQL 从 4.1.20 升级到 5.1.39。v4.1 通过 RPM 安装时没有任何问题,但尝试升级时会引发几个看似错误的警告,例如:

# rpm --升级 MySQL-client-5.1.39-0.glibc23.i386.rpm
警告:MySQL-client-5.1.39-0.glibc23.i386.rpm:V3 DSA 签名:NOKEY,密钥 ID 5072e1f5
错误:依赖项失败:
        MySQL-client-5.1.39-0.glibc23 需要 libncursesw.so.5
#

即使我已将其安装在 /usr/lib/libncurses.so.5

我还得到了:

# rpm --升级 MySQL-server-5.1.39-0.glibc23.i386.rpm
警告:MySQL-server-5.1.39-0.glibc23.i386.rpm:V3 DSA 签名:NOKEY,密钥 ID 5072e1f5
错误:依赖项失败:
        MySQL-server-5.1.39-0.glibc23 需要 perl(DBI)
#

即使报告的版本是 1.609:

# perl -M'DBI 999' -e1
需要 DBI 版本 999——这仅仅是版本 1.609。

我如何让 RPM 知道它们已安装?或者现在是时候恢复从源代码构建了?

编辑: 顺便说一下,这是一个相当老的 Redhat 盒子(i686,尽管我尝试过 i386 RPM)

答案1

一些问题/评论:

  • 你使用哪种操作系统?
  • 哪个 arch?如果您有 64 位操作系统和 64 位 ncurses,它将不适合这个 32 位 MySQL rpm。
  • 你从哪里获得 rpm?我猜这是来自 mysql.com 的 vanilla 版本。你检查过他们的系统要求吗?你为你的发行版/操作系统选择了正确的软件包吗?请参阅http://dev.mysql.com/downloads/mysql/5.1.html适用于所有受支持的操作系统的软件包。确保 arch 和 OS 版本都匹配!
  • libncursesw.so.5!=libncurses.so.5
  • 命令的结果是什么rpm -qf /usr/lib/libncurses.so.5?这将显示您从哪里获取了 libncurses.so.5 文件。然后您可以使用来rpm -qlv <PKG>检查此包的内容libncursesw.so.5
  • 我建议获取您的操作系统发行版的 MySQL 版本,而不是第三方版本,因为包依赖关系不会出现问题。
  • 如果您对 rpm 不太熟练,我建议直接使用 yum/apt-get 而不是 rpm,因为它会自动为您解决所需的依赖关系。
  • rpm 不会查看硬盘上已安装的文件以解决依赖关系。它只会查看已安装的 rpm(在 rpm 自己的数据库中注册)。这意味着要满足依赖关系,您必须安装正确的 rpm - 在没有 rpm 的情况下仅安装正确的文件是不够的。

答案2

你的依赖数据库乱了。

如果使用 yum 请尝试:

yum clean all

如果没有,请尝试:

rpm --rebuilddb

如果仍然失败,您可以尝试手动重建数据库:

http://www.informatimago.com/linux/rpm-rebuilddb.html

免责声明:我尚未测试本指南中的步骤,因此,就像您在网上找到的任何内容一样,请谨慎操作。步骤中的某些部分可能已过时,不符合当前版本的 rpm 工具集。

答案3

如果你使用的是 CentOS 或 RedHat,我建议使用 rackspace 的 mysql 包iuscommunity 存储库。您可以找到最新版本的 mysql (5.1.39),它们非常稳定。

相关内容