Makeself只是Linux下的一個腳本,可用於文件的創建,因為makeself重寫過,所以會有不少人不懂怎麼使用makeself,下面小編就給大家介紹下Linux安裝使用makeself的方法。
Makeself.sh是一個小的Shell腳本,用於從一個目錄中生成自解壓的tar.gz壓縮包。結果文件以一個shell腳本顯示(大多數以.run作為後綴名),可以自動運行。該文檔會解壓自己到一個臨時目錄,並且執行一個可選的任意命令(例如:一個安裝腳本)。它非常類似於Windows中的Winzip自解壓生成的文件。Makeself文檔也包括校驗和用於集成子驗證(CRC或MD5校驗和)。
Makeself.sh腳本自身只用於從文件目錄中創建一個的文檔。生成的文檔實際上是一個壓縮(使用gzip,bzip2或壓縮)TAR文件,在文件的開始加入一小段Shell腳本。這是一個小的Stub腳本,用於執行解壓文件,運行嵌入命令和刪除臨時文件。為了安裝包含在該文檔中的軟件,用戶只需要運行“文檔”,例如:sh nice-software.rum。我推薦這些文件使用“run”或“sh”作為後綴,不要迷惑用戶,因為他們知道它實際上是一個Shell腳本,它後面帶有相當多的二進制數據。
從2.1開始,makeself已經重寫過,在下面的平台上進行測試:
1. Linux(所有發行版)
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,下載最新版本的存檔格式文件,執行下載的文件,當文件自解壓以後會在當前目錄下創建一個新的目錄稱為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”參數是SFX解壓縮時打印的消息,“start_script”指定在SFX歸檔文件成功解壓縮後執行的腳本和命令。當你想創建一個自解壓的安裝文件時會有用處。通常啟動腳本將拷貝和安裝解壓的內容到合適的目標目錄中。啟動腳本必須位於打包的目錄中,因此腳本包含在SFX歸檔文件中。
1. args是Makeself的可選參數,可用的有:
--vesion:打印版本信息到控制台,然後立即退出;
- --gzip: 使用GZIP壓縮(缺省選項)
- --bzip2:使用bzip2壓縮
- --compress:使用Unix的compress命令壓縮數據
- --nocomp:不壓縮
- --notemp:不解壓文件到一個臨時目錄,但是在當前目錄下創建一個新的子目錄。
- --current:文件將解壓到當前目錄,而不是子目錄中,隱含--notemp選項
- --follow:跟隨所有的符號鏈接,也打包那些符號鏈接的文件。
- --append:最近數據到現有的文檔中,而不是創建一個新的數據。
- --header:Makeself2.0開始可以使用一個單獨文件存儲頭部stub,稱為makeelf-header.sh,假設位於makeself相同的位置。
- --copy:…。
2. archive_dir:包含歸檔文件的目錄名稱
3. file_name:創建歸檔文件的名稱
4. label:描述軟件包的任意文本字符串,當解壓文件時顯示
5. startup_script:在提取文件目錄中的命令,因此如果你希望執行一個
在該目錄中的程序,你必須在你的命令之前加上前綴“。/”,例如:。/program是正確的,script_args是改命令的附加參數。
這裡有一個示例,假設用戶有一個包鏡像存儲在/home/joe/mysoft目錄中,它希望生成一個自解壓的mysoft.sh軟件包,它將啟動存儲在/home/joe/mysoft目錄下的setup腳本,執行命令如下:
makeself.sh/home/joe/mysoft mysoft.sh “Joe‘s Nice Software Package” 。/setup
下面是創建包含Makeself發行版的makeself.run文檔的命令:
makeself.sh --notempmakeself makeself.run “Makeself by Stephane Peter” echo“Makeself has extracted itself”
由makeself生成的文檔可以傳遞下面的參數:
- --keep:放置文件解壓到一個臨時目錄中(在嵌入腳本執行之後會被刪除掉)。文件將直接解壓到當前的工作目錄中,直到你刪除它。
- --verbose:在執行嵌入式命令之前提示用戶
- --target:允許解壓目錄到任意位置
- --confirm:運行嵌入式命令之前提示用戶確認
- --info:打印出關於文檔的通用信息(不解壓)
- --lsm:打印LSM條目
- --check:使用嵌入的校驗和檢查文檔,不解壓文檔
- --nochown:缺省,在解壓之後在目標目錄下運行“chown -R”命令,以便所有文件屬於當前用戶。如果你以root用戶運行大部分需要這樣,tar將嘗試重新創建初始化用戶所有者。你可以禁用這個行為。
- --tar:對文檔的內容運行tar命令,使用後面的參數作為命令的參數。
- --noexec:解壓後不運行嵌入式腳本
任何文檔後面的參數將作為附加參數傳遞給嵌入的命令。在任何這些選項之前,你應該顯示的使用--專用命令行結構,確保Makeself不會嘗試解釋它們。
上面就是Linux安裝使用makeself的方法介紹了,要注意的是,使用makeself創建的文件是壓縮TAR文件,在裡面加上shell腳本進行解壓。