Linux的.run文件簡單制作


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安裝包制作較小的程序包是很好的選擇,但是它也有缺點,做邏輯比較復雜的安裝包,寫的安裝腳本將會很麻煩。因此此時還是用其他的安裝包更好。

安裝方法: 以 ***.run 為例:運行 sh ***.run

 

原文出自: http://www.linuxdiyf.com/viewarticle.php?id=84934


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM