转自: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. int21 h

    表:DOS系统功能调INT 21H AH 功能 调用参数 返回参数 00 程序终止(同INT 20H) CS=程序段前缀 01 键盘输入并回显 AL=输入字符 02 显示输出 DL=输出字符 03 异 ...

  2. PL/SQL Developer使用技巧

    1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法:PL/SQL ...

  3. Android-xUtils框架介绍(三)

    继续介绍xUtils的最后两个模块:DbUtils和HttpUtils.首先先介绍第一个SQLite数据库操纵的简单ORM框架,只要能理解xUtils为我们提供的api,相信你也能熟练的把DbUtil ...

  4. 函数buf_LRU_get_free_only

    /******************************************************************//** Returns a free block from th ...

  5. iframe控件

    function goTo(url) { document.getElementById("iframeid").src = url; //获得要显示的页面,当点击时就会在ifra ...

  6. python跟踪脚本进度(类似bash-x)

    #详细追踪 python -m trace --trace jin.py #显示调用了哪些函数 python -m trace --trackcalls jin.py

  7. Spring MVC 教程

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  8. 【转】 C++中如何在一个构造函数中调用另一个构造函数

    在C++中,一个类的构造函数没法直接调用另一个构造函数,比如: #ifndef _A_H_ #define _A_H_ #include <stdio.h> #include <ne ...

  9. MVC Action Filter

    ASP.NET MVC Framework支持四种不同类型的Filter: Authorization filters – 实现IAuthorizationFilter接口的属性. Action fi ...

  10. 使用C语言实现二维,三维绘图算法(2)-解析曲面的显示

    使用C语言实现二维,三维绘图算法(2)-解析曲面的显示 ---- 引言---- 每次使用OpenGL或DirectX写三维程序的时候, 都有一种隔靴搔痒的感觉, 对于内部的三维算法的实现不甚了解. 其 ...