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编译环境安装

相关文章
相关标签/搜索