Rails 使用 gemfile 安装后命令不可用

Rails command not available after installing with gemfile

我通过 Gemfile 安装了 rails 并且 bundle install:

宝石文件

source "https://rubygems.org"

gem "rails",  "5.0.6"

根据成功消息,gem 似乎已成功安装。然而,即使在重新启动后,它仍然无法从命令行使用。

$ rails
The program 'rails' is currently not installed. You can install it by typing:
sudo apt install ruby-railties
You will have to enable the component called 'universe'

我正在使用 rbenv(必需)并且在 /.rbenv/shims/(gem、rake、bundle 等)中有许多实用程序,但没有 rails... 所以我不知道安装在哪里。

gem env returns:

GEM PATHS:
 - /home/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
 - /home/user/.gem/ruby/2.5.0

但我在那里没有看到那些包裹。我猜它需要在路上,但我不知道它在哪里。该解决方案需要在使用 bash 脚本安装时工作。

只需添加bundle exec

bundle exec rails

当您使用 rbenv 并在 Rails 上安装 Ruby 时,您可能需要 运行 rbenv rehash 以使 rails 命令可用。

来自文档:

Installs shims for all Ruby executables known to rbenv (i.e., ~/.rbenv/versions/*/bin/*). Run this command after you install a new version of Ruby, or install a gem that provides commands.

我看了你的问题后,我猜你用了rbenv而你没有运行rbenv rehash,所以你可以按照下面的方式来做:

gem install railties 
rbenv rehash

所以,我在 运行 rbenv rehash 并设置了环境变量。但是,新的环境变量在重启后才可用。使用 /.rbenv/shims/rake 的完整路径解决了问题。