做人總得有點夢想杉允,就算是咸魚也得是最咸的那條(笑)。
最近開始試著玩Linux缰猴,被CentOS虐的不要不要的...
不過探索的過程總是充滿樂趣hhhhh(好吧崩的我也是樂呵樂呵的)
話說最近看到Windows上很火的Wox枯跑,確實從效率到使用體驗到延展性都不錯,就考慮往我這近乎裸奔的CentOS上也安上一個Launcher袭艺。
找了找CentOS平臺的,發(fā)現(xiàn)了一款風(fēng)格很類似的:Mutate
Emmmmm.....好像Launcher本來就該長這樣叨粘。
于是興高采烈地跑去安裝啦~
首先是需要的依賴:
Dependencies
- boost-regex
- QT5
- GTK2 (for application icon lookup)
- ICU
- libsm
- libxkbcommon
之后就是簡單的yum啦~
sudo yum -y install https://github.com/qdore/Mutate/releases/download/v2.3/Mutate-2.3-0.fc21.x86_64.rpm
/usr/share/mutate/setup
嗯... ...然后就出錯了... ...
錯誤:軟件包:Mutate-2.3-0.fc21.x86_64 (/Mutate-2.3-0.fc21.x86_64)
需要:libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
錯誤:軟件包:Mutate-2.3-0.fc21.x86_64 (/Mutate-2.3-0.fc21.x86_64)
需要:libboost_regex.so.1.55.0()(64bit)
好像是GCC缺了點什么猾编,那就看看吧
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
來吧讓我們看看我們有啥!
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
...
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH
好吧...好像他要3.4.20來著升敲,好巧...我是3.4.19.....
那就裝唄~找到libstdc++.so.6安裝的網(wǎng)址(下載地址-進(jìn)去找鏡像)
下了一個libstdc++-7.2.1-4答倡,這回安上可就夠新了
走你!B康场瘪撇!
# rpm -ivh libstdc++-7.2.1-4.fc28.i686.rpm
警告:libstdc++-7.2.1-4.fc28.i686.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID ********: NOKEY
錯誤:依賴檢測失敗:
libc.so.6(GLIBC_2.18) 被 libstdc++-7.2.1-4.fc28.i686 需要
好吧華麗麗的失敗了,需要2.18版本的libc支持倔既,不用看肯定是我沒支持到恕曲。
于是又跑去了libc下載(鏡像下載地址)翻下來一個2.18
- 解壓到任意目錄
- 進(jìn)入目錄并給他創(chuàng)建build路徑(mkdir build)
- 進(jìn)入build進(jìn)行配置(../configure --prefix=/usr) Ps:兩個點哦
- make -j8(具體數(shù)量自己配置)
- make install
編譯安裝完了,再看看
strings /usr/lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
...
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.0
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
OS同學(xué)渤涌,我的2.18呢E逡ァ!J蹬睢茸俭!為什么glib版本這么老!M唷瓣履!
不知道是不是因為要重啟率翅,但是我突然感覺或許直接升級一個GCC全家桶會好一點...(心累)
這是GCC各個Mirrors的地址练俐,我選擇是進(jìn)入的日本域下的GCC-7.1.0(夠新了吧)
于是又是老一套:做build、configure冕臭、make腺晾、make install(make的時間基本夠我出去吃飯的)
終于build和install完了,重啟一下
# gcc -v
使用內(nèi)建 specs辜贵。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.1.0/lto-wrapper
目標(biāo):x86_64-pc-linux-gnu
配置為:./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
線程模型:posix
gcc 版本 7.1.0 (GCC)
高興的正準(zhǔn)備歡呼悯蝉,隨手一看
# strings /usr/lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
...
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.0
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
沒有任何變化...
上網(wǎng)搜了一下應(yīng)該重新建立軟鏈接,于是跟著作
$ rm -rf /lib64/libc.so.6 // 先刪除先前的libc.so.6軟鏈
$ ln -s /opt/glibc-2.18/lib/libc-2.14.so /lib64/libc.so.6
鼓掌~這次徹底玩崩了托慨!移除了libc.so.6之后我連ln都不能用了1怯伞!厚棵!
咋辦咋辦=妒馈!只能江湖救急了
ldconfig —— 這是一句很神奇的命令
來自博客:ldconfig命令的用途主要是在默認(rèn)搜尋目錄/lib和/usr/lib以及動態(tài)庫配置文件/etc/ld.so.conf內(nèi)所列的目錄下婆硬,搜索出可共享的動態(tài)鏈接庫(格式如lib.so),進(jìn)而創(chuàng)建出動態(tài)裝入程序(ld.so)所需的連接和緩存文件狠轻。
后來又來來回回改,毀了彬犯,這次又把ld搞壞了......無論執(zhí)行什么都是
symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link tim
又是翻了一堆博客向楼,原來還有救:
# sln /usr/lib64/ld-2.18.so /usr/lib64/ld-linux-x86-64.so.2
行吧那還是回來懟libc
開始加軟鏈:
ln -s /opt/glibc-2.18/lib/libc-2.14.so /lib64/libc.so.6
最后....連ls都不能用了,更別提yum谐区、gcc了湖蜕,我是不是該重裝系統(tǒng)了?宋列?
【更改GLIBC出錯后如何急救系統(tǒng)昭抒,請看這里。Mutate:我還會回來的】