Ubuntu安装gcc3.4并添加到备选项里

背景

有时编译某个开源项目源码时需要安装不同版本的gcc或g++,而现有的gcc或g++又需要保留,这时可以采取配置备选项的方法让多个版本的可执行文件共存

下载安装

root@sundata:/data/szc# mkdir gcc-3.4 && cd gcc-3.4
root@sundata:/data/szc/gcc-3.4# wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb
root@sundata:/data/szc/gcc-3.4# wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4_3.4.6-6ubuntu3_amd64.deb
root@sundata:/data/szc/gcc-3.4# wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/cpp-3.4_3.4.6-6ubuntu3_amd64.deb
root@sundata:/data/szc/gcc-3.4# wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/g++-3.4_3.4.6-6ubuntu3_amd64.deb
root@sundata:/data/szc/gcc-3.4# wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb
root@sundata:/data/szc/gcc-3.4# dpkg -i *.deb

如果要安装不同版本的gcc或g++,可以到上面命令行中涉及的URL(http://old-releases.ubuntu.com/ubuntu/pool/universe)去找,里面是按照包的首字母分门别类的,比如找gcc,就进入g目录中去即可

添加备选项并使用

备选项的配置和使用是通过update-alternatives命令实现的,这是ubuntu中自带的工具。

添加备选项通过--install参数实现,格式为update-alternatives --install 镜像bin文件路径 镜像名 真实bin文件路径 镜像优先级,示例如下(其中gcc7是以前安装的,gcc3.4是刚安装的,后面的1和0表示优先级)

root@sundata:/data/szc/gcc-3.4# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 1
root@sundata:/data/szc/gcc-3.4# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 0

使用某一个备选项通过--config实现,格式为update-alternatives --config 镜像名,示例如下

root@sundata:/data/szc/gcc-3.4# update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).


  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-7     1         auto mode
  1            /usr/bin/gcc-3.4   0         manual mode
  2            /usr/bin/gcc-7     1         manual mode


Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/gcc-3.4 to provide /usr/bin/gcc (gcc) in manual mode

因为/usr/bin默认是在环境变量PATH中的,所以经过上述过程,我们就可以通过gcc来使用3.4版本的gcc了

root@sundata:/data/szc/gcc-3.4# gcc --version
gcc (GCC) 3.4.6 (Ubuntu 3.4.6-6ubuntu3)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果要对g++做同样的处理(第一步下载安装时,也安装了3.4版本的g++,注意下载包时使用的URL),过程则和配置gcc完全一样,只要把gcc换成g++即可

root@sundata:/data/szc/gcc-3.4# update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 1
update-alternatives: using /usr/bin/g++-7 to provide /usr/bin/g++ (g++) in auto mode
root@sundata:/data/szc/gcc-3.4# update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-3.4 0
root@sundata:/data/szc/gcc-3.4# update-alternatives --config g++
There are 2 choices for the alternative g++ (providing /usr/bin/g++).


  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-7     1         auto mode
  1            /usr/bin/g++-3.4   0         manual mode
  2            /usr/bin/g++-7     1         manual mode


Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/g++-3.4 to provide /usr/bin/g++ (g++) in manual mode

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值