Mac OS X Lion にbazaarをインストールするときのTips (MacPortsを使わない編) 2011 年 12 月 8 日
今日は、Lion君にbazaarを入れてみたのです。MacPortsを使っても良いのですが、bazaarのレポジトリサーバを上げるとなると、apacheまでインストールされてしまいます。
今回は、Lion君の純正で入っているApacheやPythonを使いたいと思います。
まずは、http://wiki.bazaar.canonical.com/MacOSXDownloads からbazaar本体を持ってこようと思いますが、何とも悲しい注意があります。
Note: to use Bazaar in OS X Lion (10.7), you should change the default version of Python to 2.6 :
なに!? Lionにデフォルトで入っているPythonは2.7ですよ!
わざわざ2.6にバージョンを下げて使えと。。。すでにPythonにせっせと入れたモジュールが使えないじゃないか。
ここは、Python 2.7の環境で使ってやる! だって、既にApacheでPythonは2.7で動かしてるもん!!
ということで、ソースコードからインストールします。
Lion君はデフォルトでeasy_installが入っているので非常に簡単です。Pythonへのモジュールのインストールはこれを使います。
まずは、bazaarではCythonが必要なようなので、こいつからやっつけます。
wget http://cython.org/release/Cython-0.15.1.tar.gz
tar zxvf Cython-0.15.1.tar.gz
cd Cython-0.15.1
sudo python setup.py install
では、御本体のbazaarをいよいよインストール。
wget http://launchpad.net/bzr/2.5/2.5b3/+download/bzr-2.5b3.tar.gz
tar zxvf bzr-2.5b3.tar.gz
cd bzr-2.5b3
sudo python setup.py install
これで、bzrコマンドが使えるようになります。
bzrtoolを入れておくと色々役に立つので入れておきましょう。
wget http://launchpad.net/bzrtools/trunk/2.3.0/+download/bzrtools-2.3.0.tar.gz
tar zxvf bzrtools-2.3.0.tar.gz
cd bzrtools
sudo python setup.py install
ここからが、本番。
レポジトリサーバを立ち上げるためにApacheに色々登録しなければなりません。
その設定は、google君に聞けば教えてくれると思います。でも、それでも起動できない人はたぶんFastCGIでつまずいているのだと思います。
他のサイトの説明だと、bzr-smart.fcgiとか用意すればOKだと書かれているところが多いのですが、だいたいがこのbzr-smart.fcgiファイルで使っているfcgiモジュールの事が記載されていません。良く書いてあっても、
http://svn.saddi.com/py-lib/trunk/fcgi.py
からこのモジュールを持ってこい。でも、このサイトすでにありません。実は、WSGIのモジュール関連をまとめてflup.orgに引っ越されています。
ということで、flupモジュールをインストールすればOK
sudo easy_install flup
これで、すべてのモジュールがそろいました。bazaarのレポジトリサーバを立ち上げて、堪能してください。
あ、言い遅れましたが、私はレポジトリサーバはsvn派で、クライアント側でbzrを使っていたりします。(^_^)
Lion 君に Jenkins さんをインストールするときのちょっとしたTips 2011 年 11 月 16 日
サーバでJenkinsを使ってCIを行っているのですが、ちょっとした実験するときに自分のMac上で動かしてみたいと思い、jenkins-ci.org からネイティブパッケージ(Mac用インストーラ)を持ってきてインストールしてみました。
今回利用したJenkinsのバージョンは ver. 1.439 です。
インストーラを、ダブルクリック!
終了したら、http://localhost:8080/ をブラウザでアクセスすればOK!
のはずですが、おかしい (^_^;
Winstone Servlet Containerさんが、コンテナがないよ。ってエラーを返してきます。
ここは、素直に/var/log/system.log を見てみます。
java.io.FileNotFoundException: /Users/Shared/Jenkins/Home/war/META-INF/MANIFEST.MF (No such file or directory)
なるほど、例外が出てます。
たしかに、こんなファイルは無いですし、ディレクトリもありません。
では、自動起動用のplistを見てみます。
more /Library/LaunchDaemons/org.jenkins-ci.plist
ユーザがデーモン(daemon)さんで起動するようになってますね。
起動スクリプトの /Library/Application Support/Jenkins/jenkins-runner.sh は、問題なさそうです。
では、ファイルがないなら作成できなかっただけかな。と、思い、、、
ls -l /Users/Shares
あれれ、Jenkinsディレクトリが
drwxr-xr-x 2 root wheel 102 11 15 19:09 Jenkins
rootさんの所有になってますね。
daemonさんで起動されるのにパミッションが無いです。
sudo chown daemon /Users/Shares/Jenkins
として、オーナーをdaemonさんに変更します。
Jenkinsさんを再起動しましょう。
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
よしよし、これでhttp://localhost:8080/ で見慣れたJenkinsさんが現れてくれました。
でも、この対応ってあんまりよろしくないんですよね。
たとえば、Gitなんかを使うときに認証鍵とかを使う場面が多々あるのですが、daemonさんのHOMEは、/var/rootなので、/Users/Shares/Jenkins/HOMEに鍵をおいてもそのままじゃだめなんですよね。dscl コマンドでちゃんとユーザ設定しないと競合しちゃいます。ま、今回はこれでいいか。。。
これって、インストーラのバグなのかな? 私の環境だけなのか。
同じ症状の方がいらっしゃったら教えてください。バグ報告します。
追記:jenkins-ci.orgのBug Trackerにも同じ事象の方がいらっしゃいました。明らかBugですかね。