问题

最近想把一个现有的 Ceph 客户端升级为最新的 M 版:

  1. [root@overcloud-ovscompute-0 ~]# rpm -qa | grep ceph
  2. puppet-ceph-2.4.1-2.el7ost.noarch
  3. libcephfs1-10.2.10-17.el7cp.x86_64
  4. ceph-base-10.2.10-17.el7cp.x86_64
  5. ceph-osd-10.2.10-17.el7cp.x86_64
  6. python-cephfs-10.2.10-17.el7cp.x86_64
  7. ceph-selinux-10.2.10-17.el7cp.x86_64
  8. ceph-mon-10.2.10-17.el7cp.x86_64
  9. ceph-common-10.2.10-17.el7cp.x86_64
  10. ceph-radosgw-10.2.10-17.el7cp.x86_64

在更新了 Ceph YUM 源并执行 Upgrade 时,出现错误:

  1. --> Finished Dependency Resolution
  2. Error: Package: 2:ceph-selinux-13.2.5-0.el7.x86_64 (Ceph)
  3. Requires: selinux-policy-base >= 3.13.1-229.el7_6.9
  4. Installed: selinux-policy-targeted-3.13.1-229.el7_6.6.noarch (installed)
  5. selinux-policy-base = 3.13.1-229.el7_6.6
  6. Error: Package: 2:ceph-base-13.2.5-0.el7.x86_64 (Ceph)
  7. Requires: gperftools-libs >= 2.6.1
  8. Installed: gperftools-libs-2.4-8.el7.x86_64 (@rhos-10.0-ceph-2.0-mon-signed)
  9. gperftools-libs = 2.4-8.el7
  10. You could try using --skip-broken to work around the problem

显然是 selinux-policy-base 和 gperftools-libs 的版本依赖不足,解决这个问题的办法有两个:

  1. 升级操作系统 YUM 源
  2. 升级这两个 rpm 包

这列我们主要使用第 2 个办法。

升级 RPM 包

Step 1. 下载依赖版本的 RPM 包

  1. [root@overcloud-ovscompute-0 fanguiju]# ll
  2. -rw-r--r--. 1 root root 495060 Feb 2 00:26 selinux-policy-3.13.1-229.el7_6.9.noarch.rpm
  3. -rw-r--r--. 1 root root 7246376 Apr 30 18:46 selinux-policy-targeted-3.13.1-229.el7_6.9.noarch.rpm

Step 2. 执行升级

  1. [root@overcloud-ovscompute-0 fanguiju]# rpm -U selinux-policy-targeted-3.13.1-229.el7_6.9.noarch.rpm
  2. warning: selinux-policy-targeted-3.13.1-229.el7_6.9.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
  3. error: Failed dependencies:
  4. selinux-policy = 3.13.1-229.el7_6.9 is needed by selinux-policy-targeted-3.13.1-229.el7_6.9.noarch
  5. [root@overcloud-ovscompute-0 fanguiju]# rpm -U selinux-policy-3.13.1-229.el7_6.9.noarch.rpm
  6. warning: selinux-policy-3.13.1-229.el7_6.9.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
  7. error: Failed dependencies:
  8. selinux-policy = 3.13.1-229.el7_6.6 is needed by (installed) selinux-policy-targeted-3.13.1-229.el7_6.6.noarch

麻烦在于升级 selinux-policy-targeted 首先要升级 selinux-policy,但升级 selinux-policy 又会被低版本的 selinux-policy-targeted 依赖。所以只能先卸载低版本的 selinux-policy-targeted:

  1. yum remove selinux-policy-targeted

然后升级 selinux-policy:

  1. rpm -Uvh selinux-policy-3.13.1-229.el7_6.9.noarch.rpm

最后再安装新版版的 selinux-policy-targeted:

  1. rpm -ivh selinux-policy-targeted-3.13.1-229.el7_6.9.noarch.rpm

Step 3. 查看升级结果:

  1. [root@overcloud-ovscompute-0 fanguiju]# rpm -qa | grep selinux-policy
  2. selinux-policy-3.13.1-229.el7_6.9.noarch
  3. selinux-policy-targeted-3.13.1-229.el7_6.9.noarch

同理在把 gperftools-libs 升级。

  • 更新前
  1. [root@overcloud-ovscompute-0 fanguiju]# rpm -qa | grep gperftools-libs
  2. gperftools-libs-2.4-8.el7.x86_64
  • 更新后
  1. [root@overcloud-ovscompute-0 fanguiju]# rpm -qa | grep gperftools-libs
  2. gperftools-libs-2.6.1-1.el7.x86_64

再次升级 Ceph。

  • 更新的软件清单
  1. ================================================================================================================================================================================================================================================================================
  2. Package Arch Version Repository Size
  3. ================================================================================================================================================================================================================================================================================
  4. Installing:
  5. libcephfs2 x86_64 2:13.2.5-0.el7 Ceph 434 k
  6. replacing libcephfs1.x86_64 2:10.2.10-17.el7cp
  7. Updating:
  8. ceph-base x86_64 2:13.2.5-0.el7 Ceph 4.9 M
  9. ceph-common x86_64 2:13.2.5-0.el7 Ceph 14 M
  10. ceph-mon x86_64 2:13.2.5-0.el7 Ceph 3.9 M
  11. ceph-osd x86_64 2:13.2.5-0.el7 Ceph 13 M
  12. ceph-radosgw x86_64 2:13.2.5-0.el7 Ceph 4.5 M
  13. ceph-selinux x86_64 2:13.2.5-0.el7 Ceph 21 k
  14. python-cephfs x86_64 2:13.2.5-0.el7 Ceph 86 k
  15. Installing for dependencies:
  16. liboath x86_64 2.4.1-9.el7 epel 35 k
  17. libradosstriper1 x86_64 2:13.2.5-0.el7 Ceph 329 k
  18. python-rgw x86_64 2:13.2.5-0.el7 Ceph 75 k
  19. Updating for dependencies:
  20. librados2 x86_64 2:13.2.5-0.el7 Ceph 2.9 M
  21. librbd1 x86_64 2:13.2.5-0.el7 Ceph 1.2 M
  22. librgw2 x86_64 2:13.2.5-0.el7 Ceph 2.0 M
  23. python-rados x86_64 2:13.2.5-0.el7 Ceph 189 k
  24. python-rbd x86_64 2:13.2.5-0.el7 Ceph 132 k
  • 更新后:
  1. [root@overcloud-ovscompute-0 ~]# ceph --version
  2. ceph version 13.2.5 (cbff874f9007f1869bfd3821b7e33b2a6ffd4988) mimic (stable)
  3. [root@overcloud-ovscompute-0 ~]# rpm -qa | grep ceph
  4. ceph-selinux-13.2.5-0.el7.x86_64
  5. puppet-ceph-2.4.1-2.el7ost.noarch
  6. ceph-osd-13.2.5-0.el7.x86_64
  7. python-cephfs-13.2.5-0.el7.x86_64
  8. ceph-common-13.2.5-0.el7.x86_64
  9. ceph-mon-13.2.5-0.el7.x86_64
  10. libcephfs2-13.2.5-0.el7.x86_64
  11. ceph-radosgw-13.2.5-0.el7.x86_64
  12. ceph-base-13.2.5-0.el7.x86_64

Ceph 客户端的 RPM 包升级问题的更多相关文章

  1. 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)

    介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...

  2. fpm打包神奇rpm包升级python2.7.16

    fpm打包神器参考文档:https://www.cnblogs.com/flintlovesam/p/6594635.html FPM的安装:安装ruby环境和gem命令: yum -y instal ...

  3. rpm 包的安装、卸载、升级、查询、验证

    关键字: rpm 强制卸载jdk rpm -e j2sdk1.4.2_04 强制覆盖安装jdk rpm -Uvh j2sdk-1_4_1_02-fcs-linux-i586.rpm --force - ...

  4. [Linux] 021 RPM 包的安装、升级与卸载

    1. 包全名与包名包全名 包全名:操作的包是没有安装的软件包 使用包全名.而且要注意路径包名 包名:操作已经安装的软件包时,使用 是搜索 /var/lib/rpm/ 中的数 2. 安装 $ rpm - ...

  5. 【CentOS】安装RPM包或者源码包

    一.rpm  (是Redheat Package Manager的简称) 如果光驱中还有系统安装盘的话, 1.先挂载光驱, mount /dev/cdrom /mnt/ 2.cd /mnt/ 3.cd ...

  6. Linux下RPM包的安装

    Linux下RPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(install):安装 -v(ve ...

  7. RPM包安装——手动安装

    RPM包安装 手动安装 挂载光盘 首先查看光盘是否挂载(使用mount命令) RPM包存放位置 在你光盘挂载点的Packages目录下 使用 ll | grep 关键字 可以快速找到你想要的RPM包 ...

  8. (转) centos7 RPM包之rpm命令

    原文:https://blog.csdn.net/capecape/article/details/78529159 RPM包与源码包的区别1.软件包分类 源码包:C源代码包 rpm包:编译之后的二进 ...

  9. 安装RPM包或者源码包

    RPM工具 RPM他是以一种数据库记录的方式将我们所需要的套件安装到linux主机的一套管理程序关于RPM各个选项的含义如下-i:表示安装-v:表示可视化-h:表示安装进度在安装RPM包时,常用的附带 ...

随机推荐

  1. DA_06_高级文本处理命令

    Linux中没有盘符这个概念,只有一个根目录“/”,所有文件都在它下面:点击计算机,下面存放的都是根目录下的东西: 2.6 文本文件编辑命令 1.cat 命令用于查看纯文本文件(内容较少的:一次性全部 ...

  2. manjaro 基本系统配置

    1.更新源 vim /etc/pacman.conf [archlinuxcn] SigLevel = Never Server = http://mirrors.tuna.tsinghua.edu. ...

  3. 解决docker容器的窗口大小问题

    解决docker容器的窗口大小问题 最近哥们在是使用docker时,发现有些容器内部窗口大小有问题. 如下午所示,vi窗口只占据左上角一部分.正常情况下vi应该铺满整个窗口才对呀. 所以哥们找到了解决 ...

  4. mybatic进阶遗留

    参考文章: MyBatis的架构设计以及实例分析 MyBatis缓存机制的设计与实现 MyBatis的一级缓存实现详解 及使用注意事项 MyBatis的二级缓存的设计原理

  5. hive日期函数-Demo(二)

    需求:某资产近一个月的资产值 比如:今天是2018年2月28日,近一个月若是按照自然月来算,那么是2018年2月1日至2018年2月28日.最终需要的日期格式为:yyyyMMdd. 当日时间戳 uni ...

  6. PHP swoole UDP服务端和客户端

    服务端 <?php $serv = ,SWOOLE_PROCESS,SWOOLE_SOCK_UDP); $serv->on('Packet',function ($serv,$data,$ ...

  7. Mybatis的@UpdateProvider注解的使用(转)

    废话不多说,直接上代码 @UpdateProvider(type = AppProvider.class, method = "updateApp") Integer update ...

  8. hive2.3.4安装

    一.安装Hadoop Hive运行在Hadoop环境之上,因此需要hadoop环境,本次在安装在hadoop完全分布式模式的namennode节点上 请参考:hadoop搭建 二.安装Hive 下载 ...

  9. Mysql历史版本下载地址

    Mysql历史版本下载地址:http://downloads.mysql.com/archives/community/

  10. IDEA运行有问题debug正常解决方案

    朋友们!有没有遇到这样的问题,IDEA运行有问题,debug确是正常的,不经怀疑人生! 不要慌!点击maven,clean一下,再compile一下,就好啦! 不要慌!点击maven,clean一下, ...