2009-11-01
_ Linuxデスクトップ環境でプログラムメニューを非インタラクティブに追加する
Linuxデスクトップ環境でプログラムメニューを追加するには、通常、デスクトップ環境のメニュー編集などを使いますが、インタラクティブではなくプログラムなどから自動で追加する場合は、所定のファイルを作成し追加する必要があります。 その設定方法について調べたのでメモ。
参考:
- freedesktop.org - Specifications/menu-spec
- @IT:GNOMEメニューを編集するための基礎知識
- @IT:GNOMEメニューにサブメニューや項目を追加するには
- Development/Tasks/Packaging/Policies/Menu - Mandriva Community Wiki
アプリケーションを起動するための、 *.desktop ファイルを作ります
(ファイル名).desktop という名前で以下のようなファイルを作成します。
面倒な場合はデスクトップ環境で「アプリケーションの起動を追加」などでデスクトップ上にランチャを作れば、desktopファイルが作成されるので、それを利用するとよいでしょう。
サンプルのようにxdg-openから起動するようにして実行属性をつけておくと、デスクトップ環境でなくてもdesktopファイルからアプリケーションを起動することができて便利です。
#!/usr/bin/env xdg-open [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Terminal=false Exec=(実行ファイル) Name=(名前) Name[ja]=(日本語ロケールでの名前) Comment=(コメント) Comment[ja]=(日本語ロケールでのコメント) Icon=(アイコンファイル) Categories=(カテゴリ)
アプリケーションが入るディレクトリを指定する *.directory ファイルを作ります
(ファイル名).directory という名前で以下のようなファイルを作成します。
desktopファイルに似ていますが、ファイル名の拡張子がdirectoryになっていることと、TypeにDirectoryが指定されていることに注意。
[Desktop Entry] Type=Directory Name=(名前) Icon=(アイコンファイル)
メニュー階層を指定するXMLファイル *.menu ファイルを作ります
(ファイル名).menu という名前で以下のようなXMLファイルを作成します。
XMLなので一見ややこしそうに見えますが、実際のところはApplicationsの下にMenu階層を作り、NameとDirectoryに上で作った *.Directory ファイルを指定しているだけです。
メニューについて古い資料だとシステムワイドのmenuファイルを変更して階層を追加していますが、その必要はなく、application-mergedディレクトリに、この作成したmenuファイルを置けば追加することができます。
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <Menu> <Name>(名前)</Name> <Directory>(上で作ったdirectoryファイル).directory</Directory> </Menu> </Menu>
*.desktop, *.directory, *.menuファイルを指定のディレクトリに置く
作成した*.desktop, *.directory, *.menuそれぞれのファイルを指定のディレクトリに配置します。
- システムワイドの場合
- アプリケーション(*.desktop): /usr/share/applications/
- ディレクトリ(*.directory): /usr/share/desktop-directories/
- メニュー(*.menu): /etc/xdg/menus/applications-merged/
- ユーザーローカルの場合
- アプリケーション(*.desktop): $(HOME)/.local/share/applications/
- ディレクトリ(*.directory): $(HOME)/.local/share/desktop-directories/
- メニュー(*.menu): $(HOME)/.config/menus/applications-merged/
2009-11-06
_ 気がつけば今日は関西オープンソース2009
ということで関西Debian勉強会とLILOで参加します。
関西Debian勉強会ではDebian sidがインストールできる特製Debian Live DVDを配布するので遊びにきてください。
_ 箕面市役所のEdubuntu導入担当の人のblogが始まったみたい
- 箕面市役所edubuntu日記: http://blog.goo.ne.jp/minoh_edubuntu
いきなりテスト環境の構築メモとか公開していて濃いですね。素晴らしい。
2009-11-08
_ exim4でgmailのsmtpにリレーする
処理するためにローカルで送信するMTAが必要なので、exim4のスマートホストを使ってgmailにリレーするように設定してみた。
- 資料: GmailAndExim4 - Debian Wiki: http://wiki.debian.org/GmailAndExim4
debconfを使ってexim4の設定する。
# dpkg-reconfigure exim4-config
debconfの設定は以下のとおり。
- メール設定の一般的なタイプ: スマートホストでメール送信; SMTP または fetchmail で受信する
- システムメール名: (自分のマシン名)
- 入力側SMTP接続をリスンするIPアドレス: 127.0.0.1
- メールを受け取るその他の宛先: (空にする)
- メールをリレーするマシン: (空にする)
- 送出スマートホストのIPアドレスまたはホスト名: smtp.gmail.com::587
- 送出するメールでローカルメール名を隠しますか: いいえ
- DNSクエリの数を最小限に止めますか(ダイヤルオンデマンド): いいえ
- ローカルメールの配送方式: お好みで。わからなければ「mbox形式」
- 設定を小さなファイルに分割しますか: お好みで。わからなければ「いいえ」
passwd.clientにgmailのアカウントとパスワードを設定する。
Debian Wikiそのまんま。passwd.clientの末尾にyourAccountName@gmail.comにアカウント、y0uRpaSsw0RDにパスワードを設定。
# editor /etc/exim4/passwd.client gmail-smtp.l.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD *.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD smtp.gmail.com:yourAccountName@gmail.com:y0uRpaSsw0RD
passwd.client のユーザーとグループが root:Debian-exim になっているのを確認して、update-exim4.conf を実行しておしまい。
これでローカルホストに投げるだけでgmailにメールを送ることができた。
_ caffを使ってGPGの署名して送り返す
GPGのキーサイン=リア充の証ということで、4096色bitのGPG鍵を作って関西オープンソース2009でキーサインをしたけれど数があるとマンドクセ。
ということで署名支援ツールのcaffを使ってみた。
- http://tokyodebian.alioth.debian.org/pdf/debianmeetingresume200909-presentation.pdf
- http://tokyodebian.alioth.debian.org/pdf/debianmeetingresume200803-kansai.pdf
設定方法はiwamatsu先生の資料そのまんま。なんにも変更点無し。 ローカルでsmtpが必要になるというので、上に書いたexim4でgmailにリレーするを参考に設定したぐらい。
$ caff
をすると ~/.caffrc ができるので自分の設定に変更して、資料の注意事項にあった ~/.caff/gnupghome/gpg.conf の末尾にSHA512を指定する設定を書いただけ。
cert-digest-algo SHA512 personal-digest-preferences SHA512
gnupghomeとgpg.confのパーミッションは700と600にしてあります。
終わってから
$ caff -u <自分のKeyID(フィンガープリントの下8桁)> <署名したいKeyID> <署名したいKeyID2> …
のようにすると自動で一人一人の署名について、終わったら送信について尋ねられるので質問に答えていけば終わり。
2009-11-09
_ 今日は「兵庫ニューメディア推進協議会 第2回情報通信セミナー 〜クラウドコンピューティング、オープンソースの活用〜」に行ってきます
危うく忘れそうになった。
2009-11-12
_ ぐるぐる
お金の事は面倒くさいっすね。 ということでやっと書けます。
_ 関西オープンソース2009に行ってきたよ
先週の金曜と土曜に大阪南港ATCで開催された関西オープンソース2009にLILOと関西Debian勉強会で参加してきました。
が、正直なところ、あまり覚えていません!
出展者なので基本的にブース張りつき、セッションも見る時間なかったしということで、これを見た!というのはありませんが、とりあえず思い出しながら書いてみます。
一日目
一日目は、LILOブーストDebianブースを行ったり来たり。 で、LILOブースで突発的Linuxインストール大会をやってたけど、一勝一敗でわたしまけましたわ。という感じでした。 Debianブースでは、SHA-256/4096bitのGPG鍵を作っていなかったので、いじめられてましたw
二日目
二日目はずっとDebianブースでした。 SHA-256/4096bitのGPG鍵も一日目の夜にドキドキしながら作ったので、もう安心ですメロン。
ということでリア充になるためにブースではキーサインをしました。GPG鍵キーサインはリアルmixiみたいで面白いよ。
関西Debian勉強会のセッションは、Yabukiさんの、Debianに関わって自分の人生が広がったお話と台湾で開かれたDebia MiniConfのお話。 Debianに関わって自分もリアルで変わっている最中、変化していると実感しているので、これはすごい共感できたな。 それと台湾のDebian MiniConfの話の中で、Debian MiniConfの計画立案者がAndrew Leeさんという方とお話されてたのですが、その名前どこかで聞いたことあるぞと思ったら、lxdeのメンテナの人でした。
なんで覚えているかというと、Debianパッケージの説明のところにメンテナの名前が書いてあるのだけれど、普通はアルファベットのみの表記になってます。だけど、この人の場合は漢字名も表記してあるので、「なんでこの人漢字の名前も書いているのだろう」ということで覚えていました。
この人、アジア圏のオープンソース/フリーソフトウェアについて、結構ガッツリやってしまうタイプだそうです。
ステージでは、ひょうごんテックの大橋さんのステージを見ました。
いやー、相変わらずネタ冴えてます。オープンソース開発者とユーザをツンデレで表現してしかも表にするなんて。それだけで勝ちですね。
ほかには、清野さんのOpen Street Mapのステージをチラっと見たり、Wikimediaのステージをチラっと見たりして、トリはYabukiさんのDebian Developperへの道だけはガッツリ見ました.
Debianのオープンソースの徒弟制度というかジェダイナイツへの道は、外から見ると「何いってんの?」という感じだろうけど、こういう制度はいいと思うよ。
_ 「兵庫ニューメディア推進協議会 第2回情報通信セミナー 〜クラウドコンピューティング、オープンソースの活用〜」に行ってきたよ
次は今週月曜日にあった「兵庫ニューメディア推進協議会 第2回情報通信セミナー 〜クラウドコンピューティング、オープンソースの活用〜」の感想。
会津若松市の目黒さんがOpenOffice.orgについて講演されるということで行ってきましたが、兵庫県主催の講演ということで、スーツな人ばかりの中で、ものすごくアウェイな感じでした。そういう中で大丈夫かなと思っていましたが、講演された方のそれぞれの方のお話はとても面白かったですね。
「クラウドコンピューティングを探る」
基調講演みたいな形で、クラウドコンピューティングを知らない人に向けにサービスのしくみと海外の事例、ビジネスの展開などについて語られていました。
感想としては、濃いの一言でしょうか。
大学の教授をされてるだけあって話も展開も分りやすかったのだけれど、最初に大学の授業の3コマ分入ってますとおっしゃられたとおり、ものすごく中身が詰まっていて、本当の初心者の人はちょっと置いてけぼりになったかもしれないかな。なんて思いました。 それだけ内容は網羅的だったのですが、面白かっただけにちょっと惜しい気がしました。
お話の中で印象に残ったことといえば、従来のソフトウェア産業からSaas/Cloud Computingのパラダイムシフトをドリルに例えてお話されていたことでした。
従来、顧客が壁に穴を開けたいと思ったなら、ドリルを買ってくるしかなかった。そこでドリルを作って販売をした。 けれども顧客が本当に欲しいものはドリルではなく、ドリルを使って開ける穴である。
ということでソフトウェア自体(ドリル)が重要ではなく、サービス(穴)が重要というのは、なるほどなと思いました。 (ドリルと穴の例えは、調べてみると、いろんなところで言われているらしい)
「住友電工におけるOSSへの取り組みとOSS活用の進め方」
次は住友電工の方のお話。
よりグッとギーク寄りというか、実際に動かしているシステムのお話なので自分に近くなったような気がしました。
住友電工の情報システムが汎用機からダウンサイジングしていった過程の中で、オープンソースを取り込み発展していったお話をされたのですが、面白かったのはシステムの流れで汎用機、UNIXときて、そのままLinuxにスライドしたのかと思いきや、Windows NTが入ってるんですね。そして2年ぐらいで止めてLinuxに移行しているのが面白かったです。 Linuxに移行した際もUNIXで使っていたものを移植できたと言ってたので、UNIX文化の技術者が多そうなところでは、NTは、やりにくかったんだろうな。
で、現在。住友電工のシステムはSUSE上でXenとSUSE仮想マシン、DBはPostgreSQL、自社開発のJavaフレームワークでグループ会社のシステムは動いているそうです。
最後のまとめで「社内で使うものはルール化して標準を決める。」、技術の継承と新しい技術に対応するため「安易にアウトソーシングしない」この二つはなるほどと感じました。
「会津若松市におけるオープンソースの活用」
目黒さんの話を聞くのが目的だったので、楽しみ聞きました。
話の内容としては、資料や数値などは現在のものにアップデートされていましたが、基本的にはオープンソースカンファレンス2009仙台でのスライドと同じ流れでした。 (過去の資料は OpenOffice.org仙台ユーザーズグループのOSC2009Sendaiにあります。)
中でも一番興味深かったのは、市役所内で作成される文書ファイルを種類別、課別で調べたグラフでした。 グラフ化してわかったことはOpenOffice.orgが一番使われている課は情報システム系の課ではなく、女性職員が多い健康増進課だったそうです。このことから男性よりも女性、コンピュータに慣れている人(こだわりがある人)より慣れていない人(こだわりのない人)が抵抗なく使ってもらえるのではと分析されていました。
あと、フォントの問題は大きいようです。毛筆フォントがない。OCRBフォントがない。Vistaから使われているメイリオなどのJIS2004のフォントで字体が変わっている問題など、その辺の問題解決はかなり苦労されているようでした。
帰り際
講演が終わってから帰り際、県の方と講演された方がたと少しだけお話させてもらいました。
オフィスソフトの移行問題Office2007にしろOpenOffice.orgにしろ結構しんどいですね。あと役所特有の話としては、JISなどに含まれていない人名漢字の問題があるのは、なるほどなと思いました。
2009-11-13
_ 今日は、ひょうごんテックの世話人会です
ターミナルで動くTwitterクライアントのTermtterが超便利なので、これを使って世話人会をtsudaってみようかと思うので、興味のある人はtwitterで@hyogontechをフォローしてくだちい。
2009-11-17
_ パイレーツロックを見てきたよ
神戸に出たついでにパイレーツロック(The boat that rocked)を見てきた。
感想を言うなら一言。面白かった!
面白かったけれど、時代背景などの説明をテロップだけで済ませるので、ロックファンでなければ単なる青春ものにしか見えないかもしれない。 話もテンポよく進むけど、最後なんてご都合主義だし。ロックに興味がなければ「なんなのこれ?」で終わるかもしれない。
しかし、ロックファン、ラジオファンであるなら話は別。素敵な音楽とラジオDJの話に心ときめくはず。時代背景などを知っていればなおさら。 ロックファンは見るべし。
以下Twitterに書いてた興奮の様子。
- イギリスの海賊放送局の話しはピーターバラカンさんの本に載ってたはず。あとラジオDJを知ってたらより楽しいです。ボブがジョンピールてのがなぁ。どうよ posted at 20:14:19
- .@ernix パイレーツロックは海賊放送局の話ですが、映画の中ではほとんど説明ないです。イギリス人知ってるしって事でスルーされてて主にロックと笑い、たまに政府の人って感じです posted at 20:10:35
- 事業仕分けでブータレてるキミ!パイレーツロック見てロックしようぜ!見れば意味がわかる posted at 19:49:14
- @k_noppi あの映画は座って見るモノじゃないですよ。絶対。ロックンローーール! posted at 19:45:55
- パイレーツロックはダンス席を作るべき posted at 19:32:02
- The boat that ROCKed 面白かった!!ロックに魂を奪われた人は見るべし。そうじゃない人にはまったく価値がない映画。素晴らしい! posted at 19:01:04
- ROCK AND ROLL!!!!!! posted at 18:58:12
- 弦とシールド買ってうろうろしてただけなのに靴が違うから足痛い。パイレーツロックまだだしドトールでお茶する posted at 15:25:47
- 神戸に出てきた事だしパイレーツロックでも見よう。楽器屋にも寄って腐ってる弦とシールドも買いに行こう posted at 14:09:07
2009-11-21
_ 大型コインランドリーでこたつ布団を洗ってみた
寒くなったので一階の部屋にコタツを出していたけれど、こたつ布団を洗濯もせずに出していたので、ホコリと獣の臭いでちょっと、いや、かなりヤバげ。
これは、どげんかせんといかん。
いつもならクリーニングに出すけれど、近くのコンビニの隣にある大型コインランドリーは、布団も洗えると書いてあるし、使ったこともないから試してみようということでコインランドリーで洗ってきた。
選択から乾燥まで2時間弱で、こたつ布団と敷布と毛布を合わせて2100円で洗えれば結構お得かも。
2009-11-24
_ 告知なんぞを二つばかしします
日記も書かずに告知とはホントにねぇ。
_ 11月29日(日)難波ベアーズでTV JACK 1000のライブがあります
ということで一つ目はTV JACK 1000のライブのお知らせです。
2009.11.29(sun)
夢逃技、肩こり、BLONDnewHALF、TV JACK1000、
open 18:30/start 19:00 adv \1500/door \2000
TV JACK 1000は人類とスーファミの融合をテーマに活動してきましたが、正直、飽きたので来年から音楽スタイルが変わります。 そういうことで今回は人類とスーファミをテーマにしたライブの最後となるので、お見逃し無いようにお願いします。
TV以外にもブロンドとかも楽しそう。
_ 12月13日(日)第5回テックカフェ「新しいWebサービスとNPO広報」〜こんなに楽しいTwitterでもっとコミュニケーション!〜 があります
二つ目は、ひょうごんテックのイベントです。
こっちは、NPOや団体が今時のWebサービスをどう活用していくかをウィキメディアで活動している木津さんと、WebアクセスシビリティとWordpressで有名な小嶋さん二人のお話しと、そして自分たちはどう使っていけばいいのかをみんなでディスカッションします。
関西ではあまりない、関東のほうでも最近、ぼちぼちやっているようなイベントなので、興味のある人はぜひ来てください。 それと懇親会は、ひょうごんテック忘年会も兼ねてます。
ひょうごんテックは去年に引き続き、今年もインターネットとNPOの広報について考えます。今年のテーマは、ソーシャルメディアと呼ばれる新しいウェブサービスとNPOの広報です。
第5回 テックカフェ 「新しいWebサービスとNPO広報」 〜 こんなに楽しいTwitterでもっとコミュニケーション! 〜 日時:2009年 12月 13日 (日) 13:30~16:45 (13:15受付開始) 場所:神戸市勤労会館 講習室404NPOをはじめ団体の広報や活動報告に、ブログはごく普通に利用されるようになりました。最近ではブログ以外にもTwitter(ツイッター)をはじめ、mixi、Facebook(フェイスブック)などのソーシャルメディア、YouTubeやFlickr(フリッカー)などの動画画像共有サービスなど、外部のウェブサービスを積極的に組み合わせ活用する場面も増えています。
多様なウェブサービスを利用して自分たちの活動を効果的に伝えるにはどうしたらいいのか。一方向ではなく双方向のコミュニケーション手段としてのウェブサービスは、どう利用し、どこに気をつければいいのか。
国内外の活用事例を交えながら、新しいウェブサービスがNPO広報にもたらす可能性について話し合います。
○12月度スピーカー 木津 尚子 (ひょうごんテック世話人) 小嶋 新 (NPO法人しゃらく)
○日時 2009年 12月 13日 (日) 13:30~16:45 (13:15受付開始)
○場所 神戸市勤労会館 講習室404 ( http://www.kobe-kinrou.jp/shisetsu/kinroukaikan/ )
市営地下鉄・JR・阪急・阪神・ポートライナー 各三宮駅から東へ徒歩10分
○参加費 500円 (茶菓つき)
○申込み 定員36名 (以下の受付アドレスよりお申し込みください)
http://cotocoto.jp/event/35588
メールでのお申し込みは 、tech@tcc117.org まで
○懇親会
テックカフェ終了後、懇親会を予定しています。 懇親会参加も希望される方は、cotocoto申し込みコメント欄に「懇親会参加希望」とお書き添えください。
○主催 ひょうごんテック ( http://tcc117.org/hyogontech/ )
※お問い合わせやご質問は 、tech@tcc117.org までお願いします。
◆ お願い ◆
当日の飛び入りは歓迎いたしますが、茶菓などの準備のため、なるべく参加のお申し込みをお願いします。
会場では、ひょうごんテックの活動継続を支援くださる方のための募金箱を用意しています。皆様のご支援、ご協力をお願いします。
_ SHCというシェルスクリプトコンパイラがあるそうな
- SHC: http://www.datsi.fi.upm.es/~frosal/sources/
- Debian -- etch の shc パッケージに関する詳細: http://packages.debian.org/etch/shc
シェルスクリプトを書く機会が多いのだけど、ググっていたら、こんなのを見つけました。 シェルスクリプトを実行形式のバイナリに変換してくれるそうです。
$ shc -v -f (シェルスクリプト)
でバイナリファイルを作成します。 ファイルサイズは大きくなるけど、ファイルがいじられなくなるので必要な人には重宝しそう。
2009-11-28
_ 明日、TV JACK 1000のライブだけど雨降るとヤだな
今は晴れているんだけどな。
_ Debian Sid上でChromium OSをビルドしてみた
昨日の夜中、突発的にDebian Sid上でChromium OS(オープンソース版Chrome OS)をビルドしたくなったので作業の記録を残しておきます。
ビルドプラットフォームとしてubuntu(Hardy 8.04以上、Karmic 9.10推奨)となっていますが、ビルドでubuntuに依存したの部分はなかったので、ひっかかることはないと思います。 ビルドの手順は Getting and Building a Chromium-Based OS (The Chromium Projects)に書いてある通りに進めました。
ビルド準備
作業ディレクトリ作る
$ mkdir chromiumos $ cd chromiumos
パッケージのインストール
ビルドに必要なパッケージをインストールします。gitとQEMUは必須なのでインストールします。
$ sudo aptitude install git-core qemu
他にChromiumをビルドするためのパッケージもいれておきます。
$ sudo aptitude install subversion pkg-config python perl g++ g++-multilib bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev
depot_toolsのインストール
gitリポジトリからChromium OSを持ってくるために必要なgclientスクリプトが、depot_toolsというスクリプト集に収められているのでダウンロードします。
Subversionでチェックアウト
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
gclientにパスを通す
$ export PATH=`pwd`/depot_tools:"$PATH"
ChromiumOSのソースをダウンロードする
ソースコードをダウンロードするにはtarボールをダウンロードする方法とgitリポジトリからダウンロードの二つの方法がありますが、ここではgitからダウンロードしました。
$ gclient config http://src.chromium.org/git/chromiumos.git $ gclient sync
リポジトリから持ってくるのはとても時間がかかるので、とりあえず放置して別の事をしてるといいでしょう。
ChromiumOSのビルド
ビルド環境のセットアップに書いてある、シンボリックリンクを貼るのはオプションなので飛ばしました。 Chromium Browserのソースリポジトリがあってビルドする場合は、Build Instructionを参考にシンボリックリンクを貼ります。
ローカルリポジトリの作成
$ cd chromiumos.git/src/scripts/ $ ./make_local_repo.sh
make_local_repo.shを実行すると、debootstrapでubuntuのパッケージを取ってきたりしているみたいです。 これも時間がかかります。
ビルド環境の作成
書いてある通りにmake_chroot.shを実行します。
$ ./make_chroot.sh
Processing triggers for initramfs-tools ... Processing triggers for python-support ... All set up. To enter the chroot, run: (作業ディレクトリ)/chromiumos.git/src/scripts/enter_chroot.sh CAUTION: Do *NOT* rm -rf the chroot directory; if there are stale bind mounts you may end up deleting your source tree too. To unmount and delete the chroot cleanly, use: ./make_chroot.sh --delete
chroot環境に入るにはenter_chroot.shを実行。 chroot環境を消すときは rm -rf は使わず、削除スクリプト ./make_chroot.sh --deleteを使わないといけないとのこと。
Chromium(ブラウザ)の準備
ここでChromium Browserのビルドとなるけど、ビルドされたものを利用してもいいそうなので、そうすることにします。
ダウンロードしたzipファイルを (作業用ディレクトリ)/chromiumos/src/build/x86/local_assets/ に chrome-chromeos.zip という名前で置きます。
$ cd ~/(作業ディレクトリ) $ mkdir -p chromiumos.git/src/build/x86/local_assets/ $ cd chromiumos.git/src/build/x86/local_assets/ $ wget http://build.chromium.org/buildbot/archives/chromium-chromiumos-r32516.zip $ mv chromium-chromiumos-r32516.zip chrome-chromeos.zip
ビルド環境にchrootで入る
$ cd (作業ディレクトリ)/chromiumos.git/src/scripts/ $ ./enter_chroot.sh
ローカルユーザーアカウントを有効にする
ChromeOSのログインアカウントは、Googleのアカウントですが、開発するにはローカルでログインできた方が都合がいいのでローカルユーザーを追加しました。 名前はchromiumosとしてみました。
(chroot):~/trunk/src/scripts$ ( cd ../platform/pam_google && ./enable_localaccount.sh chromiumos ) Enabling local account. Remove chromeos_pam_localaccount.h to disable. (chroot):~/trunk/src/scripts$
共有ユーザーパスワードを設定する
ローカルユーザーのパスワードを設定します。パスワードもchromiumosにしました。
(chroot):~/trunk/src/scripts$ ./set_shared_user_password.sh Enter password for shared user account: chromiumos Shared user password set in /home/hoge/trunk/src/scripts/shared_user_passwd.txt
パッケージとイメージのビルド
パッケージとイメージのビルドですが、Build the packages (note you can use build_all.sh to run all these steps together) と書いてあるので、build_all.sh を見るとパッケージのビルドとテスト、イメージのビルドとテストを連続して実行してくれるそうなので、こちらを使うことにします。
(chroot):~/trunk/src/scripts$ ./build_all.sh
ビルド途中で寝てしまったので、どれだけ時間がかかるのか計っていませんが、かなり時間がかかると思います。
イメージの確認
ビルドできたらイメージの確認をしろということなのでします。
~/trunk/src/build/images/999.999.33109.163647-a1 にイメージがあるので
(chroot):~/trunk/src/scripts$ cd ~/trunk/src/build/images/999.999.33109.163647-a1
(chroot):~/trunk/src/build/images/999.999.33109.163647-a1$ ls -lah total 793M drwxr-xr-x 3 jun eng 224 Nov 27 16:41 . drwxr-xr-x 3 jun eng 88 Nov 27 16:36 .. -rw-r--r-- 1 jun eng 512 Nov 27 16:41 mbr.image -rw-r--r-- 1 root root 42K Nov 27 16:40 package_list_installed.txt -rw-r--r-- 1 root root 42K Nov 27 16:41 package_list_pruned.txt drwxr-xr-x 2 jun eng 48 Nov 27 16:36 rootfs -rw-r--r-- 1 jun eng 950M Nov 27 16:36 rootfs.image
システムだけだと950MBなんですね。
イメージをマウントして、できたイメージの中にchrootで入ります。
(chroot):~/trunk/src/build/images/999.999.33109.163647-a1$ sudo mount -o loop rootfs.image rootfs (chroot):~/trunk/src/build/images/999.999.33109.163647-a1$ sudo chroot rootfs
インストールされているパッケージを見ました。
$ dpkg -l ii chromeos-acpi 0.1 chromeos acpi scripts ii chromeos-assets 0.3 Chrome OS platform assets ii chromeos-chrome 0.1 chromeos chrome ii chromeos-connman 0.3 connman ii chromeos-cryptohome 0.1 Helper scripts which smooth the integration of ii chromeos-init 0.3 Chrome OS init scripts ii chromeos-installer 0.1 Chrome OS installer ii chromeos-libcros 0.1 Chrome OS plug-in library for Chrome ii chromeos-login 0.4 Chrome OS login manager ii chromeos-monitor-recon 0.1 Small module that will reconfigure an external monitor to th ii chromeos-pam-google 0.10 Linux-PAM module to authenticate against Google ii chromeos-ply-image 0.1 Chrome OS boot splash image loader. ii chromeos-screenlocker 1.0-1 Screen locker configuration for Chrome OS. Includes custom ii chromeos-wm 0.4 Chrome OS window manager ii chromeos-wpasupplicant 0.1 wpasupplicant
Chrome関係のパッケージですね。initとかloginとかpamとか面白いそうなものがあったり、Window Managerがオリジナルのものだったり興味深いですね。
ii anthy 9100h-0ubuntu1 input method for Japanese - backend, dictionary and utility ii ibus 1.2.0.20090927-1~ppa1 New input method framework using dbus ii ibus-anthy 1.2.0.20090813-2 anthy engine for IBus ii ibus-chewing 1.2.0.20090818-2 chewing input engine for IBus ii ibus-gtk 1.2.0.20090927-1~ppa1 New input method framework using dbus ii ifupdown 0.6.8ubuntu19 high level tools to configure network interfaces ii im-switch 1.16ubuntu1 Input method switch framework
あれ? iBusとanthyが入ってる? Chrome OSは日本語に対応していないというけれど、Language Packが入ってないので、入れれば問題解決するんじゃない? と、いじりがいありそうと思ったところで無事できているようなのでexitで抜けます。
$ exit (chroot):~/trunk/src/scripts$ sudo umount rootfs
イメージのチェックが終わったので、スクリプトディレクトリに戻ります。
(chroot):~/trunk/src/scripts$ cd ~/trunk/src/scripts
USBメモリにイメージを書き込む
できあがったイメージをUSBメモリに書き込みます。といいたいのですが、今回は手元にSDカードがあったのでSDカードに書き込みました。
今までビルドのためにchroot環境で作業をしていましたが、注意書きに Do this outside the chroot environment. と書いてあるのでchroot環境から抜けます。
(chroot):~/trunk/src/scripts$ exit $ pwd (作業ディレクトリ)/chromiumos.git/src/scripts
元の環境に戻ったらfdiskでSDカードのデバイスを調べます。
$ sudo /sbin/fdisk -l
で見るとSDカードが/dev/sdbにあることがわかったので
$ sudo ./image_to_usb.sh --from=../build/images/999.999.33109.163647-a1/ --to=/dev/sdb
という感じで書き込みました.
VMwareイメージを作る
SDカードの書き込みにはroot権限が必要なのでsudoをつけましたが、VMwareイメージ作成は必要ないだろうと思ってsudoなしで実行すると
$ ./image_to_vmware.sh --from=../build/images/999.999.33109.163647-a1/ --to=../build/images/999.999.33109.163647-a1/ide.vmdk 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00010848 s, 9.2 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.0001476 s, 6.8 kB/s ./image_to_vmware.sh: line 43: mkfs.ext3: コマンドが見つかりません
あら? mkfs.ext3は/sbin/mkfs.ext3なので通常、ユーザーはパスが通ってないですね。 ということで image_to_vmware.sh の該当個所をフルパスに書き換えて sudo をつけてもう一度。
*** image_to_vmware.sh.orig 2009-11-27 23:22:10.000000000 +0900 --- image_to_vmware.sh 2009-11-28 07:25:39.000000000 +0900 *************** *** 40,46 **** seek=$(( $PART_SIZE - 1 )) dd if=/dev/zero of="${FLAGS_from}/state.image" bs=1 count=1 \ seek=$(( $PART_SIZE - 1 )) ! mkfs.ext3 -F -L C-STATE "${FLAGS_from}/state.image" # Copy MBR and rootfs to output image qemu-img convert -f raw \ --- 40,46 ---- seek=$(( $PART_SIZE - 1 )) dd if=/dev/zero of="${FLAGS_from}/state.image" bs=1 count=1 \ seek=$(( $PART_SIZE - 1 )) ! /sbin/mkfs.ext3 -F -L C-STATE "${FLAGS_from}/state.image" # Copy MBR and rootfs to output image qemu-img convert -f raw \
$ sudo ./image_to_vmware.sh --from=../build/images/999.999.33109.163647-a1/ --to=../build/images/999.999.33109.163647-a1/ide.vmdk
無事終了。VMwareイメージはrawイメージ作成後qemu-imgを使ってVMware形式に変換しているだけなので、ちょっと変えればVirtualbox用やKVM用イメージも作れそうです。
eeePC 900Aで起動してみる
コールドブートで20秒ほどで起動しました。 以前Bit Torrentを使ってダウンロードしたイメージを使って試していたので感動はないけれど、こんなものでしょうか。 ベースがubuntu 9.10なので余裕で無線LANも認識。
インストールしてみる
eeePC 900AはテストマシンなのでSSDにインストールしてみました。
ログイン後 Ctrl+Alt+T でターミナルを開き、/usr/sbin/chromeos-install を実行するとインストールできます。
$ /usr/sbin/chromeos-install Using source USB device with label: C-ROOT This will install from '/dev/sdb' to '/dev/sda'. If you are sure this is what you want then feel free to enter the root password to proceed. [sudo] password for chronos: (ビルド時に設定したパスワードを入れる) (ddで書き込んだりブートローダーを書き込んだり処理するので待つ) Installation to '/dev/sda' complete. Please shutdown, remove the USB device, cross your fingers, and reboot.
書き込みが終わったら再起動します。 ちなみにChromiumOSのシャットダウンは電源ボタンです。家電感覚ですね。 (といっても最近のOSは電源ボタンを押すとシャットダウン処理が走るようになってるので、普通といえば普通なんですが)
eeePCのSSDから起動する
初回起動時はBIOSから起動するので、SDカードからの起動と変わらない起動時間でしたが、2回目からBIOSとブートローダーを飛ばして起動するので7〜8秒で起動します。これは感動しますね。
BIOSとブートローダーを飛ばして再起動というと、kexec使ってる? カーネルの設定/boot/config-2.6.31.4-chromeos-intel-menlowを見ると
CONFIG_KEXEC=y
となってるので、おそらくそうだと思います。
ブートローダーはgrubでもliloでもなくext2/3用SyslinuxのEXTLINUXを使ってます。 雰囲気的にはLiveシステムっぽいです。
iBusとAnthyについて追記
@nogajun blogのIBusの件ですが、ctrl-alt-tでターミナルを開いて、ibus-daemon& を起動し、ibus-setupコマンドを起動しAnthyをAddしてやれば、Chrome内でctrl+spaceで日本語入力できるようになると思われます。ご参考まで
twitterで教えてもらったので試してみました。
- Ctrl+Alt+Tでターミナルに入る。
- ibus-daemon & でibus-daemonをバックグラウンドで起動。
- ibus-setup を起動して[Input Method]タブからAnthyを追加する。
とりあえずは、これで日本語入力することができますね。
佐藤さん、ありがとうございました。
_ リモートで差分バックアップにはrdiff-backupがよさげ
サーバーのバックアップを世代毎の差分バックアップを取りたくて、NFSでマウントしてpdumpfsを使うややこしい事をしてたけど、rdiff-backupならリモートで世代毎の差分バックアップが取れるそうな。 ググってみると、日本語の解説が結構ひっかかるということは、かなりポピュラーだった?
うわー、全然知らなかったよ。テストして使えそうなら変えよう。
_ 12月12日19日 オープンフォース Debian勉強会 徳島で、のがじゅんさんが話をするそうですよ
12月12日19日に、のがじゅんさんが「Debianと関西Debian勉強会」と「Debian Live」について、話をするそうですよ。
ということなので徳島周辺の人は遊びに来てください。関西の人も明石から高速バスですぐなので来てください。
日にち間違えてました。正しくは12月19日(土)です。