之前往linux上安裝乙個軟體,都是以壓縮包或者壓縮包+shell的方法,這每次安裝,都是先scp到某個目錄, 解壓,安裝......稍微厲害的,會寫個shell指令碼.但是還是達不到真正的快速方便安裝.現在我們就介紹一種.run的軟體包
run 程式安裝包實質上是乙個安裝指令碼加要安裝的程式,如下所示:
|—————–——|
| |
| 安裝指令碼 |
| |
|—————–——|
| |
| 程式 |
| |
|—————–——|
這樣整個 run 安裝包結構就一目了然了,實際上因為實際需要結構多少有點變動但這個無關緊要,只需要明白原理就行了。
它的結構是 shell +壓縮包(當然也可以是其它檔案)的格式,製作的時候用 cat 命令命令連線兩個檔案,頭部是 shell 指令碼檔案(shell 一定要在前面)和壓縮包同時重定向到另乙個檔案(linux 中統一給字尾 run、bin 或 sh 給它,就是本文中說的 run 檔案),一般這個後部分的檔案是個壓縮 包,那樣就能夠打包很多檔案了。執行的時候 shell 就可以用 linux 裡面的 tail 或 head 等命令很容易地把壓縮包從 run 檔案切分出來,後面的操作就跟 shell+壓縮包 的操作類似了,但這其中使用者只需執行它就行,剩下的都是 shell 自己的操作了。這就是 linux 那些 bin 、run 等安裝指令碼的簡單製作了,對使用者來說自動省事了很多。
與普通指令碼相比,此類指令碼多了一步從合併的檔案中,提取出程式檔案的過程。
安裝檔案的優點:
(1)只有乙個包檔案;
(2)可以直接執行在 linux上,因為它是 sh(它的前半部分是sh);
(3)在 sh 中可以包含需要使用者接收的協議資訊,而且提示使用者接收,如果使用者不接收,安裝退出。
假如我們有乙個test.tar.gz的壓縮包, 這就是我們的安裝包, 其次我們有乙個test.shell的執行指令碼
test.shell的內容:
1 #!/bin/bash連線指令碼和壓縮包2 lines=8 #這個值是指這個指令碼的行數加 1,這個指令碼共有 7 行
3 tail -n +$lines $0 >/tmp/test.tar.gz # $0 表示指令碼本身,這個命令用來把從 $lines 開始的內容寫入乙個 /tmp 目錄的 scan.tar.gz 檔案裡。
4 tar zxvf /tmp/test.tar.gz
5 cp test /usr/bin
6 rm test -f
7 exit 0
cat test.sh test.tar.gz > test.run這樣就得到了 test.run 檔案,它的結構如下:
|—————–———| 第1行
| |
| test.sh |
| | 第7行
|—————–———|
| test.tar.gz | 第8行
| |
|—————–———| 結尾
在執行 test.run 時,執行到第 7 行的 exit 0 ,指令碼就會自動退出了,不會去執行第 8 行以下的二進位制資料(即 test.tar.gz 檔案),這樣 shell 就不會因為識別不了二進位制資料而出錯了。這裡我們巧妙地使用了 tail 命令,把第 7 行以下的資料重新生成了乙個 test.tar.gz檔案,然後再執行安裝。執行超級簡單,使用 sh test.run 或賦予可執行許可權然後直接執行 ./test.run 就可以安裝了。
run 安裝包製作較小的程式包是很好的選擇,但是它也有缺點,做邏輯比較複雜的安裝包,寫的安裝指令碼將會很麻煩,因此此時還是用其他的安裝包更好。
linux下run安裝包的製作
run程式安裝包實質上是乙個安裝指令碼加要安裝的程式,如下圖所示 安裝指令碼 程式 圖 run安裝包的結構 這樣整個run安裝包結構就一目了然了,實際上因為實際需要結構多少有點變動但這個無關緊要,只需要明白原理就行了。製作run安裝包以下舉個實際的例子 為了簡單起見,要安裝的程式就是hellowor...
linux下製作bin安裝包
bin bash 是否安裝了jdk export jdk if test z then echo 找不到jdk的環境變數,已退出安裝!exit 1 fi echo 請輸入tomcat的完整路經 read tomcat path echo 去掉最後乙個斜扛 len echo 名字 echo 長度 if...
linux下的 run包的製作
首先開始我的嘮叨幾句,網上有很多.run包的製作,那為什麼我還要寫呢?原因很簡單,他們的執行不了啊,各種錯誤,今天我給大家講乙個能執行的,一步一步手把手教你們。程式設計前需要有的東西 install.sh檔案 hello.c檔案 這些檔案我都放在hello資料夾,沒要求,大家隨意 目標 hello ...