[英]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 站點,在基礎部分,他們有以下命令:
源 $(rvm 1.9.3 做 rvm env --path)
您應該將 1.9.3 更改為您真正想要的 ruby 版本,並且無論 shell 類型如何,它都會使 rvm 成為一個函數。
也許您可以嘗試以下方法:
運行bash --login
然后運行rvm use 2.0.0
。
即使您接受了答案,我還是想建議另一種方式 .. ~/.bashrc 在打開任何 shell 之前加載。 在末尾添加該行,您就不需要任何登錄 shell 了
打開終端,然后轉到“編輯”>“配置文件首選項” ,然后轉到“標題和命令”選項卡並選中“將命令作為登錄外殼運行”。
啟動 Bash,現在您可以直接從終端安裝 Gems,而無需使用 sudo 並且錯誤“ RVM 不是功能,使用 'rvm use ...' 選擇 rubies 將不起作用。 ”將被消除。
干杯。
以上所有答案都是有效的。 但是當我遇到同樣的問題時,解決方案如下:
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 的過程
筆記:
要安裝 ruby,您可能需要指定 clang 編譯器:
$ rvm 安裝 1.9.3p125 --with-gcc=clang
如果 RVM 抱怨 /usr/local/rvm not found,你需要創建一個鏈接:
$ ln -s /Users/[你的用戶名]/.rvm /usr/local/rvm
« 官方 » 說明在那里: 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"
。
我改變 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 和終端
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.