【问题标题】:Rails: The program 'rails' is currently not installed on Ubuntu 16.04Rails:Ubuntu 16.04 上当前未安装程序“rails”
【发布时间】:2018-02-28 20:08:54
【问题描述】:

我安装了 rvm ruby​​ 和 gem。 我用gem安装rails的时候是这样的:

woyuxuxu123@ubuntu:~$ sudo gem install rails
[sudo] password for woyuxuxu123: 
Successfully installed rails-5.1.4
Parsing documentation for rails-5.1.4
Done installing documentation for rails after 0 seconds
1 gem installed

但是当我输入 rails -v 时,我得到了:

woyuxuxu123@ubuntu:~$ rails -v
The program 'rails' is currently not installed. You can install it by typing:
sudo apt install ruby-railties

我尝试了一些解决方案,但对我不起作用,例如

source ~/.rvm/scripts/rvm

有人提到了路径。这是它的外观

RubyGems Environment:
EXECUTABLE DIRECTORY: /usr/local/bin

woyuxuxu123@ubuntu:~$ echo $PATH
/home/woyuxuxu123/bin:/home/woyuxuxu123/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/woyuxuxu123/.rvm/bin:/home/woyuxuxu123/.rvm/bin

我该怎么办?

【问题讨论】:

  • 请有人帮忙。很紧急!
  • 你试过gem install rails而不用sudo吗?
  • @djothefou 我试过了,我得到一个“你没有 /var/lib/gems/2.3.0 目录的写权限。”
  • 不要使用 sudo !!您需要重新启动终端,关闭它并再次打开它
  • @MrYoshiji 说没有sudo我没有写权限

标签: ruby-on-rails ruby ubuntu


【解决方案1】:

可能您忘记将 rvm 脚本添加到您的 .bash_profile:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

尝试运行rvm repair all,然后重新启动终端。

【讨论】:

  • 实际上我的 .bash_profile 中有这一行。我尝试了 rvm repair all 并重新启动了我的终端,但它不起作用。
  • @XINDILI 你在安装 rails gem 之前运行过rvm use <installed_ruby_version> --default 吗?终端中which gem 命令的输出是什么?
  • 我重新安装了所有东西并运行了 rvm use --default。现在它起作用了。非常感谢
  • 但我运行 bash --login 以运行 rvm 使用。所以现在每次打开控制台,我都必须运行 bash --login。然后我可以使用导轨。这是个问题
  • @XIDILI 好吧,你需要使用“--login”选项来交互式地运行shell。尝试将 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 添加到 .bashrc 或 .profile 而不是 .bash_profile。
【解决方案2】:

我在 Rails 5.2Ubuntu 18.04 中遇到了类似的问题。我已经安装了一个安装了 Ruby 和 Rails 的服务器,但我无法访问它们。

错误输出是:

当前未安装程序“rails”。您可以通过键入以下内容来安装它: sudo apt install ruby​​-railties

这个问题只是由于程序无法全局访问 rails 可执行文件造成的。

我是这样解决的

注意:如果您在生产服务器上工作,请在尝试以下解决方案之前尝试备份您的数据库以避免数据丢失。

就我而言,我的版本管理器是 rbenv 而不是 rvm

重新安装 rbenv 本身。将 rbenv 存储库从 GitHub 克隆到目录 ~/.rbenv:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

接下来,将~/.rbenv/bin 添加到您的$PATH,以便您可以使用 rbenv 命令行实用程序。通过更改您的 ~/.bashrc 文件来做到这一点,以便它影响未来的登录会话:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

然后将命令 eval "$(rbenv init -)" 添加到您的 ~/.bashrc 文件中,以便 rbenv 自动加载:

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

接下来,将您对 ~/.bashrc 文件所做的更改应用到当前的 shell 会话:

source ~/.bashrc

使用 type 命令验证 rbenv 是否设置正确,这将显示有关 rbenv 命令的更多信息:

type rbenv

您的终端窗口将显示以下内容:

rbenv is a function
rbenv ()
{
    local command;
    command="${1:-}";
    if [ "$#" -gt 0 ]; then
        shift;
    fi;
    case "$command" in
        rehash | shell)
            eval "$(rbenv "sh-$command" "$@")"
        ;;
        *)
            command rbenv "$command" "$@"
        ;;
    esac
}

如果一切正常,运行以下命令将显示您机器上之前安装的 RubyRails 版本:

ruby -v
rails -v

否则,请在您的计算机上重新安装 RubyRails

就是这样

我希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多