標題: linux .run 文件的制作和安裝 [打印本頁]

作者: 51黑tt    時間: 2016-3-6 15:21
標題: linux .run 文件的制作和安裝
由于要安裝nvidia 的驅動,所以才會遇到這個問題。

這里順便找到.run文件的制作。

run程序安裝包實質上是一個安裝腳本加要安裝的程序,如下圖所示:

|-----------------|
| |
| 安裝腳本 |
| |
|-----------------|
| |
| 程序 |
| |
|-----------------|
圖: run安裝包的結構

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

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

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

$ ls
install.sh helloworld
$ cat install.sh
#!/bin/bash
cp helloworld /bin
$

現(xiàn)在有一個安裝腳本了,名為install.sh,有一個要安裝的程序helloworld.因為要安裝的程序一般都是用.tar.bz2來做的。我們這兒也做一下:

$ tar jcvf helloworld.tar.bz2 helloworld

現(xiàn)在修改一個安裝腳本install.sh

改為:
#!/bin/bash
lines=7 #這個值是指這個腳本的行數(shù)加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行以下的二進制數(shù)據(即 helloworld.tar.bz2文件),而我們用了tail巧妙地把第7行以下的數(shù)據重新生成了一個helloworld.tar.gz文件。再執(zhí)行安裝。

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

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





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1