5月 07
2010

Snow Leopardの標準PHPにgettext拡張を追加しようと思います。

Snow Leopardには、もちろん標準でPHPがインストールされています。
それに、Snow LeopardになってからGDやiconv等は標準で入っています。随分使い安くなりました。
でも、いまだにgettextは標準でPHPに入っていません。

そうなると、普通はMacPortなどを使ってインストールするのですが、PHPでgettextを使うだけで、ものすごく沢山のport(パッケージ)がインストールされてしまいます。これもなんだかですね。。。。

そこで、さっくりとgettextとそのPHPのextensionだけをインストールできれば楽ちん(?)ですし、時間もさほどかからないと思って作業したので、そのメモです。いつものように Your Own Risk です。(^_^)

前提として、XCodeはインストールしておいてください。お約束です。

1.お好きなところに作業ディレクトリを作成してください。

mkdir -p /tmp/hoge
cd /tmp/hoge

2. gettextソースコードを取ってきてコンパイルです。

curl -O ftp://ftp.gnu.org/gnu/gettext/gettext-0.17.tar.gz
tar xzpf gettext-0.17.tar.gz
cd /tmp/hoge/gettext-0.17/gettext-runtime
./configure
sudo make

3. gettextのインストールです。

sudo make install

これにて、gettextがインストールされました。次は、gettextのPHP Extensionを作りましょう。

4. Darwinのオフィシャルサイトから自分が使っている標準PHPと同じバーンのソースを取ってコンパイル・インストールです。私の環境はMacOS X 10.6.3で、PHPは5.3.1 でした。

cd /tmp/hoge
curl -O http://www.opensource.apple.com/source/apache_mod_php/apache_mod_php-53.1.1/php-5.3.1.tar.bz2
tar xjf php-5.3.1.tar.bz2
cd /tmp/hoge/php-5.3.1/ext/gettext
sudo phpize
./configure
sudo make
sudo make install

さあ、これでMacOS Xの標準PHPで利用できるgettext Extensionがインストールされました。sudo make installしたときに、どのディレクトリにライブラリをインストールしたか表示されると思います。私の環境では、/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.soにインストールされております。

さてさて、ここからが重要。(^_^)
gettextの拡張モジュールをPHPが認識出るようにphp.iniを変更します。

5. PHPとgettextの融合

viが使えると話は早いのですが。。。。とりあえずテキストエディタで /etc/php.iniを編集します。もしかすると、/etc/php.iniファイルがないかもしれません。その時には焦らず、/etc/php.ini.defaultとか、/etc/php.ini.orgとかからコピーしてください。

まずは、/etc/php.ini ファイルの適当な行に

extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.so

を1行追加します。私の場合は 953行あたりに入れました。コメントアウトされたextensionの定義がずらずら並んでいるの箇所があるのでわかると思います。

以上で終了です。

本当にgettextが組み込まれたか確認するには、定番の

<?php
phpinfo();
  ?>

ファイルをApache経由のcgiで表示させれば確認できると思います。

4月 29
2010

私の友人が、私が以前にハマってしまった事で悩んでいたので、結構あるんだなと思いメモしておきます。

MacOS Xは外付けHDD(USBやFireWire)を繋げると自動的にマウントしてくれます。
ま、これは普通と言えば普通なんだけど。。。

でも、MacOS Xの場合、このときのmountでnoownersのオプションがデフォルトで付いてしまいます。
これは、これで外付けは信用しないというポリシーはわかるのですが、外付けディスクをデーモンなどに安全に触らせるとなると、やっかいです。

そこで、登場するのが vsdbutil です。

外付けディスクがマウントされたところで、

sudo /usr/sbin/vsdbutil -a /Volumes/hoge

これで、noownersのオプションが外れてマウントされているはずです。
mountコマンド叩くとわかります。

4月 25
2010

なにげに、SCPluginのホームページを覗いてみたら。。。
Snow Leopard に対応しただって? (^_^)

なになに、、、

But still, no contextual menu or badging.

コンテキストメニューで動かない?!

おまけに、アイコンでの表記を出来ないのか。。。orz

でも、対応しているので、インストールして見ました。(^_^)

http://scplugin.tigris.org/からダウンロードしてきていつものインストーラでインストールします。
でも、コンテキストメニューに対応してないので、マウス右クリックしてもメニューは相変わらずインストール前と同じ。。。そこで、Snow Leopardは、ちょっとゴニョゴニョして、使えるようにします。

まず、
SCPluginUIDaemonをバックグランドで起動しておきたいので、ログイン項目に登録しておきます。
手順は、/Library/Contextual Menu Items/SCFinderPlugin.plugin/Contents/Resources/S​CPluginUIDaemon をシステム環境設定のアカウントにある、ログイン項目にこのファイルを追加するだけです。
でも、SCFinderPlugin.pluginはフォルダで見るとPluginファイルになっているので、その下のファイル等を指定することが出来ません。そこで、、、、ファインダーであらかじめ​SCPluginUIDaemonを表示して起きましょう。SCFinderPlugin.plugin以下のファイルは「パッケージの内容を表示」でその下のフォルダの内容が見えます。
ログイン項目を”+”で追加するときにファイルを指定しますが、その時にファインダーで表示しておいた SCPluginUIDaemon ファイルをドラッグ・アンド・ドロップでファイルチョーザーに落としてやります。

これで、SCPluginUIDaemonの自動起動の設定は完了。

最後に、アプリケーションのフォルダにインストールされた SCToolbarButtonをファインダのツールバーに、これまたドラッグ・アンド・ドロップして、登録します。
あの”S”マークのアイコンがファインダーのすべてのウィンドウのツールバーに表示されましたよね。(^_^)

そのアイコンをクリックした見てください。(^_^)

つまり、、、コンテキストメニューの代わりに、ツールバーにメニューを置きました。という、手に出たようです。;p

これが正式な対応なのかな。。。。(^_^;

SCPlugin.tiff

4月 08
2010

Mac OS X Snow Leopard (もちろんMac OS X Serverじゃないよ) に MacOSforgeで公開されている Darwin Calendar Serverをインストールしたので、ここにメモをしておこうと思います。

いやー、なかなか情報が転がって無くて、./run コマンドと格闘しましたが、ビール片手に一通り機能を確認できましたので、この手順で大丈夫でしょう。

このメモは./runコマンドでテスト的にサーバを動作して検証するものではなく、/usr/local/bin/ や、/Systtem/Library/Frameworks/Python.framework/配下や/Library/Python配下へのインストールをしますので慎重に自己責任でお願いします。

1.まずは、モノを取ってきます。

最新のリリースは2.4のようです。もうすぐ3.0が出そうですね。
ということで、好きな自分のディレクトリで、

svn co http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-2.4

として、チェックアウトします。

2. runコマンドで必要なモノのPythonモジュールを取ってきて確認です。

CalendarServer-2.4のディレクトリに移動してrunコマンドを探してください。

$ ./run -s

これで、必要な構成やファイルを自動的に取得して、コンパイル等も行われます。
この辺は、情報はいろんなサイトが紹介しているので大丈夫だと思います。

$ ./run

これで、テスト的に動作させてちゃんと動くかテストできます。
このあたりも他のサイトが参考になるともいます。

3. さて、いよいよ実環境へのインストールです。

まず、いったん/tmp/dstディレクトリに実行ファイルや定義ファイルなど環境に合わせた形に吐き出します。
以下のコマンドはsuでrootになるか、sudoコマンドで実行してください。

# ./run -i /tmp/dst

/tmp/dstを見てもらうと、なるほど、こんなファイルが環境にインストールされるんだとわかると思います。
つまり、/tmp/dstディレクトリの内容を/ に配置すれば良いわけです。

いよいよ、/に配置しましょう。

# cd /tmp/dst
# pax -pe -rw . /

これで、Calendar Serverのデーモンが /usr/loca/bin/caldavd を使って起動できます。
しかし、環境によってはシンボリックリンクを張らなければならないかもしれません。
  エラーファイルを見ればすぐにわかると思いますが、私の環境では

can’t open file ‘/usr/share/caldavd/bin/twistd’: [Errno 2] No such file or directory

なんて、表示され。。。おいおい。。。

# ln -s /usr/local/bin /usr/share/caldavd/bin

と、してやりました。(もしかして、./run -I で上手くいくのかも。。。)

4. Launchdによる自動起動の設定

svnでチェックアウトしてきた中のCalendarServer-2.4/contrib/launchd/calendarserver.plistファイルを適当に編集します。もちろん、/Library/LaunchDaemons/ へコピーしておきます。

ここで、ProgramArgumentsの引数(array)にcaldavdのディレクトリを変更するのと、caldavdの設定ファイルを指定するように記載してください。この、設定ファイルcaldavd.plist自身に中身は各自の環境に合わせてください。

<key>ProgramArguments</key>
    <array>
    <string>/usr/local/bin/caldavd</string>
    <string>-X</string>
    <string>-R</string>
    <string>caldav_kqueue</string>
    <string>-f</string>
    <string>/System/Library/Frameworks/Python.framework/Versions/2.6/caldavd/caldavd.plist</string>
    </array>

後は、LanuchDaemonに自動起動をお願いします。

# launchctl load -w /Library/LaunchDaemons/calendarserver.plist

最後に、私がはまった事を。。。といっても常識なのかもしれませんが。。。

uidが4文字以下だとアカウントを認識してくれないんです。orz
__uids__のファイルシステムを使う仕様なのかもしれませんが。。。uidの先頭2文字で第階層のディレクトリ名、2,3文字目で第2階層のディレクトリ名をつかってディレクトリの木構造を使うなんて。。。やはり、Kerberos使うべきだった。。。(^_^;

11月 11
2009

新しく発表されたプログラミング言語 Go を Snow Leopardにインストールしてみました。

まずはXCodeToolsは入れておいてください。これを入れておくとbisonも入るので後々楽ちんです。

次に環境変数を定義しておきます。
私の場合、ホームディレクトリの下のgoというフォルダにインストールします。
不要になったらこのディレクトリごとゴミ箱に捨てればいいので。。。(^_^)

ですので、環境変数は以下のようにして、.bashrcに追加します。

# Go Langage
export GOROOT=$HOME/go/src
export GOOS=darwin
export GOARCH=386
export GOBIN=$HOME/go/bin
export PATH=$PATH:$HOME/go/bin

source ~/.bashrc なんてやっとくと確実ですね。

では早速、インストール作業開始します。

mercurialを使いますので、まだインストールしていないときはまずこれからインストールします。

sudo easy_install mercurial

次に Go を Google Codeから取ってきます。

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

では、Goのインストール。

cd $GOROOT/src
./all.bash

これにてインストール完了。8gコンパイラなど使えるようになってます。

10月 18
2009

サーバのJRubyが1.2だったのでJRuby 1.3.1に上げてみた。
一緒に開発環境も。。。

JRubyはここから持ってきて、展開すればインストール完了。(^_^)
ま、なんてこと無い。おわり。。。

で済まされなかった。。。(^_^)

毎度曲者のgem。RailsはすんなりとOK。

つぎは、、、ruby-debug関連。

まずは、ruby-debug-base。
これは、ここからruby-debug-base-0.10.3.1-java.gemをもらってくる。
いつものコマンドで、
jruby -S gem install -l ruby-debug-base-0.10.3.1-java.gem

次は、ruby-debug-ide。
これも、ここからもらってくるのだが最新だとうごかない。
たとえば、、、

Building native extensions. This could take a while…
rake aborted!
Don’t know how to build task ‘2>&1′

(See full trace by running task with –trace)
ERROR: Error installing ruby-debug-ide:
ERROR: Failed to build gem native extension.

こんなエラーなる。
なので、JRuby1.3.1で動作する ruby-debug-ide-0.3.4.gem をもらってくる。
jruby -S gem install -l ruby-debug-ide-0.3.4.gem

次は、rcov。これあると便利なので。。。(^_^)
JRuby1.3.1で動くものは Githubにあるので、
jruby -S gem install –source http://gems.github.com jruby-rcov
で完了。

ふぅ。ワイン片手にやると、良い感じにtypoする。。。(^_^;
おやすみーーー。

12月 12
2008

OpenSolaris 2008.11がリリースされていた。

以前からZFSが気になっていたので、ちょっと触ってみるためにインストール。
そうだ、MacのVirtualBoxにOpenSolaris 2008.5が入れてあったので、そこに入れてみる。

Solarisも以前にも増してインストールしやすくなった。
#といって、私はSolaris以前のSunOSからのユーザだけど。。。;p

「タイムスライダ」
これこれ。これは自分が以前にとっておいた時のスナップショットに、スライダー一発で戻れるもの。
これで、MacOS Xのタイムマシンみたいな事が簡単にできる。

システム->システム管理->タイムスライダの設定 で、タイムスライダの設定を起動する。
ありゃりゃ???
Snapshot manager service dependency error
いきなりエラーですか。。。(^_^;

焦らず、
# svcs -a
おおおお、svc:/system/filesystem/zfs/auto-snapshot:*** が軒並み maintenance になってる。
これじゃ、snapshotとれませんね。(_;
# zfs list
なりほど、以前入れていた2008.5のブート環境がいますね。おまけに、これ現在使っているのとおなじ “/” になってるし。。。orz

では、定石にならって、古いブート環境をマウントすべく、
# mkdir /BE
# zfs list
ここで、rpool/ROOT/opensolaris (古いブート環境)だけを /BE にマウントするので
# zfs set mountpoin=/BE/opensolaris rpool/ROOT/opensolaris
# zfs mount rpool/ROOT/opensolaris
# zfs umount rpool/ROOT/opensolaris
私の環境ではrpool/ROOT/opensolaris-1が現在のブート環境なのでこうなりますが、古いブート環境が複数ある場合には、その古いブート環境も/BEに持っていてください。

やっとここで、svcadmの出番です。
先ほどの svcs -a で maintenance になっていた svc:/system/filesystem/zfs/auto-snapshot:*** を online にするために restart してやります。
# svcadm clear svc:/system/filesystem/zfs/auto-snapshot:hourly
# svcadm enable svc:/system/filesystem/zfs/auto-snapshot:hourly
私の環境では、
svc:/system/filesystem/zfs/auto-snapshot:hourly
svc:/system/filesystem/zfs/auto-snapshot:weekly
svc:/system/filesystem/zfs/auto-snapshot:monthly
svc:/system/filesystem/zfs/auto-snapshot:daily
の4つが maintenance になっていたので、4つとも clear, enable をしました。

さて、あとはrebootします。

。。。。ほうほう、なるほど。良い感じです。。。。
いつでも過去に安全に戻れそうです。
あとは、バックアップのためのハードディスクと連携させれば、枕を高くして寝られそうです。(_)

12月 05
2008

MacBook Whiteのバッテリーが、、、

200910301704.jpg

バッテリーちゃんと付いてるよ。(^_^)
でも、充電してくれません。
バッテリーの残量LEDを光らせると、最後の一つが付いて、、、あれ? 消えない。

外出時の持ち出し用なので、充放電の回数なんてしれているので、劣化も考えにくいし。。
そうか、例のパワーマネージャのリセットで治るかな。と、楽観視。
バッテリーを外して、電源ボタンを5秒以上押しっぱなし。。。。
再度、電源を入れると。。。。
お、良さそうジャン。。。(^_^)

が、数分後にまた充電をやめてしまう。。。。

こりゃ駄目だ、、、と思ったら、アップルがバッテリーの交換プログラムをやっているじゃないですか!
でも、いきなりバッテリーがお亡くなりになることもあるんですね。。。

10月 14
2008

今日は過ごしやすい一日。

そうだ、AppleがMacBookの新製品を発表しました。
何もかも、リニューアル!

なぜか、目の前にあります。(^_^)
Proくんの現役交代です。

しかし、なかなかの質実剛健です。
新しいタッチパッドも良い感じ。
MacBook Pro。頑張って、働いてもらいます。(^_^)

200910301706.jpg

9月 24
2007

しくじりました。

さっきまでBlogサーバがダウンしていることに気が付きませんでした。。。
たぶん、、、1ヶ月ほど。。(^_^;

ま、誰も見てないので気にしてませんが。。;p

11月 06
2006

忘れないために、、、

MacOS Xに標準ではいっているPHPはGDに対応してないんですよね。

ソースを持ってくるとか、Finkでバイナリをいれるとか、色々やり方はあるのでしょうが、他の環境まで入れ替えるのは大変。

そこで、見つけたのが、

http://www.entropy.ch/software/macosx/php/

だったんです。

先日、ふとしたことで思い出したので、これも何かの縁。とりあえず備忘録として書いておこうと思います。

ま、気まぐれです。