У меня есть сценарий Rails, который я запускаю как на OS X Lion, так и на Debian GNU/Linux 7.0 (wheezy). Это простой сценарий:Почему Rails бегун shebang не работает на Debian, но работает на OS X?
#!/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, поэтому shebang будет #!/opt/thermyos.com/server/script/rails runner
, тогда он отлично работает на Debian, но не на OS X (Rails не загружен и поэтому каждая строка не работает). Неважно, где я запускаю сценарий или использую ли я относительный или абсолютный путь. Печатная среда почти идентична. Почему неудача на Debian, так как это именно вывод shebang, просто запустив rails runner
? FWIW, /opt/thermyos.com/ экспортируется из Debian и NFS-смонтированных на OS X.
Thank вы за ответ. Я проверил, что env находится в/usr/bin на обеих платформах. Нет файлового сервера. Каталог /opt/thermyos.com/ экспортируется из Debian и устанавливается на OS X, и на каждой платформе используется rvm для управления своими Rails. Исполнители живут в разных местах, но я ожидаю, что env предоставит соответствующие пути. Я ценю все, что вы можете указать, чтобы искать, поскольку у меня ничего нет. – RussK