land.to で ruby に mechanize をインストール

  現在の Ruby のバージョンを確認する CGI



  
#!/bin/sh
echo "Content-Type: text/plain"
echo
echo "<pre>"
ruby --version 2>&1
echo "</pre>"
  

※ ファイルパーミッション : 744

jf サーバー
  
ruby 1.8.4 (2005-12-24) [i386-freebsd5]
  

if サーバー
  
ruby 1.8.5 (2006-08-25) [i386-linux]
  

sp サーバー
  
ruby 1.8.5 (2006-08-25) [i386-linux]
  

※ 2010/03/12 現在




  rubygems-1.3.5 をアップロード



RubyForge: RubyGems: ファイルリスト

jf サーバーは足りないファイルがあるようで、インストールできませんでした

※ さくらで以前動作確認したバージョンを投入

1) bin と gems と lib ディレクトリを作成
2) rubygems-1.3.5 内に以下のような setup.cgi を作成して実行

  
#!/bin/sh
echo "Content-Type: text/plain"
echo
echo "<pre>"
echo
RUBYLIB="/home/httpd/lightbox/public_html/lib"
export RUBYLIB
GEM_HOME="/home/httpd/lightbox/public_html/gems"
export GEM_HOME
RB_USER_INSTALL=true
export RB_USER_INSTALL
PATH="/usr/local/bin:/usr/bin:/bin:/home/httpd/lightbox/public_html/bin"
export PATH
ruby setup.rb --prefix=/home/httpd/lightbox/public_html 2>&1
echo
echo "</pre>"
  

パスは以下のような CGI で取得( DOCUMENT_ROOT=/home/httpd/lightbox/public_html )
  
#!/bin/sh
echo "Content-Type: text/plain"
echo
echo "<pre>"
echo
printenv 2>&1
echo
echo "</pre>"
  

以下のようなメッセージが出ますが、インストールされています。
( bin/gem があるのを確認します )

  
./lib/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rdoc/rdoc (LoadError)
	from ./lib/rubygems/custom_require.rb:31:in `require'
	from ./lib/rubygems/commands/setup_command.rb:352:in `run_rdoc'
	from ./lib/rubygems/commands/setup_command.rb:247:in `install_rdoc'
	from ./lib/rubygems/commands/setup_command.rb:120:in `execute'
	from ./lib/rubygems/command.rb:257:in `invoke'
	from ./lib/rubygems/command_manager.rb:132:in `process_args'
	from ./lib/rubygems/command_manager.rb:102:in `run'
	from ./lib/rubygems/gem_runner.rb:58:in `run'
	from setup.rb:35
RubyGems 1.3.5 installed
  



  gem で mechanize をインストール

以下の CGI でインストールします

  
#!/bin/sh
echo "Content-Type: text/plain"
echo
echo "<pre>"
echo
RUBYLIB="/home/httpd/lightbox/public_html/lib"
export RUBYLIB
GEM_HOME="/home/httpd/lightbox/public_html/gems"
export GEM_HOME
RB_USER_INSTALL=true
export RB_USER_INSTALL
PATH="/usr/local/bin:/usr/bin:/bin:/home/httpd/lightbox/public_html/bin"
export PATH
gem install mechanize --no-rdoc 2>&1
echo
echo "</pre>"
  

ドキュメントエラーが出ますが、必要なものはインストールされます。但し、mechanize が最新で
インストールされるので動きません。Ruby のバージョンに合わせて 0.9.1 をダウンロードして来て、
/public_html/gems/gems/mechanize-1.0.0/lib 内を置き換えます

  
ERROR:  While executing gem ... (Gem::DocumentError)
    ERROR: RDoc documentation generator not installed: no such file to load -- rdoc/rdoc
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.4.1
Successfully installed mechanize-1.0.0
2 gems installed
  



  mechanize 0.9.1 をダウンロードして置き換えて実行テスト

http://github.com/tenderlove/mechanize/downloads よりダウンロードできます

解凍して lib 以下を上書きしてから、以下のテストコードを実行します
( mixi アカウントが無い場合は他のページを試して下さい )

UTF-8N の LF で保存してファイルパーミッションを実行可能にします
  
#!/usr/bin/ruby
print "Content-type: text/html\n\n"

$stderr = $stdout

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

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

require 'rubygems'
require 'mechanize'

print RUBY_VERSION,"\n"


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
  














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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ