无法安装RVM。 / usr / local / rvm中的权限被拒绝

根据我之前的post: Ruby安装的RVM无法正常工作? 我使用root用户安装RVM的地方,然后我必须完全删除RVM安装,现在我作为用户安装。

所以我做了 :

  1. 通过执行以下操作创建新用户:useradd newuser
  2. 按照RVM网站上的说明执行命令:bash <<(curl http://rvm.beginrescueend.com/releases/rvm-install-head )

现在,我得到错误: mkdir:无法创建目录`/ usr / local / rvm’:权限被拒绝

我创建的新用户无权访问此目录。 我手动尝试创建文件夹,但同样的错误。 请帮忙。

编辑:原始问题发生,因为我没有重新启动终端,它仍然使用旧的设置。

现在,我遇到了一个新问题:安装RVM后,我无法运行它并且它给我一个错误:找不到rvm命令。

这是我的〜/ .bash_profile的输出

# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session. 

这是〜/ .bashrc文件的输出

 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session. 

RVM易于安装,但是通过尝试混合和匹配安装类型,您会变得更加困难。 您不需要创建新用户。 运行时,RVM将在您的主目录中创建一个目录: ~/.rvm ,并在其中安装所有内容。 这意味着您将拥有所有正确的权限。 您不需要以root身份运行,也不需要使用sudo。 我建议关闭所有命令行并打开一个新的命令行并从主目录开始。 如果您以root用户身份运行,请注销,然后重新登录普通帐户。 对于单用户安装,您不需要是root用户。

对于使用RVM作为其Ruby沙箱的单个用户 ,请使用单用户安装文档 。 按照该页面上的所有说明进行操作, 包括 “安装后”部分。

关闭终端窗口,然后重新打开它。 如果您已正确遵循上述说明,则键入rvm info应该在安装Ruby实例后吐出一个模板。 如果您没有看到任何输出或出现错误,请在“安装后”部分中回溯您的步骤,然后完成“故障排除”部分。 人们出现的大多数问题是因为他们没有费心去阅读指示。

安装RVM后,键入rvm notes并读取需要安装的依赖项。 如果您不添加这些文件,则安装的Rubies将缺少function。 它们会起作用,但是你会听到的一些生物舒适感不起作用,你会想知道为什么。

安装依赖项后,您应该处于良好状态以安装Rubies。 键入rvm list known所有rvm list known RVM可以安装。 如果你想要1.8.7类型的rvm install 1.8.7 ,同样地, rvm install 1.9.2 for Ruby 1.9.2。 如果您想要特定修订,可以根据列表中的修订添加该修订。

使用rvm get head定期更新RVM非常重要。 这将添加function,修复错误,并告诉RVM它可以安装的新版本的Ruby,如果您请求。

安装Ruby后,键入rvm list ,它应该显示在列表中,看起来像这样:

 rvmruby

    ruby-1.8.7-p334 [x86_64]
    ruby-1.9.2-p180 [x86_64]

键入rvm use 1.9.2 --default设置一个默认的Ruby,它将在登录之间粘贴。 如果1.9.2没有漂浮您的船,请使用您想要默认的任何Ruby的版本。 一旦定义了默认值,它应该类似于:

 rvmruby

    ruby-1.8.7-p334 [x86_64]
 => ruby​​-1.9.2-p180 [x86_64]

在开始将Gems安装到RVM管理的Ruby之前,请阅读“RVM和RubyGems” ,特别是“不要使用sudo ……”的部分。 我重复。 尽管某些博客或网页上写道,但请勿使用sudo来安装任何gem。 在使用RVM控制的Rubies时,RVM的作者更了解。 这是人们使用RVM的另一个错误,再次是由于没有阅读指示。

在Mac OS上,您需要为您的操作系统提供最新版本的XCode。 请勿在DVD上使用Snow Leopard附带的XCode。 这是马车。 从Apple的开发者网站下载并安装新版本。 这是免费下载,需要免费注册。 它是一个大文件,大约8GB,所以你想要启动它并走开。 安装XCode,您应该准备让RVM安装Rubies。

最后,RVM很容易安装,你要求它安装的Rubies也是如此。 我在Mac OS,Ubuntu和CentOS上大约有四五台不同的机器和虚拟机。 安装它需要大约一分钟,配置它并开始安装新的Ruby需要一分钟。 它真的很容易。

mkdir:无法创建目录`/ usr / local / rvm’:权限被拒绝

如果您以root身份运行rvm安装程序,请删除/ usr / local / rvm和/ etc / rvmrc。

我在这个问题中报告了原始问题,“ mkdir:在尝试安装rvm时无法创建目录`/ usr / local / rvm’:Permission denied ”。

这是我的场景以及我是如何解决的 – 也许这会帮助其他人解决同样的问题。

我在笔记本电脑上安装了Ubuntu 11.04,我只有1个用户,我在安装时创建的用户名为nathan。 当我尝试将rvm安装为nathan时,rvm安装程序将我视为root并继续尝试全局安装rvm,但由于我不是root用户,因此无法访问/ usr / local / rvm中的创建目录。

我不是Ubuntu的专家,所以我确信有更简单/更好的方法来完成我所做的事情(我很想了解它们),但这对我有用:

  1. 我创建了一个名为rubydev的新用户
  2. 我以rubydev身份登录,打开终端并输入:

     rubydev~$ bash < <(curl -B http://rvm.beginrescueend.com/install/rvm) 
  3. rvm安装正确,我退出rubydev

  4. 作为nathan回来,打开一个终端并键入“su”(你可以用sudo完成所有这些,我很懒)
  5. 成功获取root后,我输入以下命令:

     root: /home/nathan# cp -R /home/rubydev/.rvm . root: /home/nathan# chown -R nathan .rvm root: /home/nathan# chgrp -R nathan .rvm root: /home/nathan# exit nathan~$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile nathan~$ echo 'export rvm_path="/home/nathan/.rvm"' > ~/.rvmrc nathan~$ source .bash_profile 
  6. 此时,rvm已正确安装在我的主目录下。 要validation我键入:

     nathan~$ type rvm | head -1 rvm is a function (if you don't get this response, something else is wrong) 
  7. 阅读说明并安装任何依赖项

     nathan~$ rvm notes 
  8. 我安装了一些ruby

     nathan~$ rvm install 1.8.7-head nathan~$ rvm install 1.9.2-head 
  9. 已validation安装

      nathan~$ rvm list rvm rubies ruby-1.8.7-head [x86_64] ruby-1.9.2-head [x86_64] nathan~$ rvm use 1.9.2 using /home/nathan/.rvm/gems/ruby-1.9.2-head nathan~$ rvm list rvm rubies ruby-1.8.7-head [x86_x64] => ruby-1.9.2-head [x86_x64] 
  10. 最后,我编辑了终端本身的首选项,以确保选中“标题和命令”选项卡下的“运行命令和登录shell”。 似乎.bash_profile没有以其他方式处理。

  11. 我删除了在步骤1中创建的rubydev用户。

有了这些,我使用我的首选用户名在Ubuntu 11.04下有一个工作rvm。

如果您首先以root用户身份安装RVM,然后将其卸载。 现在您尝试将其安装为非sudo用户,并且您收到以下错误:

 mkdir: cannot create directory `/usr/local/rvm': Permission denied 

在尝试在用户下安装之前,请确保已注销根会话。

我通过添加来解决这个问题

 export rvm_path=~/.rvm 

到〜/ .bash_profile

如果以用户身份安装RVM,则应在主目录中生成RVM文件夹:

 ~/.rvm 

哪里应该没有权限问题。

我建议它从系统安装中获取一些旧的配置。

确保没有留下/ etc / rvmrc或$ HOME / .rvmrc文件,因为它可能正在使用这些文件中先前初始化的变量来构造不正确的安装路径。

如果我们看一下bash脚本的这一部分:

 if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then for file in /etc/rvmrc "$HOME/.rvmrc " ; do if [[ -s "$file" ]] ; then source $file fi done fi 

它试图找到其中一个文件,如果它找到一个,如果它将运行它可能初始化rvm_path,随后不会被此命令设置为$ HOME / .rvm

 rvm_path="${rvm_path:-"$HOME/.rvm"}" 

我遇到过同样的问题。 当我尝试创建gemset时,我会收到权限被拒绝错误。 我只是忘了先运行“rvm use 1.8.7”命令。 之后,我能够毫无问题地创建和使用gemset。

在rstm的持续版本中,您还需要删除/etc/profile.d/。

如果您尝试以root用户身份安装,然后再以普通用户身份重试,则会发生这种情况。

希望这有帮助。

在/ etc目录下面找到文件rvm.sh(可能在/ etc或/etc/init.d中)。 另外,尝试一些grep rvm / etc -r,这样你就可以找到一些阻止你在$ HOME目录中安装rvm的文件/行。

对我来说跑步

__rvm_unload

首先工作,这是因为我已经为多用户安装了rvm。

如果您以root身份安装了rvm并且您正在获得权限被拒绝的问题(可能您使用capistrano作为非root用户进行部署)那么您可以在执行rvm install 2.2.2之后尝试使用rvm fix-permissions作为root并创建gemset作为根。

Scott Bartell的解决方案对我有用。 我正在使用Digital Ocean预制图像,他们已经将rvm设置为root。 1.删​​除/ etc / rvmrc。 2.将导出rvm_path =〜/ .rvm添加到〜/ .bash_profile 3.从ssh会话中注销到虚拟机4.重新登录并注册!

本来会评论,但代表是3分太低了:)