RとEBImageをMac上でメンテナンス

まず、久々にMacを起動。OSのSoftware Updateをしようとすると異常終了。
あきらめて、RをCRANからダウンロード。Rのバージョンは2.13.0。インストールは無事に完了。Rを起動するとちゃんと2.13.0になっている。
EBImageはabindパッケージを必要とするはずだから、これをインストール。

> install.packages("abind")

ミラーサイトを聞かれるので、適当に選んでインストール続行。無事にインストールされた模様。
あとは、XcodeMacPortsImageMagickGTKが必要なはず。
Xcodeは3.2.4が入っている。MacPortsは1.8.2。

$ port
MacPorts 1.8.2

次にImageMagickのインストール。

$ sudo port install ImageMagick
Password:

うまく行ったのか?とりあえずGTKも。

$ sudo port install gtk2

      • > Computing dependencies for gtk2
      • > Cleaning gtk2

まぁよしとしよう。次はEBImageのソースファイルを入手。ダウンロードにはcurlを使う。

$ curl -O "http://www.bioconductor.org/packages/2.9/bioc/src/contrib/EBImage_3.9.1.tar.gz"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4644k 100 4644k 0 0 188k 0 0:00:24 0:00:24 --:--:-- 198k

いよいよインストール。

$ R CMD INSTALL EBImage_3.9.1.tar.gz

とすると、

All text must be in a section

のエラーが続出し、インストールに失敗する。ちなみに、abindパッケージをソースからインストールしようとしても同じエラーが出るので、EBImage特有のエラーというよりは、自分の環境の問題のよう。
http://www.scribd.com/doc/54431670/34/Fix-the-Documentation-Files
このページをみるとドキュメントのファイルを修正すればいいようだが、面倒くさい。。。もっと根本的な直し方はないものか。

Ubuntu Serverにポータブルハードディスクを増設

職場でwikiサーバーを使っている。外付けハードディスクに毎日1回バックアップを取るようにしているが、万が一、建物が倒壊したり火災にあったりするとバックアップもろともなくなる恐れがある。そこで、月1度くらいはポータブルのハードディスクにバックアップを取って自宅に保管することにする。こうすれば、よほどの災害がない限りすべてが同時に破壊されるという可能性は低くなるだろう。
というわけで、まずハードディスクをつなぐ。今回使うのは容量が320GBでUSB接続のもの。
sudo fdisk -l
で認識されていることを確認。今回は/dev/sdcとなっている。320GBが認識されている。
sudo fdisk /dev/sdc
パーティションを確認。WindowsFAT32となっている。まずこれをすべて消去。
d
というオプションで消去できる。
p
というオプションでパーティションの状態を確認する。
n
というオプションで新たにパーティションを作る。
p (primary)
を選ぶ。
1
を選ぶ。後はすべてデフォルト。
w
でテーブルを書き込む。ちなみに、これらの操作はmountする前に行うこと。あるいはunmountしてから行うこと。
sudo mkfs -t ext3 /dev/sdc1
ext3でフォーマットする。しばらく時間がかかる(5分くらいかかった)。
マウント用のディレクトリを作成しておく。
sudo mkdir /mnt/extdisk2
sudo mount /dev/sdc1 /mnt/extdisk2
でマウントする。次のコマンドでバックアップ。
sudo rsync -a /srv/moin /mnt/extdisk2
コピーが終わったらアンマウント(コマンドはunmountではなくumount)してドライブをはずす。
sudo umount /dev/sdc1 /mnt/extdisk2
これを毎月繰り返せばよい。

Windows 7でリモートデスクトップ

まずはサーバーとなるコンピュータWindows 7cygwinをインストール。
http://www.cygwin.com/setup.exe
からセットアップファイルをダウンロードしてインストール。インストールの際はデフォルトに加えてNetのopensshとEditorのvimを選んでおく。cygwinのアイコンができたらクリックして起動することを確認。
次にopensshの設定をする。

ssh-host-config -y

とすると自動的に設定ファイルなどが生成される。
つぎに、/etc/ssh_configと/etc/sshd_configをそれぞれ/etc/ssh_config.origと/etc/sshd_config.origにコピーする。

cp /etc/sshd_config /etc/sshd_config.orig
cp /etc/ssh_config /etc/ssh_config.orig

vimエディターでsshd_configを開く。

vim /etc/sshd_config

以下の変更を加える。

#PasswordAuthentication yes

PasswordAuthentication no

#ChallengeResponseAuthentication yes

ChallengeResponseAuthentication no

リモートのパソコンにPuTTYごった煮版をインストール。PuTTYgenを使って秘密鍵と公開鍵を生成する。
公開鍵をUSBメモリに保存。秘密鍵は適当な名前でC:\sshなどに保存しておく。
サーバーのホームディレクトリに.sshディレクトリを作成する。ここに公開鍵を置く。そして、鍵をopenssh形式に変換した後にauthorized_keysに登録する。初めての場合は以下のようにすればよい。

ssh-keygen -i -f id_rsa_putty.pub > authorized_keys

authorized_keysのパーミッションを644に変更しておく。

chmod 644 authorized_keys

サーバーで以下のコマンドを実行してsshdを起動する。

cygrunsrv -S sshd

接続を試してみる。Pageant秘密鍵を登録して、PuTTYを起動、サーバーのIPを入れて接続。
つながらない。。。
そもそもpingを打ってもかえってこない。サーバーにしているWindowsファイヤーウォールを切ったらpingが通った。
再度PuTTYを起動、サーバーのIPを入れて接続。ログイン名を入れるところまでは行くが、no authentication availableとなってしまう。今日はあきらめ。ファイヤーウォールを戻しておく。

R CMD INSTALLによるパッケージのインストール

とあるRのパッケージをソースからビルドしたい。
http://cran.r-project.org/doc/manuals/R-admin.html#Installing-packages
を読みながらやってみる。
http://www.murdoch-sutherland.com/Rtools/
からRtools212.exeをダウンロードして実行。途中、pathの編集オプションにチェックを入れる。
コマンドプロンプトでRとするとRというコマンドが見つからないと言われるので、環境設定のPATHにC:\Program Files\R\R-2.12.0\binを追加する。コマンドプロンプトでRが実行できるようになった。ただし文字化けしてる。
コマンドプロンプトでR CMD INSTALL "C:\Program Files\R\R-2.12.0\library\filename.tar.gz"とする。ただしfilenameは目的のパッケージファイル名。するといろいろとwarningやらがでて、最後にDONEとなる。
以上。

install

http://sourceforge.net/projects/mingw/
から
http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20101030/mingw-get-inst-20101030.exe/download
をダウンロード。
インストーラーを起動。
C++コンパイラとMSYS Basic Systemに追加でチェックを入れてインストール。

VirtualBoxのホストとゲスト間でファイルシェア

ホストはWindons 7、ゲストはKubuntuバージョン不明。
http://blogs.sun.com/tao/entry/virtual_box_shared_folder_between
に書いてあるとおりにやっても以下のエラーがでてうまくいかなかった。
/sbin/mount.vboxsf: mounting failed with the error: No such device.
そこで、以下のようにGuest Additionをインストール(再インストール?)した。
VirtualBoxのDevicesのところからInstall Guest Additions...を選択。
ファイルマネージャーでcdromのところにVBoxLinuxAdditions-x86.run等があることを確認。
以下のコマンドでインストール。

$ /cdrom$ sudo ./VBoxLinuxAdditions-x86.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 3.2.10 Guest Additions for Linux.........
VirtualBox Guest Additions installer
Removing installed version 3.2.6 of VirtualBox Guest Additions...
tar: Record size = 8 blocks
Uninstalling old VirtualBox DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module ...done.
Building the shared folder support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers
Installing X.Org Server 1.7 modules ...done.
Setting up the Window System to use the Guest Additions ...done.
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services components ...done.

Kubuntuを再起動。

sudo /sbin/mount.vboxsf TAO /mnt/tao_xp

とするとうまくいった。