Linux最小化安装后纯手动安装gcc-8 -- 详解

    我虚拟机上安装的是CentOS7系统,选的是最小化安装,网络适配器是NAT而不是桥接模式。

心法总诀

    他强任他强,轻风抚山岗。

    总的来说,逢山开路,遇水搭桥,关键不放弃,本人第一次搭也遇到很多错误, 解决方法就是把错误信息百度一下。

    本文把大部分可能会出问题的地方指出来了,如果有遗漏,可按上述方法解决,毕竟我搭好了,你肯定也可以。

第一难  连上网络

    在装好系统后,首先要解决的是网络问题。对于NAT来说很简单,只要修改一个值即可:

    vi  /etc/sysconfig/network-scripts/ifcfg-ens33

    最后面的ifcfg-ens33根据系统可能不同。打开文件后,最后一行有一个ONBOOT=no, 改成yes即可

第二难  下载安装包

    我们要怎样得到安装包呢?用yum吗?不,太不优雅,而且yum命令是安装不了最新的包的。所以我们一般先安装一个wget工具:

    yum install wget

    有了下载程序,就是下载我们需要的包了,我们需要什么?不止是gcc,还有它的三个依赖gmp / mpfr / mpc

    gmp下载网址:http://ftp.gnu.org/gnu/gmp/

    这里面有很多版本,选一个自己喜欢的(个人一般选最新的,毕竟时代在进步),如gmp-6.1.2.tar.bz2,那么该版本的下载地址就是上面的网址后面加上要下载的包的名字如: http://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2  下载如下:

    wget http://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2 

    wget会把安装包下载到当前所在目录下。其它安装包下载和上面一样。包文件地址如下:

    mpfr : 镜象 http://ftp.gnu.org/gnu/mpfr/ 或者官网:http://www.mpfr.org/mpfr-current/

    mpc : http://ftp.gnu.org/gnu/mpc/

    当然还有最重要的 gcc 包:http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/

    关于gcc,不看不知道,一看吓一跳,CentOS7  yum命令安装的才四点几版本,而最新版已经是8.0.1了。。。= =

    (ps,本人虚拟机网速不知为何很卡,所以这三个包都是用windows下载的,之后用rz命令上传到Linux,要使用rz命令,首先要yum install lrzsz,其次要使用如secureCRT之类的工具连接到你的虚拟机,才可以进行传输,内容太多此处不多说,反正上面的方法是一定ok的)

第三难  解压安装包

    我们下载下来的包可能各种类型都有,".tar.*"结尾的,".zip"结尾的,

    对于点tar点xxx的包,一般都用tar命令解压,但当有tar是没用的,如,有一个包是  "xxx.tar.bz2",我们用tar解压时,会报错(因为我们是最小化安装,解压bz2的工具是没有的)。我们可以根据报错,看到系统需要一个bzip2的工具,很简单,

    yum -y install bzip2

即可,对于其它类型的包,处理过程大都如上。

    对于zip结尾的包,用yum命令安装一个unzip即可:

    yum -y install unzip

    upzip或tar的具体用法可参考——https://www.cnblogs.com/zhenghaonihao/p/6100657.html, 里面讲得很全了。这里就讲一个通用用法, 即  tar  -xvf  包名  ,一般的包都可以这么解压。

第四难  安装gcc

    之后我们就可以安装这些包了, 首先我们要安装gmp 包(注意,顺序不能错,因为后要的包要依赖前面的包,所以前面的没装好,后面的会报错)。

    先解压出gmp包,我们会发现在gmp包边上多了一个gmp-5.0.1的文件夹(版本号是我编后,后面三个数字根据版本的不同而不同)。下面我们就要讲一下安装的通用流程了,我们在安装前一般要先创建一个临时文件夹,一些中间输出要放在这个文件夹中。一般我们进入gmp-5.0.1,在里面创建一个tmp文件夹。然后执行:

    ../configure --prefix=/usr/local/gmp-5.0.1

    --prefix后面跟着的就是你要把gmp安装到的路径, 这个路径需要记一下,因为后面要用。

    此时,我们的第四难才显现出来。你是没法完成配置的,因为你没有gcc库,对没错,你手动安装gcc的前提是你要安装了gcc,是不是很扯。没关系,这个很容易解决,我们用yum下载一个低版本的暂用一下。

    yum install gcc

    yum install gcc-c++

    下载gcc-c++的原因是,后面安装gcc的时候要用。

    安装完后就好了吗?不,还会报错,他会提示你要安装一个叫“m4”的程序,还是没关系,照旧用yum下载即可:

    yum -y install m4

    之后我们的configure就可以成功了,然后依次执行:

    make

    make install

    即可。

    安装mpfr和mpc和上面差不多,都是先解压,后创建临时文件夹,之后configure ,之后是make 和make install。不过configure的语句有些不同。

    mpfr的confiigure操作:

    ../configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-5.0.1

    注意后面跟的地址就是我们gmp安装的地址

    mpc的configure操作:

    ../configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5

    最后,我们终于可以安装gcc了。但别太急,安装前先配置一个路径,我们:

    vim /etc/profile

    在最后一行加上:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.0.3/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.5/lib

    记住后面三个路径要换成你自己的。配置完后执行

    source /etc/profile

    让修改生效。

    真的,我们要开始安装gcc 了,同样是解压,创建tmp文件夹,cd进去后执行:

../configure --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3

    注意三个路径换成你自己的。最后也有些不同:

    make -j4

    make install

    安装过程会很久,本人装了近两个多小时才ok。完成后gcc -v看下版本。虽说过程艰难,但成功后还是很开心的。

  

最后一难  卸载上面安装过程中用yum命令安装的gcc

    rpm -q gcc

    此时会显示gcc的包名,一般是4点几版本的。

    rpm -e 包名

    把包名整个复制在-e的后面。但Enter之后发现删不掉,有依赖,即gcc-c++,它会提示完整的依赖包名。

    那么ok,把gcc-c++先卸掉即可:

    rpm -e  依赖包名

    删掉后再次删除gcc,就可以成功

    但此时,我们运行C++程序时很可能出错,

     /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

    这是因为原来的C++被删除,libstdc++.so.6的指向消失了。我们把原来的软链接删掉,建立新的软链接即可,怎么查找新的软链接应该指向谁呢?可用以下命令:

    find / -name "libstdc++.so*"

    找到最新版本的libstdc++.so即可,我的最新版是libstdc++.so.6.0.25,所以执行以下命令

    rm /usr/lib64/libstdc++.so.6

    ln -s /usr/local/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

    oik,一切结束。

   

猜你喜欢

转载自blog.csdn.net/fq_sl/article/details/81131825