前文:一般狀況下在linux系統中安裝一個軟件包或者是服務有幾種方式。linux
最簡單的一種是在能夠鏈接外網的狀況下,配置好網絡yum源,須要什麼包就配置什麼yum而後一路yum install 軟件包名便可(必要條件:能夠鏈接外網)c++
其次若是須要的軟件包能夠在系統的鏡像中找到,那麼能夠配置好本地yum源進行安裝也很方便(必要條件:本地鏡像,能夠不鏈接外網)redis
最後一種辦法是使用rpm包安裝(優勢是能夠不須要本地鏡像,也能夠不鏈接外網,但缺點是一個依賴包會依賴不少個依賴包,安裝好以後若是須要一些服務新的功能則必需要安裝新的安裝包)centos
背景交代:本次是在現場實際操做使用服務器搭建redis集羣。系統版本爲:紅帽7.2,沒法鏈接外網,可是配置了一個http的服務器yum源。在使用yum源的過程中發現有一臺服務器始終沒法正常使用yum源且現場沒有系統鏡像和編譯環境,可是要安裝redis集羣,使用的要麼是編譯安裝,要麼是yum源安裝,還未見哪路英雄使用rpm包安裝過。幾經波折以後,終於想到了如下幾種辦法並測試成功。服務器
法1:借雞生蛋 (借其餘相同環境具備編譯能力的服務器來編譯,而後在不具有編譯能力的服務器上進行安裝),最終完成redis的安裝(這種方法不過是權宜之計,不能解決根本問題,只能針對一些編譯環境不太複雜的軟件安裝)網絡
法2:抽絲剝繭,順騰摸瓜。如今倒推一次。要安裝redis,可使用yum安裝(排除:無外網,yum命令沒法使用),可使用編譯安裝,選擇編譯安裝,就必需要有編譯環境(gcc,gcc-c++)。如今的狀況是沒法使用yum安裝gcc,gcc-c++ ,也不具有編譯gcc的安裝包來安裝gcc(無編譯環境),幸虧大道五十,天衍四十九。萬事萬物必會留下一線生機,而如今,留給我惟一的生路就只有rpm包安裝gcc,gcc-c++了。此法很是人所用,但用此法一定是出於極境之時。因此留下博文,忘後來者以此爲鑑。下面是rpm包安裝gcc方法:測試
使用rpm包安裝gcc時,最主要的是安裝順序(本次主要針對7.2的系統):3d
安裝時所須要的安裝包:blog
連接:https://pan.baidu.com/s/1Je5aKc2Jny7VtoUKCOHJnQ 密碼:lxkfget
rpm -ivh glibc-2.17-* nss-softokn-*
rpm -ivh libgcc-4.8.5*
rpm -ivh gmp-6.0*
rpm -ivh mpfr-3.1*
rpm -ivh libmpc-1.0.1*
rpm -ivh cpp-4.8.5*
rpm -ivh kernel-headers-*
rpm -ivh glibc-headers-*
rpm -ivh glibc-devel*
rpm -ivh gcc-4.8.5*
rpm -ivh libstdc++-4.8*
rpm -ivh libstdc++-devel*
rpm -ivh gcc-c++*
下面是特殊的查詢技巧,適用於linux下全部版本的gcc安裝包搜索方法:
要下載的包,包名基本相同,可是針對不一樣系統版本須要下載不一樣版本的包,不然一個高版本的包或者低版本的包足以讓你找依賴包找到崩潰。那麼如何找到對應版本的rpm包呢?下面我有特殊的尋找技巧
1 在安裝rpm包是會報錯,顯示依賴各類庫,而這些庫分別對應那些包呢,咱們能夠經過這個網址來查詢。
https://centos.pkgs.org
例如:安裝一個包時顯示要依賴一個庫文件libgmp.so.10,咱們應該如何去查詢對應版本的安裝包呢?
首先把依賴的庫複製到搜索窗口
在查找到包的名字後,到對應的系統版本下下載對應的包便可,系統對應的網址http://vault.centos.org/6.6/os/x86_64/Packages/
點擊下載便可,而後一個一個排除依賴,最終完成gcc編譯環境安裝