5

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 runnerDebian では正常に動作しますが、OS X では動作しません (Rails がロードされていないため、すべての行が失敗します)。スクリプトをどこから起動するか、または相対パスと絶対パスのどちらを使用するかは問題ではありません。印刷環境はほぼ同じです。rails runnerDebian で失敗するのはなぜですか?実行するだけで正確に出力されるためです。FWIW、/opt/thermyos.com/ は Debian からエクスポートされ、OS X に NFS マウントされています。

4

3 に答える 3

0

まず、envDebian ボックスの別のパスに住んでいますか? which env教えてくれます。

第二に、私はやや混乱しています。OS X と Debian マシンの両方にファイル サーバーをマウントし、両方の環境でそのサーバー上で Ruby 実行可能ファイルを実行しようとしているようです。それが機能しないことは確かです。Debian/Linux システム用にコンパイルされた Ruby と、OS X システム用にコンパイルされた別の Ruby が必要です。

読み間違いかもしれませんが、指摘しておこうと思います。

于 2013-05-23T04:36:44.797 に答える