Easy Packager 簡易打包 deb 工具

打包 deb 應該是每個 Cydia 開發者都要會的技術。

但是打包 deb 除了寫好 control 跟安裝時的 script 外,

在 "打包壓縮" 這個動作上其實也蠻煩人的...

 

我最早以前是用 Mac 或者 Ubuntu 打包的,

但是 Mac 要裝 fink 才可以打包,而且 Mac上面還有 .DS_Store 的垃圾檔要每次清理,

Ubuntu的話則是要開虛擬機器,所以不方便。

總之最後我是用 iPhone 來打包的,然後又因為每次打包還是要改 shell script 權限下重複的指令,

所以我就寫了 Easy Packager,這是一個 shell script ,也算是我第一個 iPhone 程式吧 XD

 

Easy Packager 的優點如下:

1. 自動清理 .DS_Store 、Thumbs.db 等垃圾檔

2. 自動設定 preinst、postinst、prerm、postrm 權限為 755

3. 自動算出 MD5、檔案大小等資訊,不必再另外查一次

4. 可以選擇三種壓縮模式

5. 每次打包完畢會儲存上次的設定,下次打包同一個套件只要按一個按鈕就不必再設定了

6. 可以編譯 preinst、postinst、prerm、postrm,讓指令加密(但是這會使得套件不能在 iOS 5.1 以上安裝)

 

如果你不知道基本的 deb 安裝包架構的話,我有寫過教學:

http://iphone4.tw/forums/showthread.php?t=80921

http://iphone4.tw/forums/showthread.php?t=89706

 

接著是 Easy Packager 的安裝方式:

Cydia 加入 http://cydia.hiraku.tw,

安裝 Easy Packager,如果找不到的話確定你的 Cydia 使用者是選擇 "駭客" 或 "開發者",

然後記得安裝 Open SSH。

 

安裝完畢,開始正式操作,

以下會用中文介面跟我的 "EmojiPro" 作為範例。

首先把整個資料夾丟到根目錄,這時候會看到裡面有 .DS_Store 的垃圾檔案,

沒關係,Easy Packager 會幫我們清理

Easy Packager

 

接著進入 ssh 畫面( ssh root@IP)

然後直接輸入 packager

程式會問你要用英文還是中文,這裡輸入 CH

Easy Packager

 

於是畫面就變成中文了XD

然後因為我們是第一次使用,所以沒有上次設定的資料,因此第一個選 n

之後路徑那邊輸入檔案路徑(範例是 /EmojiPro)

注意!iPhone 裡面有大小寫區分,所以大小寫一定要正確,然後因為是放在根目錄下,所以前面多一個斜線 /

Easy Packager

 

接著,編譯指令選 n (因為 iOS 5.1 以上還沒支援編譯過的 shell script)

壓縮方式則看個人喜好選擇,gzip 最快、lzma 壓縮最多,

一般來說如果檔案不大,用 gzip 或者 bzip2 就可以了。

Easy Packager

 

如果沒問題的話, Easy Packager 會開始打包,然後算出檔案大小跟 MD5

接著你就可以在根目錄看到剛打包好的 deb 了。

Easy Packager

 

如果你發現檔案要修改,就再把檔案丟進去 iPhone 裡面一次,

然後這次在一開始的那邊選擇 y (使用上次設定)

這樣子就不必再設定目錄跟壓縮方式了~~

 

然後這個程式是 shell script 寫成的,所以歡迎亂改,如果有什麼可以加入的新功能也請告訴我一下

發佈留言