PALMisLIFE 討論區

搜索
鹹魚爸魅力四射舞蹈教室
查看: 10431|回復: 0
打印 上一主題 下一主題

[JB/Unlock] 打造個人 AppStore,自行架設 Cydia Server高級高高級

[複製鏈接]

3867

主題

126

好友

2626

積分

  • TA的每日心情

    2011-4-12 00:15
  • 簽到天數: 3 天

    連續簽到: 2 天

    [LV.2]偶爾看看I

    文章
    35006
    跳轉到指定樓層
    1#
    發表於 2011-10-22 13:37 |只看該作者 |倒序瀏覽
    JB 更進階!Cydia 網站自己開、軟體合輯自己做

    有人說『上帝在此處關門,必定會在別處開窗』, iPhone 的越獄(JailBreak) Cydia可以說就是一個最好的例子,由於 iPhone 的魅力,普及程度與資源絕對可以說是目前地球上最富足的一隻手機絕對沒問題,但是 Apple 對於系統的封閉也是出名的小家子氣討厭鬼保守,跟系統底層太接近的程式不能上架、跟內建軟體太像的軟體不太好、像是安桌椅 (Android) 的改介面改主題當然沒門,連中文輸入法內建的這麼難用強暴砥礪我的心靈也不能換,好在獄越之後等於開啟了 root 管理權限,Cydia 也就像是 AppStore一樣,只是上面的軟體更豐富更多元,可以說讓 iPhone 充滿了官方之外更多的可能性也不為過。

    AppStore的封閉不同,Cydia 其實說血統源自於開源的 APT 管理套件,因此也一樣連 Cydia Server 也可以自行架設(通常也稱為 Cydia Source、軟體源等)架設 Cydia Server 其實也就可以提供自己開發或是撰寫的程式,而對於個人使用者,其實也可以作為自己的備份主機、個人的軟體安裝資料庫。

    Cydia 的安裝格式 ­- DEB 安裝包

    目前 iOS平台上包含了官方與非官方的安裝包形式主要有三種,ipapxl deb

    ipa

    格式是 Apple 官方在 iOS平台 ( iPhone OS 2.0 開始) 上推出的軟體安裝包格式,也是目前 iPhone / iPod Touch / iPad官方唯一的安裝包形式,不過雖然是官方包,自行製作也是可行的,版權保護則與 ipa沒有一定的絕對關係,ipa
    僅為安裝包的一種格式,此外以技術的角度來說,ipa 安裝包最大的限制是可以控制的權限最高只到 user 等級

    pxl
    格式源起於 Mac 系統上的 pkg安裝包,在 iPhone 1.x 時代尚未有官方應用程式出現時,曾為當時的主流安裝格式,目前主要被 deb 格式取代,不過少部分的非官方程式安裝與管理工具如大陸的 91 手機助手軟體還有在使用。

    deb
    格式是則是 Debian系統(包含 Debian Ubuntu )的專屬安裝包格式,配合 APT 軟件管理系統,成為了當前在 Linux 下非常流行的一種安裝包(類似的還有 PRM 格式)。iPhone 則在 1.0 進入 2.x 時代之後由 Cydia作者 Jay Freemansaurik)移植到 iPhone 平台上,目前為與 Cydia平台為 iPhone JB 後主流的安裝包格式與管理系統

    環境需求與準備

    我們要自製 DEB 與架設伺服器需要的軟硬體設備,首先最重要的當然是已經越獄 (JailBreak) 完成的 iOS裝置一台(嚴格來說沒有也可以... 不過要怎麼測試.... ),還有一台工作用的電腦,電腦的作業系統則建議以 Debian或是 Ubuntu 為主,但其實考量實際的使用情況,任何的系統都可以,建議就利用 VirtualBox (免費) 安裝 Ubuntu (不用錢) 是最好的選擇,VirtualBox Ubuntu 的安裝細節我們這邊就不做描述;伺服器的部份其實彈性就很大,基本上只要有足夠的空間與頻寬,可以自行上傳檔案即可,自己架設 Web Server 或是租用主機,甚至是免費網頁空間大致上都可以,PHPASP、資料庫等等進階功能基本上都非必須。


    虛擬機器與Ubuntu 可以從下面連結取得,安裝說明這邊就不再多做敘述。

    VirtualBox
    官方網站 http://www.virtualbox.org/
    Ubuntu
    正體文站 http://www.ubuntu-tw.org/

    其他的作業系統?其實最主要就是 DPKG這個指令是否可以使用的問題,這邊列出各個作業系統對於 DPKG指令支援的情況
    • IPHONE OSJB):不要笑,這是真的!其實嚴格來說打包 DEB 最好的就是 IPHONE,畢竟就是要打包給自己用的啊!但是主要是 IPHONE 效能有限,操作起來其實有點太拼了因此不太建議就是了指令支援了一半,主要的 DPKG-DEB 打包指令有支援,不過並沒有 DPKG-SCANPACKAGES支援
    • DEBIAN/UBUNTU:當然是首選,本篇也建議用 UBUNTU 來進行操
    • FEDORA/CENTOS: DPKG相關命令
    • MAC OS X:無任何 DPKG相關命令,但可以透過安裝 FINK  這個軟體來取得 DPKG指令,安裝 FINK 之後和 DEBIAN/UBUNTU 的差別就不大了官方下載網址
      http://www.finkproject.org/download/
    • WINDOWS:無 DPKG相關命令,不過阿輝查資料可以透過 CYGWIN 來實現,不過恕阿輝愚昧,嘗試的過程簡直是失敗中的失敗...


    打包第一個 DEB 檔案

    首先先下載範例 DEB http://goo.gl/9tx3P

    ,這是 SBSetting 3.3.1 的安裝 DEB 檔這裡我們作為範例。

    解壓縮 DEB 檔案:然後切換到剛剛下載 SBSetting 3.3.1 下載回來存放的位置

    1. dpkg -x ./SBSettings_331.deb ./temp

    2. dpkg -e ./SBSettings_331.deb ./temp/DEBIAN
    複製代碼

    這兩段程式, -x 為解壓縮 DEB 安裝包的檔案, -e 為解壓縮 DEB 檔案中的控制檔(資訊檔案)
    -x - e 參數做 DEB 解壓縮時,原始文件的屬性/權限/用戶/群組等訊息都會保留著。

    解壓縮來的檔案結構會如下圖:



    UBUNTU 介面不一樣?
    目前最新版 UBUNTU 有提供兩種介面,會因為電腦硬體的規格與效能選擇不同的介面使用,因此可能執行程式的方式也會有些許的不同,本文都統一使用傳統模式(其實幾乎都用終端機,差別也實在沒啥差別)。

    接著我們試來將剛剛解開的檔案再打包回去

    在終端機輸入:
    1. dpkg -b ./temp SBSettings_new.deb
    複製代碼


    會有一些警告訊息,不過我們不用管他,這樣就會出現一個我們新建立的 SBSetting_new.deb安裝包


    檔案反而比原來的大?這是因為壓縮格式的關係。

    這時候和剛剛原來的 SBSetting_331.deb 一比較會發現很奇怪的現象吧,我們新打包的檔案竟然比較大?!其實這是因為壓縮的問題,DEB 打包時預設的壓縮方式是 gz格式壓縮,壓縮率有限,如果要獲得更高的壓縮率,可以使用 bzip2 或是 lzma格式,一般情況下預設的 gz格式壓縮率最低,bzip2 格式居中,lzma 的則是壓縮率則是最高,但是要注意的是壓縮率越高的情況,安裝解壓縮的時候速度會越慢,在較低階的 iOS上出錯的機率也會較高,這點是使用壓縮格式時需要注意的地方。一般會建議如果檔案多的情況下可以嘗試壓縮看看節省空間與加快網路下載速度,但是如果內容主要是高壓縮率的 jpeg 圖片、音樂鈴聲、影片等檔案,由於本身就已經是壓縮格式,再壓縮的空間就很少,此情況反而建議就用低壓縮率的格式來換取解壓縮處理速度較好。

    選擇打包使用 bzip2 壓縮

    1. dpkg-deb -bZ bzip2 要打包的目錄輸出檔名
    複製代碼


    選擇打包使用 lzma壓縮

    1. dpkg-deb -bZ lzma要打包的目錄輸出檔名
    複製代碼


    如何使用 Deb 安裝軟件

    完成了 DEB 安裝包之後接著就是安裝了,在架設並掛上 Cydia Server 之前,DEB 軟體包其實也可以透過手動安裝的方式進行。
    然後從 iPhone 或是 PC 端連線進入 iPhone Terminal,找到上傳 DEB 安裝包的目錄,使用 dpkg命令


    (1) 取得 root 權限

    1. ~ [        DISCUZ_CODE_165        ]nbsp;supassword:  #這裡輸入 root 密碼,預設是 alpine
    複製代碼

    (2) 安裝 DEB 安裝包的指令

    1. root# cd /tmp       #切換到上傳 DEB 安裝包的目錄
    2. root# dpkg -i  SBSetting_new.deb             #安裝 DEN 安裝包
    3. root# reboot    # 重新啟動
    複製代碼

    同理如果要一次安裝很多很多個安裝包,就打萬用字元

    1. dpkg -i *.deb
    複製代碼

    (3) 移除 DEB 安裝包

    1. root# dpkg -r  SBSetting_new           #刪除已安裝的deb包
    複製代碼


    (4) 自動安裝法
    其實還有不用打指令的方式,就是利用 Cydia的自動安裝功能來進行

    1、複製 DEB 文件到 /var/root/Media/Cydia/AutoInstall(如果沒有這個文件夾,請自行建立,但是要注意大小寫
    2、重新啟動,有時候因為權限的緣故,可能要重複幾次才會完成。



    詳細建立自己個人軟體包

    前面打包其實很空虛,僅是解開 -> 打包的愚蠢行為(其實是為了熟悉指令流程~),現在真的依照實際的情況打包一個屬於自己的軟體包。
    首先打開我們前面範例的 SBSetting的目錄 ./temp



    看一下解開的檔案結構,除了 DEBIAN 這個存放控制檔的資料夾之外,我想其他應該大家看了會有很熟悉的感覺,其實就是對應 iPhone 中的目錄結構,也就是到時候安裝的時候,整個這裡的路徑都會安裝到 iPhone 對應的資料夾中,所以例如我們要新增一個SBsetting的主題(待會的範例),就是新增一個 /var/mobile/Library/SBSettings/Themes/主題名稱這樣的資料夾結構與放置檔案,然後編寫控制檔之後打包即可。

    進入 DEBIAN 目錄,可以看到有一個沒有副檔名的 control 文件,這個文件就是用來記錄 DEB 相關安裝資訊的控制檔。除了此檔案之外還可以看到  postinst檔案,有時還會有 preinstprermpostrmextrainst_這些文件,這類文件是 DEB 安裝時的執行腳本(類似於 Windows 下的批次檔)

    以下說明 control 控制檔的內容,注意我們在編輯時一定要注意必須是UTF-8Unix編碼,Unix/Linux換行字元(LF),不符合規範的化可能會會導致Cydia無法打開,文件的最後末端需要有一個空行;以 SBSetting control 控制檔為例:

    Package: sbsettings
    Version: 3.3.1
    Architecture: iphoneos-arm
    Name: SBSettings
    Author: BigBoss <bigboss@thebigboss.org>
    Maintainer: BigBoss
    <bigboss@thebigboss.org>
    Sponsor: thebigboss.org <http://thebigboss.org>
    Installed-Size: 1953
    Section: System
    Depends: libhide (>= 2.0.6-4), mobilesubstrate, sbsettingstoggles (>= 3.0.5), shell-cmds, firmware (<< 4.0) | libactivator (>= 1.3.2)
    Description: Move common toggles directly into springboard where they're always there!
    Depiction: http://moreinfo.thebigboss.org/m ... le=SBSettingsDpData
    Homepage: http://moreinfo.thebigboss.org/m ... le=SBSettingsDpData
    dev: bigboss
    conflicts: com.ripdev.hood, hk.org.iphone.respring, net.ispazio.SwapMode
    replaces: com.ripdev.hood, hk.org.iphone.respring


    以下依照順序說明,並與 Cydia中顯示的項目一同註名:

    (1) 必填資訊

    n Package
    cydia中顯示於 ID (標識):套件 ID可以說類似於身份證,一個軟體包必須要有一個唯一的標識 ID,也是因此常見的會寫成 com.xxxxx.xxx這種形式 (SBSetting應該是名氣夠大,所以只有寫 SBSetting…..)ID Cydia辨識套件的方法,若取不同的 ID ,即使 Name一樣,Cydia
    也會當成不同的套件。

    n version
    套件的版本,不能用下底線和逗號和空格。格式有(以逗號分隔) 1.01.0f0-11:1.0,這幾種呈現方式,其中比較特別的是冒號這個版本,用處是假設在同樣的版本需要更新的情況,例如 1:1.0 這樣的寫法在 Cydia中會顯示版本 1.0 ,但是實際上版本會高於 1.0,因此在同版本的情況下,也會進行更新。

    n Architecture
    用於判斷程式運行的架構,用於識別運行的系統,iPhone 上為 iphoneos-arm,目前只有這個選項所以沒必要改
    以上三項為必填,一定要填寫,否則 DEB 打包會失敗。

    (2) 選擇性資訊

    n Name
    實際上套件的名字定義,中英文不限,也可以用空格,但不建議太常(顯示不完全的問題)

    n Author:
    軟體包作者

    n Maintainer:
    維護者,一般是軟件源網站的管理員或是維護者。

    n Sponsor:
    贊助者

    AuthorMaintainerSponsor 這三個欄位使用的格式都相同,均為名稱+空格+<電子郵件地址或網址]] > ,這邊要注意的是經測試,如果名稱使用中文的話,即使後面有寫郵件地址或是網址,在 Cydia中點選時也不會跳轉,因此如果有要設定連結的話,還是建議使用英文為主。

    以下三種範例都是可以的:

    chehui <chehui@palmislife.com>
    palmislife <http://f.pil.tw>
    廖阿輝

    n Installed-Size:
    Cydia也稱為展開大小,是軟體包安裝之後會佔用的空間大小,單位 kb (不需要註明,填寫數字就好),其實不需要非常精準(cydia 中也不會顯示小數位)。

    n Section:
    軟體分類,中英文無限制(一樣請注意要 UTF8 編碼),顯示的順序為 特殊符號 -> 英文->中文。

    n Icon:
    指定軟體包的圖示,如果沒有設定時,Cydia 則會改顯示該分類的圖示;另外在軟體包的內部頁面,都是顯示分類圖示,是不會顯示自定圖示的,這是正常的情形。圖示的設定可以使用網路圖示與本地圖示:

    網路圖示:
    例如  http://www.abc.com/abc.png

    本地圖示:
    格式為 file://+路徑,如 file:///Applications/Cydia.app/Sources/app.pil.com.png,注意因為需要本地圖示存在的情況,所以可以依照需要建立一個軟體源圖示包,後續就可以這樣引用。

    n Description:
    軟體包描述說明,在 control 中注意不能換行,換行的效果要用 <br> 代碼。

    n Depiction:
    軟體包描述說明『頁面』,與軟體包描述接近,只試試改為連結到一個網頁,當有指定了 Depiction 時,Description 就不會顯示;也可以使用本地格式,寫法的格式與 ICON 相同。

    n Homepage:
    連結到頁面,Cydia 中顯示在 More Information 連結處,和 Depiction 最大的差異可以說是不會自動載入。


    軟體包的描述可以彈性使用,並配合HTML 等語法來美化,不過也要考量到載入速度的問題。

    (3) 軟體相依性設定

    n Depends:
    設定軟體包所必要的軟體包名稱 (以 ID 設定)。

    n Pre-Depends:
    Depends 相同為設定必須,但是會強制在安裝軟體包之全完整地安裝完成指定的軟體包(Depends 為同時進行安裝)。

    n Conflicts:
    衝突軟體包,有安裝指定於此的軟體包,則無法繼續完成安裝;通常用於相同性質會造成問題的軟體包。

    n Provides:
    此項比較少用到,是指提供了包含在其中的軟體包,立入 A provides B,因此可以在安裝了 A 的前提下不安裝 B

    n Replaces:
    替換軟體包,安裝 A 會替換 B

    以上 5 項設定的,直接填軟體包 Package 標識 (ID) 即可,如果需要加入版本規則,格式則為 軟體包  ID+空格+(判斷符號 + 版本)

    比如 SBSetting中的 Depends: shell-cmds, firmware (<< 4.0) ,這表示依賴於 shell-cmds 不限版本,iOS
    系統版本大於 4.0

    判斷符號:遠低於 (<<;)、低於 (<;)、低於或等於(<=)、等於(=)、等於或高於 (>=)、大於(>;) 以及遠高於(>>;)

    可以同時設定多個軟體包條件,使用半型逗號分隔,例如 SBSetting Depends:  libhide (>= 2.0.6-4), mobilesubstrate, sbsettingstoggles (>= 3.0.5), shell-cmds, firmware (<< 4.0) | libactivator (>= 1.3.2) 這樣就是包含了五組條件。

    SBSetting依賴設定最後的第五組,用到了比較複雜的「或」關係,使用方式是用 | 分隔。比如軟體包的依賴要求是 A B,可寫 Depends: A | B 但「或」關係要慎用。原因是,一般的依賴設定當條件 A 不存在時,Cydia 在安裝時就會自動下載該條件 A。但是如果是設定或的關係,假設依賴設定 A B 並且都未安裝,那麼在安裝軟體包時就會就會失敗,因為系統無法判斷是應該下載 A 還是 B

    firmware 的設定則不是指軟體包,而是指 iOS的系統(軔體)版本,當然這簡單來說就是機器的版本需求。

    寫了這麼多 control 控制檔說明終於真的要打包了..... ()

    先下載個示範吧...

    iPhone OS Theme HD_v3.zip
    http://goo.gl/jkJqi

    這是阿輝以前針對 SBSetting製作的 HD 高解析度主題,原先手動的安裝方式是需要使用 SSH 或是 iFunBox之類的工具將解壓縮後的整個文件夾複製到 iphone路徑 /var/mobile/Library/SBSettings/Themes 裡面,現在我們就來製作成 DEB 安裝包試試看


    其實從 Cydia中可以偷看到軟體包中所包含的檔案清單,這很好用可以作為各種用途的參考,只要點選軟體包詳情後,從『檔案系統』這個項目進入就可以查看每個軟體包實際的包含檔案。

    (1) 首先下載並建立一個新的工作資料夾取名為 temp2,並建立一個資料夾結構為 /var/mobile/Library/SBSettings/Themes
    (2) 將下載回來的 iPhone OS Theme HD_v3.zip 維持相同的目錄結構,解壓縮並複製到 temp2 下的 /var/mobile/Library/SBSettings/Themes/iPhone OS Theme HD/
    (3) 然後將剛剛 SBSetting DEBIAN 資料夾整個拷貝到 temp2
    (4) 移除 temp2/DEBIAN 下的 postinst檔案(這裡我們不會用到)
    (5) 以文件編輯器開啟修改 temp2/DEBIAN 下的 control 控制檔如下

    Package: com.ahuiiPhoneOSThemeHD.sbsettingThemes
    Version: 1.0.3
    Architecture: iphoneos-arm
    Name: iPhone OS Theme HD
    Author: chehui <chehui@palmislife.com>
    Maintainer: palmislife <http://www.palmislife.com>
    Installed-Size: 996
    Section: Themes (SBSettings)
    Depends: sbsettings
    Description: 這是阿輝之前最喜歡的 SBsettings主題,簡潔有型不過作者後續應該是都沒更新了,因此並沒有支援Retina 高解析度,並且也少了蠻多常用插件的圖示。因此阿輝自己修改了,基本上就是以原作者的為基礎,並加上新的插件圖示,並儘量維持同樣風格
    Homepage: http://f.pil.tw

    完成後的檔案結構如圖


    (6) 最後就是打包收工啦

    1. dpkg -b ./temp2 iPhone_OS_Theme_HD302.deb
    複製代碼

    這將就會產生出我們所要的 DEB 安裝包了。

    這個章節的範例程式下載  iPhone_OS_Theme_HD302.deb  http://goo.gl/2GWNE


    製作快速軟體源合輯 DEB 安裝包

    例如 iAccesMobileNotifierbiteSMS beta 等等會有一些非 Cydia內建的軟體源,往往重灌 iPhone 之後都要一個一個重新安裝其實也是一個麻煩的事情,其實有簡單的方法我們可以自行製作 "軟體源" 合輯的安裝檔,方便快速安裝一堆的軟體源。
    而對於軟體源合輯的建立方式,我們可以完全手動與自動的方式來製作。
    先來看一下軟體源在 Cydia中的儲存方式,分為以軟體包安裝方式安裝與使用者自行加入的兩種方式,軟體源存放的位置在  /etc/apt/sources.list.d/ 路徑下:

    (1) 軟體包方式安裝的軟件源,是以獨立的 .list 檔案存放。

    (2) 使用者自行輸入添加的軟體源,則全部集中集合在 cydia.list中。
    若今天我們要建立自己的軟體源或是軟體源合輯該怎麼做呢?就是以軟體包的形式,在 /etc/apt/sources.list.d/ 放入一個或多個我們所要建立的軟體源,在進行打包為軟體包即可。
    .list 檔案的格式(檔名任意):

    # do not edit this file to add your own custom sources
    # this file is subject to be upgraded as part of a package
    # either add your own .list file to /etc/apt/sources.list.d
    # or add your entry to the global /etc/apt/sources.list file
    deb 軟體源網址
    項目名稱
    類型

    實際上軟體源存取的路徑就是『軟體源網址\項目名稱\』這樣,不過其實項目名稱的使用就看個人的設定,這邊阿輝直接舉例:

    例如 PIL 的軟體源為 http://cydia.pil.tw/repo

    就檔案存為 pil.list放於 /etc/apt/sources.list.d/ 路徑下,檔案內容直接打

    # PIL 軟體源範例
    deb http://cydia.pil.tw/repo ./

    其中 # 標記後面的全部都是註解可以忽略,作為備註與說明使用;http://cydia.pil.tw/repo pil的軟體源位址,項目名稱直接打 ./ 指定在相同目錄即可,類型這邊則直接忽略不打即可

    接著再一個一個建立所有要放入的軟體源即可。



    製作快速軟體合輯 DEB 安裝包

    如果是有一堆軟體包要安裝呢?有沒有建立軟體包合輯的方法?一個一個拆 DEB 然後打包所有的內容?拜託這也太扯了怎麼可能。其實如果有仔細看前面章節說明 control 控制檔寫法說明的地方的話,我想應該大家都想到一個方法了吧!對!就是利用相依性,雖然前面提到相依性的設定真的很麻煩,但是相對的也可以利用軟體包相依性會自動安裝的特性,來建立一個表面上『空白內容』的 DEB 軟體包,然後利用其相依性的特點來一次安裝所有要安裝的軟體。

    首先當然要先查出我們要自動安裝的軟體包識別 ID打開 Cydia軟體項目並直接看其 ID (標識) 然後先記下來,以這邊為例子,我們選兩個 Pull 更新修改工具作為合輯:

    Pull to Refresh Safari (用手指下拉方式重新整理瀏覽器) com.blackfacility.pulltorefreshsafari
    Pull to Refresh for Mail (用手指下拉方式重新整理郵件) com.blackfacility.pulltorefreshmail

    所以我們建立一的新工作目錄 temp4,不需要額外建立檔案(只是用來引導安裝的空包彈),然後一樣拷貝範例的 DEBIAN/control 控制檔

    編輯控制檔內容如下
    Name: Pull to Refresh Tools
    Package: com.ahuipulltools.apppack
    Version: 1.0.0
    Architecture: iphoneos-arm
    Name: Pull to Refresh Tools 合輯
    Author: chehui <chehui@palmislife.com>
    Maintainer: palmislife <http://www.palmislife.com>
    Installed-Size: 1
    Section: Tweaks
    Depends: com.blackfacility.pulltorefreshmail,com.blackfacility.pulltorefreshsafari
    Description: 包含了 Mail Safari 的拖放更新工具
    Homepage: http://f.pil.tw

    打包

    1. dpkg -b ./temp4 PullTool.deb
    複製代碼


    完成後的效果,安裝一套,就直接附加安裝兩套,軟體包合輯成功!

    這個章節的範例程式下載 PullTool.debhttp://goo.gl/tWD0K



    建立 Cydia源伺服器

    說真的在複雜的 DEB 打包與 control 血與淚的控制檔編輯之後,Server
    的建立真的簡單多了;我們只要使用
    dpkg-scanpackages
    這個指令就可以掃描我們製作好的 DEB 檔並建立 Server 所需要的相關訊息檔案

    1. dpkg-scanpackages ./ > Packages
    複製代碼

    這是建立一個新的 Packages 檔案的方式,如果原本就已經有 Packages 並且只是要新增新的 DEB
    資訊,可以改用

    1. dpkg-scanpackages ./ >> Packages
    複製代碼

    這樣的指令,由 > 改為 >> 即為將資訊新增在檔案末端。
    成功的話就會出現以下訊息:

    1. dpkg-scanpackages: info: Wrote 2 entries to output Packages file.
    複製代碼

    其中 2 entries to xxxxx就是指成功掃描並新增到兩個 DEB 安裝包中。

    此時我們使用文字編輯器打開 Packages,內容應該很眼熟吧!是的就是我們剛剛編輯的 control 控制檔的集合啊~不過因為還有許多 DEB 檔的相關資訊,因此可以說 dpkg-scanpackages
    就是用來快速幫我們建立資訊檔的工具。

    這裡範例我們只有兩個DEB,但是實際上隨著時間的累積,許多的軟體源上掛了幾百個DEB檔案也都是很常見的事情,因此 Packages 檔案也會大的很可怕,因此我們產生 Packages 檔案完成之後壓縮它:

    1. bzip2 Packages
    複製代碼
    DPKG-SCANPACKAGES有問題
    之前的 DPKG-SCANPACKAGES製作的 PACKAGES 會有缺少 CYDIA資訊的問題,目前阿輝使用的 UBUNTU 內建的最新版 DPKG-SCANPACKAGES已經沒有問題,如果是舊版系統有修正需要的話請參考
    其實到這時候就已經完成可以上傳了,不過要完整點當然還是要把源資訊設定充足才是,開啟文件編輯器,新增一的檔名為 Release 的文字,內容為:
    Origin: PALMisLIFE軟體源 for Cydia
    Label: PIL 軟體源
    Suite: stable
    Version: 1.0
    Codename: pil
    Support: http://f.pil.tw
    Architectures: iphoneos-arm
    Components: main
    Description: PALMisLIFE軟體源,精采你的 iPhone、分享你的生活。<br><br> 與我們聯絡:<strong>chehui@palmislife.com</strong
    MD5Sum:
    cedbc97983b9cce60fae111ab396ad7c  1021 Packages.bz2
    2baa6d40eecabdaf7226074a02229278  574612 iPhone_OS_Theme_HD302.deb
    1bb557c27aba5fbee68a43e31594f6e2  734 PullTool.deb

    必填的項目

    Origin:
    軟體源名稱,可以使用中文(Cydia的軟體源列表中顯示的標題)
    Label:  
    同上,也可以使用中文,顯示於軟體列表中
    Suite:
    軟體源類型,標記例如正式 / 測試,可以分別用stable, beta, unstable來表示,一般填stable就可以了
    Version:
    版本號碼,一般都是寫1.0
    Codename:
    代碼代號,只能用英文,隨便填就好
    Architectures:
    iPhone平台統一寫iphoneos-arm
    Components:
    main
    Description:
    軟體源說明,可以使用中文與部分html代碼,會顯示在顯示在Cydia中每個軟體頁面最下方。不能直接換行,換行效果可以使用 <br> 代碼,顏色與粗體 HTML 語法可以使用,超連結語法則則無效。


    選擇性項目
    Support:
    支援,其實沒啥用處,可以不用寫
    MD5Sum:
    不是必須的,但如果Packages文件位置不與Release文件在同一目錄下,則必須有此項;比較特別是設定需在MD5S’um: 標籤的下一行開始,一個檔案一行,每行開頭必須要有一個空白字元。

    MD5Sum每行的格式:

    空格+文件MD5+空格+文件大小 (以字元為單位)+文件路徑,如果檔案和Release 放在同一個目錄(例如本範例),則文件路徑 檔案名稱。

    MD5與文件大小如何查?
    LLINUX下都可以使用『MD5SUM 檔案名』這樣的指令查詢 MD5 值,文件大小則只要簡單用 LS –L 指令列出後,就會有著名字元大小。

    準備好之後,連同我們製作的兩個範例DEB Packages.bz2Release,然後把所有檔案上傳到網站伺服上即可。



    上傳完成,這樣Cyida Server 就可以開張啦~

    :如何讓源伺服器不讓路人隨便逛?
    為了避免瀏覽器直接瀏覽 CYDIA SERVER 的內容,方法有很多例如改伺服器設定等等,但其實最簡單方法就是建立一個空白的 INDEX.HTML 放到伺服器的路徑下即可。


    已有 10 人評分分享 互動 收起 理由
    Iceliao + 1 + 1 強中自有強中手阿!
    小螞蟻 + 10 強者!
    AlexPro + 10 太詳細了
    ychao + 10 + 1 這就是被阿婆下架的怨念嗎? XD.
    ShotLiang + 10 + 1 太強了
    PALMAOI + 10 + 1 要準備賺奶粉錢了嗎:D
    albatross + 10 + 1 出書 +1
    Wood + 1 了不起!!!

    總評分: 分享 + 91  互動 + 8   查看全部評分

    分享淘帖0 分享分享0 收藏收藏2 頂2 踩0
    阿輝攝影記錄服務 | 婚禮記錄 | 活動拍攝
    http://www.giorno.tw/
    您需要登錄後才可以回帖 登錄 | 免費註冊

    與站長聯繫| PALMisLIFE 掌上生活      下載:更快、更棒、更好玩

    GMT+8, 2024-11-27 08:36 , Processed in 0.096431 second(s), 31 queries , Gzip On.

    Powered by Discuz!

    © 2001-2012 Comsenz Inc. style by eisdl

    回頂部