さくらインターネット : Ruby : rubygems-1.3.5 のインストール( + mechanize )

  2009/11/25 現在 : 切れ切れな WEB の情報



関連する記事
さくらインターネット : PuTTY ごった煮版で SSH 接続
さくらインターネット : PuTTY ごった煮版 + FDclone


ダウンロード
RubyForge: RubyGems: Project Info


Ruby の mechanize をさくらインターネットのサーバで実行したいのですが、インストールの基本環境としてrubygems が必要な事は少し調べればすぐ理解できます。Perl ではローカル PC ではいろいろやってましたし、特に違和感は感じませんでしたが、結論として情報が切れ切れで確実ではありません。

WEB 上の情報ページは常に日付を確認するようにすべきです

時間が経つと、WEB の情報はどんどん信頼性が薄れて行きます。さらに、新しくても、個々の環境での成功例だったりして、最初から抜け落ちていた情報も存在します。また、同じさくらサーバーだからと言って同じでは無いかもしれません。

ですから、 .cshrc が無い場合も考えられるので、その場合は rubygems-1.3.5 のインストール時に必要な .cshrc を最初に作る必要があります( 既にある場合は setenv の追加になります )

▼ .cshrc の無いさくらの env で表示されたパス
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/username/bin

.cshrc
setenv RUBYLIB /home/username/lib
setenv GEM_HOME /home/username/gems
setenv RB_USER_INSTALL true

保存したら、
source .cshrc
rehash

と、二つのコマンドを実行します( これはどこでも記述されていますが、Unix の基本処理です )。この後、env を実行して 環境変数が設定された事を確認します

RB_USER_INSTALL は、無いとビルドできません。これは比較的古い情報では出て来ないので、ユーザが意図しない環境の変更が行われた可能性があります。

RUBYLIB と GEM_HOME は、参考にしたページではインストールの後で設定しています。意味からして後からで良いのですが、先に設定しても問題は出ないと予想できますが、試したわけではありません。

それと、GEM_HOME は、後から mechanize をインストールする時のインストール先になるのですが、オリジナルのページに書いてある通りにしたら、なんか変なパス構成になってしまいました

/home/username/gems/gems/mechanize-0.9.3

オリジナルマニュアルの説明

>we recommend setting GEM_HOME prefix_dir/gems.
>(where prefix_dir is given as the valud of --prefix in the config step)



  インストール



特に見る必要はありませんが、こちらは英文のマニュアルページです

リモートでダウンロードして解凍してもいいですが( そういう説明ばかりでしたが )後々自分のやった処理を確認したり、直接パッケージ内を調査する事もあるので、ローカルで解凍してFTP でアップロードしました。( zip 版を使いました )

そして、PuTTY で接続して解凍したディレクトリをカレントディレクトリにして実行しました

▼ 手順
▼ アップロード
/home/username/ruby/rubygems-1.3.5

▼ インストールコマンドライン
%ruby setup.rb --prefix=/home/username

多少気になるメッセージが出ても、明示的にエラーを示す記述がなければうまくいっているはずです。( 変数が無いとかいう意味と推定されるようなワーニングが出ましたが、動いています )

▼ 以下のディレクトリが作成される
.gem
bin
lib

bin は、パスにはあるのですがさくらではディレクトリの実体はありませんでした。この時点で最初のアプリケーションがインストールされるわけです( 既にパスは通っていますが・・・ )

最後に rehash して下さい



  動作確認

実際は、PuTTY から動くだけでは動作確認にはなりませんが、インストールの確認にはなります。

require "rubygems" のテストです

% irb
irb(main):001:0> require "rubygems"
=> true

終了は exit です

Check_gem





  mechanize をインストール

ここからは、mechanize に限らず、パッケージのインストールです

確認は、インストール後 irb で、require "mechanize" を実行します

  
%gem18 install mechanize
  

mechanize-0.9.3 Documentation





  WEB ページから動作確認

.htaccess
  
AddHandler cgi-script .rb
  

※ cgi なので、属性を 755 に変更して下さい。
※ Mechanize へ渡す文字列のキャラクタセットは UTF8 である必要があります
※ ENV と $LOAD_PATH.push が無いとこちらの環境では動作していません

rubytest.rb
  
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"

ENV['GEM_HOME']="/home/lightbox/gems"

$LOAD_PATH.push('/home/lightbox/lib')

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
#mixiにログイン
page = agent.get("http://mixi.jp/")
form = page.forms.first
form["email"] = "メールアドレス"
form["password"] = "パスワード"
form.submit

#mixiエコーのページを取得
page = agent.get('http://mixi.jp/recent_echo.pl')

print page.body
  

WEB ページでは直接の問題が表示されないので、デバッグする場合は PuTTY でそのディレクトリに入って
ruby rubytest.rb
と実行すると良いと思います










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ