ローカルサーバーには FreeBSD を入れていて、そこで使用しているソフトは Ports システムで管理しています。そして、その管理には portupgrade というツールを使用しているのですが、久しぶりにその設定ファイルをいじったら次のようなエラーが出るようになってしまいました。
- ** Error occured reading /usr/local/etc/pkgtools.conf: undefined method `+' for nil:NilClass
 
結構間抜けな原因でしたが、ずっと気がつかないままだったのでメモしておきます。
 変更した設定ファイルは /usr/local/etc/pkgtools.conf。ここに、次のような記述を追加しました。
- ENV['PORTS_INDEX'] ||= ENV['PORTDIR'] + '/INDEX.local'
 
当然これは間違っています。次のが正しい記述。
- ENV['PORTS_INDEX'] ||= ENV['PORTSDIR'] + '/INDEX.local'
 
 ENV['PORTDIR'] ではなく ENV['PORTSDIR'] です。S が抜けていました。
 undefined method の意味を関数とか機能だと解釈していたため、何がいけないんだろうとずっと悩んでいました。何のことはない。未定義変数に文字列結合はできないという意味だったようです。portupgrade は Ruby で書かれていて、このエラーは Ruby によるもののようです。Ruby をある程度使っていないと、これはわからないですね。
TrackBack URI : http://blog.yoshitomo.org/archives/281/trackback
記事 URI : http://blog.yoshitomo.org/archives/281
注意 トラックバック先へのリンクを本文に含まない場合は、スパムとしてブロックされます。

 (1 votes, average: 4.00 out of 5)
