Kas*_*ail 1 command-line ruby-on-rails heroku
这是我在下面的Rails 4应用程序中的rake任务.
task :traceroute_ip => :environment do
puts "start.........................."
ip = IpAddress.first
ip_address_output = `traceroute -q 1 -n google.com`
ip.update_attributes(traceroute_output: ip_address_output)
end
Run Code Online (Sandbox Code Playgroud)
我在下面的这一行上有错误,在我的Rails app rake任务中本地正常工作.
ip_address_output = `traceroute -q 1 -n google.com`
Run Code Online (Sandbox Code Playgroud)
错误是
/app/vendor/bundle/ruby/2.0.0/bin/rake: No such file or directory - traceroute
Run Code Online (Sandbox Code Playgroud)
以下命令将在任何ubuntu终端上运行
traceroute -q 1 -n google.com
Run Code Online (Sandbox Code Playgroud)
我如何在heroku上安装"traceroute"?
sudo apt-get install traceroute
Run Code Online (Sandbox Code Playgroud)
谢谢
你可以使用 heroku-buildpack-multi来组合heroku-buildpack-apt和你的ruby buildpack.
创建一个.buildpacks
文件:
$ cat .buildpacks
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-ruby
Run Code Online (Sandbox Code Playgroud)
以及Aptfile
包含您的包的文件:
$ cat Aptfile
traceroute
Run Code Online (Sandbox Code Playgroud)
然后你需要将heroku-buildpack-multi设置为自定义buildpack:
$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git
Run Code Online (Sandbox Code Playgroud)
更新:尝试运行traceroute.db
而不是traceroute
:
$ heroku run traceroute.db -q 1 -n google.com
Running `traceroute.db -q 1 -n google.com` attached to terminal... up, run.6887
traceroute to google.com (74.125.228.68), 30 hops max, 60 byte packets
1 172.16.231.221 0.116 ms
2 10.135.67.1 2.812 ms
3 100.70.9.1 2.154 ms
4 100.70.9.40 2.344 ms
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1752 次 |
最近记录: |