ローカルサーバーには 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
注意 トラックバック先へのリンクを本文に含まない場合は、スパムとしてブロックされます。