-bash: ngrok: команда не найдена

Я пытаюсь интегрировать Twilio API в свое приложение Rails. В учебнике, который я нашел, предлагалось использовать ngrok для размещения моего приложения в Интернете (вместо работы на localhost). Я установил и заархивировал ngrok, и когда я пытаюсь вызвать его из каталога, в котором он находится, я получаю:

-bash: ngrok: command not found.

Кто-нибудь знает, в чем может быть моя проблема? Также может кто-нибудь объяснить, что делает ngrok по сравнению с развертыванием на heroku? Если бы heroku работал так же, я бы просто сделал это. Однако я новичок в использовании API, поэтому мне непонятно, почему я использую ngrok.

Спасибо!


person Lauren F    schedule 19.10.2014    source источник
comment
Я хочу сказать, что это не по теме ... Я считаю, что это касается SuperUser или Unix и Linux. (Хотя я понимаю, почему вы поместили это в Stack Exchange, он лучше всего подошел бы для других сайтов, поскольку посвящен работе с Linux, а не программированию.)   -  person Piper McCorkle    schedule 19.10.2014


Ответы (3)


Если двоичный файл не находится в одной из папок, хранящихся в переменной окружения $ PATH, вы должны указать как минимум относительный путь к вашему текущему местоположению. Итак, если вы находитесь в той же папке, что и двоичный файл, вы должны вызвать его с помощью ./ngrok

person Rambo Ramon    schedule 19.10.2014
comment
Также убедитесь, что файл существует с ls;) - person Piper McCorkle; 19.10.2014

Чтобы получить доступ из любого каталога, мне пришлось переместить двоичный файл в $ PATH

mv ngrok /usr/local/bin 

чтобы вызывать исполняемый файл отовсюду.

ОБНОВЛЕНИЕ: brew install ngrok больше не работает, потому что:

Error: No available formula with the name "ngrok"
Upstream sunsetted 1.x in March 2016 and 2.x is not open-source.

Поэтому вам необходимо загрузить двоичный файл с https://ngrok.com/download.

Что касается вопроса «Что делает ngrok по сравнению с Heroku?», Ngrok полностью отличается от Heroku, который является более сложным. Ngrok позволяет вам открыть работающий локальный сервер через Интернет, используя безопасный туннель. Heroku - это платформа облачного хостинга для веб-приложений. Чтобы использовать ngrok, вы можете просто запустить свой локальный сервер и открыть его через ngrok. Любой, кто подключается через ngrok к вашему серверу, на самом деле общается с сервером, на котором работает ВАША локальная машина. С Heroku ваше приложение работает на размещенных виртуальных машинах в облаке. Это чрезмерное упрощение, но короче говоря, NGROk хорош для очень быстрого тестирования вашего сервера некоторыми удаленными пользователями. Это также может быть полезно для передачи файлов / данных и т. Д. Из виртуальной среды, то есть облачного сеанса ssh.

person lacostenycoder    schedule 29.11.2015
comment
Лучший ответ. - person Sajjad Murtaza; 28.02.2017

команда изменилась на: ngrok http 80

Примеры от ngrok:

ngrok http 80                    # secure public URL for port 80 web server
ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
ngrok http foo.dev:80            # tunnel to host:port instead of localhost
ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443
ngrok start foo bar baz          # start tunnels from the configuration file
person rachelzuzu    schedule 13.04.2016
comment
Это не отвечает на вопрос. Пользователь хотел знать, как базовая команда ngrok возвращает command not found. - person lacostenycoder; 05.05.2017