ひでっぷの技術メモ

はてなダイアリーから移行しました

Debian系Linuxでapt-getによりmysqlを入れた場合の注意点

とは言っても普通に使う分には何の問題もないわけですが、
例えばレプリケーションなどを組む場合に/var/lib/mysqlのデータをSlave側にコピーしたりすると/etc/init.d/mysql stopでmysqlが停止しません。
実は/etc/init.d/mysqlmysqlの起動停止するのにDebianLinuxdebian-sys-maintというユーザーを使用しています。
コピー元のサーバーとコピー先のサーバーでdebian-sys-maintのパスワードが違うためにmysqlの停止ができなくなります。
(ここでプロセスをkillしたりすると起動もできなくなると思います)
どうすればいいかというとdebian-sys-maintのパスワードは

/etc/mysql/debian.cnf

の中に書いてあるのでこれを参考に
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'パスワード';

すれば停止できるようになります。

CVSにコミットできずにプロジェクトが壊れる

仕事のプロジェクト管理はCVS.
ある日新しいプロジェクトの新規コミットをしようとしたところ途中まであがったところで
cvs.exe [checkout aborted]: cannot rename file CVS/Entries.Backup to CVS/Entries: Permission denied
というエラーが出てCVSがコミットできず。
さらに恐ろしいことにコミットできないどころかクラスファイルやパッケージディレクトリの一部が消失している!
もう頭パニックになりました。
幸い変更前のプロジェクトをバックアップしてあったので過去何日かの苦労が水の泡・・・とはならなかったのですが。
何度試してみてもCVSコミットに失敗する。
でぐぐるさんに聞いてみたところこのサイトを見つけました。

CVSでチェックアウトできない −ネオ撲滅党−

もしやと思いMicroSoft Security Essentialのリアルタイム検索を停止しコミットすると・・・できた!
どうやら上記サイトと同じように

おそらくCVSで1つのファイルをアップデートする度に、Entries.Backup→Entriesにリネームしていくのでしょうが、この頻繁さ故に彼にロックされる危険性が増してたわけですね。

でMicroSoft Security Essentialは該当ファイルを削除してしまっていたんですね・・・。
みなさんもご注意ください。
というかCVSを使ってる人なんてもういないのかも・・・

IS01をubuntu10.04で認識させる

さてIS01を購入したわけですが、adbドライバはどうなってるんだろ?特にubuntuの・・・ってことでさっそくつないでみました。

[結論]特に何もしなくてもつながります(笑)
HT-03AやNexusOneのように/etc/udev/rule.d/に何か書いたりする必要もなく、IS01側の設定→アプリケーション→開発のUSBデバッグにチェックをいれてadb shellをしたらあっさりつながりました。
ただし・・・自分のノートPC(ThinkPad X201)ならば何もせずにつながりましたが、会社のデスクトップPCはSDK-r05と古かったため最初はまったく認識せず。
SDKを最新のr07にするとadb devicesで認識していましたが

??????? no permissions

となっていてアクセスできず。
結局

adb kill-server

して

sudo adb start-server

したら無事認識するようになりました。
NexusOneと同じようにroot権限がある状態でadb serverを起動しないといけないのかな?
でもノートPCでは問題なかったし・・・このへんはもうちょっと調べたいと思います

ListViewでOnListItemClickが来ない

ぼちぼちとAndroidの勉強なんぞをしています。
ListViewにてOnListItemClickが来ない現象で随分と悩んでました。
現象としては

2週間ほど悩み(ヲイ結局自己解決できずにつ部リーダーの@gabuさんに相談したところ・・・無事解決しました。

自作Adapter#getView内でListViewのItemレイアウト内のTextViewのsetLongClickableがtrueになっていました・・・(汗
どうもListViewのOnListItemClickとTextView#setLongClickableや#setClickableは相性が悪いようです。
特にsetClickableやsetLongClickableを設定する必要はないので削除したら無事に選択できるようになりました。
きちんと理解してソース書けってことですね・・・(滝汗

VirtualBoxでホストOS:Linux、ゲストOS:Windowsのファイル共有

ホスト:Windows ゲスト:Linuxの場合は共有フォルダ設定 -Y.A.M の 雑記帳-VirtualBoxの共有設定でハマる -Android Zaurusの日記-を見ていただくとして自分のThinkPadはホスト:Ubuntu10.04 ゲスト:WindowsXPなのでどうしたもんかなと・・・。
ぐぐるさんにも聞いてみましたがこれという情報がありませんでしたが、結果こうするとできました。

やり方は単純で
1.ホストOS(Linux)でsambaを立ち上げて共有フォルダを作成する
2.ゲストOS(Windows)でホストOSの共有フォルダをネットワークドライブに登録する
以上です。
どうもVirtualBoxのホストOSはゲストOSから10.0.2.2で見えるようなので
\\10.0.2.2\共有フォルダ
をネットワークドライブに登録すればOKです

Armadillo-9で使用するCFをフォーマットするディストリビューターのバージョンに注意<span style="font-weight:bold;">2010-06-15追記

久々にArmadillo-9を使用する仕事が入ったのでCFをUbuntu10.04でfdisk、mk2fsしバックアップしてあったイメージをcp。
いつも通りにやったが起動せず。
以前fdiskでfdisk /deb/sdaとしなければいけないのを fdisk /dev/sda1とやっていて起動しなかったことがあるのでそのあたりを注意しつつもう一度試すがだめ。
hermitにて正常ならば

Image.gz is found

と出るはずが

Bad inode size

と出て起動せず。
Ubuntuだからだめなのかなあと思いながらDebian lennyでやってみるもこれもだめ。
今起動しているCFから直接コピーしてもだめ。
色々試してだめなので途方にくれて代理店の担当者さんに問い合わせると
Armadillo-9でフォーマットしてもだめですか?
との返事。
「今までさんざんDebianでフォーマットしてきたのになあ・・・・」
と思いながらArmadillo-9でCFをフォーマットし、Ubuntu10.04でファイルをコピーすると・・・・起動した!
そこではっと気づきました。
前回までCFをフォーマットしていたのはDebian etch
そのPCが壊れて現在はDebian lennyの入ったノートPCとUbuntu10.04の入ったデスクトップに変わっていました。
試しに会社にあるDebian etchでCFをフォーマットしてファイルをコピーすると・・・これも起動しました。
ということでArmadillo-9で使用するCFはArmadillo-9本体かDebian etchでフォーマットしないとだめです。

[2010-06-15追記]
コメントでも指摘していただいていますがe2fsprogsのdefaultのInode Sizeが変更されているようです。
ArmadilloのHowToサイトにも出ていました。
mke2fsを使ってフォーマットしたメディアを使うと、hermitに "Bad inode size" と言われる | 組み込みLinuxのArmadilloサイト

Ubuntu9.10 on HPminiで無線を認識させる(なんてことなかった)

なんてことありませんでした。
Ubuntu9.10インストール後
システム→システム管理→ハードウェア・ドライバにてBroadCom STA無線ドライバを選択。
f:id:hidepon_mory:20100304113733j:image
以上です。
変にドライバ当てたりwpa_supplicantをいじったりするからおかしくなってたようで(汗
ちなみに/etc/network/interfaces見るとauto-hotplugなんで有線LAN挿せば自動で有線LANも認識してくれます。