さくらインターネット : 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
と実行すると良いと思います




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[ruby]
CCBot/2.0 (https://commoncrawl.org/faq/)
25/03/26 20:46:38
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube