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

Yas*_*sai 19 ruby-on-rails rvm

根据我之前的帖子: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.
Run Code Online (Sandbox Code Playgroud)

这是〜/ .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.
Run Code Online (Sandbox Code Playgroud)

小智 68

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

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

  • 问题是在/ etc/rvmrc中设置为/ usr/local的rvm_path (8认同)
  • 也为我工作过.只是不要忘记退出shell并再次登录,然后再尝试安装. (8认同)
  • 我还必须删除/etc/profile.d/rvm.sh http://stackoverflow.com/questions/9555868/how-can-i-get-rid-of-something-running-on-every-new-terminal -session (2认同)

the*_*Man 18

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

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

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

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

安装依赖项后,您应该处于良好状态以安装Rubies.rvm list knownRVM可以安装的所有Rubies的类型.如果你想要1.8.7类型rvm install 1.8.7,并且类似地,rvm install 1.9.2对于Ruby 1.9.2.如果您需要特定修订,可以根据列表中的修订添加该修订.

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

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

rvm rubies

   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的版本.一旦定义了默认值,它应该类似于:

rvm rubies

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

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

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

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


Nat*_*iff 6

我在这个问题中报告了原始问题," 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)
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 此时,rvm已正确安装在我的主目录下.要验证我键入:

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

    nathan~$ rvm notes
    
    Run Code Online (Sandbox Code Playgroud)
  8. 我安装了一些红宝石

    nathan~$ rvm install 1.8.7-head
    nathan~$ rvm install 1.9.2-head
    
    Run Code Online (Sandbox Code Playgroud)
  9. 已验证安装

        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]
    
    Run Code Online (Sandbox Code Playgroud)
  10. 最后,我编辑了终端本身的首选项,以确保选中"标题和命令"选项卡下的"运行命令和登录shell".似乎.bash_profile没有以其他方式处理.

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

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


gle*_*btv 5

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

export rvm_path=~/.rvm
Run Code Online (Sandbox Code Playgroud)

到〜/ .bash_profile


Sco*_*ell 5

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

mkdir: cannot create directory `/usr/local/rvm': Permission denied
Run Code Online (Sandbox Code Playgroud)

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