复制某文件夹下内容到指定位置:
#!/bin/bash
pwd="/home/edward/YR/test" #所建文件夹的路径
cp -r /home/edward/Desktop/lost/* $pwd
1.新建一个文件夹,放入可执行程序(linux下可执行程序无后缀名),新建两个shell脚本
touch pack.sh //建立第一个shell文件
touch xxx.sh //建立第二个shell文件,注意第二个脚本文件的名字必须与可执行文件的命名相同
2.第一个脚本内容 pach.sh [自动抓取依赖库]
#!/bin/bash
exe="xxx 填可执行程序的名称" #需要发布的程序名称
pwd="/home/edward/...填当前文件夹路径" #所建文件夹的路径
files=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') #依赖库
cp $files $pwd #将依赖库复制到当前目录下
3.第二个脚本内容 xxx.sh (xxx为可执行文件名) [为了方便部署程序,如添加环境变量、创建桌面快捷方式]
执行这个脚本,和直接执行可执行程序的效果相同。
#!/bin/bash
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"
#设置动态库搜索路径LD_LIBRARY_PATH
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
4.给脚本授权并执行
sudo chmod 777 pack.sh //赋予权限
./pack.sh //执行第一个脚本文件,此时新建的文件夹中会多些许东西
sudo chmod 777 xxx.sh //赋予权限
./xxx.sh //执行第二个脚本文件,成功打包
package.sh
#!/bin/bash
#1.自动抓取依赖库
exe="YeecohReader" #需要发布的程序名称
pwd="/home/edward/YR/YRPackage_UOS" #所建文件夹的路径
files=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $files $pwd
#2.手动添加上一步没抓到的缺失依赖库
cp -r /home/edward/Desktop/lost/* $pwd
执行打包脚本,库就都抓取(复制)过来了

