CentOS 6.6升级gcc4.8.2

 

在CentOS 6.6 64bit上升级GCC到4.8.2版本

标签: gcc
4552人阅读  评论(0)  收藏  举报
  分类:
Linux(49) 

操作系统CentOS6.6 64bit上gcc原版本4.4.7,不能支持C++11的特性~,为了便于YouCompleteMe插件,我希望升级到4.8.2。不能通过yum的方法升级,需要自己手动下载安装包并编译,下面假定都是以root用户安装。

一、升级过程

1.获取gcc安装包并解压

gcc官网http://ftp.gnu.org/gnu/gcc里面有所有的gcc版本供下载,最新版本为5.3.0


这里我们暂保守选择安装gcc 4.8.2
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz
tar -zxvf gcc-4.8.2.tar.gz
2.下载供编译需求的依赖项
这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力,我们可以直接打开其源码看看。
它会下载指定的源码包并做软连接。
cd gcc-4.8.2 
./contrib/download_prerequisites 
下面需要依次从源码安装这几个依赖库
gmp,mpfr,mpc

3.建立一个目录供编译出的文件存放
mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
4. 生成Makefile文件
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
5.编译
make -j4
注意:此步骤非常耗时,普通PC花费半小时不稀奇,我的高配电脑只用了10分钟左右
6.安装
sudo make install
7.切换GCC到新版
确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后再输入

ls /usr/local/bin | grep gcc


查找。添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc 40

8.确认当前版本已经切换为新版
gcc -v
g++ -v
注意需要重新打开终端才能生效。
 
二、验证安装
尝试写一个C++11特性的程序段 tryCpp11.cc,使用了shared_ptr
//tryCpp11.cc
#include <iostream>
#include <memory>
int main()
{
    std::shared_ptr<int> pInt(new int(5));
    std::cout << *pInt << std::endl;
    return 0;
}
 
验证文件:
g++ -std=c++11 -o tryCpp11 tryCpp11.cc
./tryCpp11

三、安装中遇到的问题澄清
1.是否需要手动安装依赖库?
不需要,程序会内部自动处理,手动安装反而后出错。
2.安装动态库后,是否需要更新动态库?
更不需要修改并更新/etc/ld.so.conf文件之类的
3.如果编译错误,不要make distclean之类的,直接重新解压源码再来一遍
4.编译过程中出现错误
configure: error: cannot compute suffix of object files: cannot compile
这是找不到依赖库的位置
### 如何在CentOS 6.6升级OpenSSH至7.4版本 #### 准备工作 为了确保系统的稳定性和安全性,在执行任何更新操作之前,建议备份重要数据并记录当前配置。 #### 升级EPEL仓库 由于默认的CentOS 6.x库不提供最新的软件包版本,因此需要启用额外的第三方存储库来获取较新的OpenSSH版本。可以使用EPEL(Extra Packages for Enterprise Linux),这是一个由社区维护的企业Linux发行版附加软件包集合[^1]: ```bash sudo yum install epel-release ``` 然而需要注意的是,默认情况下即使启用了EPEL也可能无法直接获得如此高版本的OpenSSH,因为这涉及到安全审核流程以及与旧内核兼容性的考量。 #### 编译安装最新版OpenSSH 对于特定版本的需求如OpenSSH 7.4,则可能不得不采取源码编译的方式来进行安装: 1. 安装必要的构建工具和依赖项: ```bash sudo yum groupinstall "Development Tools" sudo yum install pam-devel openssl-devel zlib-devel ``` 2. 下载指定版本的OpenSSH源代码(这里以7.4p1为例): ```bash wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz tar -xf openssh-7.4p1.tar.gz cd openssh-7.4p1/ ``` 3. 配置编译环境并编译程序: ```bash ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-pam \ --with-zlib=shared \ --with-md5-passwords make ``` 4. 替换现有服务前先停止它: ```bash service sshd stop ``` 5. 执行安装命令并将新版本复制到适当位置: ```bash cp ssh/sshd /usr/sbin/. cp contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd ``` 6. 修改`sshd_config`文件中的路径设置,如果有必要的话. 7. 启动新的SSH守护进程并验证其运行状态: ```bash chkconfig --add sshd chkconfig sshd on service sshd start ss -tnlp | grep sshd ``` 8. 测试连接以确认一切正常运作之后再关闭旧版本的服务端口.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值