linux 極限環境下編譯環境的安裝

前文:一般狀況下在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編譯環境安裝

相關文章
相關標籤/搜索