理论上来说,每一个程序都有自己的运行环境;所以,当程序完成后进行发布,应该提供发布包。
在Windows上,具有打包工具;典型的打包工具如Advanced Installer。这些打包工具本身上就是把程序和其依赖库选择到相应库上进行安装。
Linux属于命令行系统,打包工具显然不是必须的;但相应的程序是可以制作的。
提供的参考程序如下:
#!/bin/sh
src="程序名" #发布的程序名称,是生成的可执行文件
des="安装路径" #程序打包路径,这是最终生成文件路径
lstdep=$(ldd $src| awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $lstdep $des
可以把程序命名为package.sh,执行后即可打包。
然后,可以对目标文件执行压缩,生成发布包。
注意几个问题是:
1)这个文件本身是执行ldd命令,ldd命令可能会访问到库文件;库文件依赖进行复制需要超级命令,可以执行sudo或者其他超级权限;
2)相当一部分包会非常大,会造成程序的过大。