$ uname -a linux xhost10.bcgsc.ca 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/linux $ /sbin/ldconfig --version ldconfig (GNU libc) 2.5
我在本地安装了几个二进制文件和库,因为我没有root权限。
某些程序需要在运行时dynamic链接到非标准位置的共享库。
执行时,程序返回:
$ path/to/cc1 path/to/cc1: error while loading shared librarIEs: libmpc.so.3: cannot open shared object file: No such file or directory
我已经添加了path到库$LD_liBRARY_PATH ,但我无法更新ldconfigcaching没有根访问…
关于这种情况下消息队列与共享内存的适用性或适用性
linux相当于windows DLL转发器或MacOS reexport_library
图书馆依赖工具
还有一个ffmpeg / libx264的问题
为什么LD_PRELOAD不能用于加载的共享库之一?
有没有用户特定的/etc/ld.so.cache ?
或者更一般地说,是否有可能用一个用户configuration文件来“掩盖”一个系统configuration文件?
用g ++dynamic共享库编译
从.so(linux)导出C ++类
确定哪些可执行文件链接到linux上的特定共享库
强制GCC静态链接,例如pthreads(而不是dynamic链接)
共享库的错误soname在运行时Ubuntu加载
ldconfig缓存仅适用于/etc/ld.so.conf或/etc/ld.so.conf.d中指定的路径。 由于这些对于非root用户来说是不可写的,所以如果没有root的帮助,你不能使用它们来提高没有root权限的情况下安装的可执行文件的启动速度(但是,即使这样,向这些用户添加一个可写的文件也是一个坏主意系统范围的库搜索路径)。
因此,对于这些情况,您需要在依赖非默认路径中的库的可执行文件或库中使用LD_liBRARY_PATH环境变量或rpath / runpath。 我不知道LD_liBRARY_PATH和rpath / runpath之间的速度差异,但是rpath / runpath的优点是它们只影响特定的可执行文件,因此不太可能导致其他程序出现问题。
在linux / unix中,没有通用的方法来屏蔽系统配置文件,而是使用用户提供的文件。 事实上,这是unix安全模式积极要防止的,以避免各种特权升级。 这也是许多环境变量被suID可执行文件禁用的原因。 许多程序都有一种方法来指定重写用户配置,一些更复杂的程序也可以让系统管理员设置不可覆盖的强制设置。
总结以上是内存溢出为你收集整理的无root权限更新ldconfigcaching全部内容,希望文章能够帮你解决无root权限更新ldconfigcaching所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)