站務版主討論區有高手會自建Cydia 的Sources軟體源嗎??

瀏覽: 3087
回覆: 2
共1頁
Mem536458
發文數:1802
發表時間:2011-05-22 23:10:00
小弟是iphone討論區版主最困擾我很久的問題無法解決~才來這邊發文請求幫助!

用愛鳳都知道JB後利用CYDIA加入軟體源方式來裝軟體~

小弟想架設一個CYDIA軟體源~專屬手機王IPHONE討論區軟體源~來服務我版上的會員方便下載安裝~增加版上會員以及瀏覽律...我想我這提議站方應該不會有意見!目前CYDIA裡面軟體源都是外國居多..為一有中文是對岸的軟體源都是簡體的~台灣用iphone的人越來越多了~我希望給在手機王這邊會員一個完全繁體中文介面的軟體源~如我的軟體源有成功..就會成為目前為一繁體中文台灣區軟體源~手機王也會提高知名度!

所以不知道手機王內有沒有站務,管理員或是網站架設高手~可以教學幫忙小弟~小弟爬文爬到眼睛快脫窗了~只有找到友站一篇文章但是友看沒有董~

花錢是小找高手來架設都沒問題..重點是有錢不知道找誰花找不到會的人..0.0...好苦悶! ((快憂鬱症了我))

以下是相關資料~誰看得懂可以幫忙!

---分隔線---

架 source 需要以下技術和環境:
• 對 linux 和 jb (逃獄)有基本了解
• 一台 mac 或是裝有 linux 系統的電腦( windows 下我沒研究過...)
• 一支已 jb 的 iPhone/iPod/iPad
• 用 Cydia 或 Rock 裝套件皆可
• 可以放網頁的網路空間
因為門檻有點高,沒有自信能掌握一切的人請不要輕易嘗試
更不要寄信跟我求救
我可能也不會解決=.="
此外以下所有工作都要在 terminal 上完成
(除了把東西丟到網路空間時除外 XD)
最後,用 mac 的人需要先安裝 fink 來處理 deb 檔:
http://www.finkproject.org/download/srcdist.php
(連結裡有檔案下載和安裝方式,基本上安裝時都選 default 值就行了)
而且在進行以下工作前
請先執行

代碼:
. /sw/bin/init.sh來開啟 fink 環境
也才能用 dpkg 相關指令!
ps. 用 linux 的話通常各個 distribution 應該都有內建,因此不必擔心

整個過程分為兩大部分
第一是製作自己的套件
因為有人喜歡 jb 後只裝幾個特定 App
有人則喜歡裝一大堆
我們不可能把所有想裝的 App 的 deb 都抓下來
包在自己的套件裡
一來工程浩大,二來不確定是否會有相衝問題
(有興趣的人倒是可以自行試試看XD)
那我們該怎麼做呢?
答案是把想裝的 App 都列在套件的 dependency 裡
(要解釋 dependency 得要花一些篇幅
所以才有我前面所說的第一條要求...)
如此一來當安裝自己的套件時
就會把所有想裝的 App 都裝進去
而事實上我們的套件裡也只有這個 dependecy 的資訊
並不會裝任何其他東西
可以說是一種很乾淨的安裝方法

那麼應該要怎麼寫 dependency 呢?
首先建立以下資料夾路徑

代碼:
~/TEMP/DEBIAN注意"TEMP"是我們的工作資料夾
這只是一個方便作業的路徑
所以依個人喜好可以隨便亂取名字
但"DEBIAN"這資料夾則一定要有
且注意一定要大寫!

建立好路徑之後
用 vim (或任何文字編輯器)
在該路徑裡寫一個叫 control 的檔案:

代碼:
vim ~/TEMP/DEBIAN/control這個 control 檔將會是我們自製套件裡頭唯一的檔案
前面所說的 dependency 就會列在其中
為了快速進入狀況
以下列出 backgrounder 的 control 檔給大家參考:

代碼:
Package: backgrounder
Name: Backgrounder
Version: svn.r447-1
Architecture: iphoneos-arm
Description: Enable and manage backgrounding
Homepage: http://iphone-backgrounder.googlecode.com/
Depiction: http://moreinfo.thebigboss.org/moreinfo/depiction.php?file=backgrounder3Data
Maintainer: BigBoss <bigboss*thebigboss.org>
Author: Lance Fetters (ashikase) <gaizin*gmail.com>
Section: System
Depends: firmware (>= 3.0), firmware (<< 4.0), mobilesubstrate, libactivator (>= 1.3.1)
dev: ashikase
Sponsor: thebigboss.org <http://thebigboss.org>
Installed-Size: 356以下將依序解釋各項含意
不過值得一提的是
如果套件只是要給自己用
幾乎所有東西都可以亂寫 XD
1. package:這是套件 id,大家如果上 cydia/rock 看每個 App 都會有,常見的會寫成 com.xxxxx.xxx 這種形式,這是 cydia 認識套件的方法,若取不同 id ,即使 Name 一樣,cydia也會當成不同的套件,所以要注意!
2. Name:這才是實際上套件的名字
3. version:套件的版本
4. Architecture:這是判別此套件是否適用於特定 iPhone OS 的方法(但我不太確定),給 OS 3.0 以上寫 iphoneos-arm 就可以了(arm 其實就是 iPhone 的處理器名稱,是不是很眼熟啊?XD)
5. Description:對套件的描述,到時也會出現在 cydia 裡
6. Homepage:套件的官方網站
7. Depiction:如果沒有在 control 檔裡頭寫詳細的套件資訊的話,cydia 會到這個項目所列出的網址抓資料
8. Maintainer:維持套件的人,"<>"裡頭寫 email
9. Auther:就是套件作者
10. Section:此套件在 cydia 軟體集裡頭的分類,像 backgrounder 跟系統有關所以寫 system
11. dev:(其實我不清楚是什麼=.="總之可以不寫)
12. Sponsor:贊助者,很多 cydia 上的 App 都是 BigBoss 贊助
13. Installed-Size:套件安裝後的大小,也可以不寫

如果各位有仔細看完以上描述
一定會覺得奇怪,為什麼漏掉了 Depends 沒介紹
因為這是整個過程中最重要的部份
也就是開頭所說的 dependency 要寫的地方
大家可以看到這裡列的都是套件 id
(也就是 package 這個項目所寫的)
此外還能夠指定要安裝套件的版本
像 backgrounder 這個例子
就需要安裝在 OS 3.x 上
還需要 1.3.1 版以上的 activator
所以安裝 backgrounder 前
cydia 會先確定 OS 版本
然後裝 mobilesubstrate 和 activator
這樣大家應該就知道要怎麼寫 dependency 了:
找出想安裝的套件 id
然後通通列在 Depends 裡
並以逗號分開
若有版本需求則另外寫在括號裡

可能有人會問
像 backgrounder 需要先裝 mobilesubstrate 和 activator
那也要把這兩個列在自己的 dependency 嗎?
答案當然是不用
(否則就沒完沒了了,dependency 列到手軟 XD)
因為裝自己列的 App 前
cydia 就會分別去檢查各個 App 的 depedency 了
所以其實我們在 Depends 這邊要打的東西並沒有很多
夠懶人了吧? XD
(這其實也是為什麼 saurik 要用 Debian-APT 建立 cydia 的原因之一
因為 APT 有 dependency 這個超方便的管理套件方法 )

control 檔寫完之後
事實上工作已經完成一半了 XD
接下來第二階段我們只需打包成 deb 檔
並生出 cydia 看的懂的 repository (也就是source)資訊
( mac 使用者注意在打包前還要先執行以下指令

代碼:
export COPYFILE_DISABLE
export COPY_EXTENDED_ATTRIBUTES_DISABLE這是因為 Mac OS 在製作 tar 或 zip 等壓縮檔時
都會自動在檔案裡放入一堆 ._* 的檔案
據 saurik 的說法會和許多套件相衝
因此我們要把這個功能關掉)
打包指令是

代碼:
dpkg -b ~/TEMP 套件名稱.deb注意套件名稱要是英文或數字
待會還會用到
到此為止我們就完成自己的套件了!

此外我們要生出一個叫 Package.bz2 的檔案
包含了自己的 source 裡面所有的套件資訊
cydia 每次連到我們的網路空間
就會去找這個檔案
才會知道這個 source 底下有哪些東西可以裝
那麼要怎麼生呢?
首先我們需要執行一個叫 dpkg-scanpackages 的 script
但因為這個 script 裡頭少了 cydia 需要的幾行字
我們得先編輯它
mac 使用者若在安裝 fink 的過程中都使用預設值
這個檔案應該會在 /sw/bin/ 裡頭
linux 使用者可能需要用 find 指令找找看
找到之後可用 vim 編輯它
找到 fieldpri 這個子項目後
按其格式加入 'Name', 'Auther', 'Homepage', 'Icon' 等等字串
然後存檔離開
注意改 script 這個動作只要做一次便一勞永逸了
如果不想改它也可以按照底下皮樂的回文來處理

完成 dpkg-scanpackages 的編輯後
在 ~/temp/ (存有 deb 的資料夾)底下執行

代碼:
dpkg-scanpackages . /dev/null > Packages來生出 Packages 這個檔
如果成功的話會出現這個訊息:

代碼:
Wrote 1 entries to output Packages file.ps. 在 saurik 的網站上有提供他自己寫的 dpkg-scanpackages
但執行他的檔案還會需要一個叫 dpkg-gettext.pl 的檔案
不知道為什麼我的 mac 裡頭沒有
大家可以試試看
ps2. 如果該資料夾底下有 n 個 deb 包
那 scan 成功後訊息會跟著改變:...n entries...

Packages 是一個文字檔
裡頭除了存 control 檔裡頭的訊息還寫了其他 cydia 需要的資訊
不過若按照我寫的步驟做到這裡
應該需要修正裡頭 Filename 這一行
它告訴 cydia 我們的 deb 檔放在網路空間的何處
不管它寫了什麼(通常是多一個斜線)
該路徑請改成

代碼:
./套件名稱.deb否則會出錯
(當然熟悉一切的人就可以亂改啦~知道自已在做什麼就好)
完成之後壓縮它:

代碼:
bzip2 Packages我們就生出 Package.bz2 這個檔案了!

最後一步請把 "套件名稱.deb" 和 "Package.bz2" 加入自己網頁空間的根目錄下
(或是 public_html/ 底下,依各網頁空間設定而有所不同 )
再到 cydia 裡頭加入 source
就大功告成啦!
(例如這兩個檔案如果放在 http://abc.com/public_html/ 裡
則 source 要加入 http://abc.com/ )
另外,若有套件需要額外加入 source
請記得一併加入後再開始安裝自己的套件
所有列出的 dependency 資訊會出現在 cydia 按下 install 後的畫面裡
或是 rock 的套件資訊裡
(老實說我比較喜歡 rock 這點…cydia 還得按進去看,好麻煩)

落落長的教學文終於到此結束了
第一次寫教學文覺得好累 XD
希望有任何問題或意見可以提出來告訴我
另外以下兩個是參考網頁
http://iphone4.tw/forums/showthread.php?t=80921 (關於 deb 檔的一些操作 by 皮樂)
http://www.saurik.com/id/7 (詳細版的架 source 教學 by saurik )
應該會有所幫助

最後感謝皮樂的關鍵提示 XD


20100705補充:
事實上整個 source 要完全架好還差一步
就是把 source 的資訊也丟到網路空間
但因為不做這步也不影響安裝自製套件
所以之前並沒有寫這部份的教學
現在我要做的也只是放上一個範例檔
給有興趣的版友們參考研究
不另外多做解釋囉!

以下內容請存成一個叫 Release 的文字檔
與其他檔案一同放在網路空間即可:

代碼:
Origin: LeoFang's own repository for Cydia/Rock
Label: LeoFang's repo
Suite: stable
Version: 1.0
Codename: Idontknow
Architectures: iphoneos-arm
Components: main
Description: This is a private source created and used by LeoFang. It provides a more convenient way to restore and rejailbreak iPhone/iPod touch.

---分隔線---

感謝大家~~~

KeN 於 2016-05-28 16:07:23 修改文章內容


商業贊助
發文數:1
發表時間:2024-05-15 02:56:09
Mem685982
發文數:3243
發表時間:2011-05-22 23:33:00
引用『KeN』所述:
小弟是iphone討論區版主最困擾我很久的問題無法解決~才來這邊發文請求幫助!用愛鳳都知道JB後利用CYDIA加入軟體源方式來裝軟體~小弟想架設一個CYDIA軟體源~專屬手機王IPHONE討論區軟體源~來服務我版上的會員方便下載安裝~增加版上會員以及瀏覽律...我想我這提議站方應該不會有意見!目前CYDIA裡面軟體源都是外國居多..為一有中文是對岸的軟體源都是簡體的~台灣用iphone的人越來越多..........恕刪
我只有Linux的些許經驗
倒是上面的東西都蠻眼熟的XDD
--------------------
有興趣的話可以一起作作看唷

====================
另外,...您的軟體源好像有些東西(還是...大部分東西?)是快樂來的
版務人員這樣作不太好吧.........
文章跟軟體都是作者的創作結晶
應該是哪種侵權方式都會上法院吧= =
pika1021 於 5/23/2011 5:53:04 AM 修改文章內容

V字龍(Vdragon) 於 2011-05-22 23:33:00 修改文章內容


共1頁