为什么我在 Ubuntu 上出现“rvm:未找到命令”?

为什么我在 Ubuntu 上出现“rvm:未找到命令”?

我正在尝试设置 Siri Proxy,并按照以下步骤操作:

rvmsudo rvm install 1.9.3
rvm use 1.9.3 --default
rvmsudo gem install eventmachine CFPropertyList httparty json uuidtools

但由于以下错误,我无法做到这一点:

rvm: command not found
rvmsudo: command not found

我知道这是由于 Ruby 版本管理器未安装或未正确设置。我使用的是 Ubuntu 11.04,并且只有 SSH 访问权限。

这是我之前安装并初始化 Ruby 所做的事情:

sudo apt-get install nano ruby build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

答案1

问题是命令rvmrvmsudo不在您的 中PATHPATH是一个变量,列出了搜索命令的所有目录。

您需要找出rvmrvmsudo命令的实际位置;它可能位于/usr/local某个地方或在/opt。如果 RVM 软件安装在,/usr/local我猜它会正常工作;检查/opt

然后将包含命令的目录添加到您的PATH(在命令行和中.profile):

export PATH=$PATH:/opt/rvm/bin:/opt/rvm/sbin

(这些目录只是示例。)使用$PATH保留当前 PATH 并在末尾添加两个新目录。目录从左到右搜索,并以 分隔:

您可以在man bashman sh中找到有关此内容的更多信息man ksh,具体取决于您的 shell。

答案2

在 Ubuntu 上,如果按用户安装,则需要使用 ~/.bashrc 而不是 ~/.bash_profile,因此请执行以下操作:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bashrc

或者如果你使用的是 ubuntu 12.04:

echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm" # Load RVM function' >> ~/.bashrc

在那之后:

source ~/.bashrc

并测试:

type rvm | head -1

你应该得到:rvm 是一个函数

答案3

最新的安装需要将用户添加到组rvm,然后需要再次登录。

请注意,关闭终端并重新打开是不够的;用户必须注销并重新登录才能使组添加生效。

可以通过以下方式将用户添加到组:

sudo usermod -a -G rvm <user>

根据您在安装过程中所采用的方法,二进制文件也可能位于不同的位置。我将它们放在/usr/share/rvm/

您还可以查看/usr/local/rvm/scripts/rvm

然后将此行添加到~/.bashrc

[[ -s /usr/share/rvm/scripts/rvm ]] && source /usr/share/rvm/scripts/rvm

笔记:如果您使用除此以外的 shell,bash则可能需要相应地添加路径。

例如,如果您使用zshshell,请将上述几行添加到~/.zshrc文件中。

相关内容