andLinux で共有するディレクトリを追加

andLinux にて CoFS で共有するディレクトリを追加する方法のメモ.

settings.txt の編集

andLinux のインストールディレクトリにある settings.txt を編集し,

cofs1=D:\

みたいな行を追記.この場合だと D ドライブ全体を共有することになる.

andLinux の再起動

andLinux のサービスを再起動.再起動するのは Ubuntu じゃなくて Windows のサービスの方なのでお間違えなきよう.

/etc/fstab の編集

/dev/cofs0 の行をコピペして,最初の二つのカラムだけ変更.

cofs1 /mnt/d

みたいな感じ./dev/cofs1 じゃないので注意.

...
/dev/cofs0 /mnt/win cofs ...
cofs1 /mnt/d cofs ...

みたいな感じになる.

マウントポイントの作成

/mnt/d を作成.

sudo mkdir /mnt/d

マウント

sudo mount /mnt/d

でマウントできるはず.
できなかったらもう一度 andLinux サービスの再起動とかしてみよう.

これで光学ドライブなどを利用することができるようになった.たぶん.

Windows7 新規インストール

VAIO type T (VGN-TZ90) に Windows7 をインストールしたので、そのメモ書き。

リカバリディスクの作成

ドライバ類が配布されていないので、これは必須。
現行の OS を消す前にリカバリディスクを作成しておくこと。

「以前作ったから大丈夫」と思っていても、所詮は光学メディア。
古くなって読み込めなくなっていたりするので、必ず読み込めることを確認すべし。

内蔵光学ドライブのない人は、ついでにリカバリディスクをイメージ化しておくと良いと思う。
iso化するならここのソフトウェアとか?

インストールメディアの入手

イメージの入手

アカデミックライセンス (MSDN アカデミックアライアンス) にて、Windows7 が iso イメージで配布されているので、それをダウンロード。

インストール用 USB の作成

最近の Windows は USB からのインストールが公式にサポートされている。詳しくはこちら
光学ドライブが内蔵されてない人にお勧め。

BIOS の設定

PC 起動時に F2 を押して BIOS メニューを出して、[Advanced > External Drive Boot] を有効にする。
念のため Boot priority order もチェックしてから Exit Setup。

インストール

大体デフォルト。

キーボードの種類

英語キーボードを選択。

インストールパーティション

念のため Recovery 領域を削除しないように注意しながらパーティションを選ぶ。
パーティションを切りたかったらここでやっておくのが良い。私は何もしないけど。

BIOS の再設定

勝手に再起動してくれるけど、そのままだとまた USB から起動しちゃうので、[Advanced > External Drive Boot] を無効にしておく。

ユーザ作成その他

再起動が終わると、ユーザの情報とか聞かれるので適当に。
いちおう最低限の動作はこれで可能みたい。あとはリカバリディスクから必要に応じてドライバやアプリケーションをインストールする。

ドライバ各種

とりあえず大事そうなものだけ入れておき、必要になったら後から追加する。

チップセット

システムリカバリディスク\VAIO\Drivers\Chipset の Setup.exe。

タッチパッド

システムリカバリディスク\VAIO\Drivers\Pointing の DPInst.exe。
再起動後、[コントロールパネル > マウス] の項目が Alps 用のものになっている。
私はタッピングが嫌いなので、タッピングのチェックを外す。

不明なデバイス

[デバイスマネージャー > ほかのデバイス] にある基本システムデバイスと不明なデバイスをそれぞれドライバ更新。
どれがどれだか分かりにくいので、システムリカバリディスク\VAIO\Drivers 以下を検索するようにしておけば良い。

andLinux (Ubuntu?) の screen 環境におけるバックスペース

もしかすると Ubuntu 全般の話なのかもしれないが,普段 Ubuntu は使ってないのでよく知らない.
ともかくも andLinux で screen を使ったとき,バックスペースキーが期待通りの動作をしてくれなくて少し困った.

直し方は非常に簡単.

  1. ターミナルを開いて,[編集 > 設定] を選択.
  2. 上級者タブにあるバックスペースキーの生成という部分を Control-H に変更する.

andLinux に限っては .screenrc を編集する必要はないらしい.

svn+ssh

やる度に忘れている気がするので,メモ.
通常,リモートホストにある svn リポジトリにアクセスするには,svn+ssh を使えば良い.
例えば,

svn co svn+ssh://user@host/path

ssh のポート番号を変更する

一番需要があるのがポート番号を変更するというもの.検索してすぐに出てくるのはこのパターン.

${HOME}/.subversion/config

中の

[tunnels]

セクションに

myssh = ssh -p 22222

などと書いておき,svn コマンド実行時に

svn co svn+myssh://user@host/path

とすれば良い.

ssh秘密鍵を変更する

ポート番号変更と同様.

${HOME}/.subversion/config

myssh = ssh -i /path/id_dsa

などと書けば良い.パスを記述するときには変数を使わずフルパスで書く必要があるようだ? (ホームを表す ~ も使えなかった)

svnserve を変更する

たぶんあまり需要はないのだけれど,私にはこれが重要だったりする.
普段自分でインストールした svn を使っているけど,サーバにアクセスしたときにはサーバデフォルトの svn が使われて困る,という場合.
具体的には,両者の svn のバージョンが離れていると,

svn: Expected version '3' of repository; found version '5'

などと言われてリポジトリにアクセスできない場合がある.
このような場合には,サーバにアクセスした時に普段使っている svn に対応した svnserve が起動するようにすれば良い.

svn 専用の公開鍵を作る
ssh-keygen

を使って適当に作成し,公開鍵をサーバの

authorized_keys

に設置.

ログイン時のコマンドを制限する
authorized_keys

中には,

ssh-rsa ...

という行があるはずだが,これを

command="/path/svnserve -t" ssh-rsa ...

と書き直すと,ログイン時に,指定した svnserve が実行されるようになる.
全く余談だが,

command="/path/svnserve -t -r /repospath" ssh-rsa ...

などとしてリポジトリのルートを設定しておくこともできるので,
リポジトリのフルパスを入力するのが面倒くさい,という場合にも使える.

セキュリティ的には,

command="..." no-pty,no-port-forwarding,... ssh-rsa ...

のように色々制限するためのオプションを付けるべきであろう.

ssh秘密鍵変更と組み合わせる

ここまで準備を整えたら,後は

${HOME}/.subversion/config

を編集して,新しく作った svn 専用秘密鍵を指定した myssh を作れば良い.

PHP5.3.3 インストール時の不思議

PHP をソースからインストールする場合,

./configure --with-config-file-path=/confpath --with-config-file-scan-dir=/confpath/php.d ...

のような形で .ini ファイルの位置を指定する場合があるが,
きちんと指定したつもりでも,コンパイル結果に反映されていないことがある.
具体的には,

php --ini

を実行したとき,

Configuration File (php.ini) Path: ...
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

のように表示されてしまう.

その後何度かコンパイルを繰り返したら,原因は全く分からないのだが反映された.
gcc による最適化でも影響していたのだろうか?
とりあえずこういう事例もあったよ,ということで.

Apache 上で使うのが目的の人は,こんなものはいちいち気にせず,

PHPINIDir

というディレクティブを使うだけでも良いかもしれない.

andLinux体験メモ

Cygwin のメジャーアップデートをしたらちょっと面倒なことになったので,この機会に andLinux に触れてみた.
思っていたよりは快適,な気がする.

インストール

andLinux.org から Latest Stable なパッケージをもらってきてインストール.
執筆時点での最新版は andLinux Beta 2 (final).
私は Vista を使っているので,インストーラを管理者権限で実行する.
色々聞かれるけど,変更したのはインストール場所と Windows とのファイル共有の方法,それとスタートアップの方法.

インストール場所

デフォルトは Program Files だったけど,空白文字による問題があったら困るので,そういうのがないところへ.

ファイル共有

Samba が推奨らしいけど,面倒なので CoFS にした.
デフォルトは C ドライブ全体だったが,危険な香りがしたので専用のディレクトリを作ってそっちにした.

スタートアップの方法

サービス手動起動とXFCEパネルの組み合わせを選んだ.

起動

スタートメニュー内にある [andLinux > Start andLinx] でサービスを起動.この起動にも管理者権限が必要.
もちろんタスクマネージャとか開いて普通にサービスを起動しても何ら問題ない.
Xming がきちんと動作していれば上にパネルが出るので,そこからターミナルを選べば CUI で使える.

日本語の設定

aptitude がなかったので,まず aptitude を導入し,

sudo aptitude install language-pack-ja
sudo aptitude install language-support-ja

として日本語環境に必要そうなものを整え,

sudo /usr/sbin/dpkg-reconfigure locales
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8

で日本語の設定をした.ついでに

sudo /usr/sbin/dpkg-reconfigure tzdata

タイムゾーンを東京にしておいた.

ターミナルの設定

パネル上のターミナルアイコンを右クリックしてプロパティを表示させ,作業フォルダをホームに変更.
次にターミナルを起動させ,メニューから [編集 > 設定] を選択.

  • 一般タブ.スクロールバックの値を適当に増やす.
  • 外観タブ.フォントサイズを少し大きく.

デバッグ中のcom.sun.jdi.InvocationException

Eclipse 使ってデバッグすると,変数の中身を見ることができるが,
たまに,プログラムの動作は問題ないのに,変数の値に

com.sun.jdi.InvocationException

という例外が発生して見れないことがある.
何だろうと思いながら放置していたけど,たぶん変数の値を文字列化する際にエラーが起こったということなんだろう.
例えば,

toString()

中でわざと

NullPointerException

が起こるようにしかけると上のような例外が発生する.