源码升级安装glibc和rpm升级glibc

http://jacklin9.spaces.live.com/blog/cns!A891B52E1182AFB2!346.entry

http://blog.sina.com.cn/s/blog_48eef8410100ap22.html

下载glibc
wget  http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz

下载glibc-linuxthreads
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.gz

解压
tar -zxvf glibc-2.7.tar.gz
mkdir glibc-build
cd glibc-2.7
tar -zxvf ../glibc-linuxthreads-2.7.tar.gz
cd ..
export CFLAGS="-g -O2 -march=i486"
cd glibc-build
../glibc-2.7/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks

#make
#make install

安装编译过程中需要注意三点:
1、要将glibc-linuxthreads解压到glibc目录下。
2、不能在glibc当前目录下运行configure。
3、加上优化开关,export CFLAGS="-g -O2 -march=i486",否则会出现错误
'#error "glibc cannot be compiled without optimization"'

###################################################################################################################################################
#########################    rpm 升级glibc2.7    ###########################################################################################
###################################################################################################################################################

因公司合作研发的游戏项目 德州扑克 要求,

Linux需要升级 glibc库要2.7以上,所以就尝试了下升级glibc。

由于找不到CentOS5的 glibc2.7 ,就在网上找到了fedora的rpm包来替代,试过暂时是没发现什么问题。以下是步骤。

这里下载相应的rpm包http://archive.fedoraproject.org/pub/archive/fedora/linux/releases/8/Everything/x86_64/os/Packages/

由于我们目前linux都是64位系统,所以我下载4个x64文件:
glibc-common-2.7-2.x86_64.rpm
glibc-headers-2.7-2.x86_64.rpm
glibc-devel-2.7-2.x86_64.rpm
glibc-2.7-2.x86_64.rpm

然后升级的命令为:
rpm -Uvh --aid --nodeps glibc-common-2.7-2.x86_64.rpm
rpm -Uvh --aid --nodeps glibc-headers-2.7-2.x86_64.rpm
rpm -Uvh --aid --nodeps glibc-devel-2.7-2.x86_64.rpm
rpm -Uvh --aid --nodeps glibc-2.7-2.x86_64.rpm

直接强制更新升级。

升级后好像glibc2.7自动生效了。

编译一个程序测试下是否使用了64位的动态库。

#vi hello.c

#include
int main(void)
{
              printf("Hello World!\n");
}

保存退出,然后执行
gcc -o test hello.c
chmod +x test
./test

运行成功!

执行
file test
查看有看到x64,表示使用 64位的动态库。

网上有些地方加优化开关 -O2  时(大写字母O),写的是 -02 (数字零),所以拷贝过来仍然出现3中的错误,所以请注意。

安装完后,可以查看ls -l /lib/libc.so.6已升级

lrwxrwxrwx 1 root root 11 Nov 12 09:24 /lib/libc.so.6 -> libc-2.7.so

测试:
32位:
vim hello.c
 #include

main()
 {
     printf("hello world!\n");
 }

保存退出,然后执行
gcc -o test hello.c
chmod +x test
./test

运行成功!

执行
file test

64位:
#vi hello.c

#include
int main(void)
{
              printf("Hello World!\n");
}

保存退出,然后执行
gcc -o test hello.c
chmod +x test
./test

运行成功!

执行
file test
查看有看到x64,表示使用 64位的动态库。

<未测>源码升级安装glibc和rpm升级glibc的更多相关文章

  1. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

  2. Centos 7源码编译安装 php7.1 之生产篇

    Centos 7源码编译安装 php7.1 之生产篇 Published 2017年4月30日 by Node Cloud 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具 ...

  3. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  4. inux centos7下源码 tar安装5.7.26详解

    inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...

  5. 源码编译安装MySQL8.0.20

    1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...

  6. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  7. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  8. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  9. Zabbix源码包安装

    Zabbix源码包安装 Cenos5.3 Basic server 安装顺序 Libxml2 Libmcrypt Zlib Libpng Jpeg:需要创建目录jpeg  /bin  /lib   / ...

随机推荐

  1. Java——(六)Collection之Queue集合

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Queue集合 Queue集合用于模拟队列这种数据结构,队列通常是指“先进先出‘(FIFO)的容 ...

  2. (转)兼容主流浏览器的CSS透明代码

    透明往往能产生不错的网页视觉效果下面是兼容主流浏览器的CSS透明代码.transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; - ...

  3. JAVA 生成PDF报表()

    许多应用程序都要求动态生成 PDF 文档.这些应用程序涵盖从生成客户对帐单并通过电子邮件交付的银行到购买特定的图书章节并以 PDF 格式接收这些图书章节的读者.这个列表不胜枚举.在本文中,我们将使用 ...

  4. c#迭代算法

    //用迭代算法算出第m个值 //1,1,2,3,5,8...;           //{1,0+1,1+1,1+2,2+3 ,3+5} static void Main(string[]   arg ...

  5. C蛮的全栈之路-node篇(一) 环境布置

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  6. SGU 160.Magic Multiplying Machine

    时间限制:0.5s 空间限制6M 题意:        给出n个(1<=n<=10000)1~m(2<m<1000)范围内的数,选择其中任意个数,使它们的 乘积 模m 最大,输 ...

  7. CentOS Device eth0 does not seem to be present 解决方案

    1. vi /etc/udev/rules.d/70-persistent-net.rules 记录eth1 的网卡地址 2.vi /etc/sysconfig/network-scrpits/ifc ...

  8. grunt live

    { "name": "grunt-live-test", "version": "0.1.0", "autho ...

  9. js中的潜伏者之Arguments对象

    argument 说明: 在JavaScript中,arguments是对象的一个特殊属性.arguments对象就像数组,但是它却不是数组.可以理解为他是潜伏者,通俗的说,就是你传的参数不一定按照参 ...

  10. .NET Framework(二)

    在上一篇的随笔中,我们在理论层面上大致说明了.NET Framework的工作机制,内容的确比较晦涩难懂,但是还是希望大家有时候可以看看.我个人觉得,编程不是一味的敲代码,当自己遇到瓶颈的时候,可以多 ...