I have a server with a weird internal version of MySQL installed and want to install collectd on that node. Unfortunately collectd has a dependency on MySQL and it fails the install because its expecting a certain version of MySQL where as the version of the installed one is a unique internal one.
我安装了一个奇怪的MySQL内部版本的服务器,并希望在该节点上安装collectd。不幸的是,collectd依赖于MySQL,它失败了安装,因为它期望有一个特定版本的MySQL,而安装的版本是唯一的内部版本。
Is it possible to install a second mysql version just to get past the yum error? or to make yum think its installed?
是否可以安装第二个mysql版本以克服yum错误?或者让百胜觉得它已经安装好了?
1 个解决方案
#1
2
It is generally not possible to install two versions of the same package. This usually results in unresolvable file conflicts, although there are rare cases in which you can have multiple versions of a package installed without conflict (e.g., the kernel
package).
通常不可能安装相同包的两个版本。这通常会导致无法解决的文件冲突,尽管在某些情况下,您可以在没有冲突的情况下安装多个版本的包(例如,内核包)。
It is possible to create a "fake" package that fulfills the missing dependency, although doing so indicates that something on your system is fundamentally broken (typically, someone has installed something that wasn't really intended for use on the particular distribution you're using). You would need to create a spec file with a Provides:
line matching your dependency, along the lines of:
可以创建一个“伪”包来满足丢失的依赖关系,尽管这样做表明系统上的某些东西从根本上是坏的(通常,有人安装了一些实际上不是用于您正在使用的特定发行版的东西)。您需要创建一个spec文件,其中有一个提供:与您的依赖项匹配的行:
Provides: mysql = 5.5.22
Once upon a time I wrote a tool called fakeprovide that helps out with this sort of thing...if nothing else it might give you a template spec file to work with.
很久以前,我写了一个叫做fakeprovide的工具来帮助我做这些事情。如果没有其他东西,它可能会给您一个模板规范文件来使用。
You could also grab the source RPM for collectd
and rebuild it to be compatible with the version of MySQL
installed on your system.
您还可以获取collectd的源RPM,并重新构建它,使其与系统上安装的MySQL版本兼容。
#1
2
It is generally not possible to install two versions of the same package. This usually results in unresolvable file conflicts, although there are rare cases in which you can have multiple versions of a package installed without conflict (e.g., the kernel
package).
通常不可能安装相同包的两个版本。这通常会导致无法解决的文件冲突,尽管在某些情况下,您可以在没有冲突的情况下安装多个版本的包(例如,内核包)。
It is possible to create a "fake" package that fulfills the missing dependency, although doing so indicates that something on your system is fundamentally broken (typically, someone has installed something that wasn't really intended for use on the particular distribution you're using). You would need to create a spec file with a Provides:
line matching your dependency, along the lines of:
可以创建一个“伪”包来满足丢失的依赖关系,尽管这样做表明系统上的某些东西从根本上是坏的(通常,有人安装了一些实际上不是用于您正在使用的特定发行版的东西)。您需要创建一个spec文件,其中有一个提供:与您的依赖项匹配的行:
Provides: mysql = 5.5.22
Once upon a time I wrote a tool called fakeprovide that helps out with this sort of thing...if nothing else it might give you a template spec file to work with.
很久以前,我写了一个叫做fakeprovide的工具来帮助我做这些事情。如果没有其他东西,它可能会给您一个模板规范文件来使用。
You could also grab the source RPM for collectd
and rebuild it to be compatible with the version of MySQL
installed on your system.
您还可以获取collectd的源RPM,并重新构建它,使其与系统上安装的MySQL版本兼容。