雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|

2009-05-08 [長年日記]

[FreeBSD][Ruby] gem tips

前回のエントリに書いたように、RubyGemの管理をportsベースからgemコマンドベースに切り替えて使っていたんですが、webgenをアップデートしようとしたら、

# gem install webgen
Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions.  This could take a while...
ERROR:  Error installing webgen:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb install webgen
checking for fcgiapp.h... no
checking for fastcgi/fcgiapp.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

とか言われてしまった。FastCGIがインストールされていないのが原因らしい。最初はfcgiイラネ、とか思って無しでやる方法をグーグル先生にお尋ねしてみたものの、挫折。

あきらめてFastCGIをインストールしてからもう一度試すも、同じエラー。こらは自前コンパイルではおなじみのパスの問題というのはすぐに分かったので、gemのオプションを探す。

以下のようにすれば良いらしい。

 # gem install webgen -- --with-opt-dir="/usr/local"

ああ、思い出してきた。${PREFIX}/<アプリ名>/{bin|lib|include}スタイルではなく、/usr/local/{bin|lib|include|etc}スタイルを維持しているFreeBSDが好きなんだった。 Windows 98/NTとかでC:\Program Files\<アプリ名>の下に一時ファイルを作る(ので管理者権限じゃないと動かなくなる)行儀の悪い仕様のプログラムに泣かされたり、Solarisが/opt以下にアプリを入れるようになって戸惑ったりしたのが懐かしい。Mozzilaのプロファイル周りでもなんか痛い目にあったような気が…。