这是我在下面的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
我在Rails app rake任务中本地正常工作的这一行有错误。
ip_address_output = `traceroute -q 1 -n google.com`
错误是
/app/vendor/bundle/ruby/2.0.0/bin/rake: No such file or directory - traceroute
以下命令将在任何ubuntu终端上运行
traceroute -q 1 -n google.com
我如何安装" traceroute"在heroku上?
sudo apt-get install traceroute
由于
答案 0 :(得分:5)
您可以使用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
包含您的软件包的Aptfile
文件:
$ cat Aptfile
traceroute
然后你需要将 heroku-buildpack-multi 设置为自定义构建包:
$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git
更新:尝试运行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
...