第三部份:glibc升级到glibc-2.30

2020春节,不平静的一个春节,宅家中,心血来潮,重新拾起汇编。
选择了Jeff Duntemann著的Assembly Language Setp-By-Step;
该书的汇编基于Linux下的NASM;所以Linux下的汇编环境的搭建就十分必要。
系列文件讲述了在CentOS7下,书中汇编环境的搭建及C/C++开发环境的搭建。
包含如下部份:
1、gdb升级到gdb-8.3.1;
2、gcc升级到gcc-9.2.0;
3、glibc升级到glibc-2.30;
4、C/C++开发环境CodeBlock安装;
5、GNU基于GUI的调试器安装:insight-6.8-1a.tar.bz2安装
6、Kate安装
7、Nasm安装
8、Bless安装
解决上述问题花了近一周多的时间,很多网络上的资料不全或有误,走了一些转路。
希望这部份的记录能够帮到后来的小伙伴。也希望大家能够给个赞!

第三部份:glibc升级到glibc-2.30

官网:http://www.gnu.org/software/libc/
查看现系统上glibc安装的版本:
ldd /bin/ls
查看libc.so.6的位置:
执行:/lib64/libc.so.6

依赖包安装:
gettext安装:
下载地址:http://www.gnu.org/software/gettext/
tar -zxvf gettext-0.20.1.tar.gz
cd gettext-0.20.1
./configure --prefix=/usr/local/gettext
make
make install

autoconf安装:
下载地址:ftp://ftp.gnu.org/gnu/autoconf/
tar -zxvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/usr/local/autoconf
make
make install
查看当前版本:
autoconf -V

make安装:
下载地址:http://www.gnu.org/software/make/
tar -zxvf make-4.2.tar.gz
cd make-4.2
./configure --prefix=/usr/local/make
make
make install
装完把原来的卸载:
rpm -qa |grep make
找到原来的make安装到那里去了,记录原来make的包名;
rpm -ql 查找到的包名
装卸:
rpm -e 包名 --nodeps
再把新的make放到环境变量路径上去:
vim /etc/profile
MAKE_HOME=/usr/local/make
#命令路径
export PATH=$MAKE_HOME/bin:$PATH
#帮助路径
export MANPATH=$MAKE_HOME/share/man:$MANPATH
#C include路径
export C_INCLUDE_PATH=$MAKE_HOME/include:$C_INCLUDE_PATH
# CPP include路径
export CPLUS_INCLUDE_PATH=$MAKE_HOME/include:$CPLUS_INCLUDE_PATH

然后保存退出,使环境变量生效
source /etc/profile

//这个要在gcc4.x下编绎才能成功,所以要在删除gcc4.X前执行
binutils安装:
下载:https://ftp.gnu.org/gnu/binutils/
tar -xvJf binutils-2.33.1.tar.xz
cd binutils-2.33.1
./configure --prefix=/usr/local/binutils
make
make install

yum install bison
yum install texinfo

glibc的安装:
先把动态链接的环境变量设置为空
export LD_LIBRARY_PATH=

tar -xzvf glibc-2.30.tar.gz
cd glibc-2.30
mkdir build
cd build
因为gcc不是安装在默认的路径,所以加上--disable-sanity-checks跳过检查:
../configure --prefix=/usr/local/glibc --with-binutils=/usr/local/binutils --disable-sanity-checks
make all
make install  

原来的glibc不能删除,只能换原来的动态库的链接:
这是原来的动态库情况:
[root@localhost bin]# ldd /bin/ls
    linux-vdso.so.1 =>  (0x00007fff8b73d000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fd09415b000)
    libcap.so.2 => /lib64/libcap.so.2 (0x00007fd093f56000)
    libacl.so.1 => /lib64/libacl.so.1 (0x00007fd093d4d000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fd09397f000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fd09371d000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fd093519000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fd094382000)
    libattr.so.1 => /lib64/libattr.so.1 (0x00007fd093314000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd0930f8000)
将上面的这些组件替换,参考语句:
rm -rf /lib64/libc.so.6 
ln -s /usr/local/glibc/lib/libc-2.14.so  /lib64/libc.so.6

你可能感兴趣的:(第三部份:glibc升级到glibc-2.30)