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 ベースではなかった気がするから、どういう場合はどうやるんでしょうね。。