2012-03-17 118 views
29

RVM安裝在我的機器上(運行Mac OSX 10.6.8),正確並且運行良好。奇怪的是,要運行它,我必須在每個新的會話中使用source ~/.rvm/scripts/rvm。我嘗試從它製作一個符號鏈接到/opt/local/bin/rvm,但是當它運行時它什麼都不做。我也嘗試創建從~/.rvm/bin/rvm/opt/local/bin/rvm的符號鏈接,當我在終端中運行rvm時,它會按預期顯示幫助頁面。但是當我嘗試rvm use some_ruby_version時,它總是顯示「RVM不是一個函數,選擇使用'rvm use ...'的紅寶石將不起作用。」我怎樣才能解決這個問題?「RVM不是功能」錯誤

我的目標是讓我的不要必須在每個會話中鍵入源命令,並且由於某種原因~/.profile不會執行。

+2

你有沒有嘗試添加了必要的行'〜/ .bash_profile'?在我的Mac上,至少那是我在添加路徑/函數到我的bash時需要編輯的那個。 – user2398029 2012-03-17 18:52:45

回答

7

我不明白~/.profile正確地做;我需要改變~/.bash_profile。問題解決了!

+0

將這些行添加到您的bashrc文件中 – pradeek 2014-06-19 12:42:28

42

您必須將RVM腳本編入當前會話,因爲它會更改shell環境 - 並且從子進程完成該操作是絕對不可能的。您將RVM作爲外部命令運行的努力無法成功。

要真正解決這個問題,你有兩個選擇:

  1. 配置您的終端模擬器啓動登錄shell,而不是一個非登錄外殼,讓您的.profile被加載。
  2. 修改.bashrc來源代替RVM,它也適用於非登錄shell。

要做到只需將它添加到~/.bashrc第二:

if test -f ~/.rvm/scripts/rvm; then 
    [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm 
fi 
+4

請不要在〜/ .bashrc中向源RVM做廣告,這不是正確的解決方案,點1是最好的方法,這裏有一些細節:https://rvm.beginrescueend.com/support/faq/# shell_login – mpapis 2012-03-17 19:38:57

+0

@mpapis啊,我只是認爲〜/ .profile做了〜/ .bash_profile的工作;問題解決了。 – Jwosty 2012-03-17 20:50:42

8

如果您正在使用的zsh作爲外殼,而不是bash中,你必須:

1.

vi ~/.zshrc 

2. 像馬特說,添加:

if test -f ~/.rvm/scripts/rvm; then 
    [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm 
fi 

3.重新啓動Terminall 4.完成!

rvm use 1.9.3 

威爾工作

+2

像zsh shell一樣具有魅力! – 2013-10-16 13:33:04

1

你必須做一些設置。

打開終端並運行此命令。

source ~/.rvm/scripts/rvm 

,然後去edit > Title and command和檢查Run command as login shell

和你做。現在你不需要每次都指定源。

0

當我成爲root時,我遇到了這個問題。我嘗試了上面的許多解決方案。終於成功的是從根本上退出併成爲普通用戶。無論如何,這是我所需要的。

3

那麼,與山獅(10.8.3)什麼工作對我來說是編輯/ etc/profile文件

,並添加到文件底部前面提到的行:

if test -f ~/.rvm/scripts/rvm; then 
     [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm 
    fi 
2

我同樣的問題。我發現了.profile文件沒有得到更新,所以我說這是加入到.bash_profile中相同的命令:

[-s 「$ HOME/.rvm /腳本/ RVM」]] & &源「$ HOME/.rvm /腳本/ RVM」

我不知道這是正確的方式,但它的工作...

+0

將這些行添加到〜/ .bashrc配置文件中,它將起作用 – pradeek 2014-06-19 12:41:34

0

這些解決方案似乎沒有贖回我的問題,這是在Ubuntu 12.04 LTS 。

我所做的是以下幾點:

  1. rvm get stable --auto-dotfiles作爲RVM文檔here
  2. 新增source ~/.profile作爲第一行中概述:〜/ .bash_profile中

我不會全部這些步驟被記錄爲來自RVM命令行的錯誤:

RVM不是一個函數,選擇'rvm use ...'的紅寶石不會 工作。您需要更改您的終端仿真器首選項以允許登錄shell。有時需要使用/bin/bash --login作爲 該命令。例如,請訪問https://rvm.io/integration/gnome-terminal/

  • 警告:你有 '〜/ .profile文件' 的文件,你可能想加載它, 做添加以下行到一個「/ home/USER_NAME /的.bash_profile':

    源〜/ .profile中

2

你不應該像別人所說的那樣編輯任何東西。只需進入終端的設置並選擇「作爲登錄shell運行命令」。這將導致.profile在下一個終端實例上運行。重新打開你的終端,你應該可以使用rvm use 1.9.3(或者你安裝的任何版本)。

上rvm.io找到更多信息(這也是答案的好地方)

https://rvm.io/integration/gnome-terminal

1

什麼擰我是假設我的道路是正確的,因爲我用的是一個我可以手動運行。

顯然有不同的可執行文件或腳本可以使用,並位於不同的地方。

我認爲米娜應該使用的路徑是這樣的:

/usr/local/rvm/bin/rvm 

當在現實中卻是這樣的:

/usr/local/rvm/scripts/rvm