FusionInsight 产品 之 preinstall 功能简介 及 FAQ

举报
红尘客 发表于 2021/09/29 11:10:38 2021/09/29
【摘要】 FusionInsight 产品 之 preinstall 功能简介 及 FAQ##文章摘要本文主要对FusionInsight中preinstall工具功能简单介绍,以及在使用过程中常见的问题进行了简单总结, 目的在于帮助大家对preinstall相关功能有个简单的认识,并在使用过程中方便问题排查。 1. 背景及目的FusionInsight产品在部署时对操作系统、系统软件、OS配置、磁...

FusionInsight 产品 之 preinstall 功能简介 及 FAQ

本文主要对FusionInsight中preinstall工具功能简单介绍,以及在使用过程中常见的问题进行了简单总结, 目的在于帮助大家对preinstall相关功能有个简单的认识,并在使用过程中方便问题排查。

1. 背景及目的

FusionInsight产品在部署时对操作系统、系统软件、OS配置、磁盘等有特定的要求,故在产品安装前需要对OS进行配置,以保证大数据稳定、高效运行,实现大数据版本与OS版本的解耦

2. preinstall功能:

preinstall工具会配置OS设置系统参数,补充RPM包、配置hostname、关闭swap、磁盘分区格式化、安装statmon服务、rngd服务和diskmgt服务(根据配置是否安装)

2.1 配置OS设置系统参数

RedHat/CentOS

1. 设置系统服务
    1)  配置启动crond服务
    2)  配置启动sshd服务
    3)  配置关闭iptables服务
    4)  如果存在cgconfig服务,配置关闭cgconfig服务
    5)  配置启动ipmi服务
    6)  配置启动ipmievd服务
    7)  配置启动sssd服务
    8)  配置启动ntp服务
    
2. 设置系统配置
    1)  修改/etc/sysconfig/i18n文件,将LANG设置为en_US.UTF-8
    2)  修改/etc/security/limits.d/90-nproc.conf文件,将nproc设置为600000
    3)  修改/etc/security/limits.d/90-nofile.conf文件,将nofile设置为640000
    4)  修改/etc/fstab文件,如果存在//boot、/home、/opt、/tmp、/var/var/log的挂载点,那么在挂载参数中增加errors=panic配置项,并重新挂载
    5)/etc/profile添加配置export NSS_SDB_USE_CACHE=no
    6)  根据配置文件中的g_swap_off开关关闭swap
    7)  根据配置文件中的g_hostname_conf设置节点的主机名并配置/etc/hosts
    
3. 修改系统参数
    1)  修改/etc/sysctl.conf文件,配置kernel.sysrq = 1
    2)  修改/etc/sysctl.conf文件,配置kernel.kstack_depth_to_print = 20
    3)  修改/etc/sysctl.conf文件,配置kernel.panic_on_oops = 1
    4)  修改/etc/sysctl.conf文件,配置kernel.panic = 5
    5)  修改/etc/sysctl.conf文件,配置kernel.hung_task_timeout_secs = 3600
    6)  修改/etc/sysctl.conf文件,配置kernel.hung_task_panic = 1
    7)  修改/etc/sysctl.conf文件,配置vm.panic_on_oom = 2
    8)  修改/etc/sysctl.conf文件,配置vm.oom_dump_tasks = 1
    9)  修改/etc/sysctl.conf文件,配置kernel.softlockup_panic = 1
    10) 修改/etc/sysctl.conf文件,注销 net.bridge.bridge配置项
    11) 修改/etc/sysctl.conf文件,配置vm.swappiness = 0
    12) 修改/etc/sysctl.conf文件,配置fs.file-max = 640000
    13) 修改/etc/sysconfig/selinux文件,配置SELINUX=disabled
    14) 修改/etc/sysconfig/cpuspeed文件,配置GOVERNOR=preformance

SUSE

1. 设置系统服务
    1)  配置启动crond服务
    2)  配置启动sshd服务
    3)  配置启动ipmi服务
    4)  配置启动ipmievd服务
    5)  配置启动nscd服务
    6)  配置启动ntp服务
    
2. 设置系统配置
    1)  修改/etc/sysconfig/language文件,将LANG设置为en_US.UTF-8
    2)  修改/etc/sysconfig/clock文件,将HWCLOCK 设置为 –u
    3)  修改/etc/security/limits.d/90-nproc.conf文件,将nproc设置为60000
    4)  修改/etc/security/limits.d/90-nofile.conf文件,将nofile设置为64000
    5)  修改/etc/fstab文件,如果存在//boot、/home、/opt、/tmp、/var/var/log的挂载点,那么在挂载参数中增加errors=panic配置项,并重新挂载
    6)/etc/profile添加配置export NSS_SDB_USE_CACHE=no
    7)  根据配置文件中的g_swap_off开关关闭swap
    8)  根据配置文件中的g_hostname_conf设置节点的主机名并配置/etc/hosts
    
3. 修改系统参数
    1)  修改/etc/sysctl.conf文件,配置kernel.sysrq = 1
    2)  修改/etc/sysctl.conf文件,配置kernel.kstack_depth_to_print = 20
    3)  修改/etc/sysctl.conf文件,配置kernel.panic_on_oops = 1
    4)  修改/etc/sysctl.conf文件,配置kernel.panic = 5
    5)  修改/etc/sysctl.conf文件,配置kernel.hung_task_timeout_secs = 3600
    6)  修改/etc/sysctl.conf文件,配置kernel.hung_task_panic = 1
    7)  修改/etc/sysctl.conf文件,配置vm.panic_on_oom = 2
    8)  修改/etc/sysctl.conf文件,配置vm.oom_dump_tasks = 1
    9)  修改/etc/sysctl.conf文件,配置vm.swappiness = 0
    10) 修改/etc/sysctl.conf文件,配置fs.file-max = 640000
    11) 修改/etc/sysconfig/selinux文件,配置SELINUX=disabled

2.2 自动补齐OS缺失的rpm包

如果用户配置了g_add_pkg参数,那么会根据需要配置rpm包.

需要补齐的rpm包配置路径:FusionInsight_SetupTool/preinstall/script/function/add_packages/conf/${OS_NAME}-${VERSION}_must
-rpms-{ARCHITECTURE}.lst

ARCHITECTURE: aarch64/x86_64(默认缺省)

2.3 配置hostname

如果用户配置g_hostname_conf参数,那么preinstall会根据配置修改HostName,并且修改对应的/etc/hosts文件。

2.4 关闭swap

如果用户配置了g_swap_off参数,那么preinstall会自动将系统的swap关闭,并将swap分区卸载。

2.5 磁盘分区格式化

当配置了g_add_pkg值, preinstall工具会根据g_parted_conf配置中指定的配置文件(master.ini, host0.ini, host1.ini……), 对指定主机进行磁盘分区并格式化

master.ini/host*.ini 文件中配置项含义举例说明:

文件master.ini/host*.ini内容样例:
    #mount              required    care    condition
    common.conf         y           y       common_condition.sh
    zookeeper.conf      y           y       zookeeper_condition.sh
    journaldir.conf     y           y       journaldir_condition.sh
    namenode.conf       y           y       namenode_condition.sh
    datanode1.conf      n           y       n
    datanode2.conf      n           y       n
    datanode3.conf      n           y       n
    
配置项说明:
    1.  mount列:表示要挂载的配置明细(下面会描述到)。如果要多个模块并区,可把配置文件通过#号连接在一起,比如要把ZooKeeper模块和
        NameNode模块的目录合在一个盘符上,则可配置mount项为zookeeper.conf#namenode.conf。不过基于FusionInsight组网规划的要求,此并区功能请谨慎使用。
    2.  required列:表示是否必须挂载,如果填写了y(yes),那么若由于盘数不够或者无符合挂载条件的盘符,则整个流程将失败;而如果填写了n(no),
        那么表示不强求挂载此配置项,即其挂载成功与否,不会影响整个流程的结果。
    3.  care列:表示是否关注此配置项,如果为y表示进行监控处理,如果为n表示只在预安装阶段进行挂载,此后硬盘管理服务不会去监控它,即完全忽略它的存在。
    4.  condition列:表示配置项的盘符要求条件,比如要求是硬盘容量等。如果为n表示任何一个可用的盘符即可满足条件。
    
    
文件common.conf内容样例:
    ver=1.0
    name=common
    dir=/srv/BigData/common
    size=300  #unit: G
    filesystem=ext4
    user=omm
    group=wheel
    permission=755
    notify=common_notify.sh
    notifytimeout=60    #unit: second
    description="This is for PT storage."
    
参数配置说明:
    1.  ver:表示版本,用于后续升级的判断。
    2.  name:表示配置项名称。
    3.  dir:表示挂载目录。
    4.  size:表示分区大小,单位为G。如果填写max表示剩余的全部盘符空间。
    5.  filesystem:表示分区的文件系统格式,目前支持ext3/ext4/default三种,其中default是表示同操作系统根分区的挂载文件系统格式,
        主要是用来解决redhat和suse的默认文件系统差异。
    6.  user:表示目录所属用户。
    7.  group:表示目录所属群主。
    8.  permission:表示目录权限。
    9.  notify:表示目录可用/不可用/只读后的通知脚本。
    10.  notifytimeout:表示执行通知脚本的超时时间。
    11.  description:表示大数据模块目录配置项的描述。


文件common_condition.sh内容样例:
    #!/bin/bash
    if [ $1 is RAID1 ]; then
    exit 0
    else
    exit 1
    fi
    
脚本说明:
   此条件脚本的唯一参数是硬盘设备逻辑盘符(如sda),用来判断此盘符是否符合大数据模块对盘符的要求,如果返回0表示符合;返回其它值则表示不符合。
   若条件脚本不存在(比如被误删等),则同填写n处理方式,即表示对盘符无条件要求

2.6 statmon服务:

statmon服务是一个操作系统运行状态的监控服务,它不设置操作系统,而是对操作系统进行监控,监控的日志全部记录在/var/log/osinfo/statistics
/目录下(需要root用户权限)。
statmon对定位问题至关重要,可使用service命令对该服务进行启动、停止和查看状态。

2.7 rngd服务:

当配置了g_feed_random_setup值,preinstall工具会向系统安装rngd服务,preinstall会优先使用系统的haveged服务,如果系统存在haveged服务
(SUSE11.2和SUSE11.3),
那么仅仅是将haveged服务启动,并设置开机启动,如果不存在haveged服务,那么会启动系统的rngd服务
(RedHat/CentOS启动rngd服务,SUSE11.1启动rngd进程,并将进程写入cron中监控)

2.8 diskmgt服务

diskmgt服务是一个磁盘监控服务,它会对通过它挂载的磁盘进行监控,当磁盘分区丢失或者出现只读时(磁盘故障)发送告警,并且尝试修复故障。
它也就是我们常说的磁盘热插拔服务。
如果用户没有通过preinstall对磁盘进行分区挂载,那么diskmgt服务将不会安装。
preinstall运行完成之后
diskmgt服务并不会自动启动,需要安装nodeagnt才会启动,当然也可以手动启动

3. 配置说明:

preinstall.ini

3.1 对应的配置文件为:preinstall.ini (FusionInsight_SetupTool/preinstall/preinstall.ini)

3.2 必须配置的几个配置项:

    g_hosts=""                 含义:需要配置的 主机名(IP地址)列表
    
    g_parted_conf=""           含义:指定磁盘格式化的配置文件(支持不同节点有不同的分区配置)
                                          相关配置:g_parted= 
                                          如果 g_parted=0,该配置项可以为空。
    
    g_pkgs_dir=""              含义:指定rpm源(如果是iso,需要把ISO挂载至目录)
                                          相关配置:g_add_pkg= 
                                          如果 g_add_pkg=0,该配置项可以为空。
    
    g_platform=""              含义:指定系统的cup类型,可以执行命令'uname -p'查看
                                          可选项 'x86_64' 'aarch64'
    
    配置项的详细信息可以参考 preinstall.ini 中的说明.

4. 运行(可以在集群中的任一节点上运行)

4.1 运行方式

  • ./preinstall.sh (路径:FusionInsight_SetupTool/preinstall/preinstall.sh)

  • ./setuptool.sh preinstall (路径:FusionInsight_SetupTool/setuptool.sh)

4.2 输入集群密码(默认为集群的root密码)

5. 当前支持的OS版本

redhat-6.3;redhat-6.4;redhat-6.5;redhat-6.6;redhat-6.7;redhat-6.8;redhat-6.9;
redhat-7.0;redhat-7.1;redhat-7.2;redhat-7.3;redhat-7.4;redhat-7.5;redhat-7.6;
neokylin-5.5;neokylin-6.9;neokylin-7.2;neokylin-7.4;neokylin-7.5;neokylin-7.6;
kylin-V10;kylin-V10-fedora;
bclinux-7.6;
oracle-7.4;oracle-7.5;oracle-7.6;
suse-11.1;suse-11.2;suse-11.3;suse-11.4;suse-11;
suse-12.0;suse-12.1;suse-12.2;suse-12.3;suse-12.4;suse-12.5;
suse-15;suse-15.1;
centos-6.4;centos-6.5;centos-6.6;centos-6.7;centos-6.8;centos-6.9;centos-6;
centos-7.0;centos-7.1;centos-7.2;centos-7.3;centos-7.4;centos-7.5;centos-7.6;centos-7.9;centos-8.0;
euleros-2.0;euleros-2.0sp1;euleros-2.0sp2;euleros-2.0sp3;euleros-2.0sp5;euleros-2.0sp8;openEuler-20.03;euleros-2.0sp9;euleros-2.0sp10;

6. 常见故障处理

preinstall运行出现意外的失败,一般和用户的运行环境有关系,以下为常见的一些问题的处理,仅供参考。

  • 6.1 运行失败,打印Don’t login 192.188.45.182. Return code:255失败信息
    出现了Don't login ip地址. Return code:255的失败信息打印,一般是输入的密码不对导致的。解决办法:
    1.  检查输入的密码是否正确,如果输入错误,请重新输入正确密码。
    2.  检查所有节点的密码是否一致,如果不一致,请将所有节点的密码设置成一致。
    3.  检查ip地址指定的节点的sshd的设置是否正确,是否允许对应的用户登录该节点。一般是将/etc/ssh/sshd_config 文件中的PermitRootLogin配置成no导致的
  • 6.2 运行阻塞,preinstall长时间运行没有结束,进度条没有任何变化。
    如果节点的磁盘较多,磁盘的容量也比较大,那么preinstall运行确实比较费时,因为格式化大容量磁盘比较慢,在这种场景下,请用户耐心等待。
    如果preinstall出现数个小时都没有结束,并且进度条没有任何的变化,那么preinstall可能是出现阻塞了,一般是如下原因导致。
    
    1.  启动ipmi服务阻塞
        可查看preinstall的日志,最后的日志是starting ipmievd,而没有其他更多的打印。出现了该问题一般的BMC的ipmi服务存在故障。
        解决办法:重启系统。
        
    2.  rpm命令阻塞
        可运行ps –ef | grep rpm查看rpm命令进程的个数,如果存在几十个甚至上百个rpm相关的命令是可能是rpm命令出现阻塞导致的了。
        那么您可以尝试在节点上手工执行rpm -qa | grep glibc命令检查有喜爱rpm命令是否是真的阻塞。
        解决办法:运行命令: cd /var/lib/rpm;rm -rf __db*;rpm –rebuilddb,再次运行preinstall。
  • 6.3 运行失败,打印os version not supported失败信息
    1.  操作系统版本不支持
        打印该失败信息,一般是由于该节点的操作系统不在preinstall当前的支持范围内,当前preinstall支持的操作系统版本为:SuSE11 SP1、
        SuSE11 SP2、SuSE11 SP3、RedHat 6.4、RedHat 6.5、RedHat 6.6、RedHat 6.7、CentOS 6.4、CentOS 6.5、CentOS 6.6、CentOS 6.7。
        解决办法:重新安装操作系统,操作系统版本仅限上述版本。
        
    2.  rpm命令阻塞
        可运行ps –ef | grep rpm查看rpm命令进程的个数,如果存在几十个甚至上百个rpm相关的命令是可能是rpm命令出现阻塞导致的了。
        那么您可以尝试在节点上手工执行rpm -qa | grep glibc命令检查有喜爱rpm命令是否是真的阻塞。
        解决办法:运行命令cd /var/lib/rpm;rm -rf __db*;rpm –rebuilddb,再次运行preinstall。
  • 6.4 运行失败,打印python version is too low. The minimum version is 2.6.5失败信息
打印该失败信息,一般该节点是SuSE11 SP1,因为FusionInsight要求的Python版本最低为2.6.5,而SuSE11 SP1的Python版本小于2.6.5,所以导致失败。
解决办法:升级Python版本至2.6.5或者以上版本。
  • 6.5 运行失败,打印Setup os failed失败信息
    打印该失败信息,一般是由于设置系统参数时出现了异常,一般是如下原因造成的(ssh登录到对应失败的节点,进行如下原因排查):
    
    1.  /etc/fstab文件异常。该文件存在异常信息,导致preinstall在其中的挂载选项中添加errors=panic项失败。
        解决办法:解决/etc/fstab文件异常的问题
        
    2.  /etc/hosts中配置的hostname和preinstall.ini中的g_hostname_conf配置的hostname不一致。
        解决办法:如果g_hostname_conf配置的对应节点的hostname不正确,那么修改g_hostname_conf的配置,重新执行preinstall。
        如果/etc/hosts中的hostname配置不正确,那么将该项删除(preinstall会自动添加正确的hostname)。
        
    3.  /etc/hosts中没有配置127.0.0.1 localhost
        解决办法:127.0.0.1 localhost配置到/etc/hosts中
        
    4.  /etc/hosts中存在IP地址对应多个主机名的问题。
        解决办法:将不正确的主机名删除
        
    5.  swapon –s命令显示的swap信息和/etc/fstab中配置的swap信息不一致。一般是由于只运行swapoff将对应的swap关闭,
        在没有将swap的配置信息从/etc/fstab中删除。
        解决办法,编辑/etc/fstab将swap的配置行全部删除,运行swapoff /dev/sdX将swap关闭。
        
    6.  /etc/sysctl.conf文件中包含非法配置项,导致执行sysctl -p失败。
        解决办法:删除/etc/sysctl.conf文件中的非法配置项。
  • 6.6 运行失败,打印Disk format failed失败信息
    出现该失败的打印一般是由于配置和环境不匹配导致的,登录到对应失败的节点查看入选日志,C60之前版本的默认日志路径为/var/log/diskmgt/autopart.log,
    C60及以后版本的默认日志路径为/tmp/diskmgt/autopart.log,该文件记录了Disk format failed失败的详细原因:
    
    1.  打印sys swap and fstab swap are different错误。
        出现这个错误一般是由于swap没有正确关闭导致的,swapon –s命令显示的swap信息和/etc/fstab中配置的swap信息不一致。一般是由于只运行
        swapoff将对应的swap关闭,在没有将swap的配置信息从/etc/fstab中删除。
        解决办法,编辑/etc/fstab将swap的配置行全部删除,运行swapoff /dev/sdX将swap关闭。
        
    2.  打印root filesystem(xxxx) is not ext3/ext4错误
        当前preinstall仅支持根目录的文件系统为ext3或者ext4的环境,对于其他文件系统的环境,preinstall还不支持。
        解决办法:重装系统,将根目录的文件系统设置为ext3或者ext4.
        
    3.  打印fstab mnt(xxxx) dev(xxxx}) dir(xxxx) can not find in system mnt错误
        preinstall会检查当前的mount命令显示的挂载和/etc/fstab中的挂载是否一致,如果不一致就会打印上述错误,因为/etc/fstab中的配置
        错误可能会导致节点无法重启,所以需要慎重对待。
        解决办法:运行mount命令和查看/etc/fstab文件,检查是mount命令错误还是/etc/fstab文件有误,并修正。修正后再次尝试。
        
    4.  打印item(xxxx) dir(xxxxx) already mount错误
        指定的目录已经被挂载,而配置中还要求preinstall进行挂载,所以报出这个错误。常见于将diskmgt卸载后,没有将手动将磁盘umount并
        修改/etc/fstab,然后就运行了preinstall,实际上这些磁盘都还被挂载着。
        解决办法:将对应挂载点的磁盘umount掉,并修改/etc/fstab,修改后重新运行preinstall。
        
    5.  打印item(xxxx) size is max, but pos(xxxx) is not last(xxxxx)错误
        出现这种打印,一般常见于并区的场景,也就是一块磁盘划分成多个分区,每个分区挂载在一个目录上。这个使用需要强制指定每一个分区的大小
        (并区的最后一个分区不需要),打印上述错误也就是由于在并区的非最后一个分区使用了max来指定分区大小的,这必然会导致分区失败。
        只有并区的最后一个分区可用使用max。
        解决办法:修改并区的大小配置,出最后一个分区之后,其他的分区必须指定明确的大小,修正后再次运行preinstall。
        
    6.  打印item(xxxx) notify(xxxx) is not exist错误
        打印上述错误是由于配置中指定的notify文件不存在。常见于用户手动将整个partition目录删除,然后再将LLD生成的partition目录拷贝过来导致的。
        解决办法:重新解压安装包,只需要将LLD生成的文件覆盖到preinstall中即可,请不要删除preinstall中的任何文件。
        
    7.  打印/tmp/fi-preinstall.log do not read or write permissions错误
        preinstall没有权限写日志文件/tmp/fi-preinstall.log,该日志文件应该是root:root权限的。常见于用户先使用root用户运行preinstall,
        然后又使用非root用户运行preinstall,此时,非root用户就没有权限写/tmp/fi-preinstall.log文件了。
        解决办法:使用root用户将/tmp/fi-preinstall.log文件删除或者修改权限。
        
    8.  打印ready line conf(xxxxx}) can not match dev错误
        1)  打印上述错误一般是由于当前节点的空白的磁盘数不足导致,比如用户配置挂载10块磁盘,但是当前节点只有5块空白的磁盘,
            这就导致空白的磁盘不足,才打印上述错误。
            解决办法:修改配置文件,使其和节点上的磁盘数一致;或者在节点上插入足够的磁盘。
        2)  也常见于在preinstall.ini文件中将g_parted配置成1导致的。当g_parted配置成1时,他将只会寻找那些没有分区的磁盘,
            而节点上可能存在已久被分区的空闲的磁盘,所以导致了和用户预期不一致。
            解决办法:将preinstall.ini文件中的g_parted配置成29.  打印disk ready xxxxx need blank disk错误
        1)  打印上述错误一般是由于当前节点的空白的磁盘数不足导致,比如用户配置挂载10块磁盘,但是当前节点只有5块空白的磁盘,
            这就导致空白的磁盘不足,才打印上述错误。
            解决办法:修改配置文件,使其和节点上的磁盘数一致;或者在节点上插入足够的磁盘。
        2)  也常见于在preinstall.ini文件中将g_parted配置成1导致的。当g_parted配置成1时,他将只会寻找那些没有分区的磁盘,
            而节点上可能存在已久被分区的空闲的磁盘,所以导致了和用户预期不一致。
            解决办法:将preinstall.ini文件中的g_parted配置成210. 打印Size of devices /dev/sdX too big to be expressed in 32 bits错误
        打印该错误一般是由于磁盘太大导致的,在preinstall的时候,将size配置成max,也就是将整块磁盘全部分配给这个分区,
        如果磁盘的大小超过了16T,那么在格式化文件系统的时候,就会报错误,报告磁盘太大而导致了格式化失败。解决办法有两种:
        1)RAID的时候,将RAID做小一下,比如只有10T等等,只要RAID盘的大小小于16T即可
        2)  修改size的大小,也就是说不将整块磁盘分配给该分区,size的大小要小于16T。或者将该磁盘分成多个分区。
  • 6.7 运行成功,但是执行时间较长
    如果节点的磁盘较多,磁盘的容量也比较大,那么preinstall运行确实比较费时,因为格式化大容量磁盘比较慢,在这种场景下,请用户耐心等待。
    可以查看/tmp/diskmgt/atpt_Dprocess.log(C60以前的版本请查看/var/log/ diskmgt/atpt_Dprocess.log),其中记录了mkfs进程的运行状态。
    如果是虚拟机,那么需要检查母机的磁盘IO情况。因为有可能将多个虚拟机建在同一块磁盘上,那么对这个多个虚拟机进行格式化的时候,
    虚拟机将对该磁盘产生竞争,而磁盘的性能不足于响应这些虚拟机的请求,导致格式化进程大部分阻塞。可以在母机上运行:iostat -x 1查看磁盘的性能统计信息。
  • 6.8 运行失败,打印失败信息:Don’t find [XXXXX] rpm package in /media for IP地址
    preinstall在/media目录下没有找到XXXXX rpm包,或者rpm命令存在问题导致在补充rpm包是出现错误,可能的原因:                                            
    1)  挂载的ISO光盘不完整,导致rpm命令出错。具体可以通过计算ISO光盘的MD5值或者比较大小来确定ISO光盘是否完整。                                                `
    2)  rpm命令存在问题。运行rpm –qa | grep glibc等等一系列的rpm命令,如果存在问题,可以运行命令cd /var/lib/rpm;rm -rf __db*;rpm –rebuilddb尝试修复。  
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200