Как я могу запустить команды командной строки на heroku

Вот мое задание по рейку в приложении Rails 4 ниже.

 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.

        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 

Спасибо

1 ответ

Вы можете использовать https://github.com/heroku/heroku-buildpack-multi, чтобы объединить https://github.com/ddollar/heroku-buildpack-apt и ваш рубиновый сборочный пакет.

Создать .buildpacks файл:

$ cat .buildpacks
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-ruby

И Aptfile файл, содержащий ваши пакеты:

$ cat Aptfile
traceroute

Затем вам нужно установить heroku-buildpack-multi в качестве вашего собственного buildpack-пакета:

$ 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
 ...
Другие вопросы по тегам