centos7下,源码离线升级gcc、glibc等系统库,以及yum修复方法

一、问题描述

centos7.10系统下,gblic版本升级方案。
升级原因:pyinstaller打包平台gblic版本太高,部署机器版本低,导致可执行程序无法正常启动。
需要升级的库(如下图):gcc、make、bison、python。
在这里插入图片描述

二、 升级方案

1. gcc升级到9.4.0

# wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.4.0/gcc-9.4.0.tar.gz
tar -zxvf gcc-9.4.0.tar.gz
cd gcc-9.4.0/
# 下载4个依赖文件,可以去能联网的linux服务器上下载
# gmp=‘gmp-6.1.0.tar.bz2’
# mpfr=‘mpfr-3.1.4.tar.bz2’
# mpc=‘mpc-1.0.3.tar.gz’
# isl=‘isl-0.18.tar.bz2’
#方式如下
./contrib/download_prerequisites
# 预编译
mkdir build
cd build
../configure --prefix=/usr --enable-multilib --enable-languages=c,c++ -disable-multilib
make -j2
make install
可能遇到的问题

问题一:make 报错 :configure: error: C++ compiler missing or inoperational
原因:缺少g++库
解决方法:yum install gcc-c++
说明:这里使用了在线安装g++的方式,因为yum可以自动下载适合操作系统的版本,并且同时下载好相关依赖。

问题二:yum下载安装包,然后移动到离线环境服务器上,使用rpm离线安装方式

# 查看某个rpm包的依赖包,如bison
yum deplist bison

# 输出
软件包:bison.x86_64 3.0.4-2.el7
   依赖:/bin/sh
   provider: bash.x86_64 4.2.46-35.el7_9
   依赖:/sbin/install-info
   provider: info.x86_64 5.1-5.el7
   依赖:libc.so.6(GLIBC_2.15)(64bit)
   provider: glibc.x86_64 2.17-326.el7_9
   依赖:m4 >= 1.4
   provider: m4.x86_64 1.4.16-10.el7
   依赖:rtld(GNU_HASH)
   provider: glibc.x86_64 2.17-326.el7_9
   provider: glibc.i686 2.17-326.el7_9
# 安装yum-utils
$ yum -y install yum-utils

# 下载 ansible 全量依赖包
$ repotrack bison
# 经过实操证明,bison安装升级,不需要其它依赖包,只通过rpm bison就成功了,可能是实验系统上已经有了相关依赖包

# rpm离线安装
rpm -Uvh --force --nodeps bison-3.0.4-2.el7.x86_64.rpm  #*.rpm

2. 升级make

wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
tar zxf make-4.3.tar.gz
cd make-4.3/
mkdir build
cd build
../configure --prefix=/usr
make -j2
make install

3. 升级python

linux下源码安装python,多版本共存

4. 升级bison

rpm -Uvh --force --nodeps bison-3.0.4-2.el7.x86_64.rpm

5. 升级glibc

1)rpm包方式安装,下载地址如下

# 下载地址: https://rpmfind.net/linux/RPM/opensuse/15.3/x86_64/glibc-2.31-7.30.x86_64.html
rpm -Uvh --force --nodeps glibc-2.31-7.30.x86_64.rpm
# 验证
ldd --version

ldd (GNU libc) 2.31

2)源码安装

curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.31.tar.gz
tar zxf glibc-2.31.tar.gz 
cd glibc-2.31/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install

三、 yum修复方法

1. 问题描述

使用yum install vim时,出现HTTP Error 404 - Not Found的提示,具体如下:

http://mirrors.aliyun.com/non-supported/rhel/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

2. 解决方法

1)删除老仓库文件

# 进入yum
cd /etc/yum.repos.d
# 移除
rm *.*

2)卸载yum包

# 查看yum版本
[root@192 yum.repos.d]# rpm -qa yum
yum-3.4.3-168.el7.centos.noarch
# 卸载yum安装包
rpm -qa yum yum-3.4.3-168.el7.centos.noarch
# 卸载安装组件
rpm -qa | grep yum | xargs rpm -e --nodeps 
rpm -qa yum

3)下载最新的rpm包
http://mirrors.163.com/centos/7/os/x86_64/Packages/

yum-最新版.centos.noarch.rpm 
yum-metadata-parser-最新版.x86_64.rpm
yum-plugin-fastestmirror-最新版.noarch.rpm

4)安装yum

rpm -ivh yum-*

5)导入证书

rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

6)添加阿里源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

7)清除缓存,生成新的缓存

yum clean all
yum makecache
  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
源码编译安装GCC可以通过以下步骤进行: 1. 安装依赖: - 执行命令:`yum install -y epel-release` 安装EPEL源; - 执行命令:`yum install -y vim wget gcc gcc-c make autoconf automake zip bzip2` 安装基础编译软件; - 执行命令:`yum install -y gcc-gnat libgcc libgcc.i686 glibc-devel bison flex m4 texinfo build-essential` 安装其他依赖软件。 2. 下载并解压GCC源码: - 执行命令:`wget -P '/usr/local/src' https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz` 下载GCC源码; - 执行命令:`cd /usr/local/src` 进入下载目录; - 执行命令:`tar -zxvf gcc-10.3.0.tar.gz -C '/usr/local/src'` 解压GCC源码; - 执行命令:`cd gcc-10.3.0` 进入解压后的源码目录。 3. 设置环境变量: - 执行命令:`echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64' >> /etc/profile` 将依赖路径添加到环境变量中; - 执行命令:`source /etc/profile` 使环境变量立即生效; - 执行命令:`vim /etc/ld.so.conf` 编辑ld.so.conf文件,将GCC依赖的动态链接路径添加到文件中。 4. 编译和安装GCC: - 执行命令:`./configure --prefix=/usr/local/gcc-10.3.0` 配置GCC的安装路径; - 执行命令:`make -j$(nproc)` 编译GCC,耗时较长,请保证有足够的时间; - 执行命令:`make install` 安装GCC。 5. 配置GCC的默认版本(可选): - 执行命令:`ln -s /usr/local/gcc-10.3.0/bin/gcc /usr/local/bin/gcc` 创建软链接,将GCC的可执行文件路径添加到系统的PATH环境变量中。 请注意,源码编译安装GCC是一个耗时的过程,根据您的机器性能和网络状况,可能需要几个小时甚至更长时间才能完成编译。确保您有足够的时间和资源来完成这个过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值