MacにGlobus Toolkitをインストール

MacGlobus Toolkitを使う必要が出て来たためインストールしてみた。若干手間取ったのでメモ。

Mac OS X Lion (10.7.4), Intel Core i5搭載なので Globusダウンロードページ から “X86 Mac OS X Binary Installer”を選択. アンケート画面が出るがオプションなので書きたい人だけ書いたら Download をクリック。後は通常のUnix/Linuxソフトウェアをインストールするのにお決まりのパターンで

$ tar zxvf gt4.2.1-x86_macos_10.4-installer.tar.gz
$ cd gt4.2.1-x86_macos_10.4-installer
$ ./configure --prefix=/usr/local/globus
$ sudo make
$ sudo make install

ただしこのまま使おうとすると以下のようなエラーが出る.

dyld: Library not loaded: /Users/condor/execute/dir_8492/userdir/install/lib/libglobus_gss_assist_gcc32.0.dylib

これは環境変数の設定によるものだそう。 OSDir - clustering.globus.user - Re: dyld: Library not loaded: Mac OSX 10.4.9 - msg#00175 - Programming Mailing Lists
環境変数を設定するため ~/.bash_profile に以下を追記:

export PATH=/usr/local/globus/bin:$PATH
export GLOBUS_LOCATION=/usr/local/globus
export DYLD_LIBRARY_PATH=/usr/local/globus/lib

これを読み込んで設定を反映させる.

$ source ~/.bash_profile

これにてひとまずインストールは完了.

pigzで巨大ファイル圧縮の並列化

1ファイルあたり5~7GBのテキストファイルを10数個含むトータル100GB程度のディレクトリを .tar.gz 形式に圧縮しようと試みると、全く進む気配が無い。さすがにファイルを圧縮するだけで時間を浪費するのはもったいなく、利用しているサーバは24コアの高性能のものなので有効活用できないかと考え調査。するとpigz

pigzのインストール

$ wget http://zlib.net/pigz/pigz-2.2.5.tar.gz
$ tar zxvf pigz-2.2.5.tar.gz
$ cd pigz-2.2.5
$ make
# ln -s pigz /usr/bin/

最後のシンボリックリンクのコマンドは、パスが通っているところから実行ファイルを参照可能にするため。別ディレクトリでも良いし, ln ではなく cp や mv で実行ファイルそのものを置いてしまっても問題ありません。

pigzを用いた圧縮

pigzにパスが通っていれば以下のようにすればOK。パスが通っていなくても --use-compress-prog オプションで絶対パスを指定すればできます。

$ tar cvf out.tar.gz --use-compress-prog=pigz source_files

コア数指定のオプションは無いようで、自動的にコンピュータ上の全てのコアが使われます。環境にもよりますが、24コア/256GBメモリのサーバ上ではtimeコマンドで見ても桁違いに圧縮は高速になっているし、体感でも速さが実感できるレベルになりました。

SafariでAcrobatが立ち上がるのをやめる方法

いつからかSafariでPDFを開こうとしたら, Acrobatプラグインが立ち上がるようになった。読み込みやスクロールがもっさりしているので, デフォルトのプレビューでPDFが開かれる状態に戻したいと思ったが, Acrobatの環境設定の「PDFをブラウザーに表示」オプションがグレーアウトして選択できない。はてさてどうしたものか…

と思っていたらこのような記事を見つけた。
【Mac】SafariでPDFを開くとプレビューではなくAcrobatに成ってしまった | 酔いどれオヤジのブログwp

Macintosh HD > ライブラリ > Internet Plug-Ins にある “AdobePDFViewer.plugin”“ AdobePDFViewerNPAPI.plugins”の2つのファイルを削除した上でSafariを再起動させることでデフォルトの状態に戻った。

The bookmarks and history system will not be functional

Firefox is already running but is not responding - /var/log/blog.logで書いた対処を行ったときにブックマークバーやブックマークメニューが空になっていたので今回はそのことについて。

これも以前の問題と同様にファイルのロックが問題だと思われる。調べた結果、そのファイルは“places.sqlite”だとのこと。そのファイルは ~/.mozilla/firefrox/hoge.default/ 以下にある(hogeはランダムな英数字列でユーザにより異なる)。
Fix "The bookmarks and history system will not be functional" error message | Firefox Help
SQLiteデータベースを再構築するように、という指示やその方法が書かれているサイトが見つかったが、めんどくさそうなので一旦places.sqliteとplaces.sqlite-journalをそれぞれplaces.sqlite.bak, places.sqlite-journal.bakにリネームした後, places.sqliteとplaces.sqlite-journalのファイル名を削除しまた元のファイル名に戻してからFirefoxを起動したら問題解決。
Locked or damaged places.sqlite - MozillaZine Knowledge Base

Firefox is already running but is not responding

LinuxFirefoxが固まってしまって強制終了したときにタイトルのようなエラーメッセージが出て再起動できなくなったのでその対処法。

そもそもこのエラーはFirefoxを正常に終了しなかったためにプロファイルがロックされたままになっており読み出せなくなっているのが原因とのこと。
"Firefox is already running but is not responding" error message - How to fix it | Firefox Help
なので問題解決には

  1. ロックされたプロファイルを見つけて
  2. そのファイルを削除

すれば良い。

肝心なファイルの見つけ方ですが, “.parentlock”という隠しファイルなので

$ find . -name ".parentlock" -exec ls -l '{}' \;

とすればOKとのこと。それをrmコマンドで削除してFirefoxを起動すると何やら聞いてきますが“Restore”をクリックしたら前回終了時の画面が出てきました。

参考: Unix Administrator Blog: Firefox error - Firefox is already running, but is not responding......

nohupの出力先変更

sshで長時間かかる計算をするときなどに使用するnohup。これを使えばsshの接続先が切れてもジョブを続けてくれ、その際標準出力はnohup.outというファイルに記録される。しかしNFSで共有しているディレクトリに異なるマシンで入ってそれぞれのマシンの出力を分けたい、nohup.outが大量にできすぎてわけが分からなくなってくる、というときのためにnohupの出力ファイル名を変更する方法。

と言っても簡単で、

$ nohup command &> nohup_outfile_name &

とするだけ。
参考: bash - Can I change the name of `nohup.out`? - Stack Overflow

Xcode 4.3でのgccインストール

新しいMacBook Proが手に入ったのでいろいろ設定。Lionは大きく変わった、とは聞いていたものの初回起動時にLeopardのTime MachineバックアップHDDを接続しておけば勝手にデータや設定を引き継いでくれるのであまり大したことはしてませんが。…が、問題なことに開発環境の設定は引き継がれない様子。というわけでApp StoreからXcodeをダウンロード。いろいろなサイトを見て回ったところ, これでInstall Xcode.appというのができてそれを実行すればXcodeと一緒にコンパイラがインストールされるということだったのですが、ただXcode.appができてただけ。

そのあたりはどうも今月出たXcode 4.3から変わったのではないかと思い色々とポチポチ。そしたらPreferences→Downloads→Componentsの中に“Command Line Tools”の記述を発見。

ここで“Install”をクリックしApple Developer IDを入力すればインストールされました。