急救模式下安装rpm包

-----------------------------------------------------------------------------分割线--起因--------------------------------------------------------------------------------

最近公司做一些变更,在测试机上做操作的时候

yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel

yum安装包的时候报错

libselinux-2.5-11.el7.x86_64 is a duplicate with libselinux-2.2.2-6.el7.i686

网上查了一些,说是版本冲突,需要卸载一个,然后,我把两个都卸载之后,系统出现问题,执行命令的时候报错

ifconfig: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or

只有几个内置的命令可以使用比如cd  pwd

重新安装回来肯定是不可能了,所以只能利用急救模式了

-----------------------------------------------------------------------------分割线--完毕--------------------------------------------------------------------------------

 

背景交代完毕,就看如何操作了,对了,另外找一台服务器查看了一下 libselinux.so是由哪个包安装的

# rpm -qf /usr/lib64/libselinux.so.1
libselinux-2.2.2-6.el7.x86_64

确实是我卸载的那个包没错了

1.机器重启,按F2键进入机器的BIOS模式,选择CD-ROM启动,最后按F10保存退出。

2.从光驱上使用光盘文件做引导启动,选择“Troublesbooting”

3.进入救援模式选择“Rescue a CentOS system”

4.到此,选择“1”的“Continue”。

5.进入后按“Enter”键即可。

6.先使用命令df,看看分区信息,其实这看到的分区信息并不是真正机器上的分区信息,而是光盘的分区信息。

 

cd /run/install/repo 进入光盘文件所在目录。

cd /mnt/sysimage 进入真正的机器系统根目录。

7.进入光盘的文件目录下,使用rpm命令安装RPM的程序包,在此,特别要注意的是(如下图),后面必须要加上–-root=/mnt/sysimage ,这是使用–-root=指向机器真正的根目录下进行安装,否则直接安装的话是安装到了光盘分区上了。对于--root不懂的,可以自行查一下rpm命令的选项

# cd /run/install/repo/Packages/
# ls libselinux-2*
libselinux-2.5-11.el7.i686.rpm  libselinux-2.5-11.el7.x86_64.rpm
# rpm -ivh libselinux-2.5-11.el7.x86_64.rpm --root=/mnt/sysimage

8.正式启动安装rpm包。等待安装完成后,使用exit命令退出让机器重新启动即可。

9.在机器重新启动完成后,登陆到系统内,系统里的命令可以正常使用了,完毕

 

 

参考文档:https://blog.51cto.com/13683480/2105915

 

posted @ 2019-09-05 15:45  augusite  阅读(952)  评论(0编辑  收藏  举报