LeopardでのRubyGems

LeopardRubyGemsを使おうとすると、sourcesがロードできないと怒られる。

$ sudo gem install mysql
/opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- sources (LoadError)
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/source_info_cache.rb:6
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/remote_installer.rb:12
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems.rb:112:in `manage_gems'
        from /opt/local/bin/gem:10

これは、rootになるとGEM_PATHが空になってしまい、sourcesが探せなくなるのが原因。
次のようにすれば解決する。もっと賢い方法があったら教えてください。

$ sudo -s
# export GEM_PATH=/opt/local/lib/ruby/gems
# gem install mysql

ちなみにいれたかったMySQLドライバは、"port install rb-mysql"でインストールできましたとさ。

Proxy CGI

30分プログラム、その238。Proxy CGI。リクエストを肩代りするやつ。
昔(id:mzp:20060521)、似たやつを作ったけど、今回は画像ファイルなどにも対応した。

画像ファイルへのアクセス時に、Refererを殺したかったので作ってみた。

使い方

http://howdyworld.org/junk/referer.cgi?u=http://howdyworld.org/のようにアクセスすればいい。

ソースコード

#! /opt/local/bin/ruby -w
# -*- mode:ruby; coding:utf-8 -*-
#
# proxy.rb - web proxy
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/02/07 23:45:29
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

require 'open-uri'
require 'cgi'

cgi = CGI.new

open(cgi['u']){|io|
  io.meta.each{|key,value| puts "#{key}: #{value}" }
  puts ''
  print io.read
}