Linux平台关于可执行程序的动态库加载路径(rpath)的查看与修改
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
对于可执行程序的动态库加载路径rpath(run path),我们可以通过工具来查看,也可以去修改,避免多次编译。
这里介绍两个Linux平台来查询和修改rpath的工具
1. chrpath(change run path)
一般系统不会此工具,需要自己安装,例如CentOS平台安装该工具的命令如下:
sudo yum install chrpath
查询rpath:
chrpath -l path/to/executable
或
readelf -d executable |grep RPATH
修改rpath:
chrpath -r "\$ORIGIN:\$ORIGIN/lib:\$ORIGIN/../lib" executable
-r后边跟的是路径,多个路径用冒号隔开,executable是可执行文件。
chrpath的更多用法可通过 chrpath --help 来查看。
注意:如果编译时没有指定rpath,那使用chrpath来改变rpath的值有可能会报错,此时可以使用下边的第二种工具。
2. patchelf
该工具系统一般也不会自带,需要自行安装,我是通过源码编译安装。
源码可从git上下载:https://github.com/NixOS/patchelf/archive/refs/tags/0.12.tar.gz
也可从我的资源中下载:https://download.csdn.net/download/u013992330/16792590
编译安装步骤:
wget https://github.com/NixOS/patchelf/archive/refs/tags/0.12.tar.gz
tar -xvf patchelf-0.12.tar.gz
cd patchelf-0.12
./bootstrap.sh
./configure
make
sudo make install
查询rpath:
# patchelf主要用来修改rpath,因此读取rpath还是得用readelf
readelf -d executable |grep RPATH
修改rpath:
patchelf --set-rpath "\$ORIGIN:\$ORIGIN/lib:\$ORIGIN/../lib" executable
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献15条内容
所有评论(0)