ページ

2011年7月27日水曜日

nvmとnode.jsをインストール

% git clone git://github.com/creationix/nvm.git ~/.nvm
% . ~/.nvm/nvm.sh
% setopt no_nomatch
% nvm sync

% nvm ls
で、最新版を確認。

% nvm install v0.4.10

zshrcに以下を追加
~/.nvm/nvm.sh
nvm use "v0.4.10"

参考:MacにCoffeeScriptをインストール - Jewel-mmo開発日記

追記:
% nvm alias default v0.4.10
とかしてやればnvm useを書いてやらなくてもいい。

MacPortsからHomeBrewに移行

MacPorts関連のものをアンインストール&削除
% sudo port -f uninstall installed
% sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

HomeBrewをインストール
$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

.zshrcを編集して、/usr/local/binの優先度を上げた。
export PATH=/usr/local/bin:$PATH

MacPortsで入れていたemacs23も消え去ったので入れ直す。

brew install emacs --cocoa
したらなんかコケる。
LionのせいなのかXcode4のせいなのか、はたまた両方か。

HEADならいけるっぽいので、あんまり気乗りはしなかったけどemacs24をインストール。
HEADをインストールするにはbazaarが必要らしいのでそれも先に。

brew install bazaar
brew install emacs --HEAD --cocoa

/usr/local/Cellar/emacs/HEAD/ にemacs.appがあるので、それを/Applicationsにコピー。

ターミナルのemacsで-nwを付けないとGUIのほうが起動するようになっていたので、zshrcに以下を追加
alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw'

この部分、なんかもっといい方法なかったっけ。

参考:
MacPortsからhomebrewに移行した - RENAISSANCE
Terminal.app+Visorの色設定とか、homebrewでのemacsとか - steuims bulkre

2011年7月24日日曜日

[Ubuntu][Apache2]PassengerでSinatraをサブディレクトリで動かす

Passengerで普通に動かすときと同じようにSinatraアプリを用意する。

app2/
├ config.ru
├ app.rb
├ public/
└ tmp/

http://ほげほげ.com/app2

で動かしたいとしたら
/etc/apache2/conf.d/passenger
を編集して(ファイル名はなんでもいい)
RackBaseURI /app2
を追加してやり、DocumentRootにapp2ディレクトリ下にあるpublicディレクトリのシンボリックリンクを作成する。

app2の置き場所が/home/user/app2であり、DocumentRootが/var/www/app/publicならば
sudo ln -s /home/user/app2/public /var/www/app/public/app2
/home/user/app2/public/へのシンボリックリンクを、/var/www/app/public/に、app2という名前で貼ってる。

そしてapache再起動
sudo /etc/init.d/apache2 restart

参考:
passengerでsinatraアプリをサブディレクトリで実行する - 橋本詳解
Passenger を使ってサブドメインではなく Rails と Sinatra を共存させる - oooooooo
passenger+sinatraで同一ドメイン内に複数のsinatraアプリを動かす方法 - Dive in Blue

[Ubuntu][Apache2]PassengerでSinatraを動かす

前にも書いたけど、整理的な意味も含めて。


Sinatraアプリの構成は以下の通り。
app/
├ config.ru
├ app.rb
├ public/
└ tmp/

publicもtmpも、中身は入ってなくてよい。

config.ruはこんな風に。
require 'rubygems'
require 'sinatra'
require './app.rb'

run Sinatra::Application

publicディレクトリをDocumentRootに指定してやる。

DocumentRootを指定するには
/etc/apache2/sites-available/default
の中身を編集する。

appディレクトリを/var/www/に置いている場合だったら
DocumentRoot /var/www/app/public
って書いてやればいい。

sudo /etc/init.d/apache2 reload
で、apacheをリロードすればもう動いてるはず。

アプリを再起動するには、tmpディレクトリにrestart.txtをアップロードすればいいそうな。

参考:
passengerでsinatraアプリをサブディレクトリで実行する - 橋本詳解
どうのこうの » さくらのVPSでsinatraを動かすまでのメモ