Yum repo 优先级和冲突

Yum repo 优先级和冲突

在我的 CentOS 6.4 服务器上,我运行的是 MySQL 5.5.33,它是从remi 存储库。我决定通过 MySQL 自己的 yum 存储库将 MySQL 升级到 5.6.x:

安装存储库后,我的存储库列表如下:

# yum repolist enabled
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * Webmin: download.webmin.com
 * base: mirrors.xmission.com
 * epel: mirror.steadfast.net
 * extras: mirror.thelinuxfix.com
 * remi: remi.check-update.co.uk
 * updates: mirrors.xmission.com
repo id                                              repo name                                                                   status
Webmin                                               Webmin Distribution Neutral                                                    175
base                                                 CentOS-6 - Base                                                              6,367
epel                                                 Extra Packages for Enterprise Linux 6 - x86_64                              10,737
extras                                               CentOS-6 - Extras                                                               14
mysql-connectors-community                           MySQL Connectors Community                                                       6
mysql-tools-community                                MySQL Tools Community                                                            6
mysql56-community                                    MySQL 5.6 Community Server                                                      46
remi                                                 Les RPM de remi pour Enterprise Linux 6 - x86_64                             1,485
updates                                              CentOS-6 - Updates                                                             864
repolist: 19,700

这样 MySQL 5.6 存储库就安装并启用了。现在,如果我尝试检查已安装的 MySQL 的信息以查看可用的最新版本,我会得到以下信息:

# yum info mysql
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * Webmin: download.webmin.com
 * base: mirrors.xmission.com
 * epel: mirror.steadfast.net
 * extras: mirror.thelinuxfix.com
 * remi: remi.check-update.co.uk
 * updates: mirrors.xmission.com
Installed Packages
Name        : mysql
Arch        : x86_64
Version     : 5.5.33
Release     : 1.el6.remi
Size        : 29 M
Repo        : installed
From repo   : remi
Summary     : MySQL clie.......

Available Packages
Name        : mysql
Arch        : x86_64
Version     : 5.5.37
Release     : 1.el6.remi
Size        : 5.8 M
Repo        : remi
Summary     : MySQL client progr....

因此,看起来 yum 仍在查看 remi 存储库以获取最新版本。我猜它甚至没有查看 mysql56-community 存储库。因此,接下来我尝试这样做:

# yum info mysql --disablerepo=\* --enablerepo=mysql56-community

这应该会忽略除 Mysql 存储库之外的所有其他存储库。但我得到:

# yum info mysql --disablerepo=\* --enablerepo=mysql56-community
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Installed Packages
Name        : mysql
Arch        : x86_64
Version     : 5.5.33
Release     : 1.el6.remi
Size        : 29 M
Repo        : installed
From repo   : remi
Summ......

因此它仅列出我已安装的版本,并未报告任何其他可用的较新版本。我原本期望在 mysql56-community 存储库中看到可用的 5.6.x 版本。

我在这里遗漏了什么? 这里是否存在某种回购冲突?

更新:

# yum --disablerepo=\* --enablerepo='mysql*-community*' list available
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
mysql55-community                                                                                               | 2.5 kB     00:00     
mysql57-community-dmr                                                                                           | 2.5 kB     00:00     
Available Packages
mysql-community-client.x86_64                                          5.6.17-4.el6                                   mysql56-community
mysql-community-common.i686                                            5.6.17-4.el6                                   mysql56-community
mysql-community-common.x86_64                                          5.6.17-4.el6                                   mysql56-community
mysql-community-devel.i686                                             5.6.17-4.el6                                   mysql56-community
mysql-community-devel.x86_64                                           5.6.17-4.el6                                   mysql56-community
mysql-community-embedded.i686                                          5.6.17-4.el6                                   mysql56-community
mysql-community-embedded.x86_64                                        5.6.17-4.el6                                   mysql56-community
mysql-community-embedded-devel.i686                                    5.6.17-4.el6                                   mysql56-community
mysql-community-embedded-devel.x86_64                                  5.6.17-4.el6                                   mysql56-community
mysql-community-libs.i686                                              5.6.17-4.el6                                   mysql56-community
mysql-community-libs.x86_64                                            5.6.17-4.el6                                   mysql56-community
mysql-community-libs-compat.i686                                       5.6.17-4.el6                                   mysql56-community
mysql-community-libs-compat.x86_64                                     5.6.17-4.el6                                   mysql56-community
mysql-community-server.x86_64                                          5.6.17-4.el6                                   mysql56-community
mysql-community-test.x86_64                                            5.6.17-4.el6                                   mysql56-community
mysql-connector-odbc.x86_64                                     5.3.2-1.el6                                  mysql-connectors-community
mysql-connector-python.noarch                                   1.1.6-1.el6                                  mysql-connectors-community
mysql-utilities.noarch                                          1.3.6-1.el6                                  mysql-tools-community     
mysql-workbench-community.x86_64                                6.1.4-1.el6                                  mysql-tools-community 

因此,有可用的 mysql-community-* 包,但没有名为 的包mysql-server。如果我安装这些mysql-community*包,这会与mysql-server我当前安装的包发生什么冲突?

答案1

这两个存储库 remi 和 mysql56-community 不能一起使用,因为它们使用的软件包命名方案不兼容。yum info mysql不会显示来自 MySQL 社区存储库的任何内容,因为没有任何软件包是mysql在新命名方案下命名的。请尝试yum info mysql\*其他方法。

因此,您无法直接从 Remi 将 MySQL 更新到 MySQL 社区存储库。相反,您需要遵循 MySQL 的更换 MySQL 第三方发行版的说明,特别是“非本地第三方发行版”部分。这涉及卸载 Remi 软件包,然后使用新名称安装 MySQL 社区软件包。

如果您需要保留其他软件包的 Remi 仓库,则应通过在仓库定义中添加exclude=mysql*或适当的行来确保 yum 不再使用其 MySQL 软件包。includepkgs

答案2

它们是由不同的维护者打包的,并且可能会在提供相同文件等方面发生冲突,并且来自官方 repos 的 mysql rpm:s 可能不会认为自己是从 remi 安装的 mysql rpm:s 升级的。

我认为转储数据库、从 remi repo 卸载所有 mysql rpm:s、禁用 remi repo、yum clean all、从官方 repos 安装 mysql 并导入数据库。

答案3

您提供的链接建议使用“ --enablerepo='mysql*-community*'”我会尝试一下。您也可以.repo在 中编辑文件/etc/yum.repos.d/。请/etc/yum.repos.d/remi.repo确保enabled=0已设置,而不是关闭 repo。此外,对于 mysql 社区 repo 文件,请确保将 enabled 设置为 1。

相关内容