我正在尝试通过 yum 在本地安装此RPM,但只收到“错误:无事可做”消息。
完整标准输出
Loaded plugins: fastestmirror, priorities
Setting up Install Process
Examining Percona-Server-server-56-5.6.22-rel71.0.el6.x86_64.rpm: Percona-Server-server-56-5.6.22-rel71.0.el6.x86_64
Error: Nothing to do
在这一点上,即使是正确的问题,我也不知所措。如何识别问题并安装它?
-v
直到我添加到我的调用中我才意识到yum
,但有时包会被忽略,因为你或其他人exclude
在/etc/yum.conf
.例如
在不知道它为什么存在的情况下删除它可能是不明智的,但在我的情况下,它是过去的遗留物,删除它解决了问题。
您可以安装/激活 percona repo
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
现在您可以使用
yum install Percona-Server-server-56-5.6.22-rel71.0.el6.x86_64.rpm
安装所需的软件包(并使用 yum 保持更新)如果 YUM 拒绝安装软件包,可能是因为:
yum clean headers
)如果有问题,Yum 通常会给出一些很好的指导,但有时它会返回“Nothing to do”!
首先检查该软件包是否尚未安装。在这种情况下,您需要连接到 MySQL (
mysql -u root -p
),然后检查版本 (SHOW VARIABLES LIKE "version";
)。对于许多软件包,您可以简单地运行httpd -v
等nginx -v
。如果该软件包尚未安装,或者安装了较低版本,那么您通常应该能够安装或更新。
创建 RPM 时,
spec
文件会列出要安装的软件包所需的软件包和版本。阅读此“规范”文件是充分了解所需内容的最佳方式,为此,您通常必须找到源 RPM aka SRPM。CentOS 为重新构建 SRPM 以检查或定制它提供了一些很好的指导:重新构建源 RPM
在规范文件中,您可能会同时找到
Requires
和BuildRequires
,请密切注意它们,因为它们是包所需的依赖项。另一个经常被忽视的配置是“Epoch”。Epoch 编号允许旧软件包被替换为不同的名称,其中它们的版本号低于已安装的版本。这对于更改名称但经常添加的包很重要。我猜当 YUM 返回
Error: Nothing to do
Epoch 编号时是个问题。在发布包的情况下出现消息的原因
Nothing to do
很简单:它要么已经安装,要么您正在使用安装旧版本发布包的过时 URL。发布包包含 YUM 存储库信息。您通常首先安装发布包(使用 URL),然后从该存储库安装感兴趣的包(使用包名称)。
因此,如果已经安装了 *-release 包,那么就真的无事可做,也不应该对此做任何事情。您必须继续从该存储库安装软件包。
完成步骤:
第一个命令添加存储库信息,如果它已经存在(没关系),可以给出“无事可做”。
第二个命令从存储库安装实际的包。
替代解决方案:
从http://repo.percona.com/testing/centos/7/RPMS/x86_64/下载 rpm
手动安装rpm
您应该使用该
rpm
命令进行安装,并包括 RPM 的完整 URL。示例(假设从相关网站安装并且没有其他依赖项):
sudo rpm -Uvh http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.22-71.0/binary/redhat/6/x86_64/Percona-Server-server-56-5.6.22-rel71.0.el6.x86_64.rpm