打包 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 會幫我們清理
接著進入 ssh 畫面( ssh root@IP)
然後直接輸入 packager
程式會問你要用英文還是中文,這裡輸入 CH
於是畫面就變成中文了XD
然後因為我們是第一次使用,所以沒有上次設定的資料,因此第一個選 n
之後路徑那邊輸入檔案路徑(範例是 /EmojiPro)
注意!iPhone 裡面有大小寫區分,所以大小寫一定要正確,然後因為是放在根目錄下,所以前面多一個斜線 /
接著,編譯指令選 n (因為 iOS 5.1 以上還沒支援編譯過的 shell script)
壓縮方式則看個人喜好選擇,gzip 最快、lzma 壓縮最多,
一般來說如果檔案不大,用 gzip 或者 bzip2 就可以了。
如果沒問題的話, Easy Packager 會開始打包,然後算出檔案大小跟 MD5
接著你就可以在根目錄看到剛打包好的 deb 了。
如果你發現檔案要修改,就再把檔案丟進去 iPhone 裡面一次,
然後這次在一開始的那邊選擇 y (使用上次設定)
這樣子就不必再設定目錄跟壓縮方式了~~
然後這個程式是 shell script 寫成的,所以歡迎亂改,如果有什麼可以加入的新功能也請告訴我一下
發佈留言