linux下run安裝包的製作

2021-04-29 21:58:32 字數 1638 閱讀 7385

run程式安裝包實質上是乙個安裝指令碼加要安裝的程式,如下圖所示:

|-----------------|

|                 |

|     安裝指令碼     |

|                 |

|-----------------|

|                 |

|      程式        |

|                 |

|-----------------|

圖: run安裝包的結構

這樣整個run安裝包結構就一目了然了,實際上因為實際需要結構多少有點變動但這個無關緊要,只需要明白原理就行了。

製作run安裝包以下舉個實際的例子:

為了簡單起見,要安裝的程式就是helloworld程式,安裝它的過程就是把它拷貝到/bin目錄下。

$ ls

install.sh helloworld

$ cat install.sh

#!/bin/bash

cp helloworld /bin

$現在有乙個安裝指令碼了,名為install.sh,有乙個要安裝的程式helloworld.因為要安裝的程式一般都是用.tar.bz2來做的。我們這兒也做一下:

$ tar jcvf helloworld.tar.bz2 helloworld

現在修改乙個安裝指令碼install.sh

改為:#!/bin/bash

lines=7      #這個值是指這個指令碼的行數加1,這個指令碼共有6行

tail +$lines $0 >/tmp/helloworld.tar.gz # $0表示指令碼本身,這個命令用來把從$lines開始的內容寫入乙個/tmp目錄的helloworld.tar.gz檔案裡。

tar jxvf /tmp/hellowrold.tar.gz

cp helloworld /bin

exit 0

然後使用cat命令連線安裝指令碼install.sh和helloworld.tar.bz2。

$ cat install.sh helloworld.tar.bz2 > myinstall.run

這樣就得到了myinstall.run檔案,它的結構如下:

|------------------| 第1行

|                  |

|    install.sh    |

|                  | 第6行

|------------------|

|                  | 第7行

|helloworld.tar.bz2|

|                  |

|------------------| 結尾

圖: myinstall.run安裝包的結構

執行myinstall.run時,執行到第6行的exit 0指令碼就退出了,所以不會去執行第7行以下的二進位制資料(即 helloworld.tar.bz2檔案),而我們用了tail巧妙地把第7行以下的資料重新生成了乙個helloworld.tar.gz檔案。再執行安裝。

run安裝包製作較小的程式包是很好的選擇,但是它也有缺點,做邏輯比較複雜的安裝包,寫的安裝指令碼將會很麻煩。因此此時還是用其他的安裝包更好。

製作linux下的 run安裝包

之前往linux上安裝乙個軟體,都是以壓縮包或者壓縮包 shell的方法,這每次安裝,都是先scp到某個目錄,解壓,安裝.稍微厲害的,會寫個shell指令碼.但是還是達不到真正的快速方便安裝.現在我們就介紹一種.run的軟體包 run 程式安裝包實質上是乙個安裝指令碼加要安裝的程式,如下所示 安裝指...

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 ...