找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1884|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

linux .run 文件的制作和安裝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-6 15:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
由于要安裝nvidia 的驅(qū)動(dòng),所以才會(huì)遇到這個(gè)問(wèn)題。

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

run程序安裝包實(shí)質(zhì)上是一個(gè)安裝腳本加要安裝的程序,如下圖所示:

|-----------------|
| |
| 安裝腳本 |
| |
|-----------------|
| |
| 程序 |
| |
|-----------------|
圖: run安裝包的結(jié)構(gòu)

這樣整個(gè)run安裝包結(jié)構(gòu)就一目了然了,實(shí)際上因?yàn)閷?shí)際需要結(jié)構(gòu)多少有點(diǎn)變動(dòng)但這個(gè)無(wú)關(guān)緊要,只需要明白原理就行了。

制作run安裝包以下舉個(gè)實(shí)際的例子:

為了簡(jiǎn)單起見(jiàn),要安裝的程序就是helloworld程序,安裝它的過(guò)程就是把它拷貝到/bin目錄下。

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

現(xiàn)在有一個(gè)安裝腳本了,名為install.sh,有一個(gè)要安裝的程序helloworld.因?yàn)橐惭b的程序一般都是用.tar.bz2來(lái)做的。我們這兒也做一下:

$ tar jcvf helloworld.tar.bz2 helloworld

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

改為:
#!/bin/bash
lines=7 #這個(gè)值是指這個(gè)腳本的行數(shù)加1,這個(gè)腳本共有6行
tail +$lines $0 >/tmp/helloworld.tar.gz # $0表示腳本本身,這個(gè)命令用來(lái)把從$lines開(kāi)始的內(nèi)容寫(xiě)入一個(gè)/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文件,它的結(jié)構(gòu)如下:

|------------------| 第1行
| |
| install.sh |
| | 第6行
|------------------|
| | 第7行
|helloworld.tar.bz2|
| |
|------------------| 結(jié)尾
圖: myinstall.run安裝包的結(jié)構(gòu)

運(yùn)行myinstall.run時(shí),運(yùn)行到第6行的exit 0腳本就退出了,所以不會(huì)去運(yùn)行第7行以下的二進(jìn)制數(shù)據(jù)(即 helloworld.tar.bz2文件),而我們用了tail巧妙地把第7行以下的數(shù)據(jù)重新生成了一個(gè)helloworld.tar.gz文件。再執(zhí)行安裝。

run安裝包制作較小的程序包是很好的選擇,但是它也有缺點(diǎn),做邏輯比較復(fù)雜的安裝包,寫(xiě)的安裝腳本將會(huì)很麻煩。因此此時(shí)還是用其他的安裝包更好。

安裝方法: 以 ***.run 為例:運(yùn)行 sh ***.run
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表