注意:至于什么是GLIB本篇文章不作赘述。大家在升级GLIB前记得先打个快照,以免升级以后某些程序不能正常运行。本文适用多版本,这里只记录2.18。
背景: 由于某种生产需求,虚拟机的环境为centos6.9,gllib2.12,而程序依赖glib2.18,故本篇文章应运而生了。
环境: centos6.9,GLIB2.12
目标:将centos6.9,GLIB2.12升级到GLIB2.18
ldd --version查看本地GLIB版本
步骤如下:
一、下载GLIB包
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
如果有不能联网的同学,可以在一台可以联网的机器(无系统要求)预下载安装包,然后再SCP到需要升级GLIB的虚拟机即可。
如果有需要升级到其它版本的同学也可以到http://ftp.gnu.org/gnu/glibc/下载其他版本,然后再SCP到需要升级GLIB的虚拟机即可。
二、解压安装包
tar xf glibc-2.18.tar.gz
三、进入GLIB安装包文件夹
cd glibc-2.18
四、开始升级
mkdir build && cd build
../configure --prefix=/usr #注意了,别修改路径
make -j2
make install
解释:创建build文件夹并进入。执行configure文件,并且指定make install的安装目录为/usr。
configure:检查文件编译的相互依赖关系,并且生成makefile。
--prefix: 指定安装目录。
- 首先检查机器的一些配置和环境,系统的相关依赖。如果缺少相关依赖,脚本会停止执行,软件安装失败
- 根据之前检查环境和依赖的结果,生产Makefile文件(main job)
configure执行成功可以看到当前目录下生成如下文件:
当看到Makefile说明环境没问题,可以开始安装了。下面是一些命令的解释。
make:编译源代码并生成可执行文件。
-j2 ( -jn):用make -j带一个参数,可以把项目进行并行编译,比如在一台双核的机器上,可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。
解释:
- make是Unix系统下的一个包。执行make命令需Makefile文件。make会根据Makefile文件中指令来安装软件
- Makefile文件中有许多标签,来表示不同的section。一般的,make会编译源代码并生成可执行文件,其实Makefile主要就是描述文件编译的相互依赖关系
make install:将make阶段生产的可执行文件拷贝到相应的地方。
相应的地方:configure生成makefile时指定的地方(--prefix所指的地址)。
解释:
- 当执行make命令不加任何参数,程序就会按照Makefile的指令在相应的section间跳转并且执行相应的命令
- 加上install参数即执行make install时,程序只会执行install section处的命令。install section的指令会将make阶段生产的可执行文件拷贝到相应的地方。
五、检验一下是否升级成功
ldd --version
看到ldd (GNU libc) 2.18说明已经升级成功了。