Linux上怎么安裝和使用Makeself
Linux上怎么安裝和使用Makeself
Makeself只是Linux下的一個(gè)腳本,可用于文件的創(chuàng)建,因?yàn)閙akeself重寫過(guò),所以會(huì)有不少人不懂怎么使用makeself,下面學(xué)習(xí)啦小編就給大家介紹下Linux安裝使用makeself的方法。
Makeself.sh是一個(gè)小的Shell腳本,用于從一個(gè)目錄中生成自解壓的tar.gz壓縮包。結(jié)果文件以一個(gè)shell腳本顯示(大多數(shù)以.run作為后綴名),可以自動(dòng)運(yùn)行。該文檔會(huì)解壓自己到一個(gè)臨時(shí)目錄,并且執(zhí)行一個(gè)可選的任意命令(例如:一個(gè)安裝腳本)。它非常類似于Windows中的Winzip自解壓生成的文件。Makeself文檔也包括校驗(yàn)和用于集成子驗(yàn)證(CRC或MD5校驗(yàn)和)。
Makeself.sh腳本自身只用于從文件目錄中創(chuàng)建一個(gè)的文檔。生成的文檔實(shí)際上是一個(gè)壓縮(使用gzip,bzip2或壓縮)TAR文件,在文件的開始加入一小段Shell腳本。這是一個(gè)小的Stub腳本,用于執(zhí)行解壓文件,運(yùn)行嵌入命令和刪除臨時(shí)文件。為了安裝包含在該文檔中的軟件,用戶只需要運(yùn)行“文檔”,例如:sh nice-software.rum。我推薦這些文件使用“run”或“sh”作為后綴,不要迷惑用戶,因?yàn)樗麄冎浪鼘?shí)際上是一個(gè)Shell腳本,它后面帶有相當(dāng)多的二進(jìn)制數(shù)據(jù)。
從2.1開始,makeself已經(jīng)重寫過(guò),在下面的平臺(tái)上進(jìn)行測(cè)試:
1. Linux(所有發(fā)行版)
2. Sun Solaris(8以上版本)
3. HP-UX(HPPA RISC上的11.0和11i)
4. SCO OpenUnix和OpenServer
5. IBM AIX 5.1L
6 MacOS X(Dario)
7. SG IRIX 6.5
8. FreeBSD
9. UnicOS/Cray
10.Cygwin(Windows)
Makeself安裝
為了在Linux上安裝makeself,下載最新版本的存檔格式文件,執(zhí)行下載的文件,當(dāng)文件自解壓以后會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)新的目錄稱為makeself-2.2.0,拷貝所有的shell腳本到/usr/bin目錄下完成安裝。
$ wgethttp://megastep.org/makeself/makeself-2.2.0.run
$ chmod 755 makeself-2.2.0.run
$ 。/makeself-2.2.2.run
$ cd makeself-2.2.0
$ sudo cp *.sh /usr/bin
使用方法
makeself.sh的基本使用方法如下:
makeself.sh [args] archive_dir file_namelabel startup_script [script_args]
“label”參數(shù)是SFX解壓縮時(shí)打印的消息,“start_script”指定在SFX歸檔文件成功解壓縮后執(zhí)行的腳本和命令。當(dāng)你想創(chuàng)建一個(gè)自解壓的安裝文件時(shí)會(huì)有用處。通常啟動(dòng)腳本將拷貝和安裝解壓的內(nèi)容到合適的目標(biāo)目錄中。啟動(dòng)腳本必須位于打包的目錄中,因此腳本包含在SFX歸檔文件中。
1. args是Makeself的可選參數(shù),可用的有:
--vesion:打印版本信息到控制臺(tái),然后立即退出;
- --gzip: 使用GZIP壓縮(缺省選項(xiàng))
- --bzip2:使用bzip2壓縮
- --compress:使用Unix的compress命令壓縮數(shù)據(jù)
- --nocomp:不壓縮
- --notemp:不解壓文件到一個(gè)臨時(shí)目錄,但是在當(dāng)前目錄下創(chuàng)建一個(gè)新的子目錄。
- --current:文件將解壓到當(dāng)前目錄,而不是子目錄中,隱含--notemp選項(xiàng)
- --follow:跟隨所有的符號(hào)鏈接,也打包那些符號(hào)鏈接的文件。
- --append:最近數(shù)據(jù)到現(xiàn)有的文檔中,而不是創(chuàng)建一個(gè)新的數(shù)據(jù)。
- --header:Makeself2.0開始可以使用一個(gè)單獨(dú)文件存儲(chǔ)頭部stub,稱為makeelf-header.sh,假設(shè)位于makeself相同的位置。
- --copy:…。
2. archive_dir:包含歸檔文件的目錄名稱
3. file_name:創(chuàng)建歸檔文件的名稱
4. label:描述軟件包的任意文本字符串,當(dāng)解壓文件時(shí)顯示
5. startup_script:在提取文件目錄中的命令,因此如果你希望執(zhí)行一個(gè)
在該目錄中的程序,你必須在你的命令之前加上前綴“。/”,例如:。/program是正確的,script_args是改命令的附加參數(shù)。
這里有一個(gè)示例,假設(shè)用戶有一個(gè)包鏡像存儲(chǔ)在/home/joe/mysoft目錄中,它希望生成一個(gè)自解壓的mysoft.sh軟件包,它將啟動(dòng)存儲(chǔ)在/home/joe/mysoft目錄下的setup腳本,執(zhí)行命令如下:
makeself.sh/home/joe/mysoft mysoft.sh “Joe‘s Nice Software Package” 。/setup
下面是創(chuàng)建包含Makeself發(fā)行版的makeself.run文檔的命令:
makeself.sh --notempmakeself makeself.run “Makeself by Stephane Peter” echo“Makeself has extracted itself”
由makeself生成的文檔可以傳遞下面的參數(shù):
- --keep:放置文件解壓到一個(gè)臨時(shí)目錄中(在嵌入腳本執(zhí)行之后會(huì)被刪除掉)。文件將直接解壓到當(dāng)前的工作目錄中,直到你刪除它。
- --verbose:在執(zhí)行嵌入式命令之前提示用戶
- --target:允許解壓目錄到任意位置
- --confirm:運(yùn)行嵌入式命令之前提示用戶確認(rèn)
- --info:打印出關(guān)于文檔的通用信息(不解壓)
- --lsm:打印LSM條目
- --check:使用嵌入的校驗(yàn)和檢查文檔,不解壓文檔
- --nochown:缺省,在解壓之后在目標(biāo)目錄下運(yùn)行“chown -R”命令,以便所有文件屬于當(dāng)前用戶。如果你以root用戶運(yùn)行大部分需要這樣,tar將嘗試重新創(chuàng)建初始化用戶所有者。你可以禁用這個(gè)行為。
- --tar:對(duì)文檔的內(nèi)容運(yùn)行tar命令,使用后面的參數(shù)作為命令的參數(shù)。
- --noexec:解壓后不運(yùn)行嵌入式腳本
任何文檔后面的參數(shù)將作為附加參數(shù)傳遞給嵌入的命令。在任何這些選項(xiàng)之前,你應(yīng)該顯示的使用--專用命令行結(jié)構(gòu),確保Makeself不會(huì)嘗試解釋它們。
上面就是Linux安裝使用makeself的方法介紹了,要注意的是,使用makeself創(chuàng)建的文件是壓縮TAR文件,在里面加上shell腳本進(jìn)行解壓。