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