ふにょい日記

ふにょ・い 2 (形)[文]ク ふにょ・し 思い通りにならない為力が入らなくなる様。[派生] ――げ(形動)――さ(名)

さくらの共有サーバーにRubyGemsを入れてRuby/DBIを入れた時のメモ

2011-02-10 00:12:46 | Ruby
さくらインターネットのレンタル共有サーバーで Ruby/DBI を入れたかったので、
RubyGems をインストールして gem からインストールした時のメモ。

さくらインターネットでRubyGemsをインストールする(積み重ねた日々)
rubygemsをさくらインターネット共有サーバにインストールするには(Bluestick.JP)
さくらインターネットで、gem install すると「chown/chgrp: Operation not permitted 」と叱られる件の対応(JAM☆ぱん)
RubyGems の使い方(WebOS Goodies)
を参考にしました。
(※上記()内は、サイト名)

■ソースコードのダウンロード先をディレクトリを作って、ダウンロードして、展開する

wget の引数に指定する URL はRubyForge で最新バージョンの物を確認する。

%mkdir -p ~/local/src
%cd ~/local/src
%wget http://rubyforge.org/frs/download.php/74140/rubygems-1.5.0.tgz
%tar xzvf rubygems-1.5.0.tgz

■RubyGems をインストールする

%cd rubygems-1.5.0
%ruby setup.rb --destdir=$HOME/local/gems/1.8 --prefix=/

■設定する

インストールしたら、~/.cshrcを編集して、下記を追記する
-------- ここから --------
setenv GEM_HOME $HOME/local/gems/1.8
setenv RUBYLIB /usr/local/lib/ruby:$GEM_HOME/lib
set path = ($path $GEM_HOME/bin)

setenv RB_USER_INSTALL true

alias gem gem18
-------- ここまで --------
~/.cshrc を編集して保存したら、読み込みなおす。

%source ~/.cshrc
%rehash

さくらインターネットの場合 FreeBSD だからかシェルは通常 tcsh なので rehash を忘れない事。
あと、 RB_USER_INSTALL 環境変数に true を設定しないと、 gem install した時にコンパイルして出来た共有ライブラリ(.so)を chown/chgrp をしようとして権限が無い為に次のようなエラーが出て、インストールに失敗する。

install: /home/namilab/local/gems/1.8/gems/mysql-2.8.1/lib/mysql_api.so: chown/chgrp: Operation not permitted
*** Error code 71

■DBIをインストールする
%gem install dbi
%gem install dbd-mysql
%gem install dbd-sqlite3

dbd-mysql をインストールした時に「No definition for next_result」とかの「No definition for ~」が沢山出てくるけど、大丈夫っぽい(?)

NetBSD に nave を入れて Node.JS をインストールしようとして出来なかった

2011-02-07 23:55:01 | NetBSD
http://d.hatena.ne.jp/sasaplus1/20110104/1294076643 を参考に nave を導入して、 Node.JS と npm をインストールしようとしたけど、
Node.JS (0.3.8) のコンパイルに失敗したで御座るの巻。

上のページでは、 git でダウンロードしていたので、 git を入れるんだけど、
pkgsrc/misc/git ではなく、 pkgsrc/devel/scmgit で make install する。
(misc/git の方は、現在の gnuit の前の名前らしく、そちらの方が先にあったのに、後から現れたソースコードマネジメント(SCM)の git (某Linuxの人が作った奴)に押されて、名前を変えざるを得なかったらしい。)

git が入ったら
$ git clone git://github.com/isaacs/nave.git ~/.nave
で nave を持ってくる。

nave は、ただの bash のスクリプトで curl と GNU tar を使う。

bash は、 pkgsrc/shells/bash で make install した後、 /bin/bash からハードリンクする。
# cd /bin
# ln /usr/pkg/bin/bash
nave.sh の先頭行が #!/bin/bash になってるから。
スクリプトを書き換えればいいのかもしれないけど、 git clone でとってきてるから、余計な事はしない方が、更新とかで問題が無くて良いんではないかと考えた。

curl は、 pkgsrc/www/curl で make install 。

tar は、NetBSD に入っている tar では、足りないオプションがあるので、 GNU tar をインストールする ( pkgsrc/archivers/gtar で make install)。
そして、 nave.sh 起動前に TAR 環境変数に GNU tar へのパス( /usr/pkg/bin/gtar ) を設定する。
csh では、 setenv TAR /usr/pkg/bin/gtar
sh では、 TAR=/usr/pkg/bin/gtar; export TAR


node.js のインストールで、最新版は、
$ ~/.nave/nave.sh install latest
で、それ以外のバージョンは、
$ ~/.nave/nave.sh ls-remote
でどんなバージョンがあるかを確認して
$ ~/.nave/nave.sh install 0.3.7
とかする。

で、実際にやってみると、エラーになって失敗する。
node.js のソースは、 ~/.node/src/<バージョン> にあるんだけど、
その中の deps/c-ares/ares_free_string.c で ares_setup.h が見つからないというエラーが1番最初みたいだった。
ares_setup.h は、プラットフォーム毎のディレクトリ内にあるようだけど、 NetBSD のディレクトリが無いようだった。
NetBSD には、対応していないという事なのだろうか?

ここで、断念した。

【追記】
node.js のコンパイルに python を使うらしいというのを読んで、だいぶ前に python をインストールしてた。
pkgsrc/lang/python?? で make install して、
/usr/local/bin/python から /usr/pkg/bin/python?? にリンクしていた。
?? のバージョンは、後で、調べて書く。