转自: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. VPN column: PPTP(2)--PPTP协议解析

    zhu_hit原创,如需转载请注明出处.Thanks. PPTP协议大体上可以分为两部分:控制层连接和隧道,下面简要介绍两部分的功能.如果要详细了解PPTP协议请阅读RFC文档. 一. Control ...

  2. 【Java】【编译】javac编译源代码时,若源文件使用了别的java源代码的函数,javac会自动关联。

    * 算法第四版自己的alg4.jar似乎有些过时. * 可以引用别的源码文件里的函数

  3. Java [leetcode 20]Valid Parentheses

    题目描述: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if th ...

  4. sql null值

    SQL Server 提供 SET CONCAT_NULL_YIELDS_NULL { ON | OFF } 来控制 null 与其它字符串连接的行为. 当 SET CONCAT_NULL_YIELD ...

  5. CSS布局中——导航是非常常见的

    导航绝对是页面布局中最常见的,为了不用每次去写,稍微贴个简单的导航模版出来,方便以后使用. <title>CSS菜单</title> <style type=" ...

  6. a标签中的label在IE下触发不了a标签的href链接(label标签——解析)

    <a href="http://www.baidu.com/" target="_blank"> <span>百度</span&g ...

  7. 《深入Java虚拟机学习笔记》- 第9章 垃圾收集

    一.Java内存组成 组成图 堆(Heap) 运行时数据区域,所有类实例和数组的内存均从此处分配.Java虚拟机启动时创建.对象的堆内存由称为垃圾回收器的自动内存管理系统回收. 组成 组成 详解 Yo ...

  8. HDU1540 Tunnel Warfare 水题

    分析:不需要线段树,set可过,STL大法好 #include <iostream> #include <cstdio> #include <cstring> #i ...

  9. 【原】Storm 消息处理保障机制

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

  10. VBScript Sample:遍历文件夹并获取XML文件中指定内容

    案例: 我有一个文件夹,里面有很多子文件夹,每个子文件夹中都存在一个相同名字的XML文件,XML文件里面的标签结构相同,只是内容不同,XML文件中包含ID,Name等标签. 文件夹及文件结构如下图: ...