linux拷贝依赖库到指定目录,Linux 批量依赖库拷贝(ldd)
背景
如何将程序依赖的动态库拷贝到指定的目录?
例子
1、通过LDD查看依赖的动态库。
# ldd postgres
linux-vdso.so.1 => (0x00007ffcfc324000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb6151ba000)
libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fb614e4f000)
libpam.so.0 => /lib64/libpam.so.0 (0x00007fb614c40000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007fb6149ce000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fb61456c000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fb61431f000)
librt.so.1 => /lib64/librt.so.1 (0x00007fb614117000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb613f12000)
libm.so.6 => /lib64/libm.so.6 (0x00007fb613c10000)
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fb6139bc000)
libicui18n.so.50 => /lib64/libicui18n.so.50 (0x00007fb6135bc000)
libicuuc.so.50 => /lib64/libicuuc.so.50 (0x00007fb613243000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fb61321b000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb612e59000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb6153e1000)
libz.so.1 => /lib64/libz.so.1 (0x00007fb612c43000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fb612a1d000)
libaudit.so.1 => /lib64/libaudit.so.1 (0x00007fb6127f4000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fb61250c000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fb612308000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb6120d4000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fb611ec6000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fb611cc2000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fb611aa7000)
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fb611898000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fb61167b000)
libssl3.so => /lib64/libssl3.so (0x00007fb61142e000)
libsmime3.so => /lib64/libsmime3.so (0x00007fb611207000)
libnss3.so => /lib64/libnss3.so (0x00007fb610edd000)
libnssutil3.so => /lib64/libnssutil3.so (0x00007fb610caf000)
libplds4.so => /lib64/libplds4.so (0x00007fb610aab000)
libplc4.so => /lib64/libplc4.so (0x00007fb6108a6000)
libnspr4.so => /lib64/libnspr4.so (0x00007fb610667000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fb61035f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb610149000)
libicudata.so.50 => /lib64/libicudata.so.50 (0x00007fb60eb74000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fb60e96f000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fb60e748000)
libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007fb60e4c6000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fb60e2c1000)
libdw.so.1 => /lib64/libdw.so.1 (0x00007fb60e079000)
libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007fb60de72000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb60dc3b000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007fb60da35000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fb60d7d3000)
libelf.so.1 => /lib64/libelf.so.1 (0x00007fb60d5bb000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fb60d3aa000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007fb60d1a7000)
2、写一个SHELL脚本,自动拷贝依赖的动态库。
vi test.sh
deplist=$( ldd $1 | awk '{if (match($3,"/")){ print $3}}' )
cp -L -n $deplist $2
-L 表示拷贝文件(如果是软链,会拷贝到最终的文件)。
-n 表示不覆盖已有文件。
3、创建目标目录。
mkdir /tmp/lib
4、将postgres依赖的动态库拷贝到目标目录
. ./test.sh /usr/pgsql-10/bin/postgres /tmp/lib/
ll /tmp/lib
total 39332
-rwxr-xr-x 1 root root 19888 Oct 25 13:01 libattr.so.1
-rwxr-xr-x 1 root root 122936 Oct 25 13:01 libaudit.so.1
-rwxr-xr-x 1 root root 68192 Oct 25 13:01 libbz2.so.1
-rwxr-xr-x 1 root root 23968 Oct 25 13:01 libcap-ng.so.0
-rwxr-xr-x 1 root root 20024 Oct 25 13:01 libcap.so.2
-rwxr-xr-x 1 root root 15848 Oct 25 13:01 libcom_err.so.2
-rwxr-xr-x 1 root root 2512448 Oct 25 13:01 libcrypto.so.10
-rwxr-xr-x 1 root root 41080 Oct 25 13:01 libcrypt.so.1
-rwxr-xr-x 1 root root 2118128 Oct 25 13:01 libc.so.6
-rwxr-xr-x 1 root root 19776 Oct 25 13:01 libdl.so.2
-rwxr-xr-x 1 root root 301576 Oct 25 13:01 libdw.so.1
-rwxr-xr-x 1 root root 99952 Oct 25 13:01 libelf.so.1
-rwxr-xr-x 1 root root 11384 Oct 25 13:01 libfreebl3.so
-rwxr-xr-x 1 root root 88720 Oct 25 13:01 libgcc_s.so.1
-rwxr-xr-x 1 root root 535064 Oct 25 13:01 libgcrypt.so.11
-rwxr-xr-x 1 root root 19384 Oct 25 13:01 libgpg-error.so.0
-rwxr-xr-x 1 root root 320768 Oct 25 13:01 libgssapi_krb5.so.2
-rwxr-xr-x 1 root root 20789896 Oct 25 13:01 libicudata.so.50
-rwxr-xr-x 1 root root 2096056 Oct 25 13:01 libicui18n.so.50
-rwxr-xr-x 1 root root 1539392 Oct 25 13:01 libicuuc.so.50
-rwxr-xr-x 1 root root 210768 Oct 25 13:01 libk5crypto.so.3
-rwxr-xr-x 1 root root 15688 Oct 25 13:01 libkeyutils.so.1
-rwxr-xr-x 1 root root 963504 Oct 25 13:01 libkrb5.so.3
-rwxr-xr-x 1 root root 58728 Oct 25 13:01 libkrb5support.so.0
-rwxr-xr-x 1 root root 61888 Oct 25 13:01 liblber-2.4.so.2
-rwxr-xr-x 1 root root 348400 Oct 25 13:01 libldap-2.4.so.2
-rwxr-xr-x 1 root root 157424 Oct 25 13:01 liblzma.so.5
-rwxr-xr-x 1 root root 1141928 Oct 25 13:01 libm.so.6
-rwxr-xr-x 1 root root 251784 Oct 25 13:01 libnspr4.so
-rwxr-xr-x 1 root root 1236800 Oct 25 13:01 libnss3.so
-rwxr-xr-x 1 root root 186216 Oct 25 13:01 libnssutil3.so
-rwxr-xr-x 1 root root 61672 Oct 25 13:01 libpam.so.0
-rwxr-xr-x 1 root root 402384 Oct 25 13:01 libpcre.so.1
-rwxr-xr-x 1 root root 20048 Oct 25 13:01 libplc4.so
-rwxr-xr-x 1 root root 15744 Oct 25 13:01 libplds4.so
-rwxr-xr-x 1 root root 143944 Oct 25 13:01 libpthread.so.0
-rwxr-xr-x 1 root root 111080 Oct 25 13:01 libresolv.so.2
-rwxr-xr-x 1 root root 44448 Oct 25 13:01 librt.so.1
-rwxr-xr-x 1 root root 121328 Oct 25 13:01 libsasl2.so.3
-rwxr-xr-x 1 root root 155744 Oct 25 13:01 libselinux.so.1
-rwxr-xr-x 1 root root 164040 Oct 25 13:01 libsmime3.so
-rwxr-xr-x 1 root root 315072 Oct 25 13:01 libssl3.so
-rwxr-xr-x 1 root root 470336 Oct 25 13:01 libssl.so.10
-rwxr-xr-x 1 root root 995840 Oct 25 13:01 libstdc++.so.6
-rwxr-xr-x 1 root root 162552 Oct 25 13:01 libsystemd.so.0
-rwxr-xr-x 1 root root 1509376 Oct 25 13:01 libxml2.so.2
-rwxr-xr-x 1 root root 90664 Oct 25 13:01 libz.so.1
linux拷贝依赖库到指定目录,Linux 批量依赖库拷贝(ldd)相关推荐
- linux mv移动文件到指定目录,Linux mv命令使用示例-移动或重命令文件/目录
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? mv命令和cp命令类似,但是它不复制文件/目录.这个命令默认安装在Linux系统中,不管你使用的什么发型版.下面列举了m ...
- linux后台断点下载到指定目录,Linux下wget 断点续传 及 后台下载
几个比较高频的命令参数:51Testing软件测试网5uM(jI"?~;r"~r1kC 51Testing软件测试网+B)iSS-Z"F)I 4DQ~1L8^h0 使用w ...
- 在 Linux 上给用户赋予指定目录的读写权限
在 Linux 上指定目录的读写权限赋予用户,有两种方法可以实现这个目标:第一种是使用 ACL (访问控制列表),第二种是创建用户组来管理文件权限,下面会一一介绍.为了完成这个教程,我们将使用以下设置 ...
- linux到指定目录,linux移动文件到指定目录操作方法
摘要 腾兴网为您分享:第七应用,flash29,信息来电闪光灯,优惠购,实况足球2018,汕大附一,同学聚会简单通知书,cajviewer,惠普deskjet1010,英魂之刃,运动世界,建行大学,爱 ...
- linux 解压zip文件到指定文件夹,Linux解压文件到指定目录
tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数: -x : 解压缩压缩档案的参数: -z : 是 ...
- 【文件IO】Linux 文件操作(一) —— 遍历指定目录下的所有文件
目录 一.访问目录相关函数 1.打开/访问目录 (opendir / fdopendir) 2.读取目录内容 (readdir) 3.关闭目录 (closedir) 二.遍历指定目录下的所有文件 一. ...
- linux给目录赋访问权限_在Linux上给用户赋予指定目录的读写权限
在上篇文章中我们向您展示了如何在 Linux 上创建一个共享目录.这次,我们会为您介绍如何将 Linux 上指定目录的读写权限赋予用户. 有两种方法可以实现这个目标:***种是 使用 ACL (访问控 ...
- linux cp目录到指定目录,linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹...
解压war包 jar -xvf xxxx.war linux复制指定目录下的全部文件到另一个目录中 复制指定目录下的全部文件到另一个目录中 文件及目录的复制是经常要用到的.linux下进行复 ...
- linux 往共享目录写文件 权限,在 Linux 上给用户赋予指定目录的读写权限
在上篇文章中我们向您展示了如何在 Linux 上创建一个共享目录.这次,我们会为您介绍如何将 Linux 上指定目录的读写权限赋予用户. 有两种方法可以实现这个目标:第一种是 使用 ACL (访问控制 ...
- Linux解压文件到指定目录
tar在Linux上是常用的打包.压缩.加压缩工具,这里简单介绍打包.压缩.解压参数 参数: -c :create 建立压缩档案的参数: -x : 解压缩压缩档案的参数: -z : 是否需要用gzip ...
最新文章
- mysql substr 中文乱码_刚碰到的MySql乱码的问题
- 反杀人类、拯救机器狗,被虐士兵机器人化身终结者!这是“波士屯动力”的最新力作...
- 网易云信再被列入Gartner最新发布的两份CPaaS市场报告
- Linux进程状态如何切换,Linux系统如何切换前台进程和后台进程(2)
- 《数据库原理与应用》(第三版)第2章 数据模型与数据库结构 习题参考答案
- 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面
- 忽略已检查的异常,所有出色的开发人员都在这样做–基于600,000个Java项目
- 我!程序猿!被银行套路了!
- c++简单的加法函数
- bme280中文技术手册_Rhino 6 中文训练手册发布
- 关于flashdevelop测试flex项目时trace不出的解决方法
- “互联网+”创新创业计划书(二)
- 高效能人士的七个习惯读后感与总结概括-(第二章)
- Cesium场景导出为图片功能
- 我是主考官__博文(作者著有《Java程序员,上班那点事儿》)
- Kata Containers及相关vmm介绍
- 【CuteJavaScript】GraphQL真香入门教程
- 【ros】初学ROS的学习笔记——创建Publisher
- 【图神经网络】图神经网络(GNN)学习笔记:基于GNN的图表示学习
- Android 安全分析和漏洞挖掘|工具集
热门文章
- 哈夫曼树的建立(二叉链表)
- IntelliJ IDEA 如何设置黑色主题,界面字体大小以及内容字体大小
- Java开发需要的官方文档
- 声卡调试精调效果都用那些宿主(DAW)机架和效果器插件
- android恢复微信好友,安卓微信删除好友怎么找回 找回好友详细方法
- APP性能测试之帧率测试
- oracle row number (),Oracle 分析函数 ROW_NUMBER() 使用
- 【虹科免费直播预告】光电技术直播月重磅来袭!
- 医疗机构做直播前的预告应该怎么做?
- 【R语言】如何直接调取Wind、iFinD数据接口教程