製做綠色軟體的安裝檔
綠色軟體擺在隨身碟裡面,到哪台電腦都可以執行利用,的確是非常方便。但是一般人還是習慣從「開始→程式集」去找你要的程式,也可以透過Windows內建的變更或移除程式,所以還是會有這種必要性。最近電腦大限快到的感覺,我也開始籌劃著重灌用的東西,這次我想把所有的綠色軟體用「一鍵安裝」的方式一口氣安裝到電腦內,這篇則是多個步驟中的其中一個,有興趣的話就請繼續看下去吧。
在正式開始之前我先介紹一下本次實驗對象的FastStone Capture 5.3版,如右圖(圖片來自電腦玩物)。一個強大的螢幕截圖軟體,下面的圖片都是用它來擷取的。下載的時候它是一個安裝檔,但其實直接把安裝目錄複製出來,便可以當作一個綠色軟體來用囉!
- 免費的安裝檔製作程式 Inno Setup 5 http://www.jrsoftware.org/isinfo.php
下載:isetup-5.2.2.exe http://www.jrsoftware.org/download.php/is.exe
安裝好Inno Setup之後,打開它的程式,接下來我一邊練習使用FastStone Capture,一邊來介紹它是怎麼製作安裝檔的。
開啟程式之後,會看到Inno Setup的開始對話視窗,選擇「Create a new Script file using the Script Wizard (用腳本精靈來建立一個新腳本)」,這邊的Script(腳本)是指編譯安裝檔的程式碼,用精靈來建立的話,就不用擔心看不懂程式了。
如果你不小心把這個對話視窗關了,也可以直接用「New」或點選右圖來開啟腳本精靈。
腳本精靈第一頁,直接按 Next > 到下一步吧。
第二頁要填入與軟體相關的資訊。
- 應用程式的名稱
- 程式名稱加上版本
- 發行者
- 網站
這些幾乎都可以在原本軟體的About(關於我們)裡面找到,但問題是通常About的資訊是不能選取起來複製的,只能另外抄寫,不太方便。
第三頁是設定安裝程式的目的位置與資料夾名稱,也可以不建立資料夾擺程式。
- 應用程式目標安裝位置的資料夾:「Program Files folder」就是預設的C:\Program Files\。你也可以用Custom(自訂)。
- 應用程式資料夾名稱:基本上是跟程式名稱一樣即可。你可以在檔案名稱用\來做多階層的檔案,例如「MyGreenSoftware\FastStone Capture」,他就會先建立一個MyGreenSoftware,裡面再建立一個FastStone Capture,這個小技巧可以方便日後管理你安裝的綠色軟體。
- 允許使用者改變安裝資料夾位置
- 這個程式不需要資料夾:例如你只是要執行程式而不安裝的話
第四頁設定你安裝時要執行的主程式,以及其他要複製到安裝資料夾的檔案。
- 應用程式主要執行的檔案:你開啟檔案時的主程式,到時候會把連結複製到開始→程式集裡面。在這邊只能選擇一個而已,但在最後的補充說明裡面,會敎你增加更多個執行檔案。
- 允許使用者在安裝完成之後啟用應用程式:但是對於一口氣要安裝很多軟體的人來說,到時候還要去關掉,很麻煩,所以我是不打勾的。
- 應用程式沒有主要的執行程式:只有要複製檔案的時候才會使用到這個功能。
- 其他應用程式檔案:可以選擇增加個別檔案或是直接增加資料夾,通常是增加資料夾比較方便。
設定完成之後,再按Next > 到下一步吧。
第五頁,設定與開始→程式集相關的參數。Start Menu (開始選單)就是開始→程式集。
- 應用程式在開始選單裡面的名稱:預設是與第二頁設定的安裝軟體是相同的。這邊一樣可以應用之前的技巧,用「\」來作多層的資料夾。
- 其他設定都打勾吧,方便使用者安裝的時候可以自訂。其他設定的意思是:
第六頁,設定安裝時相關文件。
- 版權宣告:如果有這份文件,那安裝檔就會要求使用者先讀完之後才能按下一步繼續安裝。
- 安裝前要讀的文件
- 安裝後要讀的文件
既然是免費的綠色軟體,那這些步驟就省略吧。
第七頁,安裝檔的語文,可惜還沒有繁體中文,至少勾個English吧。
第八頁要設定製作完成的安裝檔。
- 設定輸出的資料夾
- 輸出的檔案名稱
- 自訂安裝檔的圖示:這邊使用的檔案是.ico檔,可是大多時候.ico都藏在.exe或.dll裡面,我們這次的FastStone Capture就沒有.ico檔案。
這時候可以借用TM Icon Extractor 1.00來從.exe或.dll裡面抽取圖示檔囉:
- 最後一欄,你可以自訂密碼
設定檔終於完成了!
是否要立刻編譯出安裝檔呢?如果回答「是」的話:
在編譯之前是否要先把安裝檔腳本儲存到你指定的位置呢?按否的話,則會自動存到要安裝的程式資料夾下面。Inno Start存成的檔案是.iss,可以用筆記本開啟的。按下「是」或「否」的話,安裝檔就建立完成囉!
安裝檔出現了!
安裝程式也如你設定般地順利進行,安裝過程我就不截圖囉。
----
補充說明:
前面提到預設的主要執行程式只能選擇一個,如果你的程式有好多個工具包在一起用那其他的不就得自己手工建立開始選單?這時候就得修改安裝檔腳本的程式碼囉。請找到下面圖片中的這一段:
[Icons]
Name: "{group}\FastStone Capture"; Filename: "{app}\FSCapture.exe"
聰明如你應該知道要怎麼改了吧。例如你要執行的程式叫做「FSCaptureHelp.chm」,這是FastStone Capture的安裝檔,那麼我們從中間插入一行,變成:
[Icons]
Name: "{group}\FastStone Capture"; Filename: "{app}\FSCapture.exe"
Name: "{group}\FSCaptureHelp.chm"; Filename: "{app}\FSCaptureHelp.chm"
注意,Name不能重複喔,不然會被覆蓋過去。
看,順利跑出來了吧!
在安裝檔腳本裡面還有很多可以摸索的地方,本次教學就到此為止囉,感謝大家收看!
網誌管理員已經移除這則留言。
回覆刪除Innosetup這套軟體
回覆刪除不是在製作安裝檔完成後
也會壓縮檔案嗎?
為什麼我裝的內容大約是 1GB
做出來的安裝檔 974MB ?
有什麼辦法讓他壓縮率更高??
會壓縮沒錯!
回覆刪除但是要怎麼弄我也不知道耶……很久沒摸了orz
提高要壓縮比的話,要在 [SETUP] 段落中加入
回覆刪除Compression=壓縮演算法/壓縮比,如 Compression=lzma/max
其實在F1 按鍵的說明中,這個 lzma/max 是預設值啦。不給也沒差的
在不同版本中,壓縮演算法 也會有不同的支援,如 5.4 版以前的不支援 lzma2 壓縮演算法
但在 5.4 以及之後的版本就可以使用 lzma2 的所演算法,以下是 F1 按鍵的說明的壓縮演算法/壓縮比
zip
zip/1 through zip/9
bzip
bzip/1 through bzip/9
lzma
lzma/fast
lzma/normal
lzma/max
lzma/ultra (壓縮時額外使用約 380MB 記憶體)
lzma/ultra64 (壓縮時額外使用約 680MB 記憶體 )
lzma2
lzma2/fast
lzma2/normal
lzma2/max
lzma2/ultra (壓縮時額外使用約 380MB 記憶體)
lzma2/ultra64 (壓縮時額外使用約 680MB 記憶體 )
none (不壓縮僅是存放而已)
此外,在一樣的 [SETUP] 段落中加入 SolidCompression=Yes
這表示會如同 WinRAR 般建立固實的壓縮檔,可以在增加其壓縮比。
此外也可以使用分片壓縮的模式,一樣的 [SETUP] 段落中加入
UseSetupLdr=Yes (預設值為 no,Yes 表示啟用分片壓縮)
DiskSpanning=Yes (預設值為 no,Yes 表示 EXE 檔案將不包含安裝用的資料)
SlicesPerDisk=1 (預設值為 1,表示檔案細切的程度詳細請按 F1 去看看)
DiskSliceSize=100000000 (單位是 Bytes,這個數值約 95MB)
以上統統都是 [SETUP] 段落的東西,這個需要手動更改腳本就是了 ...
To 4樓匿名:
回覆刪除感謝你的詳細講解
有SolidCompression=Yes就幫助很大了,可以把檔案壓縮得很小喔!