做死的Centos-Atom


layout: post
title: "做死的Centos-Atom"
date: 2016-05-10 20:37:45 +0800
comments: true
categories: [Linux]


昨天晚上突然冒出一个念头在我的Centos6.5的虚拟机上装Atom并且装上那个炫酷的插件来装波大逼。然后很悲催,软件没装上不说,系统也被搞坏了。

兴高采烈的去下Atom

在github上找到了Atom的开源项目,根据指引下载好了rpm包。

然后sudo yum localinstall atom.x86_64.rpm

不出意外出现了问题。

当时忘了截图,不过我大概都还记得出了哪些问题。

这里有个极度懵逼的事情

我最开始在Centos中下Atom由于网络不好,时断时续就没管,后来切过去看。
咦~为什么这么快就下好了,开心的安装。恩,问题来了 libnode.so 找不到。
恩,有问题嘛很正常。度娘之。

度娘好像并不能告诉我什么,是时候翻墙了。翻出去过后的答案也是牛头不对马嘴。

忧郁了好一会,突然发现尼玛,这个包只有20+MB啊!!!!

这次包下好了完全没问题

安装中也出了一些问题。

但是我记不太清楚了0。0

其实是因为出的问题太多了,本来想安装成功过后做一个总结,之前查得解决方案的网页也都存了书签。

可是,后来软件没装好,系统被玩坏了。。书签和历史记录全部丢失了,,我就有点懵逼了。。。

解决了一些问题过后,安装完成了。

开心的atom想打开atom

恩,提莫的。

error! error!!

version GLIBCXX_3.4.9 not found

因为我解决问题的博文已经搞丢了,刚刚重新找了一篇大概差不多
传送门

ll /lib64/libc.so.6  
lrwxrwxrwx 1 root root 19 Sep 23 08:29 /lib64/libc.so.6 -> /lib64/libc-2.12.so  

libc.so.6是一个软连接,当前的glibc是2.12版本,我遇到的事GLIBC_2.15找不到的问题,所以需至少升级到2.15
首先,从网上下载glibc 2.15的rpm安装包,但这个不容易,因为.rpm针对的是centOS和redhat,高版本安装包很少见。也可以直接从其他系统上好一个编译好的文件
libc.so.6(对应glibc 2.15或者更高的),不过最保险的方式就是下载源代码在本地编译一次(有的人实在编译不成功,那也只能从别的地方找一份了)
各个版本的glibc可以从下载地址找,包括其插件glibc-port
最新到2.20,我保守的选择2.15
对于低版本glibc,还有glibc-linuxthreads-2.x需要编译,可参考很多网上文档,但2.15没有,所以不用了

wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz   
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz   
tar -xvf  glibc-2.15.tar.gz  
tar -xvf  glibc-ports-2.15.tar.gz   
mv glibc-ports-2.15 glibc-2.15/ports   
mkdir glibc-build-2.15    
cd glibc-build-2.15   
../glibc-2.15/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin  
make   
make install

如果提示install成功,去看glibc所在的共享库:

ll /lib64/libc* 

可以看到2.12的旧库文件还在,多了2.15版本的库文件,而且软链接文件全部指向了2.15版本。
<pre class="prettyprint linenums">
-rwxr-xr-x 1 root root 1921096 Aug 30 02:16 /lib64/libc-2.12.so
-rwxr-xr-x 1 root root 9801632 Sep 25 13:46 /lib64/libc-2.15.so
lrwxrwxrwx. 1 root root 18 May 19 18:51 /lib64/libcap-ng.so.0 -> libcap-ng.so.0.0.0
-rwxr-xr-x. 1 root root 18672 Jun 25 2011 /lib64/libcap-ng.so.0.0.0
lrwxrwxrwx. 1 root root 14 May 19 18:51 /lib64/libcap.so.2 -> libcap.so.2.16
-rwxr-xr-x 1 root root 19016 Dec 8 2011 /lib64/libcap.so.2.16
lrwxrwxrwx. 1 root root 19 May 19 18:57 /lib64/libcgroup.so.1 -> libcgroup.so.1.0.40
-rwxr-xr-x 1 root root 97016 Dec 9 2013 /lib64/libcgroup.so.1.0.40
-rwxr-xr-x 1 root root 197064 Aug 30 02:16 /lib64/libcidn-2.12.so
-rwxr-xr-x 1 root root 267972 Sep 25 13:46 /lib64/libcidn-2.15.so
lrwxrwxrwx 1 root root 15 Sep 25 13:52 /lib64/libcidn.so.1 -> libcidn-2.15.so
lrwxrwxrwx. 1 root root 17 May 19 18:51 /lib64/libcom_err.so.2 -> libcom_err.so.2.1
-rwxr-xr-x 1 root root 17256 Nov 22 2013 /lib64/libcom_err.so.2.1
-rwxr-xr-x 1 root root 40400 Aug 30 02:16 /lib64/libcrypt-2.12.so
-rwxr-xr-x 1 root root 142947 Sep 25 13:46 /lib64/libcrypt-2.15.so
lrwxrwxrwx. 1 root root 22 May 19 18:57 /lib64/libcryptsetup.so.1 -> libcryptsetup.so.1.1.0
-rwxr-xr-x 1 root root 97072 Jun 22 2012 /lib64/libcryptsetup.so.1.1.0
lrwxrwxrwx 1 root root 16 Sep 25 13:52 /lib64/libcrypt.so.1 -> libcrypt-2.15.so
lrwxrwxrwx 1 root root 12 Sep 25 13:52 /lib64/libc.so.6 -> libc-2.15.so
</pre>

有些人会在make install后出现error。这儿error我没去细究,经过网友提醒,可能是因为没有sudo造成的,因为make install就是把文件拷贝到几个受保护的系统目录下。

如果还是不行,可以查看一下系统此时的GLIBC版本,参考一开始的做法。如果版本未升级,我们只能手动安装一下:

首先make是成功了,那么我们会发现build目录下编译出了一个新的libc.so.6 (/glibc-build-2.15/libc.so.6, 我们会发现这实际上也是一个软连接,真实的lib文件时libc.so, 输出


$ ll  libc.so.6  
lrwxrwxrwx 1 root root 7 Sep 23 07:41 libc.so.6 -> libc.so  
$ strings libc.so | grep GLIBC  
GLIBC_2.2.5  
GLIBC_2.2.6  
GLIBC_2.3  
GLIBC_2.3.2  
GLIBC_2.3.3  
GLIBC_2.3.4  
GLIBC_2.4  
GLIBC_2.5  
GLIBC_2.6  
GLIBC_2.7  
GLIBC_2.8  
GLIBC_2.9  
GLIBC_2.10  
GLIBC_2.11  
GLIBC_2.12  
GLIBC_2.13  
GLIBC_2.14  
GLIBC_2.15  
GLIBC_PRIVATE  

这是我们需要的lib了,然后去更新系统的库。

这里要注意,更新系统里的链接(我的是/lib64/libc.so.6) 很容易出错,我不清楚有没有更好的办法,一般都是删除旧链接,建立新链接

但删除旧链接后,很多命令直接不能用了,因为此时中不到glibc的库了。这个时候就需要临时指定一个glibc库,方法如下(libc.so改个名以便好以后更新的其他版本区分)

 cp /****/glibc-build-2.15/libc.so /lib64/libc-2.15.so  

rm -rf /lib64/libc.so.6  
LD_PRELOAD=/lib64/libc-2.15.so ln -s/lib64/libc-2.15.so  lib64/libc.so.6  

连接更新成功,再编译的话,GLIBC_2.15及以下版本的依赖问题就不会出现了。

恩,到这里我也有话要说,我当时也是耿直,在这一步我重复了两三次!!!我耿直到从低版本一个一个往高版本安装啊。我真傻,真的。。。


** /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found**

传送门

出现这种问题就是因为编译库的编译器和编译当前程序的编译器版本是不一样的,在具体一点就是因为,当前程序的编译器的版本是比较低的,只要升级一下就可以了。可以用如下命令查看一下当前GCC版本:

<pre class="prettyprint linenums">
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
</pre>

并没有动态库中要求的GCC版本 “GLIBCXX_3.4.14”,所以需要进行升级一下我们的GCC版本,升级过程如下:

下载新版本的GCC,地址为点击打开链接 (这里也有一个坑,今天真的是傻!!!)

下载下来之后,用如下命令开始解压
<pre class="prettyprint linenums">
ar -x libstdc++6_4.7.2-5_i386.deb && tar xvf data.tar.gz
如果你的文件目录为GCC(如果不是,把GCC改为相应的目录即可),依次执行下面命令:

cd GCC/usr/lib/i380-linux-gun
su root
cp libstdc++.so.6.0.17 /usr/lib
cd /usr/lib
rm libstdc++.so.6
ln -s libstdc++.so.6.0.17 libstdc++.so.6
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_DEBUG_MESSAGE_LENGTH
</pre>
到这里其实就改结束了。可是回去atom

恩。不错,不是原来的错误了,重新报了一个错误。(具体的错误我忘了)

后来在解决的时候才发现这个错误是因为我之前下载安装的libstdc是32位的,但是我的Atom是64位的就出错了。然后再这个过程中,我之前以为是我创建软链接的时候创建错误,我把lib和lib64里面的libstdc++.so.6 都删了重新创建了一次。然后就GG了,这个时候连firefox浏览器都跟着崩溃了。后来意识到这个问题过后重新安装了64位的libstdc++.so.6解决了这个问题。

undefined symbol g_bytes_unref

这是遇到的最后的问题,也是彻底解决我的问题。。

在国内的网站上很少有这个问题的解决方法,后来找到一个论坛说是因为
GBytes is relatively new, only since glib-2.32 准备更新glib库

博文

检查系统当前的版本

 rpm -qi glibc

在CentOS中用更新命令到2.5已经是最新版本了,只好手动下载 glibc的源码包编译安装更新。
可以在 http://ftp.gnu.org/pub/gnu/glibc/看到当前的最新版本,
我看到的最新版本是glibc-2.22。

 cd /usr/src 
 mkdir glibc-2.22-build 
 wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.22.tar.gz
 tar zxvf glibc-2.22.tar.gz 
 cd /usr/src/glibc-2.22-build/ 
 export CFLAGS="-g -O2 -march=i686" 
  网上有些地方加优化开关 -O2  时(大写字母O),写的是 -02 (数字零),
  所以拷贝过来仍然出现3中的错误,所以请注意。
 /usr/src/glibc-2.22-build/glibc-2.22/configure --prefix=/usr/src/glibc-2.22-build/ --with-headers=/usr/include
 make 
 make install

报错

*** These critical programs are missing or too old: as ld compiler
*** Check the INSTALL file for required versions.

解决办法:
问题原因: 
缺少autoconf或版本太低


下载安装新版本


 wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
 tar zxvf autoconf-2.68.tar.gz
 cd autoconf-2.68
 ./configure --prefix=/usr/
 make && make install

我进行到了这一步,然后虚拟机卡住了,卡了好久。。

然后我干出了今天干过最蠢的事我直接用VM重启了它(我的Windows卡住就是这样干的(尴尬脸))

然后再开机我就懵逼了,我firefox的书签没了,历史记录没有,系统还报错。运行几分钟就一直卡住。。

然后我就决定果断弃坑!!!!!

PS:

这篇博文还很不完整,以后有机会再在Centos上装Atom成功的话在回来补充

<pre class="prettyprint linenums">
多么痛的领悟
绝对不要随便强制重启!!!!
用浏览器一定要登录,书签和历史记录才能同步啊!!!
下次更新东西别再一个版本一个版本的往上装了,耿直过头啊!!!
</pre>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,961评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,444评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,009评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,082评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,101评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,271评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,738评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,395评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,539评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,434评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,481评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,160评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,749评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,816评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,038评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,548评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,140评论 2 341

推荐阅读更多精彩内容