-bash: ngrok: 命令未找到。

16

我正在尝试将Twilio API集成到我的Rails应用程序中。我找到的教程建议使用ngrok将我的应用程序放在互联网上(而不是在本地主机上工作)。我已经安装和解压了ngrok,并且当我尝试从它所在的目录调用它时,出现以下错误:

-bash: ngrok: command not found.

有人知道我的问题是什么吗?还有人能解释一下ngrok和部署到Heroku有什么区别吗?如果Heroku可以达到同样的效果,我就直接用它了。不过,我是第一次使用API,所以不清楚为什么要使用ngrok。

谢谢!


1
我想说这个话题不太相关... 我认为这应该放在SuperUser或Unix&Linux上。尽管我明白你为什么把它放在Stack Exchange上,但由于它是关于操作Linux而不是编程,所以最适合其他网站。 - Piper McCorkle
4个回答

34
如果二进制文件不在存储在环境变量 $PATH 中的文件夹中,则必须至少提供相对于当前位置的路径。因此,如果二进制文件与您在同一文件夹中,则必须使用 ./ngrok 调用它。

还要确保文件存在,可以用 ls 命令 ;) - Piper McCorkle

18

要从任意目录访问,我必须将二进制文件移动到$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完全不同,Heroku更加复杂。ngrok允许您使用安全隧道在互联网上公开运行中的本地服务器。Heroku是用于Web应用程序的云托管平台。要使用ngrok,只需运行您的本地服务器并通过ngrok公开它。通过ngrok连接到您的服务器的任何人实际上都在与在您的本地机器上运行的服务器通信。使用Heroku时,您的应用程序在云中托管的虚拟机上运行。这是一种过度简化,但简而言之,NGROk非常适合通过某些远程用户非常快速地测试您的服务器。它也可以用于在虚拟化环境(即云ssh会话)内传输文件/数据等。


1
更好的答案。 - Sajjad Murtaza

0

以下的技巧对我很有用

我从以下网站下载了ngrok: https://ngrok.com/download

解压文件夹并将带有扩展名(Unix可执行文件)的ngrok文件放入/usr/local/bin文件夹中。


-1

该命令已更改为: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

这并没有回答问题。用户想知道为什么基本命令 ngrok 返回 command not found - lacostenycoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接