在linux,我們經常會看到有一些安裝檔案型別為.run,只有乙個檔案,可以自動化安裝,非常舒服整潔,對於部分在linux下開發的工程師來說,製作乙個方便安裝的程式檔案是非常必要的,大大減輕使用者的安裝時間,增強使用者體驗。
製作與解析run安裝包,需要三個指令,cat、tail、head。原理就是利用cat將指令碼與檔案合併,利用tail解析尾部,利用head解析頭部,如果只是用於安裝,則不需要head解析頭部。
以下為製作示例:
1、新建乙個資料夾,命名為autorun(隨意,用不到這個名稱),內部新建資料夾source,以及指令碼autoinstall.sh
2、假設我們開發好了乙個程式,我們所有檔案放到source中,裡面有對應的安裝指令碼install.sh(無非就是複製、編譯、移動等等)
3、將source資料夾壓縮成source.tar.xz,減小體積
4、編輯autoinstall.sh,注意lines的數值要比autoinstall.sh的行數要多1,run檔案是由autoinstall.sh和source.tar.xz連線而成,以以下autoinstall.sh為例,前10行為autoinstall.sh,執行run檔案就是從autoinstall.sh執行,命令中要從.run檔案自解析出source.tar.xz,第11行開始到最後都是source.tar.xz。執行到第10行退出,避免後面source.tar.xz異常指令。
autoinstall.sh內容如下:
#!/bin/bash
lines=11 #this file total row + 1
tail -n +$lines "$0" >>/tmp/source.tar.xz # write self from filelines to file。
cd /tmp
xz -d source.tar.xz
tar -xvf source.tar
rm -f source.tar
sh source/install.sh
rm -rf source
exit 0
以上指令碼詳細解釋如下:
a)利用tail命令,將source.tar.xz從run檔案第11行開始剝離出來,放到/tmp/source.tar.xz
b)進入/tmp,解壓source.tar.xz為資料夾
c)刪除壓縮包
d)執行安裝指令碼
e)執行安裝完畢,刪除source資料夾
f)退出
5、連線autoinstall.sh和source.xz
cat autoinstall.sh source.tar.xz >> autorun.run
到這裡為止,run檔案製作完畢,給予執行許可權即可。
若是要分離出autoinstall.sh和source.tar.xz,執行以下命令即可,注意行數:
head -n10 autorun.run >> autoinstall.sh
tail -n +11 autorun.run >> source.tar.xz
安裝檔案製作總結
檔名 private string getsql string name 指定的資料庫執行sql語句 資料庫名 sql語句 private void executesql string databasename,string sqlstring finally 建立資料庫及資料庫表 資料庫名 配件中...
製作自解壓安裝檔案
shell的強大功能使得linux中自解壓安裝程式的製作變的很簡單。隱藏 2原理簡介 3參考資料 基本思路是建立乙個檔案,前半部分是乙個shell指令碼,後半部分則是tar建立的壓縮檔案。shell指令碼呼叫tar解壓檔案的後半部分,再呼叫解壓後的安裝檔案。本文給出的方法比較靈活,對安裝指令碼的行數...
NSIS製作安裝檔案記錄
軟體名稱 nsis 功能 製作安裝程式 學習文章 指令碼記錄 1.自啟動 針對當前使用者 writeregstr hkcu software microsoft windows currentversion run 啟動項名稱 啟動項命令 針對本機所有使用者 writeregstr hklm sof...