====== Ruby - 共有サーバー等でのRubyGemsインストール ====== ===== はじめに ===== 私が利用している「さくらインターネット」での、RubyGemsによるモジュールのインストール方法。\\ ここのレンタルサーバーではスタンダードプラン以上であればSSHを使ったシェルログインが利用できる。\\ ==== 1. RubyGems用の作業ディレクトリを作成する ==== $ mkdir -p ~/local/src ==== 2. RubyGems本体をダウンロードし、解凍する ==== $ cd ~/local/src $ wget http://rubyforge.org/frs/download.php/76073/rubygems-1.8.24.tgz $ tar xzvf rubygems-1.8.24.tgz ※最新のバージョンは[[http://rubyforge.org/projects/rubygems/|ここ]]で確認を。 ==== 3. RubyGems本体をインストールする ==== $ cd rubygems-1.8.24 $ ruby setup.rb config --prefix=$HOME/local ==== 4. 環境設定ファイルを開き環境変数を設定する ==== $ vi ~/.cshrc # $FreeBSD: src/share/skel/dot.cshrc,v 1.14.6.1 2008/11/25 02:59:29 kensmith Exp $ # # .cshrc - csh resource script, read at beginning of execution by each shell # # see also csh(1), environ(7). # alias h history 25 alias j jobs -l alias la ls -a alias lf ls -FA alias ll ls -lA # A righteous umask umask 22 set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin) setenv EDITOR vi setenv PAGER more setenv BLOCKSIZE K setenv PKG_DBDIR ~/db/pkg setenv RUBYLIB $HOME/local/lib setenv GEM_HOME $HOME/local/lib/rubygem setenv RB_USER_INSTALL true if ($?prompt) then # An interactive shell -- set some stuff up set filec set history = 100 set savehist = 100 set mail = (/var/mail/$USER) if ( $?tcsh ) then bindkey "^W" backward-delete-word bindkey -k up history-search-backward bindkey -k down history-search-forward endif endif ==== 5. 環境変数の設定を反映させる ==== $ source ~/.cshrc ==== 6. 通常通りインストールを行う ==== (環境変数RB_USER_INSTALLをtrueにしてから実行すること) $ setenv RB_USER_INSTALL true $ gem install hoge ==== 7. スクリプト側での設定も併せて行う ==== ライブラリの場所を指定してやらないと動かないようなので、インストールしたライブラリのうち利用するものの場所を教えてやる必要がある。 #!/usr/bin/ruby # coding: utf-8 Dir.chdir(File.dirname($0)) $LOAD_PATH.push("/home/[USER_NAME]/local/lib") $LOAD_PATH.push("/home/[USER_NAME]/local/lib/rubygem/gems/libraryA-X.X.X/lib") $LOAD_PATH.push("/home/[USER_NAME]/local/lib/rubygem/gems/libraryB-X.X.X/lib") $LOAD_PATH.push("/home/[USER_NAME]/local/lib/rubygem/gems/libraryC-X.X.X/lib") require "libraryA" require "libraryB" require "libraryC"