首页 > 其他分享 >从安装VS Code到系统core dumped

从安装VS Code到系统core dumped

时间:2024-02-23 20:22:06浏览次数:42  
标签:core gcc Code tar -- make dumped libc build

起因

实验室更换了新的服务器,由于本人日常使用VS Code,故准备安装之。默认进入VS Code官网,下载rpm包,准备安装。

经过

  1. 安装的日期是2024年2月22日,因此下载的VS Code版本是1.86.2,其包名是code-1.86.2-1707854644.el8.x86_64.rpm。(写在前面,压缩包的VS Code勉强能使用,但是不能保存配置,每次启动都要显示Start up,具体见后文。)
  2. 执行yum localinstall code-1.86.2-1707854644.el8.x86_64.rpm
  3. 报错,说Requires: libc.so.6(GLIBC_2.28)(64bit)。第一反应是安装这个库。
  4. 执行yum provides libc.so.6。找到提供libc.so.6的包,发现是glibc提供的,安装之。
  5. 执行yum install glibc。告诉我已经安装了最新版本,Nothing to do。(现在反思如果看到这一步就停下来后面就没有这么多事了T.T)查找原因后发现,原来GLIBC有具体的版本,查看版本之。
  6. 执行strings /usr/lib64/libc.so.6 | grep GLIBC_。发现当前版本最新只有GLIBC_2.17。好!那么就找方法更新。
  7. 执行
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
tar -xzf glibc-2.31.tar.gz
mkdir glibc-2.31/build
cd glibc-2.31/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror

提示make bison compiler python太老了,无法执行。执着啊!依次更新之。
8. 执行

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

。make更新完成输入make -v。可以看到版本确实变成4.3了。
9. 执行

wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
tar -zxf gcc-9.3.0.tar.gz
mkdir gcc-9.3.0/build
cd gcc-9.3.0/build
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr

报错Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+。安装之。
10. 执行

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
tar -jxf gmp-6.1.0.tar.bz2

报错 bzip2: Cannot exec: No such file or directory。安装之。
11. 执行yum install bzip2。安装bzip2。
12. 执行

tar -jxf gmp-6.1.0.tar.bz2
mkdir gmp-6.1.0/build
cd gmp-6.1.0/build
../configure
make
make install

tar -jxf mpfr-3.1.4.tar.bz2
mkdir mpfr-3.1.4/build
cd mpfr-3.1.4/build
../configure
make
make install

tar -xzf mpc-1.0.3.tar.gz
mkdir mpc-1.0.3/build
cd mpc-1.0.3/build
../configure
make
make install

安装完成gcc 9.3.0编译依赖。继续编译gcc。
13. 执行

../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr
make

报错。中间步骤后面再续。
14. 编译安装完glibc2.28后,会报错。此时看起来相安无事,实际上xvnc已经无法正常工作了。
15. 平时我是使用xrdp远程连接到服务器的,但是现在每次连接都会报错,观察log,发现xvnc没有办法启动。
16. 兜兜转转意识到是glibc修改了系统的库,查看/usr/lib64/目录下的libc.so.6发现它确实是软链到libc-2.28.so,好好好,为了保证xrdp的正常使用,我准备修改软链到libc-2.17.so。
17. 执行unlink libc.so.6。坏事开始发生了,所有的命令都无法执行,我没办法重新创建这个软链。
18. 开始补救。执行export LD_PRELOAD=/lib64/libc-2.5.so。可以恢复执行,然而当我创建到libc-2.17.so软链后,发现其他用户连ssh都无法登陆了。故修改回libc-2.28.so。ssh所有用户登陆正常。
19. 作死!!!查找资料后发现GLIBC包含了许多库,要完成替换,必须替换所有库,其中ld.so和libc.so是两个最核心的库,于是我开始准备替换ld.so的软链,有了上次unlink出错的经验,我这次很小心,采用了替换软链的方法(最作死的一步)执行ln -sfn ld-2.17.so ld.so。至此所有的命令都显示Segmentation fault(Core dumped)。
19. 目前尚未修复,等待更新。希望大家不要重蹈覆辙!!!经测试在https://code.visualstudio.com/updates/v1_86 网址下载1.82版本可以直接yum安装VS Code。

标签:core,gcc,Code,tar,--,make,dumped,libc,build
From: https://www.cnblogs.com/-Airan/p/18030252

相关文章

  • 【leetcode】数组篇刷题 --删除元素
    //@before-stub-for-debug-begin#include<vector>#include<string>#include"commoncppproblem27.h"usingnamespacestd;//@before-stub-for-debug-end/**@lcapp=leetcode.cnid=27lang=cpp**[27]移除元素*///@lccode=start......
  • leedcode 杨辉三角
    自己写的:classSolution:defgenerate(self,numRows:int):#初始化结果列表,包含帕斯卡三角形的前两行li=[[1],[1,1]]#检查如果numRows为1或2,直接返回对应结果ifnumRows==1:return[[1]]ifnumRows=......
  • vue3 使用 html5-qrcode 实现扫描二维码功能
    1.安装npm安装npminstall--save-devhtml5-qrcode或直接引入<scriptsrc="https://unpkg.com/html5-qrcode"type="text/javascript">2.引入根据需求自定义渲染QRscanningUI的容器。<divid="reader"width="600px"></div&......
  • 一图揭秘为什么开发者都选择华为云软件开发生产线CodeArts
    华为云软件开发生产线CodeArts是一站式、全流程、安全可信的云原生DevSecOps云平台,集华为30年研发实践、前沿研发理念、先进研发工具为一体,覆盖需求、开发、测试、部署等软件交付全生命周期环节,为开发者打造全云化研发体验。体验通道→软件开发生产线CodeArts_DevOps_开发者平......
  • 开源:Taurus.DistributedLock 分布式锁框架,支持 .Net 和 .Net Core 双系列版本
    前言:在经过漫长的技术沉淀,终于又为.Net及.NetCore的微服务系列框架贡献当中的一个重要组件。Taurus.DistributedLockisadistributedlockfor.netor.netcore.【支持:Redis、MemCache、Database、Local、File五类锁】1、开源地址:https://github.com/cyq1162/Taurus......
  • AtCoder WTF 2019 B Multiple of Nine/南外集训 2024.2.23 T1
    给定\(q\)个区间\(\{[l_i,r_i]\}\),计算满足条件的长度为\(n\)的十进制数码串\(S\)的个数\(\bmod10^9+7\):\(\foralli\in[1,q],num(S[l_i,r_i])\equiv0\pmod9\)。其中\(num(T)\)表示数码串\(T\)代表的整数,\(T[a,b]\)表示子串\(T_aT_{a+1}\dotsT_b\)......
  • .Net Core Unit of Work 基于Entity Framework Core 封装的多数据源操作 (MySql版本)
    先说一下UnitofWork是什么:UnitofWork(工作单元)是一种设计模式,通常用于管理数据库事务和持久化操作。它有助于确保数据操作的一致性和完整性,同时减少不必要的数据库操作,提高性能。在软件开发中,UnitofWork模式通常与Repository模式一起使用。下面是UnitofWork模式的......
  • Codeforces 799E Aquarium decoration
    考虑去枚举能满足\(1,2\)的个数\(l\),那自然只能满足\(1\)或\(2\)的个数为\(\max\{k-l,0\}\)。对于还剩下的,可以从只能满足\(1,2\)和不能满足任意一个的选出来。显然如果要选就是选最小的。考虑用个数据结构优化这个过程。查询前\(k\)大的和,插入一个数,可以想......
  • Codeforces 图论题
    CF243BHydra枚举点\(u,v\),或者说枚举边。然后找出\(u,v\)分别所连的点。有数组\(st\),结点\(x\)仅与\(u\)相邻则\(st[x]=1\),仅与\(v\)相邻则\(st[x]=2\),与两个点都相邻则\(st[x]=3\)。用数组\(rest\)记录\(st[x]=3\)的所有\(x\)。先优先选走至多\(h\)个\(......
  • .Net Code Excel 文件导入
    第一步下载NuGetNPOI包///<summary>///将excel文教导入到订单表///</summary>///<paramname="file">excel文件</param>///<returns>:-1;返回导入文件格式不正确</returns>[HttpPost]publicIActionResultUp......