豚吐露@wiki
repo
最終更新:
Bot(ページ名リンク)
-
view
repo
環境
Ubuntu 10.04 LTS server ※なんか上手く行かんかった...serverだからか?
Ubuntu 10.10 desktop
Ubuntu 10.04 LTS server ※なんか上手く行かんかった...serverだからか?
Ubuntu 10.10 desktop
Android open source project
http://source.android.com/
http://source.android.com/source/download.html
http://source.android.com/
http://source.android.com/source/download.html
repoの導入
Android用のsourceを取得するためには、repoが必要。その導入方法を記述する。
pkgのinstall状況とか見やすいのでaptitudeを使用。apt-getでも普通に取得可能。
pkgのinstall状況とか見やすいのでaptitudeを使用。apt-getでも普通に取得可能。
- ツール・ライブラリのinstall
repoを使うためには様々なツールやライブラリが必要なのでまずはその導入を行う。
pkg情報の更新。
pkg情報の更新。
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse" $ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse" $ sudo aptitude update
pkgの導入
$ sudo aptitude install sun-java6-jdk sun-java5-jdk git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev libreadline5-dev
一応、これで必要なものは全部入るハズじゃが、それぞれのツール、ライブラリについてメモ及び、検索とinstallコマンドを記述。
参考:aptitude search結果の見方
■git-core
分散repositoryな構成管理を行う。
参考:aptitude search結果の見方
■git-core
分散repositoryな構成管理を行う。
$ aptitude search git-core $ sudo aptitude install git-core
■gnupg
公開鍵暗号方式を用いてデータの暗号化やディジタル署名を行う。OpenPGP互換。PGP2と非互換。
公開鍵暗号方式を用いてデータの暗号化やディジタル署名を行う。OpenPGP互換。PGP2と非互換。
$ aptitude search gnupg $ sudo aptitude install gnupg
■flex
テキストから文字パターンを認識するものらしい。lexで検索した方が見つかりやすいかも。adobeのではない。
http://cis.k.hosei.ac.jp/~nakata/lectureCompiler/YaccLex/
テキストから文字パターンを認識するものらしい。lexで検索した方が見つかりやすいかも。adobeのではない。
http://cis.k.hosei.ac.jp/~nakata/lectureCompiler/YaccLex/
$ aptitude search flex $ sudo aptitude install flex
■bison
汎用の構文解析器ジェネレータ。与えられた構文規則に従ってC言語で書かれた構文解析関数を出力してくれるらしい。
http://cis.k.hosei.ac.jp/~nakata/lectureCompiler/YaccLex/
汎用の構文解析器ジェネレータ。与えられた構文規則に従ってC言語で書かれた構文解析関数を出力してくれるらしい。
http://cis.k.hosei.ac.jp/~nakata/lectureCompiler/YaccLex/
$ aptitude search bison $ sudo aptitude install bison
■gperf
完全なハッシュ関数を生成する。
完全なハッシュ関数を生成する。
$ aptitude search gperf $ sudo aptitude install gperf
■libsdl-dev
ゲームなどのマルチメディア関係のソフトウェアを開発するための、グラフィックやサウンド等のAPIを提供するライブラリ。
ゲームなどのマルチメディア関係のソフトウェアを開発するための、グラフィックやサウンド等のAPIを提供するライブラリ。
$ aptitude search libsdl-dev $ sudo aptitude install libsdl-dev
■libesd0-dev
デジタル化された複数のオーディオを一つのデバイスで再生するめのライブラリ。
デジタル化された複数のオーディオを一つのデバイスで再生するめのライブラリ。
$ aptitude search libesd0-dev $ sudo aptitude install libesd0-dev
■libwxgtk2.6-dev
ウィジットツールキット。GUIを構成するためのライブラリ。
ウィジットツールキット。GUIを構成するためのライブラリ。
$ aptitude search libwxgtk2.6-dev $ sudo aptitude install libwxgtk2.6-dev
■build-essential
Debianパッケージの構築に必須であるとされるパッケージ。このパッケージを導入するとDebian構築に必要な依存関係にあるパッケージが色々入る。
Debianパッケージの構築に必須であるとされるパッケージ。このパッケージを導入するとDebian構築に必要な依存関係にあるパッケージが色々入る。
$ aptitude search build-essential $ sudo aptitude install build-essential
■zip
zipファイル用のアーカイバ。
zipファイル用のアーカイバ。
$ aptitude search zip $ sudo aptitude install zip
■curl
サーバからファイルを取得するためのクライアントプログラム。ダウンロード支援プログラム。
サーバからファイルを取得するためのクライアントプログラム。ダウンロード支援プログラム。
$ aptitude search curl $ sudo aptitude install curl
■libncurses5-dev
TUI作成用のライブラリ。
TUI作成用のライブラリ。
$ aptitude search libncurses5-dev $ sudo aptitude install libncurses5-dev
■zlib1g-dev
zip圧縮用ライブラリ。
zip圧縮用ライブラリ。
$ aptitude search zlib1g-dev $ sudo aptitude install zlib1g-dev
■libreadline5-dev
コマンドライン入力支援ライブラリ。bashでも採用されており、入力補完やコマンド履歴などを提供している。
コマンドライン入力支援ライブラリ。bashでも採用されており、入力補完やコマンド履歴などを提供している。
$ aptitude search libreadline5-dev $ sudo aptitude install libreadline5-dev
- repoのinstall
手順に載ってるコマンドを順番に実行してみる。
$ mkdir ~/bin $ curl http://android.git.kernel.org/repo > ~/bin/repo
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 17451 100 17451 0 0 3264 0 0:00:05 0:00:05 --:--:-- 17381 |
実行権を与えて、環境変数を追加して、適応。
$ chmod a+x ~/bin/repo $ vi .bashrc
#repoPATH=~/bin:$PATH
$ source .bashrc
ヘルプ出してみる。
$ repo help
usage: repo COMMAND [ARGS] repo is not yet installed. Use "repo init" to install it here. The most commonly used repo commands are: init Install repo in the current working directory help Display detailed help on a command For access to the full online help, install repo ("repo init"). |
ちゃんと出たらok。とりあえず、これで導入完了。
repoの使い方
- 初期設定
downloadしたいdirへ移動して、download対象を指定して、『repo sync』で実際にdownloadって感じの手順。
まず、dir作って、初期設定。
まず、dir作って、初期設定。
$ mkdir working-directory-name $ cd working-directory-name $ repo init -u git://android.git.kernel.org/platform/manifest.git
server環境だとこんなん出て上手く動かんかった...(´;ω;`)ブワッ
gpg: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined symbol: PC fatal: registering repo maintainer keys failed |
desktop環境だと普通に上手く行った...orz
最後にいくつか質問されるが、『y』と『enter』押下で大丈夫なハズ。
clone_log
当該dirに『.repo』ってdirができてて、ちゃんと中身があればok。
最後にいくつか質問されるが、『y』と『enter』押下で大丈夫なハズ。
clone_log
当該dirに『.repo』ってdirができてて、ちゃんと中身があればok。
- sourceの取得
正確にはlocal環境とrepositoryの同期ですね。
$ repo sync
で、実際にAndroid sourceの取得。空の状態から取得するとすっごい時間かかります。(ノД`)
終わったので、取得サイズを見てみる...
終わったので、取得サイズを見てみる...
$ du -sm
5175 . |
MByte単位なので、diskの消費容量5GB...
- 取得対象の指定【-b】
取得brancheの指定。
『-b』オプションで取得するtag名、branche名を指定すると、そのtag、brancheのsourceが取得できる。
指定するtag名はこちらからhttp://android.git.kernel.org/?p=platform/manifest.git;a=tags
『-b』オプションで取得するtag名、branche名を指定すると、そのtag、brancheのsourceが取得できる。
指定するtag名はこちらからhttp://android.git.kernel.org/?p=platform/manifest.git;a=tags
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
.repo/manifests/: manifest switched gingerbread...froyo-plus-aosp .repo/manifests/: discarding 18 commits removed from upstream Your Name [hoge]: Your Email [hoge@hoge-VM.(none)]: Your identity is: hoge <hoge@hoge-VM.(none)> is this correct [y/n]? y repo initialized in /home/hoge/working-directory-name hoge@hoge-VM:~/allmake_android |
で、取得。
$ repo sync
この時点で、froyo(Android2.2)を取って来たかったんじゃが、どうもbrancheが無くなってるっぽぃ?
eclair(Android2.1)の取得も失敗したし、branch名よりもtag名で取ってきた方が良いみたい。
e.g.)
eclair(Android2.1)の取得も失敗したし、branch名よりもtag名で取ってきた方が良いみたい。
e.g.)
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-cts-2.1_r4
- 並列処理の指定【-j】
sync時に並列で動かすjobの数を指定できる。
$ repo sync -j2
とかすると、2つのjobが同時に走るのでsyncにかかる時間を短縮できる。
数字なんぼまで増やせるんか知らんが、あんまし増やすとNetwork圧迫するので危険らしいが、正直とても遅いので、2~8位は設定しても良いと思う。
singleコアでも少しは意味あります。コア数+1位が妥当らしい。
数字なんぼまで増やせるんか知らんが、あんまし増やすとNetwork圧迫するので危険らしいが、正直とても遅いので、2~8位は設定しても良いと思う。
singleコアでも少しは意味あります。コア数+1位が妥当らしい。
- manifestfileの指定【-m】
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair -m hoge.xml
初期設定時に作成されるマニフェストファイル名の指定。上記のコマンドだと、『hoge.xml』に、省略すると『default.xml』になる。
- diff
repositoryとの差異を表示する。
$ repo diff
あんま上の方でやりすぎるとすっごい時間かかります。
よう分からんが、Makefile変更してdiffしても差異が出んかった。『init/init.c』いじってdiffやったら差異がちゃんと出た。
diff対象のfileって決まってる?
よう分からんが、Makefile変更してdiffしても差異が出んかった。『init/init.c』いじってdiffやったら差異がちゃんと出た。
diff対象のfileって決まってる?
まぁ、使い方はこんなとこかな?足りないトコとかは随時追加するつもり。
更新日: 2011年02月18日 (金) 19時32分10秒