2009/11/15

MacOS X から Linux のディスクを NFS mount する方法

Mac OS X には NFS 機能がシステムへと統合されています。

クライアント機能に関しては、各種設定を GUI から行う事も可能で、例えば NFS で export されているディスク領域を mount する為には、Finder の「Go」メニューにある「Connect to Server...」、または、「Disk Utility」の「File」メニューにある「NFS Mounts...」が利用できます。勿論 Terminal からコマンドラインで mount -t nfs する事も可能です。

但し主に Linux で export した NFS ディスク領域を Mac OS X から mount するには、すこしコツがあります。

多くの Linux distribution へ含まれている NFS サーバでは、「1024 より小さなポート番号から発行されたリクエストのみを受け付ける」設定がデフォルトで有効になっています。Mac OS X から発行される NFS 要求は、この仕様に合致しません。そのため、特に何も指定せずに NFS の mount 要求を発行すると、「Operation not permitted」エラーになってしまいます。

% sudo mount -t nfs server:/home /Volumes/server
mount_nfs: /Volumes: Operation not permitted

解決策は、Linux Server 側で 1024 以上のポート番号を受け付けるようにする、または、Mac OS X 側で 1023 以下のポート番号を使うようにする、のいずれかです。

前者の場合 Linux 側で、/etc/exportfs へ insecure オプションを付加することで達成できます(exportfs(8)でも達成可能です)。/etc/exportfs ファイルを修正した場合には、exportfs -a コマンドを実行し、再 export をしましょう。

linux% sudo vi /etc/exportfs # insecure オプションを付与する
linux% sudo exportfs -a

後者の場合、MacOS X 側で mount を実行する際に resvport オプションを指定します。

% sudo mount -t nfs -o resvport server:/home /Volumes/server

NFS mount の設定を Disk Utility から行う場合、Disk Utility の「NFS Mounts...」を選択し、左下にある「+」ボタンを選択、「Remote NFS URL」へ「nfs://server/home」、「Mount location」へ「/Volumes/server」と入力した後、その下にある「Advanced Mount Parameters」へ「resvport」と書きます。最後に「Verify」ボタンを押し、「Save」で完了です。

残念ながら、Finder の「Connect to Server...」からは NFS オプションを指定することは出来ないようです。オプション指定の必要なNFS サーバへ接続する必要がある場合には Disk Utility を利用すると良いでしょう。

Apple Wireless Keyboard 購入しました

ここ暫く iMac では、標準で付属している USB 接続タイプのApple Keyboardを使っていました。テンキー付きのフルキーボードです。

慣れもあり、キータッチには特に違和感を感じなかったのですが、如何せん私の小さな机の上では、その大きさが厄介なことに。特に私はテンキーを全く使わないので、余計に右半分が邪魔に感じていました。

この問題への対処として、先日の Magic Mouse 導入で Bluetooth 機器への接続性疑念が払拭された記念(?)に、Apple Wireless Keyborad(US)を導入してみる事にしました。型式はMC184LL/Aで、レイアウトは従来からの慣れでUS配列です。

箱はこんな感じで、大変シンプルです。パッケージにキーボードの配列が印刷されていないのは、薄さを前面に押し出すと同時に、各種キー配列によらずに外箱を共通化する為なのかもしれません。



レイアウトはフルキーボードとほとんど変わりません。左下に fn、右下にカーソルキーを設置する関係上、control や command、option が小さくなっているのが目につく差異です。



フルキーボードと並べてみました。大きさ2/3位の印象です。



横から見た所。高さはほぼ変わりません。丸い部分が電源です。電池は逆サイドから、この円筒の中へ入れることになります。単三電池を2本使います。



Magic Mouseと並べてみました。キーボードの小ささが分かります。



iMac からのキーボード認識は、キーボード右横の電源スイッチを押し、キーボードの電源を入れる事で行われます。認識後、数字8文字からなる passkey を入力すれば、接続は完了です。

使い勝手ですが、打鍵感覚などは、フルキーボードと全く同一です。USBによる有線接続から Bluetooth による無線接続に変わったものの、違和感は全くありません。小型化し、また、無線になったことで、レイアウトの自由度が高まった点が大変嬉しく感じています。

最新の iMac では、このキーボードとマウスの組み合わせを標準で選択できますから、使い勝手の点でも、お買い得度という点でも、魅力的だと思いました。

変更コードが手元にある場合の git svn dcommit 方法

git は大変使い勝手の良い分散バージョン管理システムです。

様々な利点がありますが、私にとっては Subversion との連携機構が、標準機能とも呼べる位置づけで提供されている点が、いぶし銀のような渋さで、git の魅力を引き立てています。この機能のおかげで、Subversion を利用しているプロジェクトでも、手元では git を使って開発をすすめることが可能です。

さて git svn で Subversion リポジトリからコードを取得し、手元のコードを変更したとします。一部改変したコードを残したまま、つまり git add などで staging することなしに 既に git へ commit とした改変点を Subversion リポジトリへ push ようと、svn dcommit コマンドを使うと、
% git svn dcommit
Cannot dcommit with a dirty index.  Commit your changes first, or stash them with `git stash'.
 at /opt/local/libexec/git-core/git-svn line 485
とエラーになり dcommit できません。

この場合、エラーメッセージにも出ている通り、一旦 stash コマンドで現在の改変内容を脇へ押しやり、その後に dcommit、そして stash apply で押しやった内容をもとに戻す、という手順を経る事で問題へ対処できます。

% git stash
% git svn dcommit
% git stash apply

svn dcommit 時のエラーメッセージそのままなのですが、エラー発生時には動転するのか、心が読み飛ばしてしまうことが多いように感じます。

stash は svn との連携時以外でも大変便利なコマンドですので、頭の片隅においておくと良いのでは、と思いました。

2009/11/01

VMware Fusion 3 上での Windows7 を稼働させてみました

VMware Fusion 3が発売されました。

「50 を超える新機能を搭載」と説明されている通り、2.0 と比較して、様々な機能拡張がなされていますが、私は、
  • Snow Leopard 対応で、64bit kernel 上でも稼働できるようになった
  • グラフィックドライバの進化により、Windows7 をゲストOSにした場合でも、Aero を利用できるようになった。
に興味を惹かれたため、アップグレードするとともに、Windows7 を稼働させてみる事にしました。

まずは、MacOS X を 64bit Kernel で起動します。これは、起動時に「6」「4」を押し続けることで達成できますが、私は SixtyFourSwitcherをインストールすることで切り替えています。

次に VMware Fusion 3を起動し、ゲストOSとして Windows7 Home Premium の 64bit 版をインストールします。Windows 7 は VMware Fusion 自身で正式サポート対象になっているので、簡単にインストールすることが可能です。

待つ事数分、なんの問題も無く MacOS X、Windows 7 とも 64bit モードで起動させる事が出来ました。左上のゴミ箱が透けて見えていることからも分かるように、Aero も機能しています。



VMware Tools 更新後の Windows エクスペリエンスインデックス値は、こんな感じ。ホストマシンは、昨年購入した iMac(Early 2008)です。




IdeaPad S9e へインストールした Windows7 Home Premiumよりも最低スコア値は上でした。

使い込んだ訳ではないですが、普通の用途使用する分には特に問題ないような気がしましたので、常用を検討してみようと思っています。

Firewall で遮断されたネットワーク内から MacPorts を利用する

MacPortsは Mac OS X 上でのオープンソースソフトウェア活用を便利にしてくれるプロジェクトです。port コマンド一つで、各種ソフトウェアのパッケージ管理や依存性の解決、また MacOS X 特有パッチの適用など、適切に取り仕切ってくれます。

port コマンドは必要なファイルの取得時にインターネット上のサイトへアクセスに行きますが、HTTP Proxy の用意されている環境であれば、適切に設定を行うことで、Firewall を超えることも可能です。

Firewall 越えの設定に対し、注意すべき点は以下の2点です。なお、この情報は、Mac OS X 10.6.1(Snow Leopard)に基づいています。他のOSバージョンでは異なるかもしれません。

1) RSYNC_PROXY 環境変数で HTTP Proxy を設定する

port コマンドは rsync(1) を使って自身の情報更新などを行います。そこで rsync コマンドが Firewall を超えられるように、RSYNC_PROXY 環境変数へ HTTP Proxy サーバの情報を設定します。

例えば、HTTP Proxy のサーバ名が、proxy.example.com、待ち受けポート番号が8080 であるとします。bash や zsh を使っている場合には、次のように設定すればよいでしょう。
% export RSYNC_PROXY=proxy.example.com:8080
Proxy サーバを URL 形式で指定してはいけません。例えば、proxy.example.com の前に http:// をつけたり、また、8080 の後ろに / をつけたりすると、rsync が適切に処理できないので、注意しましょう。詳しくはrsync のマニュアルページを参照してください。

2) RSYNC_PROXY を sudo 実行時に引き継げるようにする

port コマンドでは、sync アクションなどの実行を sudo 経由で行うことが一般的です。しかし、デフォルトの sudo 設定では、RSYNC_PROXY 環境変数の値は引き継がれません。引き継がせる為には、sudo の挙動を管理している /etc/sudoers ファイルを変更する必要があります。具体的に、このファイルへ以下の行を追記します。
Defaults        env_keep += "RSYNC_PROXY"
/etc/sudoers の変更には visudo コマンドを使いましょう
% sudo visudo
変更を行う際、適当なエディタを使って /etc/sudoers を直接変更してはいけません。このファイルのパーミション設定を間違えると sudo が使えなくなってしまいます。

万が一設定を間違えてしまい、sudo が使えなくなった場合には、/Applications/Utilities にある Disk Utility アプリケーションを使って、パーミションの修復を行いましょう。 /etc/sudoers ファイルを含むディスク(例えば、Macintosh HD)を選択し、「Repair DiskPermissions」ボタンを選択することで、パーミションを適切に戻す事ができます。

以上の設定を行うことで、Firewall で区切られたネットワーク内からも MacPorts が利用できるようになります。

なお、上記のうち、特に visudo 関連の情報に関しては、勤務先の同僚から情報を頂きました。感謝いたします。

Magic Mouse を導入してみました

先日、Appleより、マウスへマルチタッチテクノロジーを組み込んだMagic Mouseが発表されました。

機能的になかなか面白く、デザインも素敵です。面白そうなので購入してみることに。10/28頃、出荷され、週末に受け取る事ができましたので、早速試してみました。

梱包ケースは、ほぼマウスと同じ大きさの、小さくシンプルなプラスチック箱です。一般のマウスはブリスターパッケージにおさめられている事が多ので、新鮮に感じます。ドライバCD-ROMなどが付属していない点が大きいのかもしれません。



それぞれ箱の底面、前から、後ろから。底面には使用方法が書かれています。前後は、一見すると区別がつきません。



今まで使用していたMicrosoft Laser Mouse 6000と比べたところ。



大きさは Laser Mouse とほぼ同様。くびれが無い分、スマートには見えます。一方で厚みは相当薄く半分位しかありません。被せ式でマウスを握る人にとっては、多少使い勝手が異なるでしょう。

マウスの底面は、シンプルにアップルマーク。右にあるのは電源で、on/offの機械式です。電池はあらかじめ単三が2本おさめられていました。



さて、使用感です。

iMac 付属の Apple Mouse は赤外線を用いた光学式トラッキングであり、私の机はうまく認識する事ができず、早々に使用を断念せざるを得なかったのですが、Magic Mouse ではレーザーを用いたトラッキングエンジンに変わったことで、同じ机でも全く問題なく認識できるようになりました。従来の Laser Mouse 6000同様の操作感を得る事ができます。

Bluetooth による認識も良好です。一時期ワイヤレスマウスを使っていたこともありますが、PCを置いている部屋のネットワーク環境が劣悪な為か、接続が失われてしまう事が多々あり、その後は有線マウスを使い続けていました。Magic Mouseはそのような切断もなく、有線のような安定さを保ちながら、ケーブルレスの自由を手に入れる事が出来ました。

重量や手を置いた感じでに付いては、特に違和感はありません。購入前は、薄すぎるかな、という懸念を持っていたのですが、私の使い方では気になりませんでした。却って物理ボタンが存在しない事から、手を置くポジションをボタン位置に縛られることなく自由に設定できるようになり、結果、マウスの真ん中あたりを掴むようになった事で、この薄さが良い使用感をもたらしています。

また、表面をなでることで機能するスクロールも、従来のホイール操作と変わりません。物理的な機構が無い分、滑らかさが増した感じです。一番興味を抱いていた2本指を使った Swipe 動作によるスクロールも、購入前の想定とは異なり、軽く操作するだけで的確に認識してくれる事から、非常に使いやすい機能です。例えばジェスチャー機能を持っていない Safari などでは、使用感が大きく向上しました。

一方で、底面ソールが固いせいか、多少机との摩擦が気になります。細かく操作すると、机の表面が削られてしまうのではないか、という気がします。

サイドボタンが存在しない点も、不便です。Laser Mouse 6000では、左右ボタンに、それぞれ Dashboard と Exposé の呼び出しを割り当てていたたのですが、その機能が使えなくなりました。キーボードのファンクションキーを使えば良いのですが、まだ、慣れません。MacBook など同様、複数指でのスクロール動作などを認識してくれるようになり、そこへ各種機能を割り当てられるようになればな、と思っています。

総じて、このマウスは私の環境では、大変満足行くものでした。数日しか使用していませんが、違和感無く、既に私の手に馴染んでいます。

スクロールなど、従来のホイールマウスとは異なる操作感を楽しむ事ができますので、是非、機会がありましたら、一度店頭などで触れてみると面白いかと思います。