为什么我只在一个有 Procfile 的目录中得到 "foreman: command not found"?

Why do I get "foreman: command not found" only in a directory *with* a Procfile?

我在 CentOS 上。我用 yum

安装了 foreman

在我的主目录中,没有 Procfile,我得到:

$ foreman start
ERROR: Procfile does not exist.

然而,当我 cd 到一个有 Procfile 的目录时,例如:

cd ~/supersender

然后工头命令不可用,即 forem [tab][[tab] 没有完成,我得到

$ foreman start
-bash: foreman: command not found

我之前遇到过同样的问题。 在最近的一个项目文件夹中,我能够 运行 'foreman start',但在一个较旧的文件夹中我得到:

$ foreman start
-bash: foreman: command not found

我想将 'foreman' 添加到 PATH 应该也可以,但以下命令对我有用:

$ sudo gem uninstall foreman
$ sudo gem install foreman
$ which foreman
/Users/liwen/.rvm/rubies/ruby-2.2.3/bin/foreman

我仍然不知道最近看到的 'foreman' 与之前的旧文件夹之间的差异,但以上对我有用。

我在通过 gem install foreman 全局安装工头后遇到了这个问题。

我在使用 Ruby 2.7.1(通过 rvm)时安装了它,但我的项目使用 Ruby 3.1.0,所以找不到它。

切换到 3.1.0,然后再次安装为我修复了它。

rvm use 3.1.0 && gem install foreman