OS X Lion と Debian GNU/Linux 7.0 (wheezy) の両方で実行する Rails スクリプトがあります。それは簡単なスクリプトにかかっています:
#!/usr/bin/env /opt/thermyos.com/server/script/rails runner
ENV.each do |k, v|
puts "#{k} = #{v}"
end
問題は /usr/bin/env です。このスクリプトは Debian では実行されず、エラーが発生します/usr/bin/env: /opt/thermyos.com/server/script/rails runner: No such file or directory
。OS X では問題なく動作し、Rails 環境を作成します。しかし、/usr/bin/env を削除してシバンを削除すると、#!/opt/thermyos.com/server/script/rails runner
Debian では正常に動作しますが、OS X では動作しません (Rails がロードされていないため、すべての行が失敗します)。スクリプトをどこから起動するか、または相対パスと絶対パスのどちらを使用するかは問題ではありません。印刷環境はほぼ同じです。rails runner
Debian で失敗するのはなぜですか?実行するだけで正確に出力されるためです。FWIW、/opt/thermyos.com/ は Debian からエクスポートされ、OS X に NFS マウントされています。