gpt4 book ai didi

linux - 可执行文件中缺少动态库,但仅当作为 sudo 运行时

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:32 28 4
gpt4 key购买 nike

我很困惑为什么 libiconv.so.2libcharset.so.1 都没有找到,但仅当我对其他用户执行 sudo 时才找到。 LD_LIBRARY_PATH 完全相同,因为我使用 -E 运行 sudo:

$ ldd `which git`
linux-vdso.so.1 => (0x00007fff51975000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003e60600000)
libiconv.so.2 => /internal/lib/libiconv.so.2 (0x00007f0962bdd000)
libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e6a400000)
libcharset.so.1 => /internal/lib/libcharset.so.1 (0x00007f09629db000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003e61600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003e60a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003e61200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e60200000)
$ sudo -ucgaadm -EH ldd `which git`
linux-vdso.so.1 => (0x00007fff5b148000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003e60600000)
libiconv.so.2 => not found
libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e6a400000)
libcharset.so.1 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003e61600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003e60a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003e61200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e60200000)

只需检查 LD_LIBRARY_PATH,似乎 libiconv.so.2 的路径确实存在:

$ echo $LD_LIBRARY_PATH
...
$ sudo -ucgaadm -EH echo $LD_LIBRARY_PATH
... same output as previous command ...

从我的常规使用以及 sudo 用户中也可以看到应包含这些库的目录:

$ ls /internal/lib/ -lah
total 2.5M
drwxr-xr-x 2 apsg apsggrp 4.0K Jan 31 2010 .
drwxr-xr-x 6 apsg apsggrp 4.0K Jan 31 2010 ..
-rw-r--r-- 1 apsg apsggrp 212 Jan 31 2010 charset.alias
-rw-r--r-- 1 apsg apsggrp 24K Jan 31 2010 libcharset.a
-rw-r--r-- 1 apsg apsggrp 993 Jan 31 2010 libcharset.la
lrwxrwxrwx 1 apsg apsggrp 19 Jan 31 2010 libcharset.so -> libcharset.so.1.0.0
lrwxrwxrwx 1 apsg apsggrp 19 Jan 31 2010 libcharset.so.1 -> libcharset.so.1.0.0
-rw-r--r-- 1 apsg apsggrp 24K Jan 31 2010 libcharset.so.1.0.0
-rw-r--r-- 1 apsg apsggrp 969 Jan 31 2010 libiconv.la
lrwxrwxrwx 1 apsg apsggrp 17 Jan 31 2010 libiconv.so -> libiconv.so.2.5.0
lrwxrwxrwx 1 apsg apsggrp 17 Jan 31 2010 libiconv.so.2 -> libiconv.so.2.5.0
-rw-r--r-- 1 apsg apsggrp 1.2M Jan 31 2010 libiconv.so.2.5.0
-rw-r--r-- 1 apsg apsggrp 1.2M Jan 31 2010 preloadable_libiconv.so
$ sudo -ucgaadm -EH ls /internal/lib/ -lah
... same output as previous command ...

最佳答案

尝试“sudo su -”然后运行你的命令“-”更改为root用户并创建一个新的shell。

关于linux - 可执行文件中缺少动态库,但仅当作为 sudo 运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13651832/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com