Rus*_*ssK 5 ruby ruby-on-rails shebang
我有一个 Rails 脚本,可以在 OS X Lion 和 Debian GNU/Linux 7.0 (wheezy) 上运行。这归结为一个简单的脚本:
#!/usr/bin/env /opt/thermyos.com/server/script/rails runner
ENV.each do |k, v|
puts "#{k} = #{v}"
end
Run Code Online (Sandbox Code Playgroud)
问题是/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 导出,并安装在 OS X 上的 NFS。
首先,env你的 Debian 机器上的路径是否不同?which env会告诉你的。
其次,我有些困惑。听起来您正在 OS X 和 Debian 机器上安装文件服务器,并尝试在这两种环境中的服务器上运行 Ruby 可执行文件。很确定这行不通——您需要为您的 Debian/Linux 系统编译 Ruby,并为您的 OS X 系统编译另一个 Ruby。
也许我误读了,但我想我会指出这一点。
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |