Mac OS X 10.5 - MAMP+DBD::mysql
MAMPなクライアント環境でweb開発のテスト中です。
Apache+PHP+mySQLは、さくさく動いています。
ところが、サーバで動いていたCGI(perl) が動きません。
use DBI;
ここが原因。
この後、試行錯誤をいろいろとして、勉強になりました。
最終的に理解したことと手順をまとめると…
-
- DBIとは、perlのモジュールで、DBインタフェースとして必要。
- DBにmySQLを使うなら、ドライバとしてDBD::mysqlも必要。
- MAMPに、perlは、含まれていない。*1
- MAMPな環境では、perlは、OSにくっついてきたのを使っている。
- つまり、OSにくっついてきたperlに、モジュール(DBI, DBD::mysql)を追加する必要あり。
- DBIは、cpanコマンド(perlのモジュール管理ツール)でインストール。
- DBD::mysqlもcpanコマンドでインストール出来れば苦労はないが、MAMPに合わせたコンパイルの引数を指定するためには、makeしなければならない。
- makeのためには、DBD::mysqlとmySQLのソースが必要となる。
- perlに、mySQLの場所を教えてあげる必要がある。
これが理解出来てないと、検対処療法に追われる感じになるんだよね。
解決策っぽいのを見つけても、環境が違ったりして…。
一番便利だったのは、MAMPフォーラム 「DBI, DBD-mysql will work」。
MAMPに特化しているだけあって、一番スマートな方法じゃあないでしょうか。
DBIのインストールの次から、私なりに訳すと次のような感じ。
DBDの構築
1. mysql_configを探す。(私の場合は /Applications/MAMP/Library/bin/ にある)
2. MAMPと同じバージョンのMySQLをダウンロードして、解凍する。
(訳注.mySQLのサイトからでもよし、MAMPのサイトでソース版をダウンロードしてもよし)3. includeディレクトリを /Applications/MAMP/Library/ディレクトリの下に移動する。
4. libディレクトリの内容を /Applications/MAMP/Library/lib/mysql/ディレクトリにコピーする。
5. make file を作る: sudo Perl Makefile.PL --mysql_config=/Applications/MAMP/Library/bin/mysql_config
(訳注.mysql_configを指定することによって、この環境用のコンパイル引数を調べて設定してくれる)6. sudo make
7. sudo make install*2
追加設定*3
DBI と DBD-mysql にMySQLライブラリの場所を教える。
1. /usr/localにmysqlディレクトリ作成: sudo mkdir /usr/local/mysql
(訳注.すでに/usr/local/mysql(他のmysqlへのリンク)があったので、あらかじめ削除しました)2. シンボリックリンクを作る:
sudo ln -s /Applications/MAMP/Library/lib/mysql lib
sudo ln -s /Applications/MAMP/Library/include include3. perlからMySQLのソケットを見つけるために、/tmpにシンボリックリンクを作成する:
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
ダウンロードしたmySQLは、削除しちゃってもOK。
(/Applications/MAMP/Library/includeも、/Applications/MAMP/Library/lib/mysql/にコピーしたファイルも削除しちゃっていいんでしょうが、また必要になるかもしれないので、残してあります。)
MAMPとは、まだ付き合っていくことになりそう。
ここまでくると、簡単インストールとは言えないけどね。
Mac OS X 10.5 - MAMP+ImageMagick
MAMPのインストール
MacBookでPHP+MySQLのテストをしたかったので、MAMP1.7.2 をインストールしました。
MAMPのインストールは、簡単なので内容は省略。
次に、以前別の環境で動いていたPHPコードを動かしたら、エラーが…。*1
sh: convert: command not found
そうだ、exec関数で、ImageMagick を 呼び出してたんだ。
インストールしなきゃ。
インストール方針
OSXにオープンソースなソフトウェアをインストールするには、いろいろ選択肢*2があるようですね。
1.ゴリゴリ派*3
2.パッケージ管理ツール派
1)MacPorts
2)Fink
2の2)Finkを選択。
さらに、バイナリインストールか、ソースインストールか。
まずは、簡単なバイナリインストールで。無理だったらソースインストールにする、というスタンスにしました。
Fink、ImageMagickインストール
初めての方にお勧めするというFinkのインストール説明*4にしたがって、「Fink 0.9.0 バイナリインストーラ (Intel) 」をダウンロードして、インストール。
いろいろ書いてあって試したけれど、最新のバイナリインストーラがインストール出来れば、とりあえずはいいのかな。
ImageMagick は、コマンドラインから
fink install imagemagick
で、OK。
MAMPのバグ!?
再度、PHPコードを動かしてみると、次はこんなエラーが…。
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /Applications/MAMP/Library/lib/libjpeg.62.dylib
ライブラリがうまくリンク出来てない、って意味でしょうか。
調べまくった末に行き着いた先は、MAMPのフォーラム。
(注.翻訳させてるので開くのが遅いです。英語が得意な方は、原文でどうぞ)
2007年3月13日午後6時30分のアダムさんのコメントに注目。
Here is something you can do that may help you out.
Comment out the 2 lines in the file /Applications/MAMP/Library/bin/envvars:DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATHso that they read:
#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATHand restart Apache? There is probably some fine tuning necessary but it should help in many cases.
Please let us know if it works for you.
「/Applications/MAMP/Library/bin/envvarsというファイルのライブラリパスの指定をコメントアウトして、Apacheを再起動すれば、いいかもよ。」
ってことかな、と思って試してみるとエラーなし。ImageMagickもちゃんと実行できてた!
遠い空の下のアダムさんに感謝!!
追記:
ところで、この envvars って何なんだろう、と気になって調べました。
分かったのは、MAMPがapacheを起動するまでの仕組み(一部)。
- /Applications/MAMP/bin/start.sh が実行される。
つまり、apache起動前に環境変数の設定をするのが目的のようです。*5
apacheの設定ファイル(httpd.conf)でも、環境変数の設定とか引き渡しがあるけれど、こうやってもいいのですね。
意味が分かったから、envvars の最後に
PATH=$PATH:/sw/bin
と追加して、apacheを再起動しました。
phpinfo で、Apache Environment の PATH を確認すると、/sw/bin が追加されています。
これで、絶対パスで指定しなくてもよくなります。すっきり。
Max OS X 10.5 - Ruby-GetText
Railsアプリケーションを日本語化(というか国際化)する Ruby-GetTextライブラリを使ってみました。
Ruby-GetTextのインストール
深く考えずに
$sudo gem install gettext
したら、自動的に gettext(1.92.0) がインストールされました。
途中で、バージョンが選択できるかと思ったのに。
このままでは、日本語化への第一歩(後述)の修正をして、WEBrickサーバを再起動したときに
…aliasing.rb:28:in `alias_method': undefined method `label' for class `ActionView::Helpers::FormBuilder' (NameError)
と出て、サーバが起動しません。
gettext1.90 にすると、回避できるらしいのですが…
結論。
rails1.2系のときは、gettext1.10.0 を使うべきみたいです。
(gettext1.90リリースノートに「Rails 1.2.xは対象外とします」とあります*1)
先に入れたgettext1.92.0を削除して
$sudo gem uninstall gettext
バージョンを指定して再度インストールしておきます。
$sudo gem install gettext -v 1.10.0
日本語化への第一歩
config/environment.rb(先頭に2行、最終行に1行追加)
$KCODE = 'u'
require 'jcode'
(省略)
require 'gettext/rails'
app/controllers/application.rb
class ApplicationController < ActionController::Base
init_gettext 'プロジェクト名'
end
変更したら、WEBrickを再起動するのを忘れずに。
エラーメッセージが日本語で出る!うれしい!!
GNU gettext のインストール
日本語化をもう一歩進めるために、msginit, msgmergeコマンドが使えるように GNU gettext をインストールします。
目的にどんぴしゃなgettextのインストール(Mac OSX)を参考にインストールしました。(Leopard対応、大感謝!!)
-
-
-
- libiconv-1.12
- expat-2.0.1
- gettext-0.17
-
-
Mac OS X 10.5 - eclipse3.4
Ruby on Rails を学び始めました。
が、Xcodeのエディタを使っていたら、ウィンドウをたくさん開いて扱いにくくなってきたので、統合開発環境なるEclipse(+RedRails)をインストールすることにしました。*1
eclipse3.4のインストール
Eclipse for RCP/Plug-in Developers*2をダウンロードして解凍し、アプリケーション(/Applications)にコピーする。
eclipse3.4の日本語化(もっと詳しく…)
Pleiades(eclipse日本語化プラグイン)から最新版(1.2.3.p4)ダウンロードして解凍する。
Finderで、/Applications/eclipse/Eclipse を右クリックし、「パッケージの内容を表示」を選択する。
Contents/MacOS/eclipse.ini の最終行に
-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
を追加する。
eclips3.4にReadRails1.0プラグインをインストール(もっと詳しく…)
メニューから、「EclipsーPreferences(設定)」をクリックする*3。
項目から、一般、機能を選択して、「クラシック更新」をチェックして、OKをクリックする。
メニューから、「ヘルプーソフトウェア更新ー検索とインストール」をクリックする。
「インストールする新規フィーチャーを検索」をクリックし、次へ。
新規リモートサイトを追加する。
-
- name: Aptana Studio
- URL: http://update.aptana.com/install/studio/3.2/
あとは、画面の指示にしたがって、Aptana Studio をインストールする。
途中で、フィーチャーの確認ウィンドウが出るので、「すべてをインストール」をクリック。
SDKの再起動を促されたら、素直に「はい」をクリック。
Eclipse再起動後、Aptana開始ページが開くので、Pluginsの中にある Ruby on Rails のインストールをクリックして指示に従っていくと、RedRails1.0 がインストールされる。
MacBook MB403J/A
Fedoraは、月光、狼男と来て、硫黄に進化したらしいですね。
もう日記のタイトル変えなきゃ…。
さて、最近の相棒は、レパードです。
これまで、macは、鬼門のようになんとなく遠ざけた存在でした。
が、何のことはない、osxになったら、ベースはunix(BSD)なのでした。
まるで、linux上でmac風ウィンドウマネージャが動いているようです。
あまり話したことのなかったクラスメイト、話してみたら気が合うじゃん、って感じ。
unixをかじったこともあったけど、時代の波に押されてしかたなくwindowsを使っている、そこのあなた(=ちょっと前の私)に教えてあげたい。
「mac使えます!!!」
MacBookを、Apple Premium Reseller で購入しました。
アップルストアをもっとフレンドリーにした感じのいいお店でした。
正規代理店とは名ばかりの、よく分かってない電気屋さんとは違って、商品知識もしっかりしています。
しかも、安い。
MacBook MB403J/A にメモリを増強してもらって、定価178,320円 のところ、157,400円(セゾンカードで冬のボーナス一括払い)。
さらに、ポイント(1,866p)付き。
オープン記念でマイクロソフトの 2,000円 位のマウスもゲット。
アンケートに答えて非売品のボールペンストラップもゲット。
ここ一週間で一気にマックユーザと化してしまいました。
以下はこれまでにやったことのメモ。
- ソフトウェア・アップデート
- Mailの設定
- Xcodeのインストール(2枚目のCD) …Apple提供開発ツール
- MAMPのインストール …Apache,MySQL,PHPがワンセットになったもの(既存のApacheは無効に)
- Firefox3.0.1のインストール(+FireFTP 1.0,Firebug 1.2.0b7)
- PEAR Services-Amazon をインストールしてPHPでAmazon Webサービスを使ってみる
- VLCをインストール
今までやっていたようなことは、問題なくできました。
戸惑ったのは、「・」が「option+/」だったことぐらいでしょうか。
次は、Ruby on Rails をやってみよう。
Fedora Core 5 - last.fm
Web2.0のカンファレンスで講演があって気になっていたlast.fm。
日本語版もあったんだね。ユーザは、まだ日本人は少なそうだけど。
音楽版ミクシィというふれこみで、興味津々。
「last.fmをダウンロード」をクリックして、LastFM_Linux_1.0.0b.tar.bz2をダウンロードして解凍したらおしまい。(ユーザ登録は必要。)
解凍したフォルダの./lastfm を実行すると last.fmプレイヤーが開きます。
Artist:clare fisher で 「Find it!」をクリックすると、聞こえる聞こえる!
どんどん好みのプレイヤーになっていくのだろうか、わくわくするなあ。
最後のFMって名は伊達じゃないねえ。
ちょいWeb2.0体験でした。
Fedora Core 5 - フォント(M+2P+IPAG)
デフォルトの日本語フリーフォント Sazanami が気に入らなくなってきたので、フォントを変えることにしました。
Fedora Core 5 インストール個人的ノートからの受け売りです。
おかげさまで、ホントに見違えるような見栄えが実現しました。感謝!