转自:http://chinacheng.iteye.com/blog/1738036

rvm安装ruby和rails之后,ruby -v好使,gem -v好使。但是rails -v不好使,提示没有安装rails应用。 bundle -v也遇到了相同的问题。显然是系统没有把他加到相应的环境变量中去,手动添加环境变量可能是一种方式,当时既然我们用rvm来管理我们的各个版本的ruby和rails,那么这个时候我们去手动添加环境变量显然是不合适的。

那么到底是其他的什么原因的,是rvm,我运行rvm use 1.9.3 --default提示我说rvm is not a function。好吧知道原因了吧。可以用以下命令来解决。

    source ~/.rvm/scripts/rvm
type rvm | head -n 1

执行上面的命令吧,之后你会看到这个
rvm is a function

另外这个只会对当前会话有效,如果要长期有效的话,把 source ~/.rvm/scripts/rvm添加到 ~/.bashrc即可

在Multi-User模式安装的情况下,rvm是安装在/usr/local/rvm/下,另外它在安装的时候会在/etc
/profile.d/目录下产生一个rvm.sh的脚本文件,查看/etc/profile文件的代码,就会发现,所有用户都会加载的这个
profile文件会遍历运行/etc/profile.d 下的所有脚本文件。

但是我按照默认的开启终端方式,却无法找到rvm这个命令。su - 用户名是可以的,这就有点奇怪了,后来看到这篇文章 http://ruby-china.org/topics/3705
,文章中说的恰恰是“Ubutnu的Gnome Terminal在启动时是non-login shell,而non-login
shell只会读取~/.bashrc来进行初始化,所以没有读入写在~/.bash_login中的RVM loading
line,以至于RVM没有作为function载入,故悲剧发生了。”,其中的一个解决方式:就是设置Gnome
Terminal以login的方式启动

Gnome Terminal默认是no-login的启动,这种情况下的加载

    execute /etc/bash.bashrc
IF ~/.bashrc exists THEN
execute ~/.bashrc
END IF

login shell执行的是下面

execute /etc/profile
IF ~/.bash_profile exists THEN
execute ~/.bash_profile
ELSE
IF ~/.bash_login exist THEN
execute ~/.bash_login
ELSE
IF ~/.profile exist THEN
execute ~/.profile
END IF
END IF
END IF

这样就不难理解为什么默认情况下无法加载/etc/profile.d/下的rvm脚本了

文章二:类unix系统是如何初始化shell的

http://reyesyang.info/articles/26-how-to-initialize-a-new-shell-in-unix-like-os

【转】rvm安装ruby,gem,rails,之后仍然无法找到rails命令的更多相关文章

  1. 用Rvm安装Ruby,Rails运行环境及常见错误解决方法

    一.安装Rvm 1.下载安装Rvm $ curl -L https://get.rvm.io | bash -s stable 此时可能出现错误:"gpg: 无法检查签名:找不到公钥&quo ...

  2. rvm的安装, 使用rvm, 安装ruby, 以及gem的使用 (转)

    http://blog.163.com/digoal@126/blog/static/1638770402012425111617904/ rvm 全称Ruby Version Manager,  确 ...

  3. 通过RVM安装Ruby失败

    第一次安装失败是由于Homebrew一直安装不成功,遂去http://brew.sh/index_zh-cn.html官网 通过 /usr/bin/ruby -e "$(curl -fsSL ...

  4. RVM 安装 Ruby

    RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换. https://rvm.io/ 如果你打算学习 Ruby / Rails, RVM 是必不可少的工具之一. 这里所有的 ...

  5. 安装ruby&gem

    #安装yaml#------------------------------------------------------- cd /opt tar zxf yaml-0.1.7.tar.gz ./ ...

  6. rvm 安装ruby环境报错curl: (35) error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure

    很可能是rvm仓库版本过低,运行以下命令: rvm get head

  7. 如何快速正确的安装 Ruby, Rails 运行环境-b

    对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.次安装方法同样适用于产品环境! 系 ...

  8. ubuntu 安装ruby rails

    步骤0 - 安装系统需要的包 Mac 请安装 Xcode 开发工具,它将帮你安装好 Unix 环境需要的开发包 Ubuntu 请安装 $ sudo apt-get install -y build-e ...

  9. 怎样高速正确的安装 Ruby, Rails 执行环境

    对于新入门的开发人员,怎样安装 Ruby, Ruby Gems 和 Rails 的执行环境可能会是个问题,本页主要介绍怎样用一条靠谱的路子高速安装 Ruby 开发环境. 次安装方法相同适用于产品环境! ...

随机推荐

  1. Hive 接口介绍(Web UI/JDBC)

    Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanl ...

  2. Unity3d插件推荐

    2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Scr ...

  3. sencha touch2 动画问题

    最近在review一个项目的代码, 发现返回操作比较乱,很多"从哪里来,到哪里去的操作"被写的一塌糊涂; 按照ios系统的进场出场动画(人家的体验还是很好的,必须借鉴)为标准,使用 ...

  4. [信息OJ 2467] Asakura的难题

     2467: G Asakura的难题 Time Limit:2000MS Memory Limit:65536KB Description Asakura是班里有名的捣蛋鬼,所以经常有同学到老师那里 ...

  5. sh脚本执行Java程序

    1.不引用Jar包或者资源文件夹 最简单的程序Hello World. 首先创建Hello.java public class Hello { public static void main(Stri ...

  6. Vim Vundle 插件管理器

    /********************************************************************** * Vim Vundle 插件管理器 * 说明: * 话 ...

  7. JS中图片的放大缩小没反应

    这段代码无反应: 代码如下: <script type="text/javascript"> onload = function () { document.getEl ...

  8. MySQL查询执行过程

    MySQL查询执行路径 1. 客户端发送一条查询给服务器: 2. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段: 3. 服务器端进行SQL解析.预处理,再由优 ...

  9. c#操作XML文件的通用方法

    转载地址:http://www.studyofnet.com/news/36.html 原址没找到 sing System; using System.Data; using System.Confi ...

  10. dataStructure@ Find if there is a path between two vertices in a directed graph

    Given a Directed Graph and two vertices in it, check whether there is a path from the first given ve ...