做死的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閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容