====== 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"