iPhone野良レポジトリの作り方

coderepos で野良レポジトリホストしたらいいんじゃね、っと思ったのでちょっとやり方をメモ。

iPhone の野良レポジトリは Debian の apt ベースになってるので、開発者が作った .deb ファイルをホストする感じになるのかな。なのでとりあえずここでは .deb の作り方は省く。

ホストの仕方は簡単で、.deb を同じディレクトリにつっこんでおいて、そのディレクトリ内で Debian の dpkg-dev パッケージをインストールすると入る dpkg-scanpackages コマンドを使って

dpkg-scanpackages -m . > Packages

とやるとそのディレクトリの .deb をなめてパッケージ一覧を作ってくれる。これを bzip2 して Packages.bz2 にすれば最低限のレポジトリが完成する。簡単ですね!

ただ、iPhone野良アプリの.debには独自のメタデータがあるので、 dpkg-scanpackages にそれを理解させるためにちょっと変更する必要はある。

--- /usr/bin/dpkg-scanpackages  2008-12-29 13:46:45.000000000 +0900
+++ dpkg-scanpackages   2008-12-10 14:12:55.000000000 +0900
@@ -25,7 +25,9 @@

 my @fieldpri = (qw(Package Package-Type Source Version Kernel-Version
                    Architecture Subarchitecture Essential Origin Bugs
-                   Maintainer Installed-Size Installer-Menu-Item),
+                   Maintainer Installed-Size Installer-Menu-Item
+                  Name Author Homepage Icon
+               ),
                 @pkg_dep_fields, qw(Filename Size MD5sum Section Priority
                    Homepage Description Tag));

僕の環境(Debian Lenny)ではこんな感じ。

この dpkg-scanpackages でつくった Packages.bz2 があるだけで一応レポジトリとしては機能するけど、どうせなのでレポジトリのメタデータなどを置きたいかと思います。

それは同じところに Release というファイル名で

Origin: Saurik's Example for Cydia
Label: Cydia Example
Suite: stable
Version: 0.9
Codename: tangelo
Architectures: iphoneos-arm
Components: main
Description: An Example Repository from HowTo Instructions

こういうのを置いておけばOKです。各項目の説明は saurik 先生のエントリの Step 4: Repository Metadata (Optional) というところを見るといいと思います。

しかし coderepos は debian ベースではなかった気がするから、どういう場合はどうやるんでしょうね。。

by typester / at 2009-02-03T13:38:00 / iphone / Comment