簡體   English   中英

rvm 安裝不工作:“RVM 不是一個函數”

[英]rvm installation not working: "RVM is not a function"

我剛剛安裝了 RVM,但無法正常工作。 我的.profile文件末尾有這樣一行:

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

我嘗試運行source.profile並重新啟動終端,但是,當我運行rvm use 1.9.2時,我仍然得到:

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

我的系統是 Ubuntu 11.10。

您需要運行以下命令

$ source ~/.rvm/scripts/rvm

然后運行這個

$ type rvm | head -n 1

如果你得到

rvm is a function

問題已經解決了。

你還需要運行user$ rvm requirements來查看你的操作系統的依賴需求

來源: https : //rvm.io/rvm/install/

我忘了提到您需要將此代碼放入 ~/.bashrc 或 ~/.zshrc 文件中,您將不需要再次編寫此代碼。 干杯!

您沒有使用登錄 shell。

這里描述了啟用登錄標志的過程,也可以在此處找到有關什么是登錄 shell 的一些詳細信息。

因此,您需要在 Gnome 終端的設置中選中“作為登錄 shell 運行”選項。 設置標志后需要打開新終端。

有時需要將命令設置為/bin/bash --login


對於遠程連接,了解運行交互式ssh會話和執行單個命令之間的區別很重要。

在運行ssh server然后以交互方式使用服務器時,默認情況下您使用的是登錄 shell,這一切都很好,但是對於ssh server "command"您沒有使用登錄 shell,並且需要使用ssh server 'bash -lc "command"'運行它ssh server 'bash -lc "command"' .

任何遠程調用都可能遇到與使用ssh執行單個命令相同的問題。

要永久解決此問題,只需剪切/粘貼以下行:

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

來自: ~/.bash_profile文件

到: ~/.bashrc文件

這樣做的原因是每次進入終端時都會執行.bashrc ,每次登錄時都會執行.bash_profile 這就是解決方案/bin/bash --login有效的原因,但每次進入終端時都必須這樣做。 這樣您就可以設置為下一個格式,屆時您將忘記這一切:)

我也遇到了這個問題。 最后我在終端上執行了這一行。

source ~/.rvm/scripts/rvm

問題已修復。 因為這一行將使 RVM 實例成為特定時間的函數。

最新的 RVM(rvm 1.11.6(穩定))在 Ubuntu(10.10 - 64 位 - nerdy gnat 或其他)上停止工作 - 我一直在得到

“RVM 不是一個函數,選擇帶有 'rvm use ...' 的紅寶石是行不通的。”

之前,我收到了消息,但“rvm 1.9.3-p0@rails321”會起作用。 現在,它不起作用 - 你根本無法改變寶石。

沒有任何效果,直到我發現了這一點 - 將此作為/home/your-name/.bashrc的最后一行

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

正如您所說,顯示的錯誤可能是以下錯誤。

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command. 
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

如上所述,只需在終端中輸入“ /bin/bash --login ”(重啟終端后),然后輸入命令“rvm use 1.9.3”(例如),它將開始使用相同的版本。

只需執行命令 'ruby -v' 以確認 RVM 正在使用更新版本的 Ruby。

我在新的 rvm 安裝中也遇到了這個問題,這里的答案都沒有解決。 進入官方 rvm 站點,在基礎部分,他們有以下命令:

# 來自http://rvm.io/rvm/basics

源 $(rvm 1.9.3 做 rvm env --path)

您應該將 1.9.3 更改為您真正想要的 ruby​​ 版本,並且無論 shell 類型如何,它都會使 rvm 成為一個函數。

也許您可以嘗試以下方法:

  • 您的終端 ->
  • 編輯 ->
  • 個人資料偏好 ->
  • 標題和命令 ->
  • 檢查“作為登錄shell運行命令”
  • 完畢

運行bash --login然后運行rvm use 2.0.0

即使您接受了答案,我還是想建議另一種方式 .. ~/.bashrc 在打開任何 shell 之前加載。 在末尾添加該行,您就不需要任何登錄 shell 了

打開終端,然后轉到“編輯”>“配置文件首選項” ,然后轉到“標題和命令”選項卡並選中“將命令作為登錄外殼運行”。

啟動 Bash,現在您可以直接從終端安裝 Gems,而無需使用 sudo 並且錯誤“ RVM 不是功能,使用 'rvm use ...' 選擇 rubies 將不起作用。 ”將被消除。

干杯。

以上所有答案都是有效的。 但是當我遇到同樣的問題時,解決方案如下:

  • 更新 ZSH。 (由於某種原因嘗試直接更新無效。所以從這里卸載並重新安裝更新版本)
  • 使用sudo chsh -s $(which zsh) $USER將默認 shell 設置為zsh (即,如果您更喜歡 zsh)
  • 在安裝最新的 RVM 后,確保以下代碼位於.zshrc的底部,可能使用來自官方 RVM 站點的CURL

     [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" source ~/.profile
  • 最重要的一點:確保在您的.zshrc文件中,每個導出到PATH都附加了:$PATH 即使按照上述步驟,我認為這是我問題的根源。

  • 發布這個我所有關於RVM 不是函數的問題都消失了。 如果它仍然不起作用,請在此處提供一些錯誤跟蹤。 經過幾個小時的努力來解決這個問題,我相信我一定已經看到了所有相關的錯誤。

在 Mac OSX 10.8 Mountain Lion 上安裝 Ruby 1.9.3-p125 的過程

  1. 您已經安裝了最新的 XCode (>= 4.3) 和命令行 Objective-C 編譯器“clang”。
  2. 您必須運行“bash”shell 才能運行此過程。
  3. 進入系統偏好設置
  4. 點擊“用戶和組”
  5. 單擊面板左下角的鎖並輸入您的密碼將其解鎖。
  6. “Ctrl-單擊”面板左窗格中的用戶圖標,然后選擇“高級選項...”
  7. 將登錄外殼更改為“/bin/bash”
  8. 關閉首選項
  9. 打開終端窗口(按命令+空格鍵並輸入“終端”)
  10. 按照以下說明操作:

http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

筆記:

  • 要安裝 ruby​​,您可能需要指定 clang 編譯器:

    $ rvm 安裝 1.9.3p125 --with-gcc=clang

  • 如果 RVM 抱怨 /usr/local/rvm not found,你需要創建一個鏈接:

    $ ln -s /Users/[你的用戶名]/.rvm /usr/local/rvm

source ~/.bash_profile

...應該可以解決問題...,可能需要注銷並再次登錄。

如何從命令行重新加載 .bash_profile?

« 官方 » 說明在那里: https : //rvm.io/integration/gnome-terminal/

我通過將此行添加到 .bash_profile 來修復它:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

我遇到了同樣的錯誤,因為我曾經使用 apt-get 命令安裝了舊的 rvm 版本 ruby​​-rvm。

我通過刪除腳本行來配置 .bashrc 文件中的舊 rvm 解決了這個問題。

檢查舊的 rvm 配置腳本,然后運行 ​​source .profile

我遇到了同樣的錯誤,但此頁面上的所有解決方案似乎都不起作用。 對我來說,將rvm可執行文件添加到我的路徑就足夠了:

PATH=$PATH:/usr/local/rvm/bin/

等等!

我遇到了同樣的問題,我在我的 .bash_profile 中做了這個並且它起作用了。 source "$HOME/.rvm/scripts/rvm"

對於那些遇到同樣問題並且他們像我一樣使用 lubuntu 的人,我點擊了這個鏈接

你開始你的終端

lxterminal -e "bash -il"

感謝@mpasis 為我指明了正確的方向

我改變 ruby​​ 版本的不干凈方式是

rvm alias create default ruby-2.2.3 && source ~/.bashrc && rvm list

它有效,因為我的 ~/.bashrc 中有一行波紋管,但奇怪的是它不會自動完成這項工作。

[[ -s "/usr/local/rvm/bin/rvm" ]] && source "/usr/local/rvm/bin/rvm"

我試圖用 --login 連接到我的 docker 容器

docker run -it imagename `/bin/bash --login`

但在這種情況下,容器在后台保持打開狀態,我無法輸入命令。

我用選項“用/bin/bash --login打開”嘗試了 zhc 和終端

$ 源 ~/.rvm/scripts/rvm

如果您不想為每個終端選項卡一次又一次地執行此操作,請按照以下步驟啟用登錄名 shell。

  1. 得到首選項在這里輸入圖像描述

  2. run command as a login shell在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM