理論上來說,每一個程序都有自己的運行環境;所以,當程序完成後進行發佈,應該提供發佈包。
在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)相當一部分包會非常大,會造成程序的過大。