gpt4 book ai didi

linux - 包含 linux 库的标准目录(非 root)

转载 作者:太空宇宙 更新时间:2023-11-04 09:40:40 25 4
gpt4 key购买 nike

我有一个简单的问题。

是否有任何标准文件夹可供非根用户访问以将库复制到其中?当我尝试在 /usr/lib/ 中复制库时,它给出了 permission denied

sudo 正在解决这个问题。但是我想知道是否可以不用 sudo 来做到这一点。

目标是能够在不修改任何环境变量的情况下使用该库。

最佳答案

除非系统管理员提供一个您可以写入的目录并更新链接加载器配置(/etc/ld.so.conf/etc/ld.so.conf.d/*)以使用它。不太可能发生,因为这被认为是一种安全风险。

但是,如果您想避免必须定义 LD_LIBRARY_PATH变量,您可以将您的库安装在您具有写入权限的任何位置,并在使用它的可执行文件中添加它的路径(ELF 可执行文件中的 RPATH 列表)。

例如,如果您使用 gcc 链接文件,您使用 -R 指定 RPATH选项:

gcc -o<output executable> -R<path to your libraries> -l<your shared library>

然后您可以在不定义 LD_LIBRARY_PATH=<path to your libraries> 的情况下运行生成的可执行文件.

您可以使用以下方法从可执行文件中获取 ELF RPATH 列表:

readelf -a <executable file> | grep RPATH

例如:

# readelf -a ar | grep RPATH
0x0000000f (RPATH) Library rpath: [/opt/local/i386-sun-solaris2.10/lib]

意思是这个版本的ar将在 /opt/local/i386-sun-solaris2.10/lib 中查找共享库除了标准系统库目录。

关于linux - 包含 linux 库的标准目录(非 root),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22003999/

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