【原创】大叔经验分享(27)linux服务器升级glibc故障恢复
redhat6系统默认安装的glibc-2.12,有的软件依赖的是glibc-2.14,这时需要升级glibc,下载安装 http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
# ./configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
# make
# make install
结果make install报错,同时除了cd外各种命令都用不了,会报各种shared libraries: *: cannot open shared object file: No such file or directory
ls: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory
这些shared libraries都位于/lib64/下,而且此时机器无法远程登录,
现在只有一个终端root账号登录在服务器上,除了能执行cd之外什么都做不了,omg
各种google都无法解决,自己努力
1 首先尝试从其他服务器远程传输/lib64/下的所有文件和link到本机,但是各种传输命令都不能用,比如nc、scp等
2 其次怀疑有可能是link损坏,尝试手工重建报错的link
# ln -s libtinfo.so.5.7 libtinfo.so.5
ln: creating symbolic link `libtinfo.so.5': File exists
虽然ls不能用,但是看起来/lib64/下各种文件和link都还在,那为什么会报No such file or directory?
3 再次通过export查看一下当前的环境变量(export还能用):
# export
declare -x LD_LIBRARY_PATH="/usr/local/lib"
尝试修改LD_LIBRARY_PATH,增加/lib64:
export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH
很多命令居然可以用了,这次glibc升级的过程是这样的,以其中一个library为例:
安装之前:
-rwxr-xr-x 1 root root 161776 Jun 19 2018 ld-2.12.so
lrwxrwxrwx 1 root root 10 Jun 19 2018 ld-linux-x86-64.so.2 -> ld-2.12.so
安装之后:
-rwxr-xr-x 1 root root 161776 Jun 19 2018 ld-2.12.so
-rwxr-xr-x 1 root root 838308 Jan 24 15:41 ld-2.14.so
lrwxrwxrwx 1 root root 10 Jan 24 16:28 ld-linux-x86-64.so.2 -> ld-2.14.so
将这次安装的改动回滚,即将所有的link都改为指回2.12版本
# ls -l /lib64|grep 2.14|grep lrw|awk '{print "ln -snf "$11" "$9}'|sed 's/2.14/2.12/g'
ln -snf ld-2.12.so ld-linux-x86-64.so.2
ln -snf libBrokenLocale-2.12.so libBrokenLocale.so.1
ln -snf libanl-2.12.so libanl.so.1
ln -snf libc-2.12.so libc.so.6
ln -snf libcidn-2.12.so libcidn.so.1
ln -snf libcrypt-2.12.so libcrypt.so.1
ln -snf libdl-2.12.so libdl.so.2
ln -snf libm-2.12.so libm.so.6
ln -snf libnsl-2.12.so libnsl.so.1
ln -snf libnss_compat-2.12.so libnss_compat.so.2
ln -snf libnss_dns-2.12.so libnss_dns.so.2
ln -snf libnss_files-2.12.so libnss_files.so.2
ln -snf libnss_hesiod-2.12.so libnss_hesiod.so.2
ln -snf libnss_nis-2.12.so libnss_nis.so.2
ln -snf libnss_nisplus-2.12.so libnss_nisplus.so.2
ln -snf libpthread-2.12.so libpthread.so.0
ln -snf libresolv-2.12.so libresolv.so.2
ln -snf librt-2.12.so librt.so.1
ln -snf libutil-2.12.so libutil.so.1
全部执行一遍,故障恢复,各种命令都可以使用,机器也恢复远程登录。
【原创】大叔经验分享(27)linux服务器升级glibc故障恢复的更多相关文章
- linux服务器升级python版本(python2与python3共存)
linux服务器升级python版本 ######################################## 第一步先安装sqlite-devel,因为python2也有这个,python3 ...
- 【原创】经验分享:一个小小emoji尽然牵扯出来这么多东西?
前言 之前也分享过很多工作中踩坑的经验: 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移? [原创]经验分享:一个Content-Length引发的血案(almost.. ...
- Linux CentOS6升级glibc库过程
CentOS6升级glibc库过程 hadoop无法加载native库,可能原因是 glibc库版本过低,需要升级. 第一:安装以下软件 yum -y install zlib zlib-devel ...
- 【原创】大叔经验分享(90)linux服务器iowait和负载很高
# top top - 21:21:51 up 207 days, 1:30, 5 users, load average: 0.90, 0.79, 1.62 Tasks: 249 total, 1 ...
- 【原创】大叔经验分享(18)hive2.0以后通过beeline执行sql没有进度信息
一 问题 在hive1.2中使用hive或者beeline执行sql都有进度信息,但是升级到hive2.0以后,只有hive执行sql还有进度信息,beeline执行sql完全silence,在等待结 ...
- 【原创】大叔经验分享(26)hive通过外部表读写elasticsearch数据
hive通过外部表读写elasticsearch数据,和读写hbase数据差不多,差别是需要下载elasticsearch-hadoop-hive-6.6.2.jar,然后使用其中的EsStorage ...
- 【原创】大叔经验分享(7)创建hive表时格式如何选择
常用格式 textfile 需要定义分隔符,占用空间大,读写效率最低,非常容易发生冲突(分隔符)的一种格式,基本上只有需要导入数据的时候才会使用,比如导入csv文件: ROW FORMAT DELIM ...
- 【原创】大叔经验分享(43)logstash设置jdbc_default_timezone后报错
logstash6.6.0-6.6.2版本使用jdbc input plugin时如果设置了jdbc_default_timezone,会报错: { 2012 rufus-scheduler inte ...
- 【原创】大叔经验分享(36)CM部署kafka
1 下载kafka parcel http://archive.cloudera.com/kafka/parcels/latest/KAFKA-3.1.1-1.3.1.1.p0.2-el7.parce ...
随机推荐
- 【原创】分布式之大话CAP
引言 本文翻译自博客 http://ksat.me/a-plain-english-introduction-to-cap-theorem/ 博主觉得这个故事讲的生动活泼,因此翻译来给大家分享,顺便加 ...
- jeecg字典表—普通表
创建普通表 同步数据库(创建对应的表) 验证功能效果 添加用户表,并添加对应的级别属性 同步用户表 字典功能测试 然后生成最新代码,添加到菜单即可
- redis cli命令
redis安装后,在src和/usr/local/bin下有几个以redis开头的可执行文件,称为redis shell,这些可执行文件可做很多事情. 可执行文件 作用 redis-server 启 ...
- laravel 远程一对多实例
/** * 关联楼宇推荐书关联表 * 远程一对一 */ public function buildingPanos() { return $this->hasManyThrough( 'App\ ...
- UC和QQ两个主流浏览器 * 点击触发微信分享到朋友圈或发送给朋友的功能(转载)
转载(声明:仅供学习使用) /** * 此插件主要作用是在UC和QQ两个主流浏览器 * 上面触发微信分享到朋友圈或发送给朋友的功能 * 代码编写过程中 参考: * http://mjs.sinaimg ...
- webpack2.0 css文件引入错误解决及图片输出在根目录配置问题
webpack引入css文件,main.js内容如下 import Vue from 'vue'; import App from './App.vue'; import Mint from 'min ...
- fedora上安装ffmpeg
环境 fedora26 1. 安装 yasm sudo dnf install yasm yasm-devel -y 2.安装 ffmpeg 官方下载ffmpeg源码 ( http://ffmpeg ...
- [十二省联考2019]异或粽子——可持久化trie树+堆
题目链接: [十二省联考2019]异或粽子 求前$k$大异或区间,可以发现$k$比较小,我们考虑找出每个区间. 为了快速得到一个区间的异或和,将原序列做前缀异或和. 对于每个点作为右端点时,我们维护出 ...
- windows 8.1 cmd命名提示符全屏
在 C:\Users\wy\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools 目录下,右键命令提示符-属性中修改:
- maven在windows及linux环境下安装
maven下载 下载地址:https://maven.apache.org/download.cgi maven在windows下安装 解压到D盘 修改配置文件 进入conf,打开settings.x ...