簡単!Cydiaリポジトリ作成法 ~基本編~
最近はiOSに限定したリポジトリ作成法を丁寧に解説されてるサイトが増えてきていますので、
そちらと合わせて見るorそちらを見るのをおすすめします。
myrepospace.comを使わない完全オリジナルのリポジトリを作成する方法です。
この機会に自分だけのアプリ、自分だけのリポジトリを作ってみませんか?
※今回は基本編ということで、最低限のファイルしか使っていません。また、私はLinuxについてはど素人ですので抜けている部分もあると思いますし、正しい方法だと断言することもできませんので何かあっても責任はとれません。
以前もリポジトリの作成方法は紹介していましたが、独自の方法で行っていたり、動画を使用していたりして分かりづらかったので、今回はCydia創設者のsaurik氏が公開している方法を参考にし、解説もスクリーンショットを使って丁寧に解説したつもりです。
それでは「続きを読む」からどうぞ。
必要なもの
リポジトリを作成するには、Linux DebianというOSが必要です。公式サイトから無料でダウンロードできます。
VMware Player(無料)や、VirtualBox(無料)など仮想マシンを使えばWindowsやMac上でLinux Debianを動かすことができ、ドラッグアンドドロップでファイルのやりとりもできるので便利です。今回の説明ではVMware Playerを使用しています。
Linux DebianのCDイメージは公式サイト(http://www.debian.org/index.ja.html)の左の「CD ISOイメージ」から好きな方法でダウンロードします。私は「最小のブータブル CD のイメージ」からダウンロードしました。
どのイメージをダウンロードしたら良いか迷いますが、基本的にはi386 、64bitのOSならamd64を選択すると良いようです。
Linux Debianのインストールは、Graphical Installを選択し、あとは言語、キーボード、ユーザー名、パスワードさえしっかりしていれば、他は「続ける」をクリックしていくだけで問題ないと思います。
Linux Debianの設定
ユーザー名を以下のとおりにしてあります。リポジトリを実際に作る場合は自分の設定に置き換えてください。
- ユーザー名:fukajun
debファイルの作成
まずは配布するファイルを作成します。
準備
作成する前にちょっとした準備が必要です。
- まずリポジトリ作成に使うディレクトリを作成します。ディレクトリ名は自分の分かりやすい名前でOKです。 fukajunのホームディレクトリにcydiaディレクトリを作成しました。
- ツールバーの [アプリケーション] > [インターネット] からウェブブラウザを起動し、saurik氏のサイトからdpkg-scanpackagesをダウンロードします。
http://test.saurik.com/macciti/dpkg-scanpackages - [アプリケーション] > [Root Terminal]を起動します。
以下のコマンドを入力してdpkg-scanpackagesを/usr/binにコピーします。cp /home/fukajun/cydia/dpkg-scanpackages /usr/bin
※いくつかの画像で頭にsudoと打っていますが、すでにrootにログインしている状態なのでsudoは打たなくて良いです。
- 以下のコマンドを入力してパーミッションを変更します。
chmod 0777 /usr/bin/dpkg-scanpackages
- さらにdpkg-gettext.plというperlのファイルをダウンロードし、同じくcydiaディレクトリに入れます。
http://www.koders.com/perl/fidD860B9E748CE2455
F3539A17D2563CC28F0A640D.aspx?s=eval#L9※アドレスを入れなくても「dpkg gettext pl」で検索すれば出てきます。
- 以下のコマンドを入力してdpkg-gettext.plを/etc/perlにコピーします。
cp /home/fukajun/cydia/dpkg-gettext.pl /etc/perl
- 以下のコマンドを入力してパーミッションを変更します。
chmod 0777 /etc/perl/dpkg-gettext.pl
以上で完了です。cydiaディレクトリにあるファイルは削除して構いません。
debの元になるファイルの作成
今回はhello.txtを/var/mobile/にインストールするように作成します。
- まずはcydiaディレクトリにtestディレクトリを作成します。実際に作成する際は、何のアプリなのかわかる名前にすると良いでしょう。(赤いラベルにするテーマをdebにするならRedLabelなど)
- testディレクトリの中身は、以下の画像のように iPhoneのディレクトリ階層を再現してフォルダとファイルを配置 します。さらに、DEBIANというディレクトリも作成します。このディレクトリ名は固定。DEBIANの中身は次で説明します。
+- test +- DEBIAN | +- control +- var +- mobile +- hello.txt
- DEBIANディレクトリにはcontrolという、拡張子の無いファイルを作成します。※他にもインストール後に実行するシェルスクリプトを入れたりもしますが、それはまた後日。
- controlの中身は以下のとおりです。これ意外にもたくさんありますがこれも後日。
Package: net.fukajun.test Name: testtext Version: 1.o Architecture: iphoneos-arm Description: test text. Homepage: http://i.fukajun.net Maintainer: fukajun <fukajun@hogehoge.com> Author: fukajun <fukajun@hogehoge.com> Section: Games
controlの中身の説明 Package: パッケージ名 ← 小文字なら何でもOK。他の作者さんのものと被らないように「ドメイン名.パッケージ名」とすると良いと思います。
Name: アプリの名前 ← 日本語も使えるみたい。
Version: 番号 ← 数字とハイフンが使用できるのを今のところ確認しています。アルファベットを入れるとエラーが出る。この数字を上げて再度debファイルをアップロードすればcydiaを更新した際にバージョンアップ項目に表示されます。
Architecture: iphoneos-arm ← 多分これは固定
Description: 概要 ← どんなアプリなのか説明を書きます。Cydiaでアプリ名の下に灰色で表示されます。
Homepage: 自分のホームページ
Maintainer: 名前 <メルアド>
Author: 作者 <メルアド>
Section: セクション ← これを設定すると、そのセクションに合ったアイコンがアプリ名の隣に表示される。
以上で完了です。
debファイルの作成
debファイルの作成です。
- cydiaディレクトリにuploadというディレクトリを作って先ほど作ったtestディレクトリをコピーします。これも好きな名前で。※uploadディレクトリを作らず直接cydiaディレクトリでdebファイルを作っても全く問題ありません。ただ、たくさん作ると分かりますが、debの整理が大変になってくるのでたくさんファイルをアップする予定の人はuploadディレクトリを作ることをオススメします。
- Root Terminalを起動し、
cd cydia/upload
でアップロードディレクトリに移動。
dpkg-deb –b test
でdebファイルが作成されます。この時警告が出ますが、気にしなくてOKです。
ls –la test.deb
で詳細情報がみられます。
これでdebファイルが完成!
iPhoneに転送してiFileなどでインストールすれば、/var/mobile/にhello.txtが置かれるはずです。
リポジトリの作成
いよいよ本題。
以下の作業はdebファイルを新たにリポジトリに追加する場合や、debファイルを更新した場合に毎回行う必要があります。
- コマンドでuploadディレクトリに移動し、
dpkg-scanpackages –m . /dev/null >Packages
-
以下のコマンドを入力して圧縮します。
bzip2 Packages
以上で終了です。あとはFTPなどでPackages.bz2とtest.debを自分のサイトにアップロードし、アップロードした場所のアドレスをCydiaで追加すればOKです。ここまでのプロセスを自動化するスクリプトを現在作成中です。これが完成すれば題名のとおり本当に簡単に作れるようになりますよ♪
ディスカッション
コメント一覧
こんにちは^*
お世話になってます
記事にしてくださりとてもありがたいです
さて、リポジトリの作成も完了し、Cydiaにてリポジトリ追加出来ました。しかし、Windowsで作ったdeb file(fukajunさんの以前のブログ参照)をFTPクライアントでそのURLにアップしたところ、反映されず。。。
Linuxでdebを作成したところ、パーミッションエラー。。。
どうすればいいでしょうかね^^;
ご教授お願いいたします
うっかりしていて説明を忘れていましたが、この記事にある「リポジトリの作成」の作業はdebファイルを作成もしくは更新する度に毎回行う必要があります。
新しいdebの作成→古いPackages.bzを削除後に「リポジトリ作成」の作業→新しいPackages.bzと新しいdebをアップロード
という手順で行います。
パーミッションエラーの方はよくわからないので、エラーメッセージを書いていただくかスクリーンショットを送っていただければ解決できると思います。
fukajun様、成功いたしました!
本当に色々とありがとうございました^^
もしよろしければ、http://repo.kmjb-hackslife.com/
のリポジトリ登録よろしくお願いします^
あと、欲張りといっちゃなんですが、リポジトリのアイコンやRepository Metadataについてなど説明してくださると助かります・・・
>KMJBさん
リポジトリの作成成功おめでとうございます!
早速リポジトリを追加しましたb
今回の記事は基本編という事で、最低限の事しか説明していないので、次回の応用編でアイコンやRepository Metadataについても説明する予定です^^
ありがとうございます
楽しみにしています^^
早速、5つほどアップしました^
おかげさまで、念願かないました!!
最後が重要でした。
だからみんな自宅サーバ構築するんですね。
どうしようかなっと。
初めまして。
この記事を参考にしてリポジトリの作成を試みています。
しかし dpkg-deb -b ○○(ファイル名)と入力しても、
dpkg-deb: コントロールディレクトリの許可属性 777 は不正です (>=0755 かつ <=0775 でなければなりません)
とエラーがはき出されてしまいます。
どのようにすると解決できますでしょうか。ご教授の程、御願いします。
>iTetuoさん
おめでとうございます。お役に立てて嬉しいです。
>Keno31oさん
エラーメッセージの通り、コントロールディレクトリの許可属性を0755にする必要があります。
「chmod 0755 [controlディレクトリの場所]」とコマンドを打ってみてください。
この記事を例にすると、
chmod 0755 /home/fukajun/cydia/upload/test/control
となります。
こんにちは
myrepospaceにdebファイルのテーマを載せたいと考えているのですが、その場合はdebファイルからの作成から始めればいいんですよね?
ピンバック & トラックバック一覧
[…] This post was mentioned on Twitter by perl ism and AnyEvent::PerlIsm, beck. beck said: perlスクリプトで生成するっぽ。ついでに、ここでは、Debianでリポジトリ作成してるっぽ。 http://i.fukajun.net/?p=171 […]
[…] http://i.fukajun.net/?p=171 […]