Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Himmel
V2EX  ›  Linux

各位 V 友们紧急求助, Linux 装了一个 cs50 库,安装完后所有的指令都失灵了,提前谢谢大佬们了。

  •  
  •   Himmel · Oct 25, 2023 · 2447 views
    This topic created in 934 days ago, the information mentioned may be changed or developed.

    想要学习 CS50 课程,就在本地装一个环境,装好后 ls 、su 、sudo 都显示段错误,新的 ssh 也连接不上了,目前没有 root 权限,只有一个普通用户在连接中,还有一个 root 用户的 RaiDrive 在连接状态,可以修改一些文件。 有没有大佬指点一下,还能通过修改某些文件的方式救回来吗,先提前感谢了!

    过程如下:

    [himmel@localhost libcs50-11.0.2]$ sudo make install
    cc -Wall -Wextra -Werror -pedantic -std=c11 -fPIC -shared -Wl,-soname,libcs50.so.11 -o libcs50.so.11.0.2 src/cs50.c
    cc -Wall -Wextra -Werror -pedantic -std=c11 -c -o libcs50.o src/cs50.c
    ar rcs libcs50.a libcs50.o
    chmod 644 libcs50.a
    rm -f libcs50.o
    ln -sf libcs50.so.11.0.2 libcs50.so
    mkdir -p build/include build/lib build/src
    install -m 644 src/cs50.c build/src
    install -m 644 src/cs50.h build/include
    mv libcs50.so.11.0.2 libcs50.so libcs50.a build/lib
    cc -Wall -Wextra -Werror -pedantic -std=c11 -fPIC -shared -Wl,-soname,libcs50.so.11 -o libcs50.so.11.0.2 src/cs50.c
    cc -Wall -Wextra -Werror -pedantic -std=c11 -c -o libcs50.o src/cs50.c
    ar rcs libcs50.a libcs50.o
    chmod 644 libcs50.a
    rm -f libcs50.o
    ln -sf libcs50.so.11.0.2 libcs50.so
    mkdir -p build/include build/lib build/src
    install -m 644 src/cs50.c build/src
    install -m 644 src/cs50.h build/include
    mv libcs50.so.11.0.2 libcs50.so libcs50.a build/lib
    cc -Wall -Wextra -Werror -pedantic -std=c11 -fPIC -shared -Wl,-soname,libcs50.so.11 -o libcs50.so.11.0.2 src/cs50.c
    cc -Wall -Wextra -Werror -pedantic -std=c11 -c -o libcs50.o src/cs50.c
    ar rcs libcs50.a libcs50.o
    chmod 644 libcs50.a
    rm -f libcs50.o
    ln -sf libcs50.so.11.0.2 libcs50.so
    mkdir -p build/include build/lib build/src
    install -m 644 src/cs50.c build/src
    install -m 644 src/cs50.h build/include
    mv libcs50.so.11.0.2 libcs50.so libcs50.a build/lib
    mkdir -p /usr/local/src /usr/local/lib /usr/local/include /usr/local/share/man/man3
    cp -R build/include build/lib build/src /usr/local
    cp -R docs/get_char.3.gz docs/get_double.3.gz docs/get_float.3.gz docs/get_int.3.gz docs/get_long.3.gz docs/get_long_long.3.gz docs/get_string.3.gz /usr/local/share/man/man3
    ldconfig /usr/local/lib
    [himmel@localhost libcs50-11.0.2]$ ls
    Segmentation fault
    
    
    25 replies    2023-10-25 17:05:42 +08:00
    Himmel
        1
    Himmel  
    OP
       Oct 25, 2023
    如果有大佬能知道原因也好啊,ld.so.cache 打开是乱码,实在是不知道方向
    ysc3839
        2
    ysc3839  
       Oct 25, 2023 via Android
    建议重装系统,以后记得用 Docker 跑
    julyclyde
        3
    julyclyde  
       Oct 25, 2023
    试试加个前缀,这样:
    /lib64/ld-linux-x86-64.so.2 空格 /bin/ls
    Himmel
        4
    Himmel  
    OP
       Oct 25, 2023
    @julyclyde 谢谢提醒,这个命令还是段错误
    ldconfig 导致的,默认路径下的库应该能链接到的,可能是冲突了或者什么原因。
    Himmel
        5
    Himmel  
    OP
       Oct 25, 2023
    @ysc3839 尽量不想重装,谢谢提醒,之后会用 docker 的
    julyclyde
        6
    julyclyde  
       Oct 25, 2023
    /lib64/ld-linux-x86-64.so.2 --inhibit-cache /bin/ls
    试试参数--inhibit-cache
    defunct9
        7
    defunct9  
       Oct 25, 2023
    上面装了啥很明显了。用 Raidrive 删掉安装的文件,应该就恢复了
    Himmel
        8
    Himmel  
    OP
       Oct 25, 2023
    @defunct9 删掉了 so ,还是段错误。没有 root 权限的话,ldconfig 还需要更新吗?
    Himmel
        9
    Himmel  
    OP
       Oct 25, 2023
    @julyclyde #6
    [himmel@localhost c]$ /lib64/libc.so.6 --inhibit-cache /bin/ls
    -bash: /lib64/libc.so.6: /opt/glibc/lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
    [himmel@localhost c]$ /lib64/ld-linux-x86-64.so.2 --inhibit-cache /bin/ls
    Segmentation fault
    [himmel@localhost c]$ /lib64/libc.so.6 --inhibit-cache /bin/ls
    -bash: /lib64/libc.so.6: /opt/glibc/lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
    [himmel@localhost c]$ /lib64/ld-linux-x86-64.so.2 /lib64/libc.so.6 --inhibit-cache /bin/ls
    Segmentation fault
    是不是能找到的库有多个,冲突了?
    julyclyde
        10
    julyclyde  
       Oct 25, 2023
    看着,我也脑子有点乱
    是不是/opt/glibc/lib/ld-linux-x86-64.so.2 也被搞坏了?
    能 file 或者 cat 一下吗?
    adoal
        11
    adoal  
       Oct 25, 2023
    重新干净地 ldconfig 一下看看?它是个全静态的程序。
    Himmel
        12
    Himmel  
    OP
       Oct 25, 2023
    @julyclyde #10 copy 到另一个机器上 file 了一下,
    ```
    ld-linux-x86-64.so.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=716b53496071f8e0c40b6014becefedf3ac65541, with debug_info, not stripped
    ```
    Himmel
        13
    Himmel  
    OP
       Oct 25, 2023
    @adoal 谢谢回复,因为没有 root 权限无法在/etc 创建,就指定了本地的一个空的 cache 文件,
    ```
    ldconfig -C ./cache
    ```

    没有恢复。
    nodejsexpress
        14
    nodejsexpress  
       Oct 25, 2023
    看看是不是环境变量 被改掉了.
    之前遇到类似的问题. 加环境变量, 重装某些软件库, 加-f 强装
    defunct9
        15
    defunct9  
       Oct 25, 2023
    你都 sudo 安装了,sudo -i 变成 root, ldconfig 看看
    Corybyte
        16
    Corybyte  
       Oct 25, 2023
    我的建议是重装
    Himmel
        17
    Himmel  
    OP
       Oct 25, 2023
    @nodejsexpress 谢谢,我重设置了几个常用的变量都没起作用。
    应该是 ldconfig 导致的,但是具体的原因我还没搞清楚。
    Himmel
        18
    Himmel  
    OP
       Oct 25, 2023
    @defunct9 #15 谢谢,执行了 ldconfig 之后所有的命令几乎都段错误了,已经不能 root 了。
    Himmel
        19
    Himmel  
    OP
       Oct 25, 2023
    @Corybyte 谢谢,目前还没搞清楚真正的原因,这样下去确实重装会更明智些。
    elechi
        20
    elechi  
       Oct 25, 2023
    看日志没啥特殊操作,把新装的库删掉,然后重启下是不是就好了
    Corybyte
        21
    Corybyte  
       Oct 25, 2023
    @Himmel #19 昨天 Archlinux 由于本人错误的使用,经常在 root 权限下使用 yay ,成功的把/var/cache/private/yay 的目录权限搞烂了,随即选择重开
    ratazzi
        22
    ratazzi  
       Oct 25, 2023
    看看机器上有没有 busybox 或许能救命
    NessajCN
        23
    NessajCN  
       Oct 25, 2023
    rm /etc/ld.so.cache
    ldconfig
    nuk
        24
    nuk  
       Oct 25, 2023
    重启一下就行了吧
    Himmel
        25
    Himmel  
    OP
       Oct 25, 2023
    谢谢大佬们的帮助,重启了以后 ssh 连不上了,还是决定重装了,这样简单很多。
    谢谢大家,此帖终结。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3052 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 08:42 · PVG 16:42 · LAX 01:42 · JFK 04:42
    ♥ Do have faith in what you're doing.