我试图通过yum在本地安装这个 RPM,并且只是用“Error:Nothing to do”消息迎接。
完整的标准输出
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
即使是在这个问题上正确的问题,我也不知所措。 我怎样才能找出问题,并得到这个安装?
您应该使用rpm命令进行安装,并将完整的URL包含到RPM中。
示例(假设从有问题的网站安装,没有其他依赖项):
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
您可以安装/激活percona回购
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保持up2date)
我没有意识到,直到我加了-v到我的yum调用,但是有时候包会被忽略,因为你或者别人已经在/etc/yum.conf中的exclude指令中写了一个匹配的通配符。
例如
exclude=Percona-Server*
如果不知道为什么会出现这种情况,那么删除它可能是不明智的,但在我的情况下,这是一个过去的搁置,解决了问题。
替代scheme:
从http://repo.percona.com/testing/centos/7/RPMS/x86_64/下载rpm
手动安装rpm
sudo rpm -i Percona-Server-server-56-5.6.22-rel71.0.el6.x86_64.rpm
如果YUM拒绝安装包,可能是因为:
yum clean headers ) 百胜通常会给出一些很好的指导,如果有的话,但是有时会返回“无事可做”!
首先检查包装是否已经安装。 在这种情况下,您将需要连接到MySQL( mysql -u root -p ),然后检查版本( SHOW VARIABLES LIKE "version"; )。 对于很多软件包,你可以简单的运行httpd -v或者nginx -v等等。
如果软件包尚未安装,或安装的版本较低,则通常应能够安装或更新。
在创buildRPM时, spec文件列出了要安装的软件包所需的软件包和版本。 阅读这个“规格”文件是完全理解所需内容的最好方法,为此,您通常必须find源RPM(又名SRPM)。
CentOS为重buildSRPM提供了一些很好的指导,以便检查或定制它: 重build一个源RPM
在spec文件中,您可能会发现Requires和BuildRequires ,请密切关注这些,因为它们是程序包所需的依赖项。 另一个经常被忽视的configuration是“时代”。 时代号允许旧版软件包被replace为其版本号低于安装版本的不同名称。 这对于更改名称但通常添加的软件包来说很重要。
我猜测,当YUM返回Error: Nothing to do的时代号码是问题。
在发布包的情况下Nothing to do信息的原因很简单:它已经被安装了,或者你正在使用安装了旧版本发布包的过时的URL。
发行包中包含YUM存储库信息。 您通常首先安装发行包(使用URL),然后从该存储库安装感兴趣的包(使用包名称)。
所以如果已经安装了一个* -release软件包,那么这个软件真的没有什么可做的,而且你也不应该做任何事情。 您必须继续从该存储库安装软件包。
完成步骤:
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm yum install Percona-Server-server-56
第一个命令添加了仓库信息,如果它已经存在(可以),可以给“无所事事”。
第二个命令从存储库安装实际的软件包。