无网络entos7报错ImportError: /lib64/libm.so.6: version `GLIBC_2.27‘ not found更新glibc

news2024/11/16 0:42:57

最近在尝试使用sklearn的升级版cuml,因为是一台没有连接互联网的gpu机器,所以构建cuml环境过程很坎坷,需要各种将各种whl包在线下载后上传到服务器中。
当我终于解决完包的互相依赖问题后,在import cuml时候遇到一个错误:ImportError: /lib64/libm.so.6: version `GLIBC_2.27’ not found (required by /anaconda3/envs/cuml_1/lib/python3.10/site-packages/cuml/internals/…/libcuml++.so)

查了一下自己机器的内核为kernel-3.10.0-1160.el7.x86_64,el7表示基于centos7的。于是乎搜索教程跟着一步步解决。
参考:https://blog.csdn.net/qq_39287495/article/details/139964001

更新glibc

wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
#有网机器下载好后传输到服务器上后操作
tar xf glibc-2.28.tar.gz 
cd glibc-2.28/ && mkdir build  && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

此时遇到报错说make的版本太旧
在这里插入图片描述

升级gcc与make

升级gcc

在无网络的 CentOS 7 系统上升级 GCC 到版本 8,可以通过以下步骤实现:

  1. 下载必要的文件:在有网络的机器上,下载 GCC 8 的源码和依赖包。
    GCC 源码包:GCC Releases
    依赖包:GMP, MPFR, MPC, ISL,参考

    GCC 8 依赖的 GMP, MPFR, MPC, ISL 的版本要求如下:
    1. GMP (GNU Multiple Precision Arithmetic Library):
    版本要求:GMP 4.3.2 或更高版本
    2. MPFR (Multiple Precision Floating-Point Reliable Library):
    版本要求:MPFR 3.1.0 或更高版本
    3. MPC (Multiple Precision Complex Library):
    版本要求:MPC 1.0.1 或更高版本
    4. ISL (Integer Set Library):
    版本要求:ISL 0.15 或更高版本
    

    下载包时候注意满足 GCC 8 的构建需求。
    可以在gcc中下载:下载

wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz
wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
也可以在各自官网下载:
GMP: [GMP Releases](https://gmplib.org/download/gmp/)
MPFR: [MPFR Releases](https://www.mpfr.org/mpfr-current/)
MPC: [MPC Releases](https://www.multiprecision.org/mpc/download.html)
ISL: [ISL Releases](https://libisl.sourceforge.io/)
  1. 传输文件:将下载的文件传输到无网络的 CentOS 7 机器上。
  2. 安装依赖包:在无网络的 CentOS 7 机器上,安装必要的依赖包。传输到 /opt/gcc-deps 目录下。
    注意,安装这些依赖包时有一定的顺序,因为它们之间存在依赖关系。建议按照以下顺序进行安装:
  • GMP (GNU Multiple Precision Arithmetic Library)
  • MPFR (Multiple Precision Floating-Point Reliable Library)
  • MPC (Multiple Precision Complex Library)
  • ISL (Integer Set Library)
cd /opt/gcc-deps
tar -xvf gmp-*.tar.bz2
tar -xvf mpfr-*.tar.bz2
tar -xvf mpc-*.tar.gz
tar -xvf isl-*.tar.bz2

cd gmp-*
./configure --prefix=/usr/local/gmp
make
make install

cd ../mpfr-*
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
make
make install

cd ../mpc-*
./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
make
make install

cd ../isl-*
./configure --prefix=/usr/local/isl --with-gmp-prefix=/usr/local/gmp
make
make install
  1. 安装 GCC:假设你已经将 GCC 源码包传输到 /opt/gcc 目录下。
cd /opt/gcc
tar -xvf gcc-8.5.0.tar.xz
cd gcc-8.5.0

mkdir build
cd build
../configure --prefix=/usr/local/gcc-8.5.0 --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc --with-isl=/usr/local/isl
make -j$(nproc)
make install
  1. 更新环境变量:将新安装的 GCC 添加到系统的环境变量中。
echo 'export PATH=/usr/local/gcc-8.5.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-8.5.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
  1. 验证安装:检查 GCC 版本以确认安装成功。
gcc --version

补充:
安装gmp时候,报错没有m4工具
新一轮下载安装

wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
tar -xzvf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure --prefix=/usr/local
make
make install

编译gcc时候,报错:configure: error: C++ preprocessor “/lib/cpp” fails sanity check
解决:https://blog.csdn.net/john_f_lau/article/details/17652523
离线安装gcc
https://blog.csdn.net/master336/article/details/113995297,感谢博主的rpm下载链接,找了很久!
因为害怕报错无法定位,用了 make -j1,非常慢。。。。,建议不要使用,如果你在并行编译时遇到问题,可以先使用 make -j1 进行调试,找到问题并解决后再切换回并行编译。

继续报错
/opt/gcc/gcc-8.5.0/build/./gcc/cc1: error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory
参考:
https://blog.csdn.net/youth_xin/article/details/133908956
引入环境变量

echo 'export LD_LIBRARY_PATH=/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib:/usr/local/isl/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

升级make

你可以从 GNU 的官方 FTP 站点下载 make 的源码包:
GNU Make Releases
例如,下载 make-4.3:

 wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
  1. 解压源码包并编译安装:
   cd /opt/make
   tar -xzvf make-4.3.tar.gz
   cd make-4.3
   ./configure --prefix=/usr/local
   make
   make install
  1. 更新环境变量:
    确保新安装的 make 在 PATH 环境变量中:
   echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
   source ~/.bashrc

安装bison

访问 CentOS Vault 或 RPM Find 下载所需的 RPM 包。
下载 bison RPM 包:
bison-3.0.4-2.el7.x86_64.rpm
直接rpm安装即可

最后,注意make -j$(nproc)导致broken pipe
还要删掉重新make 和 make install

就这样,在搜索-下载-上传-执行-报错-搜索这个循环中,一天时间过去了。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【线程】线程池

线程池通过一个线程安全的阻塞任务队列加上一个或一个以上的线程实现,线程池中的线程可以从阻塞队列中获取任务进行任务处理,当线程都处于繁忙状态时可以将任务加入阻塞队列中,等到其它的线程空闲后进行处理。 线程池作用: 1.降…

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询…) 文章目录 三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)1. …

2024中国新能源汽车零部件交易会,开源网安展示了什么?

近日,2024中国新能源汽车零部件交易会在十堰国际会展中心举行。开源网安车联网安全实验室携车联网安全相关产品及解决方案亮相本次交易会,保障智能网联汽车“车、路、云、网、图、边”安全,推动智能网联汽车技术突破与产业化发展。 中国新能源…

MySQL InnoDB MVCC数据结构分析

1、概述 MVCC(Multiversion Concurrency Control)多版本并发控制,通过维护不同的版本号,提供一种很好的并发控制技术,这种技术能够使读写操作不冲突,提升并发性能。 MySQL InnoDB存储引擎,在更…

【雅特力AT32】IIC使用指南_附读写EEPROM案例

目录 1.12C接口简介 2.12C接口通信 2.1主机通信流程 2.1.1 主机通信初始化 1>主机时钟初始化 2>主机通信初始化 3>主机 10 bits 寻址的特殊时序初始化 2.1.2 主机通信初始化软件接口 2.1.3 主机发送流程 2.1.4 主机发送流程软件接口 2.1.5 主机接收流程 2.1.6 主机接收…

传输大咖47 | 软件企业文件传输难题?这款FTP替代工具了解一下

随着信息技术的飞速发展,软件企业对数据传输的需求日益增长。虽然传统的FTP(文件传输协议)曾经是企业数据交换的主要力量,但其在许多方面的局限性已经逐渐成为企业发展的瓶颈。接下来,我们将带您讨论FTP的缺点&#xf…

又一个行业被背刺了,AI做服装设计这么简单,谁还需要设计师?

随着人工智能(AI)技术的迅速发展,越来越多的行业开始借助AI的力量实现创新,而服装设计这一传统行业也无法幸免。 在过去,服装设计是创意与手工结合的高门槛行业,需要设计师花费大量时间和精力去构思、打样…

bootstrap4显示与隐藏元素方法

bootstrap4显示与隐藏元素方法 bootstrap4隐藏元素、显示元素其实非常的简单,因为bootstrap4已经为我们提供了相应的类,只需要按照它的规则去命名就可以了。 使用我们的响应式显示实用程序类更改display属性的值。我们特意只支持 的所有可能值的一个子…

国产DSP,自研指令集内核C2000,F28335、F280049、F28377

国产DSP,自研指令集内核架构,自研工具链,完美替代TI的 C2000系列产品,F280049、F28335、F28377 性能、主频、外设、内存,全面提高30%-80%, 基于eclipse做的IDE,满足工程师的使用习惯&#xff0c…

Mac 电脑配置yolov8运行环境实现目标追踪、计数、画出轨迹、多线程

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 📙 Mac 电脑 配置 yolov8 环境📙 代码运行推理测试模型训…

【最新华为OD机试E卷-支持在线评测】字符串变换最小字符串(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

计算机知识竞赛网站设计与实现

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

C++的明星之我是类001

文章目录 类类定义格式访问限定符类域 实例化实例化概念对象大小 this指针两道nt题目题目一题目二 C和C语言实现stack对比 类 类定义格式 新增一个关键字class,后加上类的名字,{}中为类的主体,类中的函数称为类的⽅法或者成员函数定义在类⾯…

OccLLaMA:首个结合3D占用预测、语言、行为构建的生成式世界模型

导读: OccLLaMA是首个结合3D占用预测作为视觉表征的生成式世界模型。大量实验表明,OccLLaMA在多个任务上实现了不错的性能,包括4D占用预测、运动规划和视觉问答,展示了其作为自动驾驶基础模型的潜力。©️【深蓝AI】编译 1. 研…

如何在谷歌浏览器上玩大型多人在线游戏

在如今的数字时代,谷歌浏览器已经成为了许多人上网冲浪的首选工具。除了浏览网页、观看视频之外,你还可以在谷歌浏览器上畅玩各种大型多人在线游戏。本文将为你详细介绍如何在谷歌浏览器上玩大型多人在线游戏的步骤。 (本文由https://chrome…

【Java代码审计】敏感信息泄露篇

【Java代码审计】敏感信息泄露篇 1.敏感信息泄露概述2.TurboMail 5.2.0 敏感信息泄露3.开发组件敏感信息泄露1.敏感信息泄露概述 敏感信息是业务系统中对保密性要求较高的数据,通常包括系统敏感信息以及应用敏感信息 系统敏感信息指的是业务系统本身的基础环境信息,例如系统…

望繁信科技CTO李进峰受邀在上海外国语大学开展流程挖掘专题讲座

2023年,望繁信科技联合创始人兼CTO李进峰博士受邀在上海外国语大学国际工商管理学院(以下简称“上外管院”)开展专题讲座,畅谈流程挖掘的发展及对企业数字化转型的价值。演讲吸引了上外教授和来自各行各业的领军企业学员百余人。 …

句子成分——每日一...

一、 "Who made you read so many books and realize that there is a bigger world beyond Shuangshui Village..." If you have been working from sunrise to sunset in this world since childhood, you will have the same ideal as many villagers: after a …

嵌入式硬件工程师与嵌入式软件工程师的区别(详细版)

嵌入式硬件工程师与嵌入式软件工程师的区别(详细版) 这里写目录标题 嵌入式硬件工程师与嵌入式软件工程师的区别(详细版)什么是嵌入式硬件工程师?什么是嵌入式软件工程师?嵌入式硬件工程师与嵌入式软件工程…

关于vue2+uniapp+uview+vuex 私募基金项目小程序总结

1.关于权限不同tabbar处理 uniapp 实现不同用户展示不同的tabbar(底部导航栏)_uniapp tabbar-CSDN博客 但是里面还有两个问题 一个是role应该被本地存储并且初始化 第二个问题是假设我有3个角色 每个角色每个tabbar不一样的,点击tabbar时候会导致错乱 第三个问题…