D.

Node.js と CoffeeScript を入れる。

サーバーサイド JavaScript の Node.js と、その JavaScript にトランスコンパイルされる新しいプログラミング言語 CoffeeScript の勢いはとどまるところを知らないッ!というわけで、これらをサクッっとインストールするためのスクリプトを書いた。


CoffeeScriptGitHub から入れる install_coffee.sh (Node.js が予め必要)

setup_environment() {
    test -n "$2" || SUDO=sudo
    test -n "$2" && SUDO=
}

gitpull() {
    echo "Pulling $1 $3"
    if [ -d $HOME/local/$1/$3 ]; then
        cd $HOME/local/$1/$3
        git pull
    else
        cd $HOME/local/$1
        git clone git://github.com/$2/$3.git
    fi
    test -L $HOME/$3 && rm $HOME/$3
    ln -fs $HOME/local/$1/$3 $HOME/$3
}

gitpull_all() {
    test -d $HOME/local/github || mkdir -p $HOME/local/github
    gitpull github jashkenas coffee-script
}

make_and_install_coffee() {
    $SUDO bin/cake install
}

install_coffee() {
    test -d $HOME/local/github/coffee-script || exit 1
    cd $HOME/local/github/coffee-script
    make_and_install_coffee $*
}

main() {
    setup_environment $*
    gitpull_all
    install_coffee $*
    coffee -v
}

main $*


Node.js と npm を入れる install_nodejs.sh

setup_environment() {
    test -n "$1" || VERSION=0.6.8
    test -n "$1" && VERSION=$1
    NODE=node-v$VERSION
}

save_sources() {
    sudo mkdir -p /usr/local/src/node.js
    sudo cp -av $NODE /usr/local/src/node.js
    sudo chown -R root:root /usr/local/src/node.js
}

install_npm() {
    sudo sh -c 'curl http://npmjs.org/install.sh | sh'
}

install_node() {
    setup_environment $*

    mkdir install_node
    cd install_node

    wget http://nodejs.org/dist/v$VERSION/$NODE.tar.gz
    tar xzvf $NODE.tar.gz
    cd $NODE
    ./configure
    make
    sudo make install
    cd ..
    test -n "$2" || save_sources
    cd ..
    rm -rf install_node
    install_npm $*
}

install_node $*
追記 (2012/1/26)

ついでに npm なパッケージをまとめて入れる install_npm.sh

install_npm() {
    test -n "$1" && export NPM=$1/bin/npm
    test -n "$1" || export NPM=npm
    sudo $NPM install js2coffee -g
    sudo $NPM install mysql -g
    sudo $NPM install express -g
    sudo $NPM install ejs -g
}

install_npm $*