Ubuntu 18.04 升级 glibc-2.29 导致异常如何还原? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
0xroot
V2EX    程序员

Ubuntu 18.04 升级 glibc-2.29 导致异常如何还原?

  •  
  •   0xroot 2022-05-08 09:57:45 +08:00 4495 次点击
    这是一个创建于 1305 天前的主题,其中的信息可能已经有所发展或是发生改变。
    源码编译的 glibc-2.29 ,make install 之后 ldconfig 完 shell 就异常了:
    ls
    11928 segmentation fault (core dumped) ls --color=tty


    现在还原的话应该咋操作?重新安装 kernel 貌似不行,感谢!!!
    19 条回复    2022-05-09 00:48:06 +08:00
    lcdtyph
        1
    lcdtyph  
       2022-05-08 10:02:42 +08:00 via iPhone   2
    用 18.04 的镜像引导进入 try ubuntu
    然后 mount 你自己的硬盘,把 try ubuntu 环境里的 libc 复制到你硬盘里对应位置就行了

    libc 是用户态的,你重装 kernel 有什么用
    0xroot
        2
    0xroot  
    OP
       2022-05-08 10:04:47 +08:00
    @lcdtyph 感谢,我找个优盘试试
    hei1000
        3
    hei1000  
       2022-05-08 11:13:36 +08:00   2
    glibc 这种系统基础库最好不要自己安装,前一段时间 Archlinux 没有及时更新 glibc 库版本都被好多人骂(比如 https://www.reddit.com/r/archlinux/comments/scisqp/archs_unmaintained_glibc_is_a_security_risk/),因为这种东西可不是普通的软件包,上游不测试好会有很多问题
    FranzKafka95
        4
    FranzKafka95  
       2022-05-08 12:02:28 +08:00 via Android
    居然想着动 glibc ,吃亏了吧
    aloxaf
        5
    aloxaf  
       2022-05-08 12:12:35 +08:00
    教人往根目录下 make install 装软件的教程是蠢
    教人往根目录下 make install 升级 glibc 的教程就是坏了
    0xroot
        6
    0xroot  
    OP
       2022-05-08 14:05:49 +08:00 via iPhone
    @FranzKafka95
    @ei1000

    分析仪带的软件依赖 glibc 特定版本,吃大亏了
    Chingim
        7
    Chingim  
       2022-05-08 16:09:12 +08:00 via iPhone
    所以我特别喜欢 go 发行的软件,下了就能用,而不会提示这库那库不满足要求
    findex
        8
    findex  
       2022-05-08 16:18:27 +08:00   1
    肯定不能单升级 glic ,glibc 可是牵一发动全身,所有工具链(编译器等)得用同一个 glibc 都编译一遍,然后在用新工具链编译一遍以前的软件。
    我以前做 Linux 系统的时候,遇到过这个。这个和 kernel 无关。如果你想回去,可以尝试 chroot 手动安装 ubuntu18.04 原装的 glibc ,然后用官方的源下载官方用特定版本 glibc 给你编译好的各种软件。如果你想尝试特定版本的 glibc ,可以走一下自己做一个 Linux 系统……
    msg7086
        9
    msg7086  
       2022-05-08 17:08:10 +08:00   2
    @0xroot #6 glibc 基本等同于发行版版本了。如果你要用的软件依赖 glibc 的最低版本,那么一般意味着这款软件需要某个特定的 Linux 发行版版本才能运行。你这种情况可以试试添加 Ubuntu 20.04 的源,然后只安装 libc6 关联的包,可以做出一个缝合怪系统来,有一定概率可以正常运行。

    我一般是拿 Debian 做 glibc 缝合怪的,很少会出问题。
    0xroot
        10
    0xroot  
    OP
       2022-05-08 17:28:55 +08:00 via iPhone
    @msg7086 咨询了一下开发者,确实是需要 20.04

    @findex 感谢解答,第一次踩 glibc 的坑
    seers
        11
    seers  
       2022-05-08 17:29:18 +08:00 via Android
    @Chingim 冷知识,golang 运行时依赖 glibc ,但是只要不是上古版本基本上都能跑
    lcdtyph
        12
    lcdtyph  
       2022-05-08 18:13:43 +08:00
    @seers #11
    冷冷知识,golang build 的时候设置 CGO_ENABLED=0 可以运行时也不依赖 glibc
    FranzKafka95
        13
    FranzKafka95  
       2022-05-08 22:58:58 +08:00 via Android
    @lcdtyph 冷啥知识,只要有 CGO 就对 glibc 有依赖,再开启 CGO 的情况下又想避免 glibc 版本依赖,还得使用静态链接。
    FranzKafka95
        14
    FranzKafka95  
       2022-05-08 23:00:01 +08:00 via Android
    golang 某些库是必然依赖 cgo ,如 net, os/user 还有 sqlite
    FranzKafka95
        15
    FranzKafka95  
       2022-05-08 23:01:16 +08:00 via Android
    @seers ubantu18.04 的 glibc 版本好像是 2.27 ,某些 golang 库跑不了
    wwqgtxx
        16
    wwqgtxx  
       2022-05-08 23:57:46 +08:00
    @FranzKafka95 net 从 N 个版本开始就不依赖 cgo 了,至于 sqlite 也有 pure go 的版本,哪有什么必然依赖的
    wwqgtxx
        17
    wwqgtxx  
       2022-05-09 00:02:31 +08:00   1
    net 关于 CGO 的文档: https://pkg.go.dev/net#hdr-Name_Resolution
    sqlite 的 pure go 版本: https://pkg.go.dev/modernc.org/sqlite
    lcdtyph
        18
    lcdtyph  
       2022-05-09 00:42:42 +08:00 via iPhone
    @FranzKafka95 我当然知道 cgo 与 c runtime 的依赖,我只是在回复那一层说 golang 运行时依赖 libc
    feather12315
        19
    feather12315  
       2022-05-09 00:48:06 +08:00 via Android
    依赖 glibc 的,是因为动态链接 glibc 时指定了 glibc 的版本( objdump -T xxx 可以看到 @glibc-xx )。
    为啥这么指定?因为涉及 abi 兼容性。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5057 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:17 PVG 16:17 LAX 00:17 JFK 03:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86